package cytoscape.editor; import giny.view.NodeView; import cytoscape.CyNetwork; import cytoscape.CyNode; import cytoscape.Cytoscape; import cytoscape.util.undo.CyAbstractEdit; import cytoscape.view.CyNetworkView; /** * An edit used by the Editor when adding new nodes to a network. */ public class AddNodeEdit extends CyAbstractEdit { // MLC 05/09/07: private static final long serialVersionUID = 4869581496913388294L; protected CyNetwork net; protected CyNode node; protected double xPos = 0.0; protected double yPos = 0.0; public AddNodeEdit(CyNetwork net, CyNode node) { super("Add Node"); if ( net == null || node == null ) throw new IllegalArgumentException("network or node is null"); this.net = net; this.node = node; CyNetworkView view = Cytoscape.getNetworkView(net.getIdentifier()); if ( view != null || view != Cytoscape.getNullNetworkView() ) { NodeView nv = view.getNodeView(node); xPos = nv.getXPosition(); yPos = nv.getYPosition(); } } public void undo() { super.undo(); net.hideNode( node ); Cytoscape.firePropertyChange(Cytoscape.NETWORK_MODIFIED, CytoscapeEditorManager.CYTOSCAPE_EDITOR, net); } public void redo() { super.redo(); net.restoreNode( node ); CyNetworkView view = Cytoscape.getNetworkView(net.getIdentifier()); if ( view != null || view != Cytoscape.getNullNetworkView() ) { NodeView nv = view.getNodeView(node); nv.setXPosition(xPos); nv.setYPosition(yPos); } Cytoscape.firePropertyChange(Cytoscape.NETWORK_MODIFIED, CytoscapeEditorManager.CYTOSCAPE_EDITOR, net); } }