1 package org.xpilot.jxpmap; 2 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 6 import javax.swing.JMenuItem; 7 import javax.swing.JPopupMenu; 8 9 public class MapObjectPopup extends JPopupMenu implements ActionListener { 10 11 12 protected MapCanvas canvas; 13 protected MapObject object; 14 private JMenuItem itemToFront; 15 private JMenuItem itemToBack; 16 private JMenuItem itemRemove; 17 private JMenuItem itemProperties; 18 19 MapObjectPopup(MapObject obj)20 public MapObjectPopup (MapObject obj) { 21 super(); 22 object = obj; 23 24 JMenuItem item; 25 item = new JMenuItem("Bring to front"); 26 item.addActionListener(this); 27 add(item); 28 itemToFront = item; 29 30 item = new JMenuItem("Send to back"); 31 item.addActionListener(this); 32 add(item); 33 itemToBack = item; 34 35 addSeparator(); 36 37 item = new JMenuItem("Remove"); 38 item.addActionListener(this); 39 add(item); 40 itemRemove = item; 41 42 addSeparator(); 43 44 item = new JMenuItem("Properties"); 45 item.addActionListener(this); 46 add(item); 47 itemProperties = item; 48 } 49 50 show(MapCanvas canvas, int x, int y)51 public void show (MapCanvas canvas, int x, int y) { 52 this.canvas = canvas; 53 super.show(canvas, x, y); 54 } 55 56 actionPerformed(ActionEvent evt)57 public void actionPerformed (ActionEvent evt) { 58 59 Object src = evt.getSource(); 60 if (src == itemToFront) { 61 toFront(); 62 } else if (src == itemToBack) { 63 toBack(); 64 } else if (src == itemRemove) { 65 remove(); 66 } else if (src == itemProperties) { 67 properties(); 68 } 69 } 70 71 toFront()72 protected void toFront () { 73 canvas.bringMapObject(object, true); 74 canvas.repaint(); 75 } 76 77 toBack()78 protected void toBack () { 79 canvas.bringMapObject(object, false); 80 canvas.repaint(); 81 } 82 83 remove()84 protected void remove () { 85 canvas.removeMapObject(object); 86 canvas.repaint(); 87 } 88 89 properties()90 protected void properties () { 91 EditorDialog.show(canvas, object); 92 canvas.repaint(); 93 } 94 } 95