// $Id: RulePopupMenu.java,v 1.18 2010/09/19 16:25:01 olga Exp $
package agg.gui.popupmenu;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreePath;
import agg.editor.impl.EdRule;
import agg.gui.treeview.GraGraTreeView;
import agg.xt_basis.agt.AmalgamatedRule;
@SuppressWarnings("serial")
public class AmalgamRulePopupMenu extends JPopupMenu {
public AmalgamRulePopupMenu(GraGraTreeView tree) {
super("Amalgamated Rule");
this.treeView = tree;
JMenuItem miDelete = add(new JMenuItem(
"Delete Delete"));
miDelete.setActionCommand("deleteRule");
miDelete.addActionListener(this.treeView.getActionAdapter());
addSeparator();
JMenuItem miCopy = add(new JMenuItem("Copy into rule set "));
miCopy.setActionCommand("copyRule");
miCopy.addActionListener(this.treeView.getActionAdapter());
pack();
setBorderPainted(true);
}
public boolean invoked(int x, int y) {
if (this.treeView == null) {
return false;
}
if (this.treeView.getTree().getRowForLocation(x, y) != -1) {
int pl = this.treeView.getTree().getPathForLocation(x, y).getPath().length;
if (pl == 4) {
TreePath path = this.treeView.getTree().getPathForLocation(x, y);
EdRule rule = this.treeView.getRule((DefaultMutableTreeNode) path
.getLastPathComponent());
if (rule != null
&& rule.getBasisRule() instanceof AmalgamatedRule) {
return true;
}
}
}
return false;
}
GraGraTreeView treeView;
// private JMenuItem miComment;
}