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);
    }
  }