use of org.eclipse.gmf.runtime.notation.LayoutConstraint in project statecharts by Yakindu.
the class SetLabelsOffsetOperation method updateGMFLabelsOffset.
/**
* Update the offset ({@link Bounds}) of the labels {@link Node}. This method
* must be called after setting the newPointList and the labelToUpdate. If the
* methods {@link #setLabelsToUpdate(ConnectionEditPart)} or
* {@link #setLabelsToUpdate(ConnectionEditPart, PointList)} are not called,
* this method has no effect.
*/
public void updateGMFLabelsOffset() {
if (labelsWithNewOffset != null) {
// Update Bounds of the three labels Node (Center, Begin and End)
Set<Entry<Node, Point>> entries = labelsWithNewOffset.entrySet();
for (Entry<Node, Point> entry : entries) {
LayoutConstraint layoutConstraint = entry.getKey().getLayoutConstraint();
if (layoutConstraint instanceof Location) {
Location bounds = (Location) layoutConstraint;
bounds.setX(entry.getValue().x);
bounds.setY(entry.getValue().y);
}
}
}
}
use of org.eclipse.gmf.runtime.notation.LayoutConstraint in project statecharts by Yakindu.
the class SetLabelsOffsetOperation method computeGMFLabelOffset.
/**
* Update {@link Bounds} of a label {@link Node}.
*
* @param labelEdgeEditPart
* the editPart of the edge label to be updated
* @param connectionEditPart
* The connection having these labels
*/
private void computeGMFLabelOffset(LabelEditPart labelEditPartToUpdate, ConnectionEditPart connectionEditPart) {
Point newLabelOffset = null;
Node labelNodeToUpdate = (Node) labelEditPartToUpdate.getModel();
if (connectionEditPart.getModel() instanceof Edge) {
PointList oldBendpoints = oldBendPointsList;
if (oldBendpoints == null) {
oldBendpoints = connectionEditPart.getConnectionFigure().getPoints();
}
boolean isEdgeWithObliqueRoutingStyle = isEdgeWithObliqueRoutingStyle(connectionEditPart);
LayoutConstraint layoutConstraint = labelNodeToUpdate.getLayoutConstraint();
if (layoutConstraint instanceof Location) {
Location point = (Location) layoutConstraint;
newLabelOffset = new EdgeLabelQuery(oldBendpoints, newPointList, isEdgeWithObliqueRoutingStyle, new Point(point.getX(), point.getY()), labelEditPartToUpdate.getFigure().getSize(), labelEditPartToUpdate.getKeyPoint(), false).calculateGMFLabelOffset();
}
}
if (newLabelOffset != null) {
labelsWithNewOffset.put(labelNodeToUpdate, newLabelOffset);
}
}
Aggregations