Procházet zdrojové kódy

Make the Swing UI provide a DI module.

Change-Id: I8b33593f382d4d41cfba61f79688e91ec8dbcdcb
Reviewed-on: http://gerrit.dmdirc.com/2857
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.8
Chris Smith před 10 roky
rodič
revize
66cade2ad0

+ 10
- 0
src/com/dmdirc/addons/ui_swing/SwingController.java Zobrazit soubor

@@ -103,6 +103,8 @@ import lombok.Getter;
103 103
 
104 104
 import net.miginfocom.layout.PlatformDefaults;
105 105
 
106
+import dagger.ObjectGraph;
107
+
106 108
 /**
107 109
  * Controls the main swing UI.
108 110
  */
@@ -513,6 +515,14 @@ public class SwingController extends BaseCommandPlugin implements UIController {
513 515
         return UIManager.getLookAndFeel().getName();
514 516
     }
515 517
 
518
+    /** {@inheritDoc} */
519
+    @Override
520
+    public void load(final PluginInfo pluginInfo, final ObjectGraph graph) {
521
+        super.load(pluginInfo, graph);
522
+
523
+        setObjectGraph(graph.plus(new SwingModule(this)));
524
+    }
525
+
516 526
     /** {@inheritDoc} */
517 527
     @Override
518 528
     public void onLoad() {

+ 69
- 0
src/com/dmdirc/addons/ui_swing/SwingModule.java Zobrazit soubor

@@ -0,0 +1,69 @@
1
+/*
2
+ * Copyright (c) 2006-2013 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.addons.ui_swing;
24
+
25
+import com.dmdirc.ClientModule;
26
+
27
+import dagger.Module;
28
+import dagger.Provides;
29
+
30
+/**
31
+ * Dagger module that provides Swing-specific dependencies.
32
+ */
33
+@Module(addsTo = ClientModule.class, library = true)
34
+public class SwingModule {
35
+
36
+    /** The controller to return to clients. */
37
+    private final SwingController controller;
38
+
39
+    /**
40
+     * Creates a new instance of {@link SwingModule}.
41
+     *
42
+     * @param controller The controller to return. This should be removed when SwingController
43
+     * is separated from the plugin implementation.
44
+     */
45
+    public SwingModule(final SwingController controller) {
46
+        this.controller = controller;
47
+    }
48
+
49
+    /**
50
+     * Gets the swing controller to use.
51
+     *
52
+     * @return The swing controller.
53
+     */
54
+    @Provides
55
+    public SwingController getController() {
56
+        return controller;
57
+    }
58
+
59
+    /**
60
+     * Gets the main DMDirc window.
61
+     *
62
+     * @return The main window.
63
+     */
64
+    @Provides
65
+    public MainFrame getMainFrame() {
66
+        return controller.getMainFrame();
67
+    }
68
+
69
+}

Načítá se…
Zrušit
Uložit