Changeset 90

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

now you can add edges and remove stuff

Files:

Legend:

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

    r88 r90  
    1111 
    1212public class Graph implements Serializable { 
     13        static final long serialVersionUID = -4885663328284713368L; 
     14 
    1315        public Graph() { 
    1416                nodes = new Vector(); 
     
    337339        } 
    338340 
     341        public void removeEdge(Edge e) { 
     342                edges.remove(e); 
     343                Iterator i = idsToListsOfEdges.values().iterator(); 
     344                while(i.hasNext()) { 
     345                        Collection edgeList = (Collection)i.next(); 
     346                        if(edgeList != null) edgeList.remove(e); 
     347                } 
     348        } 
     349 
     350        public void removeNode(Node n) { 
     351                nodes.remove(n); 
     352                idsToNodes.remove(n.id); 
     353                idsToListsOfEdges.remove(n.id); 
     354        } 
     355 
    339356        public void addBackgroundMap(BackgroundMap m) { backgroundMaps.add(m); } 
    340357        public void setBackgroundMaps(Vector v) { backgroundMaps = v; } 
  • trunk/JGraphViewer.java

    r89 r90  
    229229        } 
    230230 
    231         public Object closestMatch(Point2D.Double realPoint, double maxDistance) { 
     231 
     232 
     233 
     234        public Object closestMatch(Point2D.Double realPoint, double maxDistance) { 
    232235                updateRealToScreen(); 
    233236                updateObjectsToPainters(); 
  • trunk/MapEditor.java

    r89 r90  
    178178 
    179179        public void pointReceived(MouseEvent event, Point2D.Double point) { 
    180                 if(event.getID() == MouseEvent.MOUSE_PRESSED || event.getID() == MouseEvent.MOUSE_DRAGGED) { 
     180                if(event.getID() == MouseEvent.MOUSE_PRESSED) { 
    181181                        if(addNodesMode.isSelected()) { 
     182                                graphViewer.setSelectedObject(null); 
    182183                                System.out.println("adding node " + graph.getUnusedNodeID()); 
    183184                                graph.addNode(new PhysicalNode(graph.getUnusedNodeID(), point.getX(), point.getY())); 
    184185                                graphViewer.graphChanged(); 
     186                        } else 
     187                        if(addEdgesMode.isSelected()) { 
     188                                Object source = graphViewer.getSelectedObject(); 
     189                                Object destination = graphViewer.closestMatch(point, 0); 
     190                                if(source instanceof PhysicalNode && destination instanceof PhysicalNode) { 
     191                                        graph.addEdge(new PhysicalEdge(((PhysicalNode)source).id, ((PhysicalNode)destination).id)); 
     192                                        graphViewer.graphChanged(); 
     193                                        if(!event.isShiftDown()) 
     194                                                graphViewer.setSelectedObject(null); 
     195                                } else 
     196                                if(destination instanceof PhysicalNode) { 
     197                                        graphViewer.setSelectedObject(destination); 
     198                                } 
     199                        } else 
     200                        if(deleteMode.isSelected()) { 
     201                                graphViewer.setSelectedObject(null); 
     202                                Object toBeDeleted = graphViewer.closestMatch(point, 0); 
     203                                if(toBeDeleted instanceof PhysicalNode) { 
     204                                        Iterator i = ((PhysicalNode)toBeDeleted).edges.iterator(); 
     205                                        while(i.hasNext()) 
     206                                                graph.removeEdge((PhysicalEdge)i.next()); 
     207                                        graph.removeNode((PhysicalNode)toBeDeleted); 
     208                                        graphViewer.graphChanged(); 
     209                                } else 
     210                                if(toBeDeleted instanceof PhysicalEdge) { 
     211                                        graph.removeEdge((PhysicalEdge)toBeDeleted); 
     212                                        graphViewer.graphChanged(); 
     213                                } 
    185214                        } 
    186215                }