public void actionPerformed(ActionEvent ae) { if (nodes != null && nodes.size() > 0) { final SVNData cd = new SVNData(); List<String> paths = new ArrayList<String>(); boolean has_directory = false; for (VPTNode node : nodes) { if (node != null && node.getNodePath() != null) { paths.add(node.getNodePath()); if (node.isDirectory() || node.isProject()) { has_directory = true; } } } cd.setPaths(paths); if (has_directory) { int answer = JOptionPane.showConfirmDialog( view, "One or more of the items selected is a directory.\nWould you like to see status for subdirectories and files?", "Show Child Status?", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); if (JOptionPane.CANCEL_OPTION == answer) { return; } cd.setRecursive(JOptionPane.YES_OPTION == answer); } if (username != null && password != null) { cd.setUsername(username); cd.setPassword(password); } cd.setOut(new ConsolePrintStream(view)); StatusAction action = new StatusAction(view, cd); action.actionPerformed(null); } }
public void actionPerformed(ActionEvent ae) { if (paths != null && paths.size() > 0) { dialog = new LockDialog(getView(), paths, false, remote); GUIUtils.center(getView(), dialog); dialog.setVisible(true); final CommitData data = dialog.getData(); if (data == null) { return; // null means user canceled } if (getUsername() == null) { verifyLogin(data.getPaths() == null ? null : data.getPaths().get(0)); if (isCanceled()) { return; } } data.setUsername(getUsername()); data.setPassword(getPassword()); data.setOut(new ConsolePrintStream(getView())); getView().getDockableWindowManager().showDockableWindow("subversion"); final OutputPanel panel = SVNPlugin.getOutputPanel(getView()); panel.showConsole(); final Logger logger = panel.getLogger(); logger.log(Level.INFO, jEdit.getProperty("ips.Unlocking_...", "Unlocking ...")); for (Handler handler : logger.getHandlers()) { handler.flush(); } class Runner extends SwingWorker<LockResults, Object> { @Override public LockResults doInBackground() { try { Lock lock = new Lock(); return lock.unlock(data); } catch (Exception e) { data.getOut().printError(e.getMessage()); } finally { data.getOut().close(); } return null; } @Override public boolean cancel(boolean mayInterruptIfRunning) { boolean cancelled = super.cancel(mayInterruptIfRunning); if (cancelled) { data.getOut().printError("Stopped 'Unlock' action."); data.getOut().close(); } else { data.getOut().printError("Unable to stop 'Unlock' action."); } return cancelled; } @Override protected void done() { if (isCancelled()) { return; } try { JPanel results_panel = new AddResultsPanel( get(), AddResultsPanel.UNLOCK, getView(), getUsername(), getPassword()); panel.addTab(jEdit.getProperty("ips.Unlocked", "Unlocked"), results_panel); } catch (Exception e) { // NOPMD // ignored } } } Runner runner = new Runner(); panel.addWorker("Unlock", runner); runner.execute(); } }