/* * MyMouseMenus.java * * Created on March 21, 2007, 3:34 PM; Updated May 29, 2007 * * Copyright March 21, 2007 Grotto Networking * */ package Samples.MouseMenu; import edu.uci.ics.jung.visualization.VisualizationViewer; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Point2D; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; /** * A collection of classes used to assemble popup mouse menus for the custom * edges and vertices developed in this example. * @author Dr. Greg M. Bernstein */ public class MyMouseMenus { public static class EdgeMenu extends JPopupMenu { // private JFrame frame; public EdgeMenu(final JFrame frame) { super("Edge Menu"); // this.frame = frame; this.add(new DeleteEdgeMenuItem<GraphElements.MyEdge>()); this.addSeparator(); this.add(new WeightDisplay()); this.add(new CapacityDisplay()); this.addSeparator(); this.add(new EdgePropItem(frame)); } } public static class EdgePropItem extends JMenuItem implements EdgeMenuListener<Samples.MouseMenu.GraphElements.MyEdge>, MenuPointListener { GraphElements.MyEdge edge; VisualizationViewer visComp; Point2D point; public void setEdgeAndView(GraphElements.MyEdge edge, VisualizationViewer visComp) { this.edge = edge; this.visComp = visComp; } public void setPoint(Point2D point) { this.point = point; } public EdgePropItem(final JFrame frame) { super("Edit Edge Properties..."); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { EdgePropertyDialog dialog = new EdgePropertyDialog(frame, edge); dialog.setLocation((int)point.getX()+ frame.getX(), (int)point.getY()+ frame.getY()); dialog.setVisible(true); } }); } } public static class WeightDisplay extends JMenuItem implements EdgeMenuListener<Samples.MouseMenu.GraphElements.MyEdge> { public void setEdgeAndView(GraphElements.MyEdge e, VisualizationViewer visComp) { this.setText("Weight " + e + " = " + e.getWeight()); } } public static class CapacityDisplay extends JMenuItem implements EdgeMenuListener<Samples.MouseMenu.GraphElements.MyEdge> { public void setEdgeAndView(GraphElements.MyEdge e, VisualizationViewer visComp) { this.setText("Capacity " + e + " = " + e.getCapacity()); } } public static class VertexMenu extends JPopupMenu { public VertexMenu() { super("Vertex Menu"); this.add(new DeleteVertexMenuItem<GraphElements.MyVertex>()); this.addSeparator(); this.add(new pscCheckBox()); this.add(new tdmCheckBox()); } } public static class pscCheckBox extends JCheckBoxMenuItem implements VertexMenuListener<GraphElements.MyVertex> { GraphElements.MyVertex v; public pscCheckBox() { super("PSC Capable"); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { v.setPacketSwitchCapable(isSelected()); } }); } public void setVertexAndView(GraphElements.MyVertex v, VisualizationViewer visComp) { this.v = v; this.setSelected(v.isPacketSwitchCapable()); } } public static class tdmCheckBox extends JCheckBoxMenuItem implements VertexMenuListener<GraphElements.MyVertex> { GraphElements.MyVertex v; public tdmCheckBox() { super("TDM Capable"); this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { v.setTdmSwitchCapable(isSelected()); } }); } public void setVertexAndView(GraphElements.MyVertex v, VisualizationViewer visComp) { this.v = v; this.setSelected(v.isTdmSwitchCapable()); } } }