@SuppressWarnings("unchecked") @Override public Iterator edges() { Collection<obvious.data.Edge> obvEdges = network.getEdges(); ArrayList<Edge> prefEdges = new ArrayList<Edge>(); for (obvious.data.Edge edge : obvEdges) { prefEdges.add(new WrapToPrefEdge(network, (TupleImpl) edge, edge.getRow())); } return prefEdges.iterator(); }
/** * Removes an edge. * @param edge edge to remove * @return true if removed */ public boolean removeEdge(Edge edge) { try { boolean removed = this.graph.removeEdge(edge.getRow()); if (removed) { fireNetworkEvent(edge.getRow(), edge.getRow(), 0, NetworkListener.DELETE_EDGE); } return removed; } catch (Exception e) { throw new ObviousRuntimeException(e); } }
@SuppressWarnings("unchecked") @Override public Iterator edges(Node node) { Collection<obvious.data.Edge> obvEdges = network.getIncidentEdges( getObviousNode(node)); ArrayList<Edge> prefEdges = new ArrayList<Edge>(); for (obvious.data.Edge edge : obvEdges) { prefEdges.add(new WrapToPrefEdge(network, (TupleImpl) edge, edge.getRow())); } return prefEdges.iterator(); }
@SuppressWarnings("unchecked") @Override public Iterator inEdges(Node node) { Collection<obvious.data.Edge> obvEdges = network.getInEdges( getObviousNode(node)); ArrayList<Edge> prefEdges = new ArrayList<Edge>(); for (obvious.data.Edge edge : obvEdges) { prefEdges.add(new WrapToPrefEdge(network, (TupleImpl) edge, edge.getRow())); } return prefEdges.iterator(); }
@SuppressWarnings("unchecked") @Override public Iterator outEdges(Node node) { Collection<obvious.data.Edge> obvEdges = network.getOutEdges( getObviousNode(node)); ArrayList<Edge> prefEdges = new ArrayList<Edge>(); for (obvious.data.Edge edge : obvEdges) { prefEdges.add(new WrapToPrefEdge(network, (TupleImpl) edge, edge.getRow())); } return prefEdges.iterator(); }
/** * Removes an edge. * @param edge edge to remove * @return true if removed */ public boolean removeEdge(Edge edge) { try { return edgeTable.removeRow(edge.getRow()); } catch (Exception e) { throw new ObviousRuntimeException(e); } }
/** * Removes an edge. * @param edge edge to remove * @return true if removed */ public boolean removeEdge(Edge edge) { try { if (!edgeToId.containsKey(edge)) { return false; } graph.removeEdge(getEdgeId(edge)); edgeToId.remove(edge); fireNetworkEvent(edge.getRow(), edge.getRow(), 0, NetworkListener.DELETE_EDGE); return true; } catch (Exception e) { throw new ObviousRuntimeException(e); } }
/** * Get the opposite node for a couple (node,edge). * @param node spotted node * @param edge spotted edge * @return opposite node */ public Node getOpposite(Node node, Edge edge) { prefuse.data.Node prefNode = this.graph.getNodeFromKey( graph.getKey(node.getRow())); prefuse.data.Edge prefEdge = this.graph.getEdge(edge.getRow()); return new PrefuseObviousNode(this.graph.getAdjacentNode(prefEdge, prefNode)); }
/** * Gets incident edges for a spotted node. * @param edge edge spotted * @return collection of incident nodes */ public Collection<Node> getIncidentNodes(Edge edge) { Collection<Node> node = new ArrayList<Node>(); prefuse.data.Edge prefEdge = this.graph.getEdge(edge.getRow()); node.add(new PrefuseObviousNode(prefEdge.getSourceNode())); node.add(new PrefuseObviousNode(prefEdge.getTargetNode())); return node; }
@Override public int getEdge(int source, int target) { obvious.data.Node sourceNode = getObviousNode(source); obvious.data.Node targetNode = getObviousNode(target); return network.getConnectingEdge(sourceNode, targetNode).getRow(); }
/** * Gets the target node of a directed edge. * @param directedEdge spotted edge * @return target node */ public Node getTarget(Edge directedEdge) { int index = this.graph.getTargetNode(directedEdge.getRow()); prefuse.data.Node prefNode = this.graph.getNodeFromKey( this.graph.getKey(index)); return new PrefuseObviousNode(prefNode); }
/** * Gets the source node of a directed edge. * @param directedEdge spotted edge * @return source node */ public Node getSource(Edge directedEdge) { int index = this.graph.getSourceNode(directedEdge.getRow()); prefuse.data.Node prefNode = this.graph.getNodeFromKey( this.graph.getKey(index)); return new PrefuseObviousNode(prefNode); }
/** * Adds an edge to the graph. * @param edge edge to add * @param source source node * @param target target node * @param edgeType unused parameter * @return true if added */ public boolean addEdge(Edge edge, Node source, Node target, obvious.data.Graph.EdgeType edgeType) { try { int edgeId = graph.addEdge(getNodeId(source), getNodeId(target)); for (int i = 0; i < edge.getSchema().getColumnCount(); i++) { if (edgeSchema.hasColumn(edge.getSchema().getColumnName(i))) { TypedFormat format = formatFactory.getFormat( edge.getSchema().getColumnType(i).getSimpleName()); StringBuffer v = format.format(edge.get(i), new StringBuffer(), new FieldPosition(0)); graph.getEdgeTable().setValueAt(v.toString(), edgeId, graph.getEdgeTable().indexOf(edge.getSchema().getColumnName(i))); } } edgeToId.put(edge, edgeId); fireNetworkEvent(edge.getRow(), edge.getRow(), 0, NetworkListener.INSERT_EDGE); return true; } catch (Exception e) { throw new ObviousRuntimeException(e); } }
/** * Removes a node. * @param node node to remove * @return true if removed */ public boolean removeNode(Node node) { try { if (tree.removeNode(getNodeId(node))) { for (Edge edge : this.getIncidentEdges(node)) { edgeTable.removeRow(edge.getRow()); } } return tree.removeNode(getNodeId(node)); } catch (Exception e) { throw new ObviousRuntimeException(e); } }