Browse Source

More work on dummy UI

git-svn-id: http://svn.dmdirc.com/trunk@1844 00569f92-eb28-0410-84fd-f71c24880f
tags/0.5
Chris Smith 17 years ago
parent
commit
6730587f89

+ 10
- 6
src/com/dmdirc/Main.java View File

@@ -62,7 +62,7 @@ public final class Main {
62 62
     /**
63 63
      * The UI to use for the client.
64 64
      */
65
-    private static UIController controller = new SwingController();
65
+    private static UIController controller;
66 66
     
67 67
     /**
68 68
      * Prevents creation of main.
@@ -78,10 +78,6 @@ public final class Main {
78 78
     public static void main(final String[] args) {
79 79
         Thread.setDefaultUncaughtExceptionHandler(new DMDircExceptionHandler());
80 80
         
81
-        if (GraphicsEnvironment.isHeadless()) {
82
-            controller = new DummyController();
83
-        }
84
-        
85 81
         final CommandLineParser clp = new CommandLineParser(args);
86 82
         
87 83
         IdentityManager.load();
@@ -100,7 +96,7 @@ public final class Main {
100 96
         
101 97
         new ThemeManager().loadDefaultTheme();
102 98
         
103
-        Main.getUI().getMainWindow();
99
+        getUI().getMainWindow();
104 100
         
105 101
         if (!Config.hasOption("general", "firstRun") || Config.getOptionBool("general", "firstRun")) {
106 102
             Config.setOption("general", "firstRun", "false");
@@ -140,6 +136,14 @@ public final class Main {
140 136
      * @return The client's UI controller
141 137
      */
142 138
     public static UIController getUI() {
139
+        if (controller == null) {
140
+            if (GraphicsEnvironment.isHeadless()) {
141
+                controller = new DummyController();
142
+            } else {
143
+                controller = new SwingController();
144
+            }
145
+        }
146
+        
143 147
         return controller;
144 148
     }
145 149
     

+ 1
- 1
src/com/dmdirc/ui/dummy/DummyController.java View File

@@ -67,7 +67,7 @@ public class DummyController implements UIController {
67 67
     
68 68
     /** {@inheritDoc} */
69 69
     public StatusBar getStatusBar() {
70
-        throw new UnsupportedOperationException("Not supported yet.");
70
+        return new DummyStatusBar();
71 71
     }
72 72
     
73 73
     /** {@inheritDoc} */

+ 1
- 1
src/com/dmdirc/ui/dummy/DummyMainWindow.java View File

@@ -85,7 +85,7 @@ public class DummyMainWindow implements MainWindow {
85 85
     
86 86
     /** {@inheritDoc} */
87 87
     public StatusBar getStatusBar() {
88
-        throw new UnsupportedOperationException("Not supported yet.");
88
+        return new DummyStatusBar();
89 89
     }
90 90
     
91 91
     /** {@inheritDoc} */

+ 76
- 0
src/com/dmdirc/ui/dummy/DummyStatusBar.java View File

@@ -0,0 +1,76 @@
1
+/*
2
+ * Copyright (c) 2006-2007 Chris Smith, Shane Mc Cormack, Gregory Holmes
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.ui.dummy;
24
+
25
+import com.dmdirc.ui.interfaces.StatusBar;
26
+import com.dmdirc.ui.interfaces.StatusErrorNotifier;
27
+import com.dmdirc.ui.interfaces.StatusMessageNotifier;
28
+import java.awt.Component;
29
+import javax.swing.Icon;
30
+
31
+/**
32
+ *
33
+ * @author Chris
34
+ */
35
+public class DummyStatusBar implements StatusBar {
36
+
37
+    public DummyStatusBar() {
38
+    }
39
+
40
+    public void setMessage(String newMessage) {
41
+        System.out.println("DummyStatusBar: " + newMessage);
42
+    }
43
+
44
+    public void setMessage(String newMessage, StatusMessageNotifier newNotifier) {
45
+        System.out.println("DummyStatusBar: " + newMessage);
46
+    }
47
+
48
+    public void setMessage(String newMessage, StatusMessageNotifier newNotifier, int timeout) {
49
+        System.out.println("DummyStatusBar: " + newMessage);
50
+    }
51
+
52
+    public void clearMessage() {
53
+        System.out.println("DummyStatusBar: message cleared");
54
+    }
55
+
56
+    public void setError(Icon newIcon) {
57
+        // Do nothing
58
+    }
59
+
60
+    public void setError(Icon newIcon, StatusErrorNotifier newNotifier) {
61
+        // Do nothing
62
+    }
63
+
64
+    public void clearError() {
65
+        // Do nothing
66
+    }
67
+
68
+    public void addComponent(Component component) {
69
+        // Do nothing
70
+    }
71
+
72
+    public void removeComponent(Component component) {
73
+        // Do nothing
74
+    }
75
+
76
+}

+ 2
- 0
src/com/dmdirc/ui/interfaces/MainWindow.java View File

@@ -76,7 +76,9 @@ public interface MainWindow {
76 76
      * Returns the status bar instance.
77 77
      *
78 78
      * @return SwingStatusBar instance
79
+     * @deprecated Use UIController.getStatusBar() instead
79 80
      */
81
+    @Deprecated
80 82
     StatusBar getStatusBar();
81 83
     
82 84
     /**

+ 2
- 1
test/com/dmdirc/ui/messages/FormatterTest.java View File

@@ -8,6 +8,7 @@
8 8
 package com.dmdirc.ui.messages;
9 9
 
10 10
 import com.dmdirc.Config;
11
+import com.dmdirc.Main;
11 12
 import com.dmdirc.config.IdentityManager;
12 13
 import java.io.File;
13 14
 import java.util.Set;
@@ -89,7 +90,7 @@ public class FormatterTest {
89 90
         Formatter.registerDefault("unitTest_saveLoad", "");
90 91
         
91 92
         final String fileName = "unittest_formatter";
92
-        final File file = new File(Config.getConfigDir() + fileName);
93
+        final File file = new File(Main.getConfigDir() + fileName);
93 94
         
94 95
         if (file.exists()) {
95 96
             file.delete();

Loading…
Cancel
Save