public ConfigEditPopup() {
      super("Config Properties");

      newDescriptor = new JMenuItem("New Descriptor Type");
      newDescriptor.addActionListener(newConfigListener);

      newAttribute = new JMenuItem("New Attribute Type");
      newAttribute.addActionListener(new NewAttributeAction());

      delete = new JMenuItem("Delete");
      delete.addActionListener(new DeleteAction());

      duplicate = new JMenuItem("Duplicate");
      duplicate.addActionListener(new DuplicateAction());

      add(newDescriptor);
      add(newAttribute);
      // add(duplicate);
      add(new JSeparator());
      add(delete);
    }
 public void show(Component invoker, int x, int y) {
   Object o = getTree().getClosestPathForLocation(x, y).getLastPathComponent();
   if (null != o) {
     node = (Node) o;
     if ((node instanceof AttrConfig) || (node instanceof Config)) {
       newAttribute.setEnabled(true);
       duplicate.setEnabled(true);
       delete.setEnabled(true);
     } else {
       newAttribute.setEnabled(false);
       duplicate.setEnabled(false);
       delete.setEnabled(false);
     }
     super.show(invoker, x, y);
   }
 }