// $Id: AtomicPopupMenu.java,v 1.4 2010/08/23 07:34:12 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.gui.treeview.GraGraTreeView;
import agg.gui.treeview.nodedata.GraGraTreeNodeData;
@SuppressWarnings("serial")
public class AtomicPopupMenu extends JPopupMenu {
public AtomicPopupMenu(GraGraTreeView tree) {
super("Atomic");
this.treeView = tree;
JMenuItem mi;
mi = add(new JMenuItem("New Conclusion Shift+Alt+C"));
mi.setActionCommand("newConclusion");
mi.addActionListener(this.treeView.getActionAdapter());
// mi.setMnemonic('N');
mi = add(new JMenuItem("Check Graph"));
mi.setActionCommand("checkOneAtomic");
mi.addActionListener(this.treeView.getActionAdapter());
// mi.setMnemonic('G');
/*
* mi = (JMenuItem) add(new JMenuItem("Create Post Condition"));
* mi.setActionCommand("convertOne"); mi.addActionListener(this.treeView);
*/
mi = add(new JMenuItem("Delete Delete"));
mi.setActionCommand("deleteAtomic");
mi.addActionListener(this.treeView.getActionAdapter());
// mi.setMnemonic('D');
// addSeparator();
mi = new JMenuItem("Undo Delete Conclusion");
// add(mi);
mi.setActionCommand("undoDeleteAtomicConclusion");
mi.addActionListener(this.treeView.getActionAdapter());
addSeparator();
mi = add(new JMenuItem("Textual Comments"));
// mi = new JMenuItem("Textual Comments");
mi.setActionCommand("commentAtomConstraint");
mi.addActionListener(this.treeView.getActionAdapter());
// mi.setMnemonic('T');
pack();
setBorderPainted(true);
}
public boolean invoked(int x, int y) {
if (this.treeView == null) {
return false;
}
if (this.treeView.getTree().getRowForLocation(x, y) != -1) {
TreePath path = this.treeView.getTree().getPathForLocation(x, y);
if (path.getPath().length == 3) {
DefaultMutableTreeNode aNode = (DefaultMutableTreeNode) path
.getLastPathComponent();
GraGraTreeNodeData sd = (GraGraTreeNodeData) aNode
.getUserObject();
if (sd != null && sd.isAtomic())
return true;
}
}
return false;
}
private GraGraTreeView treeView;
}