/** @see ca.nengo.model.Network#removeNode(java.lang.String) */ public void removeNode(String name) throws StructuralException { if (myNodeMap.containsKey(name)) { Node node = myNodeMap.get(name); if (node instanceof Network) { Network net = (Network) node; Probe[] probes = net.getSimulator().getProbes(); for (Probe probe : probes) { try { net.getSimulator().removeProbe(probe); } catch (SimulationException se) { System.err.println(se); return; } } Node[] nodes = net.getNodes(); for (Node node2 : nodes) { net.removeNode(node2.getName()); } } else if (node instanceof DecodableEnsembleImpl) { NEFEnsembleImpl pop = (NEFEnsembleImpl) node; Origin[] origins = pop.getOrigins(); for (Origin origin : origins) { String exposedName = getExposedOriginName(origin); if (exposedName != null) { hideOrigin(exposedName); } } } myNodeMap.remove(name); node.removeChangeListener(this); // VisiblyMutableUtils.nodeRemoved(this, node, myListeners); } else { throw new StructuralException("No Node named " + name + " in this Network"); } getSimulator().initialize(this); fireVisibleChangeEvent(); }