コード例 #1
0
  private Node realizeNeigbour(Graph2D graph, Node node) {
    Iterator<Node> iterator = new ComponentIterator(graph, node);
    for (; iterator.hasNext(); ) {
      Node next = iterator.next();

      if (_viewModel.getEditorViewMap().containsKey(next)
          && !MonomerInfoUtils.isChemicalModifierPolymer(next)) {
        Node mapped = _viewModel.getViewNode(next);
        if (MonomerInfoUtils.is5Node(mapped, _graph)) {
          continue;
        }

        _viewModel.putViewNode(node, mapped);
        return mapped;
      }
    }

    // this should never happen. We're doing this for safety
    Node result =
        createNode(MonomerInfoUtils.getMonomerID(node), ViewElementsConstructor.SIMPLE_NODE);

    _viewModel.putViewNode(node, result);

    return result;
  }
コード例 #2
0
  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;
  }
コード例 #3
0
  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);
  }