Changeset 14052 in josm for trunk/src/org/openstreetmap/josm/gui
- Timestamp:
- 2018-07-26T22:01:31+02:00 (7 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/gui
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java
r12846 r14052 265 265 * 266 266 */ 267 static class MessagePanel extends JPanel { 267 public static class MessagePanel extends JPanel { 268 268 private final JRadioButton cbShowPermanentDialog = new JRadioButton(NotShowAgain.PERMANENT.getLabel()); 269 269 private final JRadioButton cbShowSessionDialog = new JRadioButton(NotShowAgain.SESSION.getLabel()); -
trunk/src/org/openstreetmap/josm/gui/MainApplication.java
r13963 r14052 488 488 @Override 489 489 protected void shutdown() { 490 if (!GraphicsEnvironment.isHeadless()) { 491 try { 492 worker.shutdown(); 493 } catch (SecurityException e) { 494 Logging.log(Logging.LEVEL_ERROR, "Unable to shutdown worker", e); 495 } 496 JCSCacheManager.shutdown(); 497 } 490 try { 491 worker.shutdown(); 492 } catch (SecurityException e) { 493 Logging.log(Logging.LEVEL_ERROR, "Unable to shutdown worker", e); 494 } 495 JCSCacheManager.shutdown(); 496 498 497 if (mainFrame != null) { 499 498 mainFrame.storeState(); … … 505 504 layerManager.resetState(); 506 505 super.shutdown(); 507 if (!GraphicsEnvironment.isHeadless()) { 508 509 worker.shutdownNow();510 } catch (SecurityException e) {511 Logging.log(Logging.LEVEL_ERROR, "Unable to shutdown worker", e);512 }506 507 try { 508 // in case the current task still hasn't finished 509 worker.shutdownNow(); 510 } catch (SecurityException e) { 511 Logging.log(Logging.LEVEL_ERROR, "Unable to shutdown worker", e); 513 512 } 514 513 } -
trunk/src/org/openstreetmap/josm/gui/MapViewState.java
r13387 r14052 3 3 4 4 import java.awt.Container; 5 import java.awt.GraphicsEnvironment;6 5 import java.awt.Point; 7 6 import java.awt.geom.AffineTransform; … … 146 145 147 146 private static Point findTopLeftOnScreen(JComponent position) { 148 if (GraphicsEnvironment.isHeadless()) { 149 // in our imaginary universe the window is always (10, 10) from the top left of the screen 150 Point topLeftInWindow = findTopLeftInWindow(position); 151 return new Point(topLeftInWindow.x + 10, topLeftInWindow.y + 10); 152 } else { 153 try { 154 return position.getLocationOnScreen(); 155 } catch (JosmRuntimeException | IllegalArgumentException | IllegalStateException e) { 156 throw BugReport.intercept(e).put("position", position).put("parent", position::getParent); 157 } 147 try { 148 return position.getLocationOnScreen(); 149 } catch (JosmRuntimeException | IllegalArgumentException | IllegalStateException e) { 150 throw BugReport.intercept(e).put("position", position).put("parent", position::getParent); 158 151 } 159 152 } -
trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
r13868 r14052 3 3 4 4 import java.awt.Cursor; 5 import java.awt.GraphicsEnvironment;6 5 import java.awt.Point; 7 6 import java.awt.Rectangle; … … 326 325 327 326 protected boolean isVisibleOnScreen() { 328 return GraphicsEnvironment.isHeadless() || ( 329 SwingUtilities.getWindowAncestor(this) != null && isShowing() 330 ); 327 return SwingUtilities.getWindowAncestor(this) != null && isShowing(); 331 328 } 332 329 -
trunk/src/org/openstreetmap/josm/gui/io/AsynchronousUploadPrimitivesTask.java
r13654 r14052 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 5 6 import java.awt.GraphicsEnvironment;7 6 import java.util.Optional; 8 7 … … 86 85 synchronized (AsynchronousUploadPrimitivesTask.class) { 87 86 if (asynchronousUploadPrimitivesTask != null) { 88 if (!GraphicsEnvironment.isHeadless()) { 89 GuiHelper.runInEDTAndWait(() -> 90 JOptionPane.showMessageDialog(MainApplication.parent, 91 tr("A background upload is already in progress. " + 92 "Kindly wait for it to finish before uploading new changes"))); 93 } 87 GuiHelper.runInEDTAndWait(() -> 88 JOptionPane.showMessageDialog(MainApplication.parent, 89 tr("A background upload is already in progress. " + 90 "Kindly wait for it to finish before uploading new changes"))); 94 91 return Optional.empty(); 95 92 } else { -
trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java
r13431 r14052 26 26 import javax.swing.JScrollPane; 27 27 import javax.swing.JTabbedPane; 28 import javax.swing.SwingUtilities;29 28 import javax.swing.event.ChangeEvent; 30 29 import javax.swing.event.ChangeListener; … … 60 59 import org.openstreetmap.josm.gui.preferences.validator.ValidatorTagCheckerRulesPreference; 61 60 import org.openstreetmap.josm.gui.preferences.validator.ValidatorTestsPreference; 61 import org.openstreetmap.josm.gui.util.GuiHelper; 62 62 import org.openstreetmap.josm.plugins.PluginDownloadTask; 63 63 import org.openstreetmap.josm.plugins.PluginHandler; … … 175 175 } 176 176 177 Main.parent.repaint(); 177 if (Main.parent != null) { 178 Main.parent.repaint(); 179 } 178 180 } 179 181 } … … 421 423 // by the remaining "save preferences" activites run on the Swing EDT. 422 424 MainApplication.worker.submit(task); 423 MainApplication.worker.submit(() -> SwingUtilities.invokeLater(continuation));425 MainApplication.worker.submit(() -> GuiHelper.runInEDT(continuation)); 424 426 } else { 425 427 // no need for asynchronous activities. Simply run the remaining "save preference" -
trunk/src/org/openstreetmap/josm/gui/preferences/advanced/ExportProfileAction.java
r12881 r14052 56 56 } 57 57 if (keys.isEmpty()) { 58 if (!GraphicsEnvironment.isHeadless()) { 59 JOptionPane.showMessageDialog(Main.parent, 60 tr("All the preferences of this group are default, nothing to save"), tr("Warning"), JOptionPane.WARNING_MESSAGE); 61 } 58 JOptionPane.showMessageDialog(Main.parent, 59 tr("All the preferences of this group are default, nothing to save"), tr("Warning"), JOptionPane.WARNING_MESSAGE); 62 60 return; 63 61 } -
trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
r12987 r14052 8 8 import java.awt.Component; 9 9 import java.awt.Font; 10 import java.awt.GraphicsEnvironment;11 10 import java.awt.GridBagLayout; 12 11 import java.awt.event.MouseAdapter; … … 96 95 public boolean editPreference(final JComponent gui) { 97 96 if (getSelectedRowCount() != 1) { 98 if (!GraphicsEnvironment.isHeadless()) { 99 JOptionPane.showMessageDialog( 100 gui, 101 tr("Please select the row to edit."), 102 tr("Warning"), 103 JOptionPane.WARNING_MESSAGE 104 ); 105 } 97 JOptionPane.showMessageDialog( 98 gui, 99 tr("Please select the row to edit."), 100 tr("Warning"), 101 JOptionPane.WARNING_MESSAGE 102 ); 106 103 return false; 107 104 } … … 197 194 PrefEntry pe = null; 198 195 boolean ok = false; 199 if ( !GraphicsEnvironment.isHeadless() &&askAddSetting(gui, p)) {196 if (askAddSetting(gui, p)) { 200 197 if (rbString.isSelected()) { 201 198 StringSetting sSetting = new StringSetting(null); … … 282 279 public void resetPreferences(final JComponent gui) { 283 280 if (getSelectedRowCount() == 0) { 284 if (!GraphicsEnvironment.isHeadless()) { 285 JOptionPane.showMessageDialog( 286 gui, 287 tr("Please select the row to delete."), 288 tr("Warning"), 289 JOptionPane.WARNING_MESSAGE 290 ); 291 } 281 JOptionPane.showMessageDialog( 282 gui, 283 tr("Please select the row to delete."), 284 tr("Warning"), 285 JOptionPane.WARNING_MESSAGE 286 ); 292 287 return; 293 288 } -
trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
r13842 r14052 7 7 import java.awt.BorderLayout; 8 8 import java.awt.Component; 9 import java.awt.GraphicsEnvironment;10 9 import java.awt.GridBagConstraints; 11 10 import java.awt.GridBagLayout; … … 159 158 } 160 159 sb.append("</html>"); 161 if (!GraphicsEnvironment.isHeadless()) { 162 GuiHelper.runInEDTAndWait(() -> HelpAwareOptionPane.showOptionDialog( 163 parent, 164 sb.toString(), 165 tr("Update plugins"), 166 !failed.isEmpty() ? JOptionPane.WARNING_MESSAGE : JOptionPane.INFORMATION_MESSAGE, 167 HelpUtil.ht("/Preferences/Plugins") 168 )); 169 } 160 GuiHelper.runInEDTAndWait(() -> HelpAwareOptionPane.showOptionDialog( 161 parent, 162 sb.toString(), 163 tr("Update plugins"), 164 !failed.isEmpty() ? JOptionPane.WARNING_MESSAGE : JOptionPane.INFORMATION_MESSAGE, 165 HelpUtil.ht("/Preferences/Plugins") 166 )); 170 167 } 171 168 … … 212 209 } 213 210 211 private static Component addButton(JPanel pnl, JButton button, String buttonName) { 212 button.setName(buttonName); 213 return pnl.add(button); 214 } 215 214 216 private JPanel buildActionPanel() { 215 217 JPanel pnl = new JPanel(new GridLayout(1, 4)); 216 218 217 pnl.add(new JButton(new DownloadAvailablePluginsAction())); 218 pnl.add(new JButton(new UpdateSelectedPluginsAction())); 219 ExpertToggleAction.addVisibilitySwitcher(pnl.add(new JButton(new SelectByListAction()))); 220 ExpertToggleAction.addVisibilitySwitcher(pnl.add(new JButton(new ConfigureSitesAction()))); 219 // assign some component names to these as we go to aid testing 220 addButton(pnl, new JButton(new DownloadAvailablePluginsAction()), "downloadListButton"); 221 addButton(pnl, new JButton(new UpdateSelectedPluginsAction()), "updatePluginsButton"); 222 ExpertToggleAction.addVisibilitySwitcher(addButton(pnl, new JButton(new SelectByListAction()), "loadFromListButton")); 223 ExpertToggleAction.addVisibilitySwitcher(addButton(pnl, new JButton(new ConfigureSitesAction()), "configureSitesButton")); 221 224 return pnl; 222 225 } -
trunk/src/org/openstreetmap/josm/gui/progress/swing/ProgressMonitorExecutor.java
r12675 r14052 2 2 package org.openstreetmap.josm.gui.progress.swing; 3 3 4 import java.util.concurrent.CancellationException; 5 import java.util.concurrent.ExecutionException; 6 import java.util.concurrent.Future; 4 7 import java.util.concurrent.LinkedBlockingQueue; 5 8 import java.util.concurrent.ThreadPoolExecutor; 6 9 import java.util.concurrent.TimeUnit; 7 10 11 import org.openstreetmap.josm.tools.Logging; 8 12 import org.openstreetmap.josm.tools.Utils; 9 13 … … 37 41 } 38 42 43 @Override 44 public void afterExecute(final Runnable r, Throwable t) { 45 // largely as proposed by JDK8 docs 46 super.afterExecute(r, t); 47 if (t == null && r instanceof Future<?>) { 48 try { 49 ((Future<?>) r).get(); 50 } catch (CancellationException cancellationException) { 51 t = cancellationException; 52 } catch (ExecutionException executionException) { 53 t = executionException.getCause(); 54 } catch (InterruptedException interruptedException) { 55 Thread.currentThread().interrupt(); // ignore/reset 56 } 57 } 58 if (t != null) { 59 Logging.error("Thread {0} raised {1}", Thread.currentThread().getName(), t); 60 } 61 } 39 62 } -
trunk/src/org/openstreetmap/josm/gui/util/GuiHelper.java
r13493 r14052 202 202 } 203 203 204 private static void handleEDTException(Throwable t) { 205 Logging.logWithStackTrace(Logging.LEVEL_ERROR, t, "Exception raised in EDT"); 206 } 207 204 208 /** 205 209 * Executes synchronously a runnable in … … 215 219 SwingUtilities.invokeAndWait(task); 216 220 } catch (InterruptedException | InvocationTargetException e) { 217 Logging.error(e);221 handleEDTException(e); 218 222 } 219 223 } … … 256 260 return callable.call(); 257 261 } catch (Exception e) { // NOPMD 258 Logging.error(e);262 handleEDTException(e); 259 263 return null; 260 264 } … … 265 269 return task.get(); 266 270 } catch (InterruptedException | ExecutionException e) { 267 Logging.error(e);271 handleEDTException(e); 268 272 return null; 269 273 }
Note:
See TracChangeset
for help on using the changeset viewer.