protected void refreshBendpoints() { List<Bendpoint> modelConstraint = ((Connection) getModel()).getBendpoints(); List<RelativeBendpoint> figureConstraint = new ArrayList<RelativeBendpoint>(); for (int i = 0; i < modelConstraint.size(); i++) { ConnectionBendpoint connectionBendpoint = (ConnectionBendpoint) modelConstraint.get(i); RelativeBendpoint rbp = new RelativeBendpoint(getConnectionFigure()); rbp.setRelativeDimensions(connectionBendpoint.getFirstRelativeDimension(), connectionBendpoint.getSecondRelativeDimension()); rbp.setWeight((i + 1) / ((float) modelConstraint.size() + 1)); figureConstraint.add(rbp); } getConnectionFigure().setRoutingConstraint(figureConstraint); }
/** * {@inheritDoc} The refreshVisuals of this {@link EditPart} updates/adds the {@link Bendpoint}s * of a {@link Relation}. The content of this method should only be called when the * compartmenttype/group/rootmodel where this {@link Relation}s parentrolemodel(for the cases * compartmenttype/group) belongs to is the current opened(content of the viewer) * compartmenttype/group/rootmodel. The test of getSource() != null and getTarget() != null is * needed, because it exist cases where this method is called and getSource() or getTarget() * returns null. * */ @Override protected void refreshVisuals() { if ((getSource() != null && getTarget() != null) && (testRootModel() || testGroup() && getSource().getParent().getParent().getParent() instanceof ScalableRootEditPart || getRoot() .getContents() instanceof ORMCompartmentEditPart)) { Connection connection = getConnectionFigure(); connection.setVisible(true); List<RelativePoint> relativePoints = ((Relation) getModel()).getBendpoints(); // the bendpoints are added as RelativeBendpoint, because the position of the bendpoints // must change when the position of the source or target of the relation changes or the the // figure of the content of the viewer has expandable and collapsable elements ArrayList<RelativeBendpoint> figureConstraint = new ArrayList<RelativeBendpoint>(); for (int i = 0; i < relativePoints.size(); i++) { RelativeBendpoint rbp = new RelativeBendpoint(getConnectionFigure()); // p.x = width p.y = height Point pSource = relativePoints.get(i).getDistances().get(0); Point pTarget = relativePoints.get(i).getDistances().get(1); Dimension dim1 = new Dimension(pSource.getX(), pSource.getY()); Dimension dim2 = new Dimension(pTarget.getX(), pTarget.getY()); rbp.setRelativeDimensions(dim1, dim2); figureConstraint.add(rbp); } connection.setRoutingConstraint(figureConstraint); } else { getConnectionFigure().setVisible(false); } }
protected void refreshBendpoints() { NodeConnection conn = (NodeConnection) getModel(); List modelConstraint = conn.getBendpoints(); List figureConstraint = new ArrayList(); for (int i = 0; i < modelConstraint.size(); i++) { ConnectionBendpoint cbp = (ConnectionBendpoint) modelConstraint .get(i); RelativeBendpoint rbp = new RelativeBendpoint(getConnectionFigure()); rbp.setRelativeDimensions(cbp.getFirstRelativeDimension(), cbp .getSecondRelativeDimension()); rbp.setWeight((i + 1) / ((float) modelConstraint.size() + 1)); figureConstraint.add(rbp); } getConnectionFigure().setRoutingConstraint(figureConstraint); }
protected void refreshBendpoints() { ColumnConnection conn = (ColumnConnection) getModel(); List modelConstraint = conn.getBendpoints(); List figureConstraint = new ArrayList(); for (int i = 0; i < modelConstraint.size(); i++) { ConnectionBendpoint cbp = (ConnectionBendpoint) modelConstraint .get(i); RelativeBendpoint rbp = new RelativeBendpoint(getConnectionFigure()); rbp.setRelativeDimensions(cbp.getFirstRelativeDimension(), cbp .getSecondRelativeDimension()); rbp.setWeight((i + 1) / ((float) modelConstraint.size() + 1)); figureConstraint.add(rbp); } getConnectionFigure().setRoutingConstraint(figureConstraint); }