/** * Responds to events indicating a change in the flagged state of one or * more nodes or edges. Sets the corresponding selection state for views of * those objects in the graph view. */ public void onSelectEvent(SelectEvent event) { if (event.getTargetType() == SelectEvent.SINGLE_NODE) { // single node setNodeSelected((Node) event.getTarget(), event.getEventType()); } else if (event.getTargetType() == SelectEvent.SINGLE_EDGE) { // single // edge setEdgeSelected((Edge) event.getTarget(), event.getEventType()); } else if (event.getTargetType() == SelectEvent.NODE_SET) { // multiple // nodes Set nodeSet = (Set) event.getTarget(); for (Iterator iter = nodeSet.iterator(); iter.hasNext();) { Node node = (Node) iter.next(); setNodeSelected(node, event.getEventType()); } } else if (event.getTargetType() == SelectEvent.EDGE_SET) { // multiple // edges Set edgeSet = (Set) event.getTarget(); for (Iterator iter = edgeSet.iterator(); iter.hasNext();) { Edge edge = (Edge) iter.next(); setEdgeSelected(edge, event.getEventType()); } } else { // unexpected target type return; } }
/** * Standard constructor takes the flag filter and the view that should be * synchronized. On construction, this object will synchronize the filter * and view by turning on flags or selections that are currently on in one * of the two objects. */ public FlagAndSelectionHandler(SelectFilter selectFilter, GraphView view) { this.selectFilter = selectFilter; this.view = view; syncFilterAndView(); selectFilter.addSelectEventListener(this); view.addGraphViewChangeListener(this); }
/** * Creates a new DingNetworkView object. * * @param network DOCUMENT ME! * @param title DOCUMENT ME! */ public DingNetworkView(CyNetwork network, String title) { super(network); this.title = title; final int[] nodes = network.getNodeIndicesArray(); final int[] edges = network.getEdgeIndicesArray(); final int nodeCount = nodes.length; final int edgeCount = edges.length; for (int i = 0; i < nodeCount; i++) addNodeView(nodes[i]); for (int i = 0; i < edgeCount; i++) addEdgeView(edges[i]); flagHandler = new FlagAndSelectionHandler(getNetwork().getSelectFilter(), this); // Allows us to update the nested network snapshot size based on // a property. Cytoscape.getSwingPropertyChangeSupport().addPropertyChangeListener(this); checkSnapshotSize(); }