/** Unit test of method {@link ChangesetDataSet#getPrimitivesByModificationType}. */ @Test public void testGetPrimitivesByModificationType() { final ChangesetDataSet cds = new ChangesetDataSet(); // empty object, null parameter => IllegalArgumentException try { cds.getPrimitivesByModificationType(null); Assert.fail("Should have thrown an IllegalArgumentException as we gave a null argument."); } catch (IllegalArgumentException e) { Main.trace(e); // Was expected } // empty object, a modification type => empty list Assert.assertTrue( "Empty data set should produce an empty list.", cds.getPrimitivesByModificationType(ChangesetModificationType.CREATED).isEmpty()); // object with various items and modification types, fetch for CREATED // => list containing only the CREATED item HistoryOsmPrimitive prim1 = new HistoryNode(1, 1, true, User.getAnonymous(), 1, new Date(), LatLon.ZERO); HistoryOsmPrimitive prim2 = new HistoryNode(2, 1, true, User.createLocalUser("test"), 1, new Date(), LatLon.NORTH_POLE); HistoryOsmPrimitive prim3 = new HistoryNode(3, 1, true, User.getAnonymous(), 1, new Date(), LatLon.SOUTH_POLE); cds.put(prim1, ChangesetModificationType.CREATED); cds.put(prim2, ChangesetModificationType.DELETED); cds.put(prim3, ChangesetModificationType.UPDATED); Set<HistoryOsmPrimitive> result = cds.getPrimitivesByModificationType(ChangesetModificationType.CREATED); Assert.assertEquals("We should have found only one item.", 1, result.size()); Assert.assertTrue("The item found is prim1.", result.contains(prim1)); }
@Override public void actionPerformed(ActionEvent e) { try { memberTableModel.addMembersAtBeginning( filterConfirmedPrimitives(selectionTableModel.getSelection())); } catch (AddAbortException ex) { Main.trace(ex); } }
@Override public void actionPerformed(ActionEvent e) { try { saveSession(); setUserAction(UserAction.PROCEED); closeDialog(); } catch (UserCancelException ignore) { Main.trace(ignore); } }
protected void uploadLayers(List<SaveLayerInfo> toUpload) { for (final SaveLayerInfo layerInfo : toUpload) { AbstractModifiableLayer layer = layerInfo.getLayer(); if (canceled) { model.setUploadState(layer, UploadOrSaveState.CANCELED); continue; } monitor.subTask(tr("Preparing layer ''{0}'' for upload ...", layerInfo.getName())); if (!UploadAction.checkPreUploadConditions(layer)) { model.setUploadState(layer, UploadOrSaveState.FAILED); continue; } AbstractUploadDialog dialog = layer.getUploadDialog(); if (dialog != null) { dialog.setVisible(true); if (dialog.isCanceled()) { model.setUploadState(layer, UploadOrSaveState.CANCELED); continue; } dialog.rememberUserInput(); } currentTask = layer.createUploadTask(monitor); if (currentTask == null) { model.setUploadState(layer, UploadOrSaveState.FAILED); continue; } currentFuture = worker.submit(currentTask); try { // wait for the asynchronous task to complete // currentFuture.get(); } catch (CancellationException e) { Main.trace(e); model.setUploadState(layer, UploadOrSaveState.CANCELED); } catch (InterruptedException | ExecutionException e) { Main.error(e); model.setUploadState(layer, UploadOrSaveState.FAILED); ExceptionDialogUtil.explainException(e); } if (currentTask.isCanceled()) { model.setUploadState(layer, UploadOrSaveState.CANCELED); } else if (currentTask.isFailed()) { Main.error(currentTask.getLastException()); ExceptionDialogUtil.explainException(currentTask.getLastException()); model.setUploadState(layer, UploadOrSaveState.FAILED); } else { model.setUploadState(layer, UploadOrSaveState.OK); } currentTask = null; currentFuture = null; } }
protected void cleanupAfterUpload() { // we always clean up the data, even in case of errors. It's possible the data was // partially uploaded. Better run on EDT. Runnable r = () -> { layer.cleanupAfterUpload(processedPrimitives); layer.onPostUploadToServer(); ChangesetCache.getInstance().update(changeset); }; try { SwingUtilities.invokeAndWait(r); } catch (InterruptedException e) { Main.trace(e); lastException = e; } catch (InvocationTargetException e) { Main.trace(e); lastException = new OsmTransferException(e.getCause()); } }
private static Class<?> loadRendererClass(String className) { for (ClassLoader cl : PluginHandler.getResourceClassLoaders()) { try { return Class.forName(className, true, cl); } catch (final NoClassDefFoundError | ClassNotFoundException e) { Main.trace(e.getMessage()); } } Main.error( tr("Failed to load map renderer class ''{0}''. The class wasn''t found.", className)); return null; }
protected void saveLayers(List<SaveLayerInfo> toSave) { for (final SaveLayerInfo layerInfo : toSave) { if (canceled) { model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.CANCELED); continue; } // Check save preconditions earlier to avoid a blocking reentring call to EDT (see #10086) if (layerInfo.isDoCheckSaveConditions()) { if (!layerInfo.getLayer().checkSaveConditions()) { continue; } layerInfo.setDoCheckSaveConditions(false); } currentTask = new SaveLayerTask(layerInfo, monitor); currentFuture = worker.submit(currentTask); try { // wait for the asynchronous task to complete // currentFuture.get(); } catch (CancellationException e) { Main.trace(e); model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.CANCELED); } catch (InterruptedException | ExecutionException e) { Main.error(e); model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.FAILED); ExceptionDialogUtil.explainException(e); } if (currentTask.isCanceled()) { model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.CANCELED); } else if (currentTask.isFailed()) { if (currentTask.getLastException() != null) { Main.error(currentTask.getLastException()); ExceptionDialogUtil.explainException(currentTask.getLastException()); } model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.FAILED); } else { model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.OK); } this.currentTask = null; this.currentFuture = null; } }
public void cancel() { cancel = true; synchronized (this) { if (activeConnection != null) { activeConnection.setConnectTimeout(100); activeConnection.setReadTimeout(100); } } try { Thread.sleep(100); } catch (InterruptedException ex) { Main.trace(ex); } synchronized (this) { if (activeConnection != null) { activeConnection.disconnect(); } } }
private static boolean confirmEulaAcceptance(PreferenceTabbedPane gui, String eulaUrl) { URL url = null; try { url = new URL(eulaUrl.replaceAll("\\{lang\\}", LanguageInfo.getWikiLanguagePrefix())); JosmEditorPane htmlPane = null; try { htmlPane = new JosmEditorPane(url); } catch (IOException e1) { Main.trace(e1); // give a second chance with a default Locale 'en' try { url = new URL(eulaUrl.replaceAll("\\{lang\\}", "")); htmlPane = new JosmEditorPane(url); } catch (IOException e2) { Main.debug(e2); JOptionPane.showMessageDialog(gui, tr("EULA license URL not available: {0}", eulaUrl)); return false; } } Box box = Box.createVerticalBox(); htmlPane.setEditable(false); JScrollPane scrollPane = new JScrollPane(htmlPane); scrollPane.setPreferredSize(new Dimension(400, 400)); box.add(scrollPane); int option = JOptionPane.showConfirmDialog( Main.parent, box, tr("Please abort if you are not sure"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); if (option == JOptionPane.YES_OPTION) return true; } catch (MalformedURLException e2) { JOptionPane.showMessageDialog(gui, tr("Malformed URL for the EULA licence: {0}", eulaUrl)); } return false; }