Sfoglia il codice sorgente

Add utility method for swing workers.

pull/381/head
Greg Holmes 9 anni fa
parent
commit
dd606098c7

+ 13
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/UIUtilities.java Vedi File

@@ -24,6 +24,7 @@ package com.dmdirc.addons.ui_swing;
24 24
 
25 25
 import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.addons.ui_swing.components.DMDircUndoableEditListener;
27
+import com.dmdirc.addons.ui_swing.components.RunnableLoggingSwingWorker;
27 28
 import com.dmdirc.addons.ui_swing.components.RunnableSwingWorker;
28 29
 import com.dmdirc.util.colours.Colour;
29 30
 
@@ -39,6 +40,7 @@ import java.awt.event.KeyEvent;
39 40
 import java.lang.reflect.InvocationTargetException;
40 41
 import java.util.concurrent.Callable;
41 42
 import java.util.concurrent.FutureTask;
43
+import java.util.function.Consumer;
42 44
 
43 45
 import javax.swing.BorderFactory;
44 46
 import javax.swing.JComboBox;
@@ -246,8 +248,17 @@ public final class UIUtilities {
246 248
         }
247 249
     }
248 250
 
249
-    public static void invokeOffEDT(final Runnable runnable) {
250
-        new RunnableSwingWorker<Void,Void>(runnable).execute();
251
+    public static void invokeOffEDTNoLogging(final Runnable runnable) {
252
+        new RunnableSwingWorker<>(runnable).execute();
253
+    }
254
+
255
+    public static void invokeOffEDT(final DMDircMBassador eventBus, final Runnable runnable) {
256
+        new RunnableLoggingSwingWorker<Void, Void>(eventBus, runnable).execute();
257
+    }
258
+
259
+    public static <T> void invokeOffEDT(final DMDircMBassador eventBus, final Runnable runnable,
260
+            final Consumer<T> consumer) {
261
+        new RunnableLoggingSwingWorker<>(eventBus, runnable, consumer).execute();
251 262
     }
252 263
 
253 264
     /**

+ 3
- 2
ui_swing/src/com/dmdirc/addons/ui_swing/components/FontPicker.java Vedi File

@@ -23,6 +23,7 @@
23 23
 package com.dmdirc.addons.ui_swing.components;
24 24
 
25 25
 import com.dmdirc.DMDircMBassador;
26
+import com.dmdirc.addons.ui_swing.UIUtilities;
26 27
 import com.dmdirc.addons.ui_swing.components.renderers.FontListCellRenderer;
27 28
 
28 29
 import java.awt.Font;
@@ -53,9 +54,9 @@ public class FontPicker extends JComboBox<Object> {
53 54
         this.fontFamily = fontFamily;
54 55
 
55 56
         setRenderer(new FontListCellRenderer(getRenderer()));
56
-        new RunnableLoggingSwingWorker<String[], String[]>(eventBus,
57
+        UIUtilities.<String[]>invokeOffEDT(eventBus,
57 58
                 () -> GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(),
58
-                this::loadFonts).execute();
59
+                this::loadFonts);
59 60
     }
60 61
 
61 62
     /**

+ 3
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/components/addonpanel/AddonPanel.java Vedi File

@@ -23,7 +23,7 @@
23 23
 package com.dmdirc.addons.ui_swing.components.addonpanel;
24 24
 
25 25
 import com.dmdirc.DMDircMBassador;
26
-import com.dmdirc.addons.ui_swing.components.RunnableLoggingSwingWorker;
26
+import com.dmdirc.addons.ui_swing.UIUtilities;
27 27
 import com.dmdirc.addons.ui_swing.components.addonbrowser.BrowserWindow;
28 28
 import com.dmdirc.addons.ui_swing.components.addonbrowser.DataLoaderWorkerFactory;
29 29
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
@@ -128,14 +128,13 @@ public abstract class AddonPanel extends JPanel implements AddonToggleListener,
128 128
      * Populates the list in a background thread.
129 129
      */
130 130
     protected void load() {
131
-        new RunnableLoggingSwingWorker<>(eventBus,
131
+        UIUtilities.invokeOffEDT(eventBus,
132 132
                 () -> populateList(addonList),
133 133
                 value -> {
134 134
                     scrollPane.setViewportView(addonList);
135 135
                     addonList.getSelectionModel().addListSelectionListener(this);
136 136
                     addonList.getSelectionModel().setSelectionInterval(0, 0);
137
-                }
138
-        ).execute();
137
+                });
139 138
     }
140 139
 
141 140
     /** Lays out the dialog. */

+ 5
- 9
ui_swing/src/com/dmdirc/addons/ui_swing/components/inputfields/SwingInputHandler.java Vedi File

@@ -25,7 +25,6 @@ package com.dmdirc.addons.ui_swing.components.inputfields;
25 25
 import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.addons.ui_swing.Apple;
27 27
 import com.dmdirc.addons.ui_swing.UIUtilities;
28
-import com.dmdirc.addons.ui_swing.components.RunnableLoggingSwingWorker;
29 28
 import com.dmdirc.commandparser.parsers.CommandParser;
30 29
 import com.dmdirc.interfaces.CommandController;
31 30
 import com.dmdirc.interfaces.WindowModel;
@@ -155,10 +154,8 @@ public class SwingInputHandler extends InputHandler implements KeyListener {
155 154
             @Override
156 155
             public void actionPerformed(final ActionEvent e) {
157 156
                 localTarget.setEditable(false);
158
-                new RunnableLoggingSwingWorker<>(eventBus,
159
-                        () -> doTabCompletion(false),
160
-                        value -> localTarget.setEditable(true)
161
-                ).execute();
157
+                UIUtilities.invokeOffEDT(eventBus, () -> doTabCompletion(false),
158
+                        value -> localTarget.setEditable(true));
162 159
             }
163 160
         });
164 161
         localTarget.getActionMap().put("insert-shift-tab",
@@ -169,10 +166,9 @@ public class SwingInputHandler extends InputHandler implements KeyListener {
169 166
                     @Override
170 167
                     public void actionPerformed(final ActionEvent e) {
171 168
                         localTarget.setEditable(false);
172
-                        new RunnableLoggingSwingWorker<>(eventBus,
169
+                        UIUtilities.invokeOffEDT(eventBus,
173 170
                                 () -> doTabCompletion(true),
174
-                                value -> localTarget.setEditable(true)
175
-                        ).execute();
171
+                                value -> localTarget.setEditable(true));
176 172
                     }
177 173
                 });
178 174
         localTarget.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
@@ -213,7 +209,7 @@ public class SwingInputHandler extends InputHandler implements KeyListener {
213 209
                                         "Event is not from known source.");
214 210
                     }
215 211
                     if (source.isEditable()) {
216
-                        new RunnableLoggingSwingWorker<>(eventBus, () -> enterPressed(line)).execute();
212
+                        UIUtilities.invokeOffEDT(eventBus, () -> enterPressed(line));
217 213
                     }
218 214
                 });
219 215
             }

+ 1
- 1
ui_swing/src/com/dmdirc/addons/ui_swing/components/menubar/ServerMenu.java Vedi File

@@ -121,7 +121,7 @@ public class ServerMenu extends JMenu implements MenuListener {
121 121
             final JMenuItem exit = new JMenuItem();
122 122
             exit.setText("Exit");
123 123
             exit.setMnemonic('x');
124
-            exit.addActionListener(e -> UIUtilities.invokeOffEDT(lifecycleController::quit));
124
+            exit.addActionListener(e -> UIUtilities.invokeOffEDTNoLogging(lifecycleController::quit));
125 125
             add(exit);
126 126
         }
127 127
     }

+ 2
- 3
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/prefs/SwingPreferencesDialog.java Vedi File

@@ -26,7 +26,6 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27 27
 import com.dmdirc.addons.ui_swing.components.IconManager;
28 28
 import com.dmdirc.addons.ui_swing.components.ListScroller;
29
-import com.dmdirc.addons.ui_swing.components.RunnableLoggingSwingWorker;
30 29
 import com.dmdirc.addons.ui_swing.components.SupplierLoggingSwingWorker;
31 30
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
32 31
 import com.dmdirc.addons.ui_swing.dialogs.updater.SwingRestartDialog;
@@ -232,11 +231,11 @@ public final class SwingPreferencesDialog extends StandardDialog implements
232 231
             saveOptions();
233 232
         }
234 233
 
235
-        new RunnableLoggingSwingWorker<>(eventBus, () -> {
234
+        UIUtilities.invokeOffEDT(() -> {
236 235
             if (manager != null) {
237 236
                 manager.dismiss();
238 237
             }
239
-        }).execute();
238
+        });
240 239
         dispose();
241 240
     }
242 241
 

+ 2
- 4
ui_swing/src/com/dmdirc/addons/ui_swing/dialogs/updater/SwingUpdaterDialog.java Vedi File

@@ -25,7 +25,6 @@ package com.dmdirc.addons.ui_swing.dialogs.updater;
25 25
 import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.addons.ui_swing.UIUtilities;
27 27
 import com.dmdirc.addons.ui_swing.components.PackingTable;
28
-import com.dmdirc.addons.ui_swing.components.RunnableLoggingSwingWorker;
29 28
 import com.dmdirc.addons.ui_swing.components.text.TextLabel;
30 29
 import com.dmdirc.addons.ui_swing.dialogs.StandardDialog;
31 30
 import com.dmdirc.addons.ui_swing.injection.DialogModule.ForUpdates;
@@ -182,10 +181,9 @@ public class SwingUpdaterDialog extends StandardDialog implements
182 181
 
183 182
             header.setText("DMDirc is updating the following components:");
184 183
 
185
-            new RunnableLoggingSwingWorker<>(eventBus,
186
-                    () -> ((UpdateTableModel) table.getModel()).getUpdates().stream()
184
+            UIUtilities.invokeOffEDT(() -> ((UpdateTableModel) table.getModel()).getUpdates().stream()
187 185
                     .filter(((UpdateTableModel) table.getModel())::isEnabled)
188
-                    .forEach(updateManager::install)).execute();
186
+                    .forEach(updateManager::install));
189 187
 
190 188
             if (updateManager.getManagerStatus() == UpdateManagerStatus.IDLE_RESTART_NEEDED) {
191 189
                 restartDialogProvider.displayOrRequestFocus();

Loading…
Annulla
Salva