public void actionPerformed(ActionEvent ev) {
    String name = selectedNode.getDBObject().getName();

    String newName =
        JOptionPane.showInputDialog(
            Globals.getMainFrame(), I18NSupport.getString("rename.chart.ask", name), name);

    // cancel
    if (newName == null) {
      return;
    }

    if (newName.trim().equals("")) {
      Show.error(I18NSupport.getString("chart.empty.name"));
      return;
    }

    if (!StringUtil.isFileName(newName)) {
      Show.error(I18NSupport.getString("name.invalid"));
      return;
    }

    boolean save = ChartUtil.renameChart(name, newName, selectedNode.getDBObject().getParentPath());
    if (!save) {
      Show.error(I18NSupport.getString("could.not.save.chart"));
    } else {
      tree.renameNode(
          selectedNode,
          newName,
          selectedNode.getDBObject().getParentPath()
              + File.separator
              + newName
              + ChartUtil.CHART_FULL_EXTENSION);
    }
  }