示例#1
0
    public void createConnection(Widget source, Widget target) {

      // Select necessary nodes only

      ConfigNode cnSource = (ConfigNode) findObject(source);
      ConfigNode cnTarget = (ConfigNode) findObject(target);

      String cnSourceIdType = cnSource.getId().substring(0, 2);
      String cnTargetIdType = cnTarget.getId().substring(0, 2);

      String type = "TEMPORAL";

      // filter relavent links only
      if ((cnSourceIdType.equals("L2") && cnTargetIdType.equals("L1"))
          || (cnSourceIdType.equals("L1") && cnTargetIdType.equals("L0"))
          || (cnSourceIdType.equals(cnTargetIdType))) {

        ConnectionWidget conn = new ConnectionWidget(GraphSceneImpl.this);
        conn.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED);

        // Double arrow head for cross features
        if (cnSourceIdType.equals(cnTargetIdType)) {
          conn.setSourceAnchorShape(AnchorShape.TRIANGLE_FILLED);
          type = "CROSS";
        }

        //
        // conn.setRouter(RouterFactory.createOrthogonalSearchRouter(GraphSceneImpl.widgetCollector));
        conn.setTargetAnchor(AnchorFactory.createRectangularAnchor(target));
        conn.setSourceAnchor(AnchorFactory.createRectangularAnchor(source));
        connectionLayer.addChild(conn);
        edgeMap.add(new NodeLinks(type, cnSource.getId(), cnTarget.getId()));
      }
    }
 @Override
 public void createConnection(Widget source, Widget target) {
   ConnectionWidget conn = new ConnectionWidget(VisualScene.this);
   conn.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED);
   conn.setTargetAnchor(AnchorFactory.createRectangularAnchor(target));
   conn.setSourceAnchor(AnchorFactory.createRectangularAnchor(source));
   conn.getActions().addAction(createObjectHoverAction());
   conn.getActions().addAction(createSelectAction());
   connectionLayer.addChild(conn);
 }
  public void createConnection(Widget sourceWidget, Widget targetWidget) {
    try {
      ConnectionWidget connection = new ConnectionWidget(sourceWidget.getScene());
      connection.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED);
      connection.setSourceAnchor(AnchorFactory.createRectangularAnchor(sourceWidget));
      connection.setTargetAnchor(AnchorFactory.createRectangularAnchor(targetWidget));
      Stroke stroke = Costanti.BASIC_STROKE;
      connection.setStroke(stroke);
      connection
          .getActions()
          .addAction(
              ActionFactory.createPopupMenuAction(
                  new MyPopupProviderConnectionFunc(
                      sourceWidget.getScene(), mainLayer, caratteristiche)));
      ConnectionInfo connectionInfo = new ConnectionInfo();
      connectionInfo.setTargetWidget(targetWidget);
      connectionInfo.setConnectionWidget(connection);
      caratteristiche.setTargetWidget((VMDPinWidgetTarget) targetWidget);

      creator.createCorrespondenceWithFunction(
          mainLayer, targetWidget, caratteristiche, connectionInfo);

      caratteristiche.setConnectionInfo(connectionInfo);
      connectionLayer.addChild(connection, connectionInfo);
    } catch (ExpressionSyntaxException e) {
      DialogDisplayer.getDefault()
          .notify(
              new NotifyDescriptor.Message(
                  NbBundle.getMessage(Costanti.class, Costanti.SYNTAX_WARNING)
                      + " : "
                      + e.getMessage(),
                  DialogDescriptor.WARNING_MESSAGE));
      // giannisk delete target connection if exception if caught
      deleteTargetConnection(sourceWidget);
    }
  }
 @Override
 protected void attachEdgeTargetAnchor(Object edge, Object n, Object targetNode) {
   Widget w = targetNode != null ? findInput(targetNode) : null;
   ((ConnectionWidget) findWidget(edge)).setTargetAnchor(AnchorFactory.createRectangularAnchor(w));
 }
 @Override
 protected void attachEdgeSourceAnchor(Object edge, Object sourceNode, Object n1) {
   Widget w = sourceNode != null ? findOutput(sourceNode) : null;
   ((ConnectionWidget) findWidget(edge)).setSourceAnchor(AnchorFactory.createRectangularAnchor(w));
 }
示例#6
0
 @Override
 protected void attachEdgeTargetAnchor(Edge edge, Node oldTarget, Node newTarget) {
   Widget w = newTarget != null ? findWidget(newTarget) : null;
   ((ConnectionWidget) findWidget(edge)).setTargetAnchor(AnchorFactory.createRectangularAnchor(w));
 }
示例#7
0
 @Override
 protected void attachEdgeSourceAnchor(Edge edge, Node oldSource, Node newSource) {
   Widget w = newSource != null ? findWidget(newSource) : null;
   ((ConnectionWidget) findWidget(edge)).setSourceAnchor(AnchorFactory.createRectangularAnchor(w));
 }
示例#8
0
  public ProxyAnchorExpandTest() {
    setBackground(Color.LIGHT_GRAY);

    // layer for widgets
    LayerWidget mainLayer = new LayerWidget(this);
    addChild(mainLayer);
    // layer for connections
    LayerWidget connLayer = new LayerWidget(this);
    addChild(connLayer);

    // outer widget
    Widget outerWidget = new Widget(this);
    outerWidget.setOpaque(true);
    outerWidget.setBackground(Color.WHITE);
    outerWidget.setBorder(BorderFactory.createLineBorder(10));
    outerWidget.setPreferredLocation(new Point(100, 100));
    outerWidget.setLayout(
        LayoutFactory.createVerticalFlowLayout(LayoutFactory.SerialAlignment.CENTER, 4));

    outerWidget.addChild(
        new LabelWidget(
            this, "The anchor switches based on a state in StateModel used by ProxyAnchor."));
    outerWidget.addChild(
        new LabelWidget(this, "ConnectionWidget has the same anchors assigned all the time."));

    // inner widget
    LabelWidget innerWidget = new LabelWidget(this, "Internal frame");
    innerWidget.setBorder(BorderFactory.createLineBorder());
    outerWidget.addChild(innerWidget);

    mainLayer.addChild(outerWidget);

    // the target widget
    Widget targetWidget =
        new LabelWidget(this, "Click here to switch the state in StateModel/anchor.");
    targetWidget.setOpaque(true);
    targetWidget.setBackground(Color.WHITE);
    targetWidget.setBorder(BorderFactory.createLineBorder(10));
    targetWidget.setPreferredLocation(new Point(450, 300));
    mainLayer.addChild(targetWidget);

    // an action for switching a state of a StateModel used by the ProxyAnchor to determinate an
    // active anchor
    WidgetAction switchAction = ActionFactory.createSelectAction(new SwitchProvider());
    targetWidget.getActions().addAction(switchAction);

    Anchor outerAnchor = AnchorFactory.createRectangularAnchor(outerWidget);
    Anchor innerAnchor = AnchorFactory.createRectangularAnchor(innerWidget);

    // a proxy anchor which acts like an one of the specified anchors.
    // The active anchor is defined by a state in the StateModel
    Anchor proxyAnchor = AnchorFactory.createProxyAnchor(model, outerAnchor, innerAnchor);

    // the connection widget
    ConnectionWidget conn = new ConnectionWidget(this);
    conn.setTargetAnchorShape(AnchorShape.TRIANGLE_FILLED);
    connLayer.addChild(conn);

    // the proxy anchor is used as a source
    conn.setSourceAnchor(proxyAnchor);
    // the target anchor is assigned to the targetWidget widget
    conn.setTargetAnchor(AnchorFactory.createRectangularAnchor(targetWidget));
  }