From 6a482aefb883ffeaa9993828ca4702bc50305646 Mon Sep 17 00:00:00 2001 From: Andriy Kryvtsun Date: Wed, 12 Aug 2015 22:31:43 -0400 Subject: [PATCH] About action extracting --- .../azib/ipscan/config/ComponentRegistry.java | 1 - src/net/azib/ipscan/gui/AboutDialog.java | 6 ++++++ .../azib/ipscan/gui/MacApplicationMenu.java | 9 ++++++--- src/net/azib/ipscan/gui/MainMenu.java | 6 ++++-- .../ipscan/gui/actions/HelpMenuActions.java | 4 +++- .../ipscan/gui/actions/HelpMenuModule.java | 19 +++++++++++++++++++ .../ipscan/gui/actions/ListenerComponent.java | 17 +++++++++++++++++ 7 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 src/net/azib/ipscan/gui/actions/HelpMenuModule.java create mode 100644 src/net/azib/ipscan/gui/actions/ListenerComponent.java diff --git a/src/net/azib/ipscan/config/ComponentRegistry.java b/src/net/azib/ipscan/config/ComponentRegistry.java index 50ecd132..72b5604c 100644 --- a/src/net/azib/ipscan/config/ComponentRegistry.java +++ b/src/net/azib/ipscan/config/ComponentRegistry.java @@ -113,7 +113,6 @@ public class ComponentRegistry { if (Platform.MAC_OS) container.registerComponentImplementation(MacApplicationMenu.class); - container.registerComponentImplementation(AboutDialog.class); container.registerComponentImplementation(PreferencesDialog.class); container.registerComponentImplementation(SelectFetchersDialog.class); container.registerComponentImplementation(DetailsWindow.class); diff --git a/src/net/azib/ipscan/gui/AboutDialog.java b/src/net/azib/ipscan/gui/AboutDialog.java index 53ace8f3..ea2f5b83 100644 --- a/src/net/azib/ipscan/gui/AboutDialog.java +++ b/src/net/azib/ipscan/gui/AboutDialog.java @@ -11,6 +11,8 @@ import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.*; +import javax.inject.Inject; + import static net.azib.ipscan.config.Version.*; /** @@ -20,6 +22,10 @@ import static net.azib.ipscan.config.Version.*; */ public class AboutDialog extends AbstractModalDialog { + @Inject + public AboutDialog() { + } + @Override protected void populateShell() { shell.setText(Labels.getLabel("title.about")); diff --git a/src/net/azib/ipscan/gui/MacApplicationMenu.java b/src/net/azib/ipscan/gui/MacApplicationMenu.java index b3e1d161..b8ff00aa 100644 --- a/src/net/azib/ipscan/gui/MacApplicationMenu.java +++ b/src/net/azib/ipscan/gui/MacApplicationMenu.java @@ -10,18 +10,21 @@ import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.picocontainer.Startable; +import javax.inject.Inject; + /** * Mac-specific application menu handler * in order to conform better to Mac standards. */ public class MacApplicationMenu implements Startable { - private final AboutDialog aboutDialog; + @Inject + AboutDialog aboutDialog; + private final PreferencesDialog preferencesDialog; private final SelectFetchersDialog selectFetchersDialog; private final CheckVersion checkVersionListener; - public MacApplicationMenu(AboutDialog aboutDialog, PreferencesDialog preferencesDialog, SelectFetchersDialog selectFetchersDialog, CheckVersion checkVersionListener) { - this.aboutDialog = aboutDialog; + public MacApplicationMenu(PreferencesDialog preferencesDialog, SelectFetchersDialog selectFetchersDialog, CheckVersion checkVersionListener) { this.preferencesDialog = preferencesDialog; this.selectFetchersDialog = selectFetchersDialog; this.checkVersionListener = checkVersionListener; diff --git a/src/net/azib/ipscan/gui/MainMenu.java b/src/net/azib/ipscan/gui/MainMenu.java index c7f98297..4b82a3ae 100644 --- a/src/net/azib/ipscan/gui/MainMenu.java +++ b/src/net/azib/ipscan/gui/MainMenu.java @@ -20,13 +20,15 @@ import org.picocontainer.Startable; import org.picocontainer.defaults.ConstructorInjectionComponentAdapter; import org.picocontainer.defaults.DefaultPicoContainer; +import javax.inject.Inject; + /** * MainMenu * * @author Anton Keks */ public class MainMenu implements Startable { - + private MutablePicoContainer container; public MainMenu(Shell shell, Menu mainMenu, CommandsMenu resultsContextMenu, StateMachine stateMachine, PicoContainer parentContainer) { @@ -123,7 +125,7 @@ public class MainMenu implements Startable { initMenuItem(subMenu, null, null, null, null); initMenuItem(subMenu, "menu.help.checkVersion", null, null, initListener(HelpMenuActions.CheckVersion.class)); initMenuItem(subMenu, null, null, null, null); - initMenuItem(subMenu, "menu.help.about", null, null, initListener(HelpMenuActions.About.class)); + initMenuItem(subMenu, "menu.help.about", null, null, DaggerListenerComponent.create().getHelpMenuAboutListener()); } } diff --git a/src/net/azib/ipscan/gui/actions/HelpMenuActions.java b/src/net/azib/ipscan/gui/actions/HelpMenuActions.java index 3f9c8650..13b6a52f 100644 --- a/src/net/azib/ipscan/gui/actions/HelpMenuActions.java +++ b/src/net/azib/ipscan/gui/actions/HelpMenuActions.java @@ -18,6 +18,8 @@ import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.MessageBox; +import javax.inject.Inject; +import javax.inject.Named; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -56,8 +58,8 @@ public class HelpMenuActions { public static final class About implements Listener { private AboutDialog aboutDialog; + @Inject public About(AboutDialog aboutDialog) { - super(); this.aboutDialog = aboutDialog; } diff --git a/src/net/azib/ipscan/gui/actions/HelpMenuModule.java b/src/net/azib/ipscan/gui/actions/HelpMenuModule.java new file mode 100644 index 00000000..98bb41ca --- /dev/null +++ b/src/net/azib/ipscan/gui/actions/HelpMenuModule.java @@ -0,0 +1,19 @@ +package net.azib.ipscan.gui.actions; + +import dagger.Module; +import dagger.Provides; +import org.eclipse.swt.widgets.Listener; + +import javax.inject.Named; + +/** + * Created by englishman on 8/12/15. + */ +@Module +public class HelpMenuModule { + @Provides + @Named("about") + Listener provideAbout(HelpMenuActions.About action) { + return action; + } +} diff --git a/src/net/azib/ipscan/gui/actions/ListenerComponent.java b/src/net/azib/ipscan/gui/actions/ListenerComponent.java new file mode 100644 index 00000000..fd16b04a --- /dev/null +++ b/src/net/azib/ipscan/gui/actions/ListenerComponent.java @@ -0,0 +1,17 @@ +package net.azib.ipscan.gui.actions; + +import dagger.Component; +import dagger.Provides; +import org.eclipse.swt.widgets.Listener; + +import javax.inject.Named; +import javax.inject.Qualifier; + +/** + * Created by englishman on 8/12/15. + */ +@Component(modules = HelpMenuModule.class) +public interface ListenerComponent { + @Named("about") + Listener getHelpMenuAboutListener(); +}