Changeset 92

Show
Ignore:
Timestamp:
03/08/05 17:42:08 (3 years ago)
Author:
tfelker2
Message:

implemented chain addition mode

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Graph.java

    r91 r92  
    357357        } 
    358358 
     359 
    359360        public void addBackgroundMap(BackgroundMap m) { backgroundMaps.add(m); } 
    360361        public void setBackgroundMaps(Vector v) { backgroundMaps = v; } 
  • trunk/MapEditor.java

    r90 r92  
    1313        JMenu fileMenu, modeMenu, miscMenu; 
    1414        JMenuItem openMenuItem, saveAsMenuItem, makeMapsMenuItem, switchMapMenuItem; 
    15         JRadioButtonMenuItem addNodesMode, addEdgesMode, deleteMode
     15        JRadioButtonMenuItem addNodesMode, addEdgesMode, deleteMode, chainMode
    1616        ButtonGroup modeGroup; 
    1717        JFileChooser fileChooser; 
     
    6969                modeGroup.add(deleteMode); 
    7070                modeMenu.add(deleteMode); 
     71 
     72                chainMode = new JRadioButtonMenuItem("Chain", false); 
     73                modeGroup.add(chainMode); 
     74                modeMenu.add(chainMode); 
    7175 
    7276                makeMapsMenuItem = new JMenuItem("Make maps"); 
     
    177181 
    178182 
     183        private PhysicalNode lastSource; 
    179184        public void pointReceived(MouseEvent event, Point2D.Double point) { 
    180185                if(event.getID() == MouseEvent.MOUSE_PRESSED) { 
    181186                        if(addNodesMode.isSelected()) { 
    182187                                graphViewer.setSelectedObject(null); 
    183                                 System.out.println("adding node " + graph.getUnusedNodeID()); 
    184188                                graph.addNode(new PhysicalNode(graph.getUnusedNodeID(), point.getX(), point.getY())); 
    185189                                graphViewer.graphChanged(); 
     
    188192                                Object source = graphViewer.getSelectedObject(); 
    189193                                Object destination = graphViewer.closestMatch(point, 0); 
     194                                if(event.isShiftDown() && source == null) source = lastSource; 
    190195                                if(source instanceof PhysicalNode && destination instanceof PhysicalNode) { 
    191196                                        graph.addEdge(new PhysicalEdge(((PhysicalNode)source).id, ((PhysicalNode)destination).id)); 
    192197                                        graphViewer.graphChanged(); 
    193                                         if(!event.isShiftDown()) 
    194                                                graphViewer.setSelectedObject(null); 
     198                                        lastSource = (PhysicalNode)source; 
     199                                        graphViewer.setSelectedObject(null); 
    195200                                } else 
    196201                                if(destination instanceof PhysicalNode) { 
     
    212217                                        graphViewer.graphChanged(); 
    213218                                } 
     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                                } 
    214258                        } 
    215259                }