Package org.eclipse.zest.layouts.dataStructures

Examples of org.eclipse.zest.layouts.dataStructures.InternalRelationship


       
        for (int i = 0; i < entitiesToLayout.length; i++) {
            anchors[i] = DEFAULT_ANCHOR;
        }
        for (int i = 0; i < relationshipsToConsider.length; i++) {
            InternalRelationship layoutRelationship = relationshipsToConsider[i];
            addRelation(layoutRelationship);
        }

        // do the calculations
        preCompute(entitiesToLayout);
View Full Code Here


      }

      // Also remove from _internalRelationships
      ArrayList updatedRelationships = new ArrayList(internalRelationships.length - relationshipsToRemove.size() + relationshipsToAdd.size());
      for (int i = 0; i < internalRelationships.length; i++) {
        InternalRelationship relation = internalRelationships[i];
        if (relationshipsToRemove.contains(relation.getLayoutRelationship())) {
          relationshipsToRemove.remove(relation.getLayoutRelationship());
        } else {
          updatedRelationships.add(relation);
        }
      }
      relationshipsToRemove.clear();
View Full Code Here

   * source and destination points for later use in scaling and translating
   * @param relationshipsToConsider
   */
  protected void updateBendPoints(InternalRelationship[] relationshipsToConsider) {
    for (int i = 0; i < relationshipsToConsider.length; i++) {
      InternalRelationship relationship = relationshipsToConsider[i];
      List bendPoints = relationship.getBendPoints();
      if (bendPoints.size() > 0) {
        // We will assume that source/dest coordinates are for center of node
        BendPoint[] externalBendPoints = new BendPoint[bendPoints.size() + 2];
        InternalNode sourceNode = relationship.getSource();
        externalBendPoints[0] = new BendPoint(sourceNode.getInternalX(), sourceNode.getInternalY());
        InternalNode destNode = relationship.getDestination();
        externalBendPoints[externalBendPoints.length - 1] = new BendPoint(destNode.getInternalX(), destNode.getInternalY());

        for (int j = 0; j < bendPoints.size(); j++) {
          BendPoint bp = (BendPoint) bendPoints.get(j);
          externalBendPoints[j + 1] = new BendPoint(bp.x, bp.y, bp.getIsControlPoint());
        }
        relationship.getLayoutRelationship().setBendPoints(externalBendPoints);
      }
    }
  }
View Full Code Here

    for (int i = 0; i < rels.length; i++) {
      LayoutRelationship relation = rels[i];
      InternalNode src = (InternalNode) relation.getSourceInLayout().getLayoutInformation();
      InternalNode dest = (InternalNode) relation.getDestinationInLayout().getLayoutInformation();
      if ((src != null) && (dest != null)) {
        InternalRelationship internalRelationship = new InternalRelationship(relation, src, dest);
        listOfInternalRelationships.add(internalRelationship);
      } else {
        throw new RuntimeException("Error creating internal relationship, one of the nodes is null: src=" + src + ", dest=" + dest);
      }
    }
View Full Code Here

      }
    }

    // Adjust bendpoint positions
    for (int i = 0; i < relationships.length; i++) {
      InternalRelationship rel = relationships[i];
      for (int j = 0; j < rel.getBendPoints().size(); j++) {
        BendPoint bp = (BendPoint) rel.getBendPoints().get(j);
        DisplayIndependentPoint toPercent = bp.convertToPercent(layoutBounds);
        bp.setX(toPercent.x);
        bp.setY(toPercent.y);
      }
    }
View Full Code Here

      }
    }

    // Adjust bendpoint positions and shift based on source node size
    for (int i = 0; i < relationships.length; i++) {
      InternalRelationship rel = relationships[i];
      for (int j = 0; j < rel.getBendPoints().size(); j++) {
        BendPoint bp = (BendPoint) rel.getBendPoints().get(j);
        DisplayIndependentPoint fromPercent = bp.convertFromPercent(screenBounds);
        bp.setX(fromPercent.x);
        bp.setY(fromPercent.y);
      }
    }
View Full Code Here

   * @see SimpleRelationship
   */
    private Collection findRelationships(Object entity, boolean objectAsSource, InternalRelationship [] relationshipsToConsider) {
    Collection foundRels = new ArrayList();
        for (int i = 0; i < relationshipsToConsider.length; i++) {
            InternalRelationship rel = relationshipsToConsider[i];
      if (objectAsSource && rel.getSource().equals (entity)) {
        foundRels.add(rel);
      } else if (!objectAsSource && rel.getDestination().equals (entity)) {
        foundRels.add(rel);
      }
    }
    return foundRels;
  }
View Full Code Here

   * @see SimpleRelationship
   * @see SimpleRelationship#ACTOR_ROLE
   * @see SimpleRelationship#ACTEE_ROLE
   */
    private InternalRelationship findRelationship(Object entity, boolean objectAsSource, InternalRelationship [] relationshipsToConsider) {
    InternalRelationship relationship = null;
        for (int i = 0; i < relationshipsToConsider.length && relationship == null; i++) {
            InternalRelationship possibleRel = relationshipsToConsider[i];
      if (objectAsSource && possibleRel.getSource().equals (entity)) {
        relationship = possibleRel;
      } else if (!objectAsSource && possibleRel.getDestination().equals (entity)) {
        relationship = possibleRel;
      }
    }
    return relationship;
  }
View Full Code Here

   * Finds the root node that can be treated as the root of a tree.
   * The found root node should be one of the unmarked nodes.
   */
  private InternalNode findRootObjectRecursive(InternalNode currentEntity, Set seenAlready, InternalRelationship [] relationshipsToConsider) {
    InternalNode rootEntity = null;
    InternalRelationship rel = findRelationship(currentEntity, AS_DESTINATION, relationshipsToConsider);
    if (rel == null) {
      rootEntity = currentEntity;
    } else {
      InternalNode parentEntity = rel.getSource();
      if (!seenAlready.contains(parentEntity)) {
        seenAlready.add(parentEntity);
        rootEntity = findRootObjectRecursive(parentEntity, seenAlready, relationshipsToConsider);
      } else {
        rootEntity = currentEntity;
View Full Code Here

   
    // collect the children of this entity and put them in order
    Collection rels = findRelationships(layoutEntity, AS_SOURCE, relationships);
    List children = new ArrayList ();
    for (Iterator iter = rels.iterator(); iter.hasNext();) {
      InternalRelationship layoutRel = (InternalRelationship) iter.next();
      InternalNode childEntity = layoutRel.getDestination();
      children.add(childEntity);
    }
   
    if (comparator != null) {
      Collections.sort(children, comparator);
View Full Code Here

TOP

Related Classes of org.eclipse.zest.layouts.dataStructures.InternalRelationship

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.