From 035c7504c8ba340f5ebc19915145627437efddb6 Mon Sep 17 00:00:00 2001 From: angryziber Date: Sat, 10 Nov 2007 16:28:34 +0000 Subject: [PATCH] * NamedListConfig is now Iterable, itrerateNames() renamed to iterator() * OpenersConfig and FavoritesConfig are now properly injected to all places where they are used git-svn-id: https://ipscan.svn.sourceforge.net/svnroot/ipscan/trunk@239 375186e5-ef17-0410-b0b6-91563547dcda --- TODO | 2 + dictionary.txt | 1 + src/net/azib/ipscan/config/Config.java | 8 ++-- .../azib/ipscan/config/NamedListConfig.java | 4 +- .../azib/ipscan/gui/EditFavoritesDialog.java | 14 +++---- .../azib/ipscan/gui/EditOpenersDialog.java | 17 ++++----- .../ipscan/gui/actions/CommandsActions.java | 24 +++++++----- .../ipscan/gui/actions/FavoritesActions.java | 37 +++++++++++-------- .../ipscan/gui/feeders/FeederGUIRegistry.java | 2 +- .../ipscan/config/NamedListConfigTest.java | 4 +- .../azib/ipscan/config/OpenersConfigTest.java | 4 +- 11 files changed, 63 insertions(+), 54 deletions(-) diff --git a/TODO b/TODO index 070036b8..2357c022 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,5 @@ +* More openers: IP info, etc + Before 3.0: * command-line scanning start diff --git a/dictionary.txt b/dictionary.txt index 399b9916..f537dbf1 100644 --- a/dictionary.txt +++ b/dictionary.txt @@ -31,3 +31,4 @@ placeholder firewall registry combo +config diff --git a/src/net/azib/ipscan/config/Config.java b/src/net/azib/ipscan/config/Config.java index fe3c0569..49357dbe 100755 --- a/src/net/azib/ipscan/config/Config.java +++ b/src/net/azib/ipscan/config/Config.java @@ -57,16 +57,16 @@ public final class Config { } /** - * @return Favorites config (quick access); + * @return Favorites config (only local access) */ - public static NamedListConfig getFavoritesConfig() { + static NamedListConfig getFavoritesConfig() { return favoritesConfig; } /** - * @return Openers config (quick access); + * @return Openers config (only local access); */ - public static OpenersConfig getOpenersConfig() { + static OpenersConfig getOpenersConfig() { return openersConfig; } diff --git a/src/net/azib/ipscan/config/NamedListConfig.java b/src/net/azib/ipscan/config/NamedListConfig.java index 5eab56d6..6af13ad2 100755 --- a/src/net/azib/ipscan/config/NamedListConfig.java +++ b/src/net/azib/ipscan/config/NamedListConfig.java @@ -17,7 +17,7 @@ import java.util.prefs.Preferences; * * @author Anton Keks */ -public class NamedListConfig { +public class NamedListConfig implements Iterable { protected String preferenceName; protected Preferences preferences; @@ -83,7 +83,7 @@ public class NamedListConfig { /** * @return an Iterator for iterating names of available items */ - public Iterator iterateNames() { + public Iterator iterator() { return namedList.keySet().iterator(); } diff --git a/src/net/azib/ipscan/gui/EditFavoritesDialog.java b/src/net/azib/ipscan/gui/EditFavoritesDialog.java index 5c3bd83c..2e7b7779 100755 --- a/src/net/azib/ipscan/gui/EditFavoritesDialog.java +++ b/src/net/azib/ipscan/gui/EditFavoritesDialog.java @@ -3,11 +3,8 @@ */ package net.azib.ipscan.gui; -import java.util.Iterator; - -import net.azib.ipscan.config.Config; +import net.azib.ipscan.config.FavoritesConfig; import net.azib.ipscan.config.Labels; -import net.azib.ipscan.config.NamedListConfig; import net.azib.ipscan.gui.util.LayoutHelper; import org.eclipse.swt.SWT; @@ -27,9 +24,11 @@ import org.eclipse.swt.widgets.Shell; */ public class EditFavoritesDialog extends AbstractModalDialog { + private final FavoritesConfig favoritesConfig; private List favoritesList; - public EditFavoritesDialog() { + public EditFavoritesDialog(FavoritesConfig favoritesConfig) { + this.favoritesConfig = favoritesConfig; createShell(); } @@ -49,8 +48,7 @@ public class EditFavoritesDialog extends AbstractModalDialog { favoritesList = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); favoritesList.setLayoutData(LayoutHelper.formData(330, 200, new FormAttachment(0), null, new FormAttachment(messageLabel), null)); - for (Iterator i = Config.getFavoritesConfig().iterateNames(); i.hasNext();) { - String name = i.next(); + for (String name : favoritesConfig) { favoritesList.add(name); } @@ -91,11 +89,9 @@ public class EditFavoritesDialog extends AbstractModalDialog { shell.close(); } }); - } private void saveFavorites() { - NamedListConfig favoritesConfig = Config.getFavoritesConfig(); favoritesConfig.update(favoritesList.getItems()); favoritesConfig.store(); } diff --git a/src/net/azib/ipscan/gui/EditOpenersDialog.java b/src/net/azib/ipscan/gui/EditOpenersDialog.java index 177d358d..53d99b61 100755 --- a/src/net/azib/ipscan/gui/EditOpenersDialog.java +++ b/src/net/azib/ipscan/gui/EditOpenersDialog.java @@ -4,9 +4,7 @@ package net.azib.ipscan.gui; import java.io.File; -import java.util.Iterator; -import net.azib.ipscan.config.Config; import net.azib.ipscan.config.Labels; import net.azib.ipscan.config.OpenersConfig; import net.azib.ipscan.config.Platform; @@ -36,7 +34,9 @@ import org.eclipse.swt.widgets.Text; */ public class EditOpenersDialog extends AbstractModalDialog { - private FetcherRegistry fetcherRegistry; + private final FetcherRegistry fetcherRegistry; + private final OpenersConfig openersConfig; + private List openersList; private Group editFieldsGroup; private Text openerNameText; @@ -45,8 +45,9 @@ public class EditOpenersDialog extends AbstractModalDialog { private Button isInTerminalCheckbox; private int currentSelectionIndex; - public EditOpenersDialog(FetcherRegistry fetcherRegistry) { + public EditOpenersDialog(FetcherRegistry fetcherRegistry, OpenersConfig openersConfig) { this.fetcherRegistry = fetcherRegistry; + this.openersConfig = openersConfig; createShell(); } @@ -68,8 +69,7 @@ public class EditOpenersDialog extends AbstractModalDialog { editFieldsGroup = new Group(shell, SWT.NONE); openersList.setLayoutData(LayoutHelper.formData(135, 200, null, null, new FormAttachment(messageLabel, 10), new FormAttachment(editFieldsGroup, 0, SWT.BOTTOM))); - for (Iterator i = Config.getOpenersConfig().iterateNames(); i.hasNext();) { - String name = i.next(); + for (String name : openersConfig) { openersList.add(name); } openersList.addListener(SWT.Selection, new ItemSelectListener()); @@ -161,7 +161,6 @@ public class EditOpenersDialog extends AbstractModalDialog { saveCurrentFields(); // now save everything else (order, etc) - OpenersConfig openersConfig = Config.getOpenersConfig(); openersConfig.update(openersList.getItems()); openersConfig.store(); } @@ -172,7 +171,7 @@ public class EditOpenersDialog extends AbstractModalDialog { return; File workingDir = workingDirText.getText().length() > 0 ? new File(workingDirText.getText()) : null; - Config.getOpenersConfig().add(openerName, new OpenersConfig.Opener(openerStringText.getText(), isInTerminalCheckbox.getSelection(), workingDir)); + openersConfig.add(openerName, new OpenersConfig.Opener(openerStringText.getText(), isInTerminalCheckbox.getSelection(), workingDir)); openersList.setItem(currentSelectionIndex, openerName); } @@ -180,7 +179,7 @@ public class EditOpenersDialog extends AbstractModalDialog { currentSelectionIndex = openersList.getSelectionIndex(); String openerName = openersList.getItem(currentSelectionIndex); editFieldsGroup.setText(openerName); - Opener opener = Config.getOpenersConfig().getOpener(openerName); + Opener opener = openersConfig.getOpener(openerName); openerNameText.setText(openerName); openerStringText.setText(opener.execString); workingDirText.setText(opener.workingDir != null ? opener.workingDir.toString() : ""); diff --git a/src/net/azib/ipscan/gui/actions/CommandsActions.java b/src/net/azib/ipscan/gui/actions/CommandsActions.java index 074d9157..f13cb70d 100755 --- a/src/net/azib/ipscan/gui/actions/CommandsActions.java +++ b/src/net/azib/ipscan/gui/actions/CommandsActions.java @@ -7,11 +7,10 @@ package net.azib.ipscan.gui.actions; import java.net.InetAddress; import java.net.UnknownHostException; -import java.util.Iterator; import net.azib.ipscan.config.CommentsConfig; -import net.azib.ipscan.config.Config; import net.azib.ipscan.config.Labels; +import net.azib.ipscan.config.OpenersConfig; import net.azib.ipscan.config.OpenersConfig.Opener; import net.azib.ipscan.core.ScanningResultList; import net.azib.ipscan.core.UserErrorException; @@ -154,8 +153,10 @@ public class CommandsActions { public static final class ShowOpenersMenu implements Listener { private final Listener openersSelectListener; + private final OpenersConfig openersConfig; - public ShowOpenersMenu(SelectOpener selectOpener) { + public ShowOpenersMenu(OpenersConfig openersConfig, SelectOpener selectOpener) { + this.openersConfig = openersConfig; this.openersSelectListener = selectOpener; } @@ -168,9 +169,8 @@ public class CommandsActions { // update menu items int index = 0; - for (Iterator i = Config.getOpenersConfig().iterateNames(); i.hasNext();) { + for (String name : openersConfig) { MenuItem menuItem = new MenuItem(openersMenu, SWT.CASCADE); - String name = i.next(); index++; if (index <= 9) { @@ -226,14 +226,16 @@ public class CommandsActions { public static final class EditOpeners implements Listener { - FetcherRegistry fetcherRegistry; + private final FetcherRegistry fetcherRegistry; + private final OpenersConfig openersConfig; - public EditOpeners(FetcherRegistry fetcherRegistry) { + public EditOpeners(FetcherRegistry fetcherRegistry, OpenersConfig openersConfig) { this.fetcherRegistry = fetcherRegistry; + this.openersConfig = openersConfig; } public void handleEvent(Event event) { - new EditOpenersDialog(fetcherRegistry).open(); + new EditOpenersDialog(fetcherRegistry, openersConfig).open(); } } @@ -242,8 +244,10 @@ public class CommandsActions { private final StatusBar statusBar; private final ResultTable resultTable; private final OpenerLauncher openerLauncher; + private final OpenersConfig openersConfig; - public SelectOpener(StatusBar statusBar, ResultTable resultTable, OpenerLauncher openerLauncher) { + public SelectOpener(OpenersConfig openersConfig, StatusBar statusBar, ResultTable resultTable, OpenerLauncher openerLauncher) { + this.openersConfig = openersConfig; this.statusBar = statusBar; this.resultTable = resultTable; this.openerLauncher = openerLauncher; @@ -256,7 +260,7 @@ public class CommandsActions { if (indexOf >= 0) { name = name.substring(0, indexOf); } - Opener opener = Config.getOpenersConfig().getOpener(name); + Opener opener = openersConfig.getOpener(name); int selectedItem = resultTable.getSelectionIndex(); if (selectedItem < 0) { diff --git a/src/net/azib/ipscan/gui/actions/FavoritesActions.java b/src/net/azib/ipscan/gui/actions/FavoritesActions.java index 9ed51e1f..cd42b103 100755 --- a/src/net/azib/ipscan/gui/actions/FavoritesActions.java +++ b/src/net/azib/ipscan/gui/actions/FavoritesActions.java @@ -5,11 +5,8 @@ */ package net.azib.ipscan.gui.actions; -import java.util.Iterator; - -import net.azib.ipscan.config.Config; +import net.azib.ipscan.config.FavoritesConfig; import net.azib.ipscan.config.Labels; -import net.azib.ipscan.config.NamedListConfig; import net.azib.ipscan.config.Version; import net.azib.ipscan.core.UserErrorException; import net.azib.ipscan.gui.EditFavoritesDialog; @@ -31,8 +28,10 @@ public class FavoritesActions { public static final class Add implements Listener { private final FeederGUIRegistry feederRegistry; + private final FavoritesConfig favoritesConfig; - public Add(FeederGUIRegistry feederRegistry) { + public Add(FavoritesConfig favoritesConfig, FeederGUIRegistry feederRegistry) { + this.favoritesConfig = favoritesConfig; this.feederRegistry = feederRegistry; } @@ -44,7 +43,6 @@ public class FavoritesActions { String favoriteName = inputDialog.open(feederInfo); if (favoriteName != null) { - NamedListConfig favoritesConfig = Config.getFavoritesConfig(); if (favoritesConfig.get(favoriteName) != null) { throw new UserErrorException("favorite.alreadyExists"); } @@ -57,14 +55,16 @@ public class FavoritesActions { public static final class Select implements Listener { private final FeederGUIRegistry feederRegistry; + private final FavoritesConfig favoritesConfig; - public Select(FeederGUIRegistry feederRegistry) { + public Select(FavoritesConfig favoritesConfig, FeederGUIRegistry feederRegistry) { + this.favoritesConfig = favoritesConfig; this.feederRegistry = feederRegistry; } public void handleEvent(Event event) { MenuItem menuItem = (MenuItem) event.widget; - String serializedFeeder = Config.getFavoritesConfig().get(menuItem.getText()); + String serializedFeeder = favoritesConfig.get(menuItem.getText()); int indexOf = serializedFeeder.indexOf('\t'); String feederName = serializedFeeder.substring(0, indexOf); @@ -77,25 +77,32 @@ public class FavoritesActions { } public static final class Edit implements Listener { + private final FavoritesConfig favoritesConfig; + + public Edit(FavoritesConfig favoritesConfig) { + this.favoritesConfig = favoritesConfig; + } + public void handleEvent(Event event) { - new EditFavoritesDialog().open(); + new EditFavoritesDialog(favoritesConfig).open(); } } public static final class ShowMenu implements Listener { private final Listener favoritesSelectListener; + private final FavoritesConfig favoritesConfig; - public ShowMenu(Select favoritesSelectListener) { + public ShowMenu(FavoritesConfig favoritesConfig, Select favoritesSelectListener) { + this.favoritesConfig = favoritesConfig; // the listener for favorites selections from the menu this.favoritesSelectListener = favoritesSelectListener; } public void handleEvent(Event event) { Menu favoritesMenu = (Menu) event.widget; - // populate favorites in the menu - NamedListConfig favoritesConfig = Config.getFavoritesConfig(); - + // populate favorites in the menu // note: 3 is the number of items in the menu when no favorites exist + // dispose old favorites MenuItem[] menuItems = favoritesMenu.getItems(); for (int i = 3; i < menuItems.length; i++) { @@ -103,9 +110,9 @@ public class FavoritesActions { } // update favorites menu items - for (Iterator i = favoritesConfig.iterateNames(); i.hasNext();) { + for (String name : favoritesConfig) { MenuItem menuItem = new MenuItem(favoritesMenu, SWT.CASCADE); - menuItem.setText(i.next()); + menuItem.setText(name); menuItem.addListener(SWT.Selection, favoritesSelectListener); } } diff --git a/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java b/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java index 3d485dc5..8190633d 100755 --- a/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java +++ b/src/net/azib/ipscan/gui/feeders/FeederGUIRegistry.java @@ -73,7 +73,7 @@ public class FeederGUIRegistry implements Iterable { } } // if not found - throw new FeederException("No such feeder found: " + feederName); + throw new FeederException("Feeder not found: " + feederName); } /** diff --git a/test/net/azib/ipscan/config/NamedListConfigTest.java b/test/net/azib/ipscan/config/NamedListConfigTest.java index 554aeb3c..b04c7d5a 100755 --- a/test/net/azib/ipscan/config/NamedListConfigTest.java +++ b/test/net/azib/ipscan/config/NamedListConfigTest.java @@ -59,7 +59,7 @@ public class NamedListConfigTest { preferences.put(PREFERENCE_NAME, "aa###aaa###bb###bbb###cc###ccc"); NamedListConfig config = new NamedListConfig(preferences, PREFERENCE_NAME); - Iterator namesIterator = config.iterateNames(); + Iterator namesIterator = config.iterator(); assertEquals("aa", namesIterator.next()); assertEquals("bb", namesIterator.next()); assertEquals("cc", namesIterator.next()); @@ -84,7 +84,7 @@ public class NamedListConfigTest { config.update(new String[] {"x", "z"}); - Iterator i = config.iterateNames(); + Iterator i = config.iterator(); assertEquals("xxx", config.get((String)i.next())); assertEquals("zzz", config.get((String)i.next())); assertFalse(i.hasNext()); diff --git a/test/net/azib/ipscan/config/OpenersConfigTest.java b/test/net/azib/ipscan/config/OpenersConfigTest.java index 4b211f82..11d7e1e0 100755 --- a/test/net/azib/ipscan/config/OpenersConfigTest.java +++ b/test/net/azib/ipscan/config/OpenersConfigTest.java @@ -93,7 +93,7 @@ public class OpenersConfigTest { preferences.put(PREFERENCE_NAME, "aa###aaa@@@1@@@###bb###bbb@@@1@@@"); OpenersConfig config = new OpenersConfig(preferences); - Iterator namesIterator = config.iterateNames(); + Iterator namesIterator = config.iterator(); assertEquals("aa", namesIterator.next()); assertEquals("bb", namesIterator.next()); assertFalse(namesIterator.hasNext()); @@ -119,7 +119,7 @@ public class OpenersConfigTest { config.update(new String[] {"x", "z"}); - Iterator i = config.iterateNames(); + Iterator i = config.iterator(); assertEquals("x", i.next()); assertEquals("z", i.next()); assertFalse(i.hasNext());