TrustGrapher
r52
A playabale simulator for modelling trust between agents
|
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 }