/** * Disconnect <code>edge</code> from <code>source</code> and * <code>target</code> in the connection set. The previous connections * between <code>edge</code> and its source and target are replaced in the * set. */ public void disconnect(Object edge) { disconnect(edge, true); disconnect(edge, false); }
/** * Connect or disconnect <code>edge</code> from <code>source</code> and * <code>target</code> in <code>cs</code> based on * <code>disconnect</code>. */ protected static void connect(ConnectionSet cs, Object edge, Object port, boolean source, boolean disconnect) { if (disconnect) cs.disconnect(edge, source); else cs.connect(edge, port, source); }
/** * Returns a connection set that represents the connection or disconnection * of <code>cells</code> in <code>model</code> based on * <code>disconnect</code>. */ public static ConnectionSet create(GraphModel m, Object[] cells, boolean disconnect) { ConnectionSet cs = new ConnectionSet(); for (int i = 0; i < cells.length; i++) { Object cell = cells[i]; // Edge if (m.isEdge(cell)) { if (disconnect) cs.disconnect(cell); else cs.connect(cell, m.getSource(cell), m.getTarget(cell)); } // Port Iterator it = m.edges(cell); while (it.hasNext()) { // Edge At Port Object edge = it.next(); if (m.getSource(edge) == cell) connect(cs, edge, cell, true, disconnect); else if (m.getTarget(edge) == cell) connect(cs, edge, cell, false, disconnect); } } return cs; }
&& !contains(port.getCell())) { view.setSource(null); cs.disconnect(view.getCell(), true); && !contains(port.getCell())) { view.setTarget(null); cs.disconnect(view.getCell(), false);