From 1a4f1a59665a2ff47b224ded91680974ab529abe Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 6 Feb 2016 18:34:47 +0000 Subject: [PATCH] refactor --- .../ui/subtitle/upload/MovieEditor.java | 27 +++++------- source/net/filebot/util/ui/SwingUI.java | 44 +++++++++---------- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/source/net/filebot/ui/subtitle/upload/MovieEditor.java b/source/net/filebot/ui/subtitle/upload/MovieEditor.java index dabffeb1..51beb777 100644 --- a/source/net/filebot/ui/subtitle/upload/MovieEditor.java +++ b/source/net/filebot/ui/subtitle/upload/MovieEditor.java @@ -95,23 +95,20 @@ class MovieEditor implements TableCellEditor { @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { - try { - getWindow(table).setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + getWindow(table).setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - SubtitleMappingTableModel model = (SubtitleMappingTableModel) table.getModel(); - SubtitleMapping mapping = model.getData()[table.convertRowIndexToModel(row)]; + SubtitleMappingTableModel model = (SubtitleMappingTableModel) table.getModel(); + SubtitleMapping mapping = model.getData()[table.convertRowIndexToModel(row)]; + + newSwingWorker(() -> { + return runSearch(mapping, table); + }, (options) -> { + runSelect(options, mapping, table); + reset(null, table); + }, (error) -> { + reset(error, table); + }).execute(); - newSwingWorker(() -> { - return runSearch(mapping, table); - }, (options) -> { - runSelect(options, mapping, table); - reset(null, table); - }, (error) -> { - reset(error, table); - }).execute(); - } catch (Exception e) { - reset(e, table); - } return null; } diff --git a/source/net/filebot/util/ui/SwingUI.java b/source/net/filebot/util/ui/SwingUI.java index 45ba8a20..ed49217b 100644 --- a/source/net/filebot/util/ui/SwingUI.java +++ b/source/net/filebot/util/ui/SwingUI.java @@ -13,7 +13,6 @@ import java.awt.Point; import java.awt.Window; import java.awt.dnd.DnDConstants; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; @@ -52,6 +51,18 @@ public final class SwingUI { } } + public static void runOnEventDispatchThread(Runnable r) { + if (SwingUtilities.isEventDispatchThread()) { + r.run(); + } else { + try { + SwingUtilities.invokeAndWait(r); + } catch (InvocationTargetException | InterruptedException e) { + throw new RuntimeException(e); + } + } + } + public static final Color TRANSLUCENT = new Color(255, 255, 255, 0); public static Color interpolateHSB(Color c1, Color c2, float f) { @@ -158,7 +169,7 @@ public final class SwingUI { return (frame.getExtendedState() & Frame.MAXIMIZED_BOTH) != 0; } - public static List showMultiValueInputDialog(final Object message, final String initialValue, final String title, final Component parent) throws InvocationTargetException, InterruptedException { + public static List showMultiValueInputDialog(final Object message, final String initialValue, final String title, final Component parent) { String input = showInputDialog(message, initialValue, title, parent); if (input == null || input.isEmpty()) { return emptyList(); @@ -184,24 +195,15 @@ public final class SwingUI { return singletonList(input); } - public static String showInputDialog(final Object message, final String initialValue, final String title, final Component parent) throws InvocationTargetException, InterruptedException { + public static String showInputDialog(final Object message, final String initialValue, final String title, final Component parent) { final StringBuilder buffer = new StringBuilder(); - Runnable runnable = new Runnable() { - - @Override - public void run() { - Object value = JOptionPane.showInputDialog(parent, message, title, PLAIN_MESSAGE, null, null, initialValue); - if (value != null) { - buffer.append(value.toString().trim()); - } + runOnEventDispatchThread(() -> { + Object value = JOptionPane.showInputDialog(parent, message, title, PLAIN_MESSAGE, null, null, initialValue); + if (value != null) { + buffer.append(value.toString().trim()); } - }; - if (SwingUtilities.isEventDispatchThread()) { - runnable.run(); - } else { - SwingUtilities.invokeAndWait(runnable); - } + }); return buffer.length() == 0 ? null : buffer.toString(); } @@ -255,12 +257,8 @@ public final class SwingUI { } public static Timer invokeLater(int delay, final Runnable runnable) { - Timer timer = new Timer(delay, new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - runnable.run(); - } + Timer timer = new Timer(delay, (evt) -> { + runnable.run(); }); timer.setRepeats(false);