private void addBranchToBranchEdge( Edge currentEdge, Attachment sourceAttachment, Attachment targetAttachment) { EdgeMap edgeTypeMap = (EdgeMap) _graph.getDataProvider(EdgeMapKeys.EDGE_INFO); Node sourceNode = _viewModel.getViewNode(currentEdge.source()); Node targetNode = _viewModel.getViewNode(currentEdge.target()); Edge newEdge = _graph.createEdge(sourceNode, targetNode); edgeTypeMap.set( newEdge, new SViewEdgeInfo(EdgeType.BRANCH_BRANCH, sourceAttachment, targetAttachment)); sourceNode = getViewStartingNode(newEdge.source(), _graph); targetNode = getViewStartingNode(newEdge.target(), _graph); _viewModel.addComplentaryViewNodes(sourceNode, targetNode); }
private Edge addSimpleEdge(Edge currentEdge) { Node sourceFrom = currentEdge.source(); Node from = _viewModel.getViewNode(sourceFrom); if (from == null) { from = realizeNeigbour(_graph, sourceFrom); } Node sourceTo = currentEdge.target(); Node to = _viewModel.getViewNode(sourceTo); if (to == null) { to = realizeNeigbour(_graph, sourceTo); } Edge newEdge = _graph.createEdge(from, to); return newEdge; }
/** * Create a standard graph. Each graph contains 3 nodes, base<-R->P where R and P are standard * monomers * * @param notation : the base monomer id. A, T, C, G, U * @return a graph that represents a notation */ @Deprecated public static Graph2D createNucleictideNodeGraph(String notation) throws MonomerException, IOException, JDOMException { // a graph is used in here because we need to associate data with every nodes Graph2D graph = new Graph2D(); graph.setDefaultNodeRealizer(new MonomerNodeRealizer()); NodeMap nodePropertiesNodeMap = graph.createNodeMap(); graph.addDataProvider(NodeMapKeys.MONOMER_REF, nodePropertiesNodeMap); EdgeMap edgeMap = graph.createEdgeMap(); graph.addDataProvider(EdgeMapKeys.EDGE_INFO, edgeMap); GraphCopier copier = new GraphCopier(graph.getGraphCopyFactory()); copier.setDataProviderContentCopying(true); copier.setEdgeMapCopying(true); copier.setNodeMapCopying(true); String baseMonomerID = notation.substring(notation.indexOf("(") + 1, notation.indexOf(")")); baseMonomerID = baseMonomerID.replace("[", ""); baseMonomerID = baseMonomerID.replace("]", ""); Node baseNode = copier.copy(createNucleicAcidBaseNode(baseMonomerID), graph).firstNode(); NodeRealizer baseNodeRealizer = graph.getRealizer(baseNode); baseNodeRealizer.setCenter(centerX, centerY + size + distance); String r = notation.substring(0, notation.indexOf("(")); r = r.replace("[", ""); r = r.replace("]", ""); Node rNode = copier.copy(createNucleicAcidBackboneNode(r, Monomer.ID_R), graph).firstNode(); NodeRealizer rNodeRealizer = graph.getRealizer(rNode); rNodeRealizer.setCenter(centerX, centerY); String p = notation.substring(notation.indexOf(")") + 1); p = p.replace("[", ""); p = p.replace("]", ""); Node pNode = copier.copy(createNucleicAcidBackboneNode(p, Monomer.ID_P), graph).firstNode(); NodeRealizer pNodeRealizer = graph.getRealizer(pNode); pNodeRealizer.setCenter(centerX + size + distance, centerY); MonomerInfo pKeys = (MonomerInfo) nodePropertiesNodeMap.get(pNode); MonomerInfo rKeys = (MonomerInfo) nodePropertiesNodeMap.get(rNode); MonomerInfo baseKeys = (MonomerInfo) nodePropertiesNodeMap.get(baseNode); // r->p Edge edge = graph.createEdge(rNode, pNode); Attachment sourceAttachment = rKeys.getAttachment(Attachment.BACKBONE_MONOMER_RIGHT_ATTACHEMENT); Attachment targetAttachment = pKeys.getAttachment(Attachment.BACKBONE_MONOMER_LEFT_ATTACHEMENT); rKeys.setConnection(sourceAttachment, true); pKeys.setConnection(targetAttachment, true); edgeMap.set(edge, new EditorEdgeInfoData(sourceAttachment, targetAttachment)); // r->base edge = graph.createEdge(rNode, baseNode); sourceAttachment = rKeys.getAttachment(Attachment.BACKBONE_MONOMER_BRANCH_ATTACHEMENT); targetAttachment = baseKeys.getAttachment(Attachment.BRANCH_MONOMER_ATTACHEMENT); rKeys.setConnection(sourceAttachment, true); baseKeys.setConnection(targetAttachment, true); edgeMap.set(edge, new EditorEdgeInfoData(sourceAttachment, targetAttachment)); return graph; }