コード例 #1
0
  @Override
  public void prepare() {
    cg.clear();
    if (layout == null || containerPart == null || child == null) return;

    Container container = containerPart.getModel();
    setTarget(container.getBigraph());
    String name = container.getBigraph().getFirstUnusedName(child);

    if (child instanceof Node) {
      if (layout.width < 30) {
        layout.width = 30;
      }
      if (layout.height < 30) {
        layout.height = 30;
      }
    }

    cg.add(container.changeAddChild(child, name));
    cg.add(LayoutUtilities.changeLayout(child, layout));
  }
コード例 #2
0
  @Override
  public void prepare() {
    cg.clear();

    if (first instanceof Port
        && second instanceof Port
        && validateSorts(
            ((Port) first).getSpec().getPortSort(),
            ((Port) second).getSpec().getPortSort(),
            ((Port) second).getBigraph().getSignature())) {
      Bigraph b = ((Port) first).getBigraph();
      setTarget(b);
      Edge ed = new Edge(((Port) first).getSpec().getPortSort().split(":")[0]);
      cg.add(b.changeAddChild(ed, b.getFirstUnusedName(ed)));
      cg.add(((Port) first).changeConnect(ed));
      cg.add(((Port) second).changeConnect(ed));
    } else if (first instanceof Port
        && second instanceof InnerName
        && validateSorts(
            ((Port) first).getSpec().getPortSort(),
            ((InnerName) second).getInnerSort(),
            ((Port) first).getBigraph().getSignature())) {
      Bigraph b = ((Port) first).getBigraph();
      setTarget(b);
      Edge ed = new Edge(((Port) first).getSpec().getPortSort().split(":")[0]);
      cg.add(b.changeAddChild(ed, b.getFirstUnusedName(ed)));
      cg.add(((Port) first).changeConnect(ed));
      cg.add(((InnerName) second).changeConnect(ed));
    } else if (first instanceof InnerName
        && second instanceof Port
        && validateSorts(
            ((InnerName) first).getInnerSort(),
            ((Port) second).getSpec().getPortSort(),
            ((Port) second).getBigraph().getSignature())) {
      Bigraph b = ((InnerName) first).getBigraph();
      setTarget(b);
      Edge ed = new Edge(((InnerName) first).getInnerSort().split(":")[0]);
      cg.add(b.changeAddChild(ed, b.getFirstUnusedName(ed)));
      cg.add(((InnerName) first).changeConnect(ed));
      cg.add(((Port) second).changeConnect(ed));
    } else if (first instanceof InnerName
        && second instanceof InnerName
        && validateSorts(
            ((InnerName) first).getInnerSort(),
            ((InnerName) second).getInnerSort(),
            ((InnerName) second).getBigraph().getSignature())) {
      Bigraph b = ((InnerName) first).getBigraph();
      setTarget(b);
      Edge ed = new Edge(((InnerName) first).getInnerSort().split(":")[0]);
      cg.add(b.changeAddChild(ed, b.getFirstUnusedName(ed)));
      cg.add(((InnerName) first).changeConnect(ed));
      cg.add(((InnerName) second).changeConnect(ed));
    } else if (first instanceof Port
        && second instanceof Edge
        && validateSorts(
            ((Port) first).getSpec().getPortSort(),
            ((Edge) second).getLinkSort(),
            ((Port) first).getBigraph().getSignature())) {
      setTarget(((Port) first).getBigraph());
      cg.add(((Port) first).changeConnect((Edge) second));
    } else if (first instanceof Edge
        && second instanceof Port
        && validateSorts(
            ((Port) second).getSpec().getPortSort(),
            ((Edge) first).getLinkSort(),
            ((Port) second).getBigraph().getSignature())) {
      setTarget(((Port) second).getBigraph());
      cg.add(((Port) second).changeConnect((Edge) first));
    } else if (first instanceof Port
        && second instanceof OuterName
        && (((OuterName) second).getLinkSort() == null
            || ((OuterName) second).getLinkSort().equals("")
            || ((OuterName) second).getPoints().size() == 0)) {
      setTarget(((Port) first).getBigraph());
      ((OuterName) second).setLinkSort(((Port) first).getSpec().getPortSort());
      cg.add(((Port) first).changeConnect((OuterName) second));
    } else if (first instanceof Port
        && second instanceof OuterName
        && validateSorts(
            ((OuterName) second).getLinkSort(),
            ((Port) first).getSpec().getPortSort(),
            ((Port) first).getBigraph().getSignature())) {
      setTarget(((Port) first).getBigraph());
      cg.add(((Port) first).changeConnect((OuterName) second));
    } else if (first instanceof OuterName
        && second instanceof Port
        && validateSorts(
            ((OuterName) first).getLinkSort(),
            ((Port) second).getSpec().getPortSort(),
            ((Port) second).getBigraph().getSignature())) {
      setTarget(((Port) second).getBigraph());
      cg.add(((Port) second).changeConnect((OuterName) first));
    } else if (first instanceof OuterName
        && second instanceof Port
        && (((OuterName) first).getLinkSort() == null
            || ((OuterName) first).getLinkSort().equals("")
            || ((OuterName) first).getPoints().size() == 0)) {
      setTarget(((Port) second).getBigraph());
      ((OuterName) first).setLinkSort(((Port) second).getSpec().getPortSort());
      cg.add(((Port) second).changeConnect((OuterName) first));
    } else if (first instanceof InnerName
        && second instanceof Edge
        && validateSorts(
            ((InnerName) first).getInnerSort(),
            ((Edge) second).getLinkSort(),
            ((Edge) second).getBigraph().getSignature())) {
      setTarget(((InnerName) first).getBigraph());
      ((InnerName) first).setInnerSort(((Edge) second).getLinkSort() + ":none");
      cg.add(((InnerName) first).changeConnect((Edge) second));
    } else if (first instanceof Edge
        && second instanceof InnerName
        && validateSorts(
            ((InnerName) second).getInnerSort(),
            ((Edge) first).getLinkSort(),
            ((InnerName) second).getBigraph().getSignature())) {
      setTarget(((InnerName) second).getBigraph());
      ((InnerName) second).setInnerSort(((Edge) first).getLinkSort() + ":none");
      cg.add(((InnerName) second).changeConnect((Edge) first));
    } else if (first instanceof InnerName
        && second instanceof OuterName
        && (((OuterName) second).getLinkSort() == null
            || ((OuterName) second).getLinkSort().equals("")
            || ((OuterName) second).getPoints().size() == 0)) {
      setTarget(((InnerName) first).getBigraph());
      ((OuterName) second).setLinkSort(((InnerName) first).getInnerSort());
      cg.add(((InnerName) first).changeConnect((OuterName) second));
    } else if (first instanceof InnerName
        && second instanceof OuterName
        && validateSorts(
            ((OuterName) second).getLinkSort(),
            ((InnerName) first).getInnerSort(),
            ((OuterName) second).getBigraph().getSignature())) {
      setTarget(((InnerName) first).getBigraph());
      ((InnerName) first).setInnerSort(((InnerName) first).getInnerSort().split(":")[0] + ":none");
      cg.add(((InnerName) first).changeConnect((OuterName) second));
    } else if (first instanceof OuterName
        && second instanceof InnerName
        && validateSorts(
            ((OuterName) first).getLinkSort(),
            ((InnerName) second).getInnerSort(),
            ((InnerName) second).getBigraph().getSignature())) {
      setTarget(((InnerName) second).getBigraph());
      ((InnerName) second)
          .setInnerSort(((InnerName) second).getInnerSort().split(":")[0] + ":none");
      cg.add(((InnerName) second).changeConnect((OuterName) first));
    } else if (first instanceof OuterName
        && second instanceof InnerName
        && (((OuterName) first).getLinkSort() == null
            || ((OuterName) first).getLinkSort().equals("")
            || ((OuterName) first).getPoints().size() == 0)) {
      setTarget(((InnerName) second).getBigraph());
      ((OuterName) first).setLinkSort(((InnerName) second).getInnerSort());
      cg.add(((InnerName) second).changeConnect((OuterName) first));
    }
  }