Changeset 92
- Timestamp:
- 03/08/05 17:42:08 (3 years ago)
- Files:
-
- trunk/Graph.java (modified) (1 diff)
- trunk/MapEditor.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Graph.java
r91 r92 357 357 } 358 358 359 359 360 public void addBackgroundMap(BackgroundMap m) { backgroundMaps.add(m); } 360 361 public void setBackgroundMaps(Vector v) { backgroundMaps = v; } trunk/MapEditor.java
r90 r92 13 13 JMenu fileMenu, modeMenu, miscMenu; 14 14 JMenuItem openMenuItem, saveAsMenuItem, makeMapsMenuItem, switchMapMenuItem; 15 JRadioButtonMenuItem addNodesMode, addEdgesMode, deleteMode ;15 JRadioButtonMenuItem addNodesMode, addEdgesMode, deleteMode, chainMode; 16 16 ButtonGroup modeGroup; 17 17 JFileChooser fileChooser; … … 69 69 modeGroup.add(deleteMode); 70 70 modeMenu.add(deleteMode); 71 72 chainMode = new JRadioButtonMenuItem("Chain", false); 73 modeGroup.add(chainMode); 74 modeMenu.add(chainMode); 71 75 72 76 makeMapsMenuItem = new JMenuItem("Make maps"); … … 177 181 178 182 183 private PhysicalNode lastSource; 179 184 public void pointReceived(MouseEvent event, Point2D.Double point) { 180 185 if(event.getID() == MouseEvent.MOUSE_PRESSED) { 181 186 if(addNodesMode.isSelected()) { 182 187 graphViewer.setSelectedObject(null); 183 System.out.println("adding node " + graph.getUnusedNodeID());184 188 graph.addNode(new PhysicalNode(graph.getUnusedNodeID(), point.getX(), point.getY())); 185 189 graphViewer.graphChanged(); … … 188 192 Object source = graphViewer.getSelectedObject(); 189 193 Object destination = graphViewer.closestMatch(point, 0); 194 if(event.isShiftDown() && source == null) source = lastSource; 190 195 if(source instanceof PhysicalNode && destination instanceof PhysicalNode) { 191 196 graph.addEdge(new PhysicalEdge(((PhysicalNode)source).id, ((PhysicalNode)destination).id)); 192 197 graphViewer.graphChanged(); 193 if(!event.isShiftDown())194 graphViewer.setSelectedObject(null);198 lastSource = (PhysicalNode)source; 199 graphViewer.setSelectedObject(null); 195 200 } else 196 201 if(destination instanceof PhysicalNode) { … … 212 217 graphViewer.graphChanged(); 213 218 } 219 } else 220 221 if(chainMode.isSelected()) { 222 223 Object clickedObject = graphViewer.closestMatch(point, 0); 224 Object selectedObject = graphViewer.getSelectedObject(); 225 226 if(clickedObject instanceof PhysicalNode && selectedObject instanceof PhysicalNode) { 227 if(clickedObject == selectedObject) { 228 graphViewer.setSelectedObject(null); 229 } else { 230 graph.addEdge( 231 new PhysicalEdge( 232 ((PhysicalNode)selectedObject).id, 233 ((PhysicalNode)clickedObject).id 234 ) 235 ); 236 graphViewer.graphChanged(); 237 if(!event.isShiftDown()) 238 graphViewer.setSelectedObject(clickedObject); 239 } 240 } else 241 if(selectedObject instanceof PhysicalNode && clickedObject == null) { 242 PhysicalNode newNode = new PhysicalNode(graph.getUnusedNodeID(), point.getX(), point.getY()); 243 graph.addNode(newNode); 244 graph.addEdge(new PhysicalEdge(((PhysicalNode)selectedObject).id, newNode.id)); 245 graphViewer.graphChanged(); 246 if(!event.isShiftDown()) 247 graphViewer.setSelectedObject(newNode); 248 } else 249 if(clickedObject != null) { 250 graphViewer.setSelectedObject(clickedObject); 251 } else 252 if(clickedObject == null && selectedObject == null) { 253 PhysicalNode newNode = new PhysicalNode(graph.getUnusedNodeID(), point.getX(), point.getY()); 254 graph.addNode(newNode); 255 graphViewer.graphChanged(); 256 graphViewer.setSelectedObject(newNode); 257 } 214 258 } 215 259 }
