TrustGrapher  r52
A playabale simulator for modelling trust between agents
D:/src/cu/trustGrapher/visualizer/ViewerPopupMenu.java
Go to the documentation of this file.
00001 
00002 package cu.trustGrapher.visualizer;
00003 
00004 import cu.repsystestbed.entities.Agent;
00005 import cu.repsystestbed.graphs.TestbedEdge;
00006 
00007 import edu.uci.ics.jung.algorithms.layout.*;
00008 import edu.uci.ics.jung.visualization.control.DefaultModalGraphMouse;
00009 import edu.uci.ics.jung.visualization.control.ModalGraphMouse.Mode;
00010 import java.awt.event.ActionListener;
00011 
00012 import javax.swing.JMenuItem;
00013 import javax.swing.JPopupMenu;
00014 
00015 import aohara.utilities.ChatterBox;
00016 
00021 public class ViewerPopupMenu extends JPopupMenu {
00022 
00023     private DefaultModalGraphMouse<Agent, TestbedEdge> gm;
00024     private GraphViewer currentViewer;
00025 
00031     public ViewerPopupMenu(final DefaultModalGraphMouse<Agent, TestbedEdge> gm, ActionListener listener) {
00032         this.gm = gm;
00033         JMenuItem picking = new JMenuItem("Picking");
00034         JMenuItem transforming = new JMenuItem("Transforming");
00035         JMenuItem kkLayout = new JMenuItem("KK Layout");
00036         JMenuItem frLayout = new JMenuItem("FR Layout");
00037         JMenuItem isomLayout = new JMenuItem("ISOM Layout");
00038         JMenuItem circleLayout = new JMenuItem("Circle Layout");
00039 
00040         picking.addActionListener(listener);
00041         transforming.addActionListener(listener);
00042         kkLayout.addActionListener(listener);
00043         frLayout.addActionListener(listener);
00044         isomLayout.addActionListener(listener);
00045         circleLayout.addActionListener(listener);
00046 
00047         add("Mouse Mode:").setEnabled(false);
00048         add(picking);
00049         add(transforming);
00050         addSeparator();
00051         add("Set Layout:").setEnabled(false);
00052         add(circleLayout);
00053         add(frLayout);
00054         add(isomLayout);
00055         add(kkLayout);
00056     }
00057 
00061     public void showPopupMenu(GraphViewer newViewer) {
00062         currentViewer = newViewer;
00063         setEnabled(true);
00064         show(currentViewer, currentViewer.getMousePosition().x, currentViewer.getMousePosition().y);
00065     }
00066 
00071     public void popupMenuEvent(String text) {
00072         if (text.contains(("Layout"))) {
00073             AbstractLayout<Agent, TestbedEdge> graphLayout = null;
00074             if (text.equals("FR Layout")) {
00075                 graphLayout = new FRLayout<Agent, TestbedEdge>(currentViewer.getFullGraph(), currentViewer.getSize());
00076             } else if (text.equals("ISOM Layout")) {
00077                 graphLayout = new ISOMLayout<Agent, TestbedEdge>(currentViewer.getFullGraph());
00078             } else if (text.equals("KK Layout")) {
00079                 graphLayout = new KKLayout<Agent, TestbedEdge>(currentViewer.getFullGraph());
00080             } else {
00081                 graphLayout = new CircleLayout<Agent, TestbedEdge>(currentViewer.getFullGraph());
00082             }
00083             currentViewer.getModel().setGraphLayout(graphLayout);
00084             graphLayout.lock(true);
00085         } else if (text.equals("Picking")) {
00086             gm.setMode(Mode.PICKING);
00087         } else if (text.equals("Transforming")) {
00088             gm.setMode(Mode.TRANSFORMING);
00089         } else {
00090             ChatterBox.error(this, "ActionPerformed()", "Uncaught menu action");
00091             return;
00092         }
00093         setVisible(false);
00094         setEnabled(false);
00095     }
00096 }