use of org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Width in project kie-wb-common by kiegroup.
the class AbstractNodeBuilder method setSize.
protected void setSize(final BuilderContext context, final T node, final double width, final double height) {
Object definition = node.getContent().getDefinition();
Width w = null;
Height h = null;
Set<?> properties = context.getDefinitionManager().adapters().forDefinition().getProperties(definition);
if (null != properties) {
// Look for w/h or radius and set the values.
for (Object property : properties) {
if (property instanceof Radius) {
Radius radius = (Radius) property;
double r = getRadius(width, height);
radius.setValue(r);
break;
}
if (property instanceof Width) {
w = (Width) property;
w.setValue(width);
if (h != null) {
break;
}
}
if (property instanceof Height) {
h = (Height) property;
h.setValue(height);
if (w != null) {
break;
}
}
}
}
}
use of org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Width in project kie-wb-common by kiegroup.
the class CustomTaskShapeViewHandlerTest method init.
@Before
@SuppressWarnings("unchecked")
public void init() {
task = new CustomTask();
task.setName(WID_ID);
task.setDimensionsSet(new RectangleDimensionsSet());
width = spy(new Width(0d));
height = spy(new Height(0d));
task.getDimensionsSet().setWidth(width);
task.getDimensionsSet().setHeight(height);
when(registry.items()).thenReturn(Collections.singleton(DEF));
when(registry.get(eq(WID_ID))).thenReturn(DEF);
when(view.getChildren()).thenReturn(Collections.singletonList(iconSVGPrimiite));
when(iconSVGPrimiite.getId()).thenReturn(CustomTaskShapeViewHandler.WID_ICON_ID);
when(iconSVGPrimiite.get()).thenReturn(icon);
when(iconSVGPrimiite.getPrimitiveId()).thenReturn(CustomTaskShapeViewHandler.WID_ICON_ID);
when(icon.getID()).thenReturn(CustomTaskShapeViewHandler.WID_ICON_ID);
when(icon.getImageProxy()).thenReturn(imageProxy);
when(view.getPrimitive()).thenReturn(iconSVGPrimiite);
when(icon.getAttributes()).thenReturn(svgAttr);
when(svgAttr.getHeight()).thenReturn(HEIGHT);
when(svgAttr.getWidth()).thenReturn(WIDTH);
this.tested = new CustomTaskShapeViewHandler(() -> registry);
}
use of org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Width in project kie-wb-common by kiegroup.
the class ProcessPostConverter method adjustLane.
private static void adjustLane(BpmnNode lane, Padding padding) {
if (lane.hasChildren()) {
ViewPort viewPort = ViewPort.of(lane, false);
Bounds laneBounds = lane.value().getContent().getBounds();
Bound laneUl = laneBounds.getUpperLeft();
Bound laneLr = laneBounds.getLowerRight();
laneUl.setX(viewPort.getUpperLeftX() - padding.getLeft());
laneUl.setY(viewPort.getUpperLeftY() - padding.getTop());
laneLr.setX(viewPort.getLowerRightX() + padding.getRight());
laneLr.setY(viewPort.getLowerRightY() + padding.getBottom());
RectangleDimensionsSet laneRectangle = ((Lane) lane.value().getContent().getDefinition()).getDimensionsSet();
laneRectangle.setWidth(new Width(laneBounds.getWidth()));
laneRectangle.setHeight(new Height(laneBounds.getHeight()));
}
}
use of org.kie.workbench.common.stunner.bpmn.definition.property.dimensions.Width in project kie-wb-common by kiegroup.
the class ProcessPostConverter method resizeSubProcess.
private void resizeSubProcess(BpmnNode subProcess) {
if (subProcess.hasChildren()) {
ViewPort viewPort = ViewPort.of(subProcess, true);
double leftPadding = viewPort.getUpperLeftX();
double topPadding = viewPort.getUpperLeftY();
double width = viewPort.getLowerRightX() + leftPadding;
double height = viewPort.getLowerRightY() + topPadding;
Bounds subProcessBounds = subProcess.value().getContent().getBounds();
Bound subProcessUl = subProcessBounds.getUpperLeft();
Bound subProcessLr = subProcessBounds.getLowerRight();
Bounds subProcessOriginalBounds = Bounds.create(subProcessUl.getX(), subProcessUl.getY(), subProcessLr.getX(), subProcessLr.getY());
double originalWidth = subProcessBounds.getWidth();
double originalHeight = subProcessBounds.getHeight();
subProcessLr.setX(subProcessUl.getX() + width);
subProcessLr.setY(subProcessUl.getY() + height);
RectangleDimensionsSet subProcessRectangle = ((BaseSubprocess) subProcess.value().getContent().getDefinition()).getDimensionsSet();
subProcessRectangle.setWidth(new Width(width));
subProcessRectangle.setHeight(new Height(height));
context.setResized(subProcess, true);
double widthFactor = width / originalWidth;
double heightFactor = height / originalHeight;
// incoming connections has the target point relative to subProcess so they needs to be scaled.
inEdges(subProcess.getParent(), subProcess).forEach(edge -> scale(edge.getTargetConnection().getLocation(), widthFactor, heightFactor));
// outgoing connections has source point relative to the subProcess so they needs to be scaled.
outEdges(subProcess.getParent(), subProcess).forEach(edge -> scale(edge.getSourceConnection().getLocation(), widthFactor, heightFactor));
// boundary elements are relative to the target subProcess so they needs to be scaled.
dockedNodes(subProcess.getParent(), subProcess).forEach(node -> scaleBoundaryEventPosition(node, subProcessOriginalBounds, subProcessBounds, widthFactor, heightFactor));
}
}
Aggregations