in kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/panel/content/driver/handles/AbstractGenericHandles.java [181:272]
protected void layoutDecoration() {
final Bounds b = getSceneGraphObjectBounds();
final double minX = b.getMinX();
final double minY = b.getMinY();
final double maxX = b.getMaxX();
final double maxY = b.getMaxY();
final double midX = (minX + maxX) / 2.0;
final double midY = (minY + maxY) / 2.0;
final boolean zeroWidth = MathUtils.equals(minX, maxX);
final boolean zeroHeight = MathUtils.equals(minY, maxY);
final boolean snapToPixel = true;
final Point2D pNW, pNE, pSE, pSW;
final Point2D pNN, pEE, pSS, pWW;
if (zeroWidth && zeroHeight) {
pNW = pNE = pSE = pSW =
pNN = pEE = pSS = pWW =
sceneGraphObjectToDecoration(minX, minY, snapToPixel);
} else if (zeroWidth) {
pNW = pNN = pNE =
sceneGraphObjectToDecoration(minX, minY, snapToPixel);
pSW = pSS = pSE =
sceneGraphObjectToDecoration(minX, maxY, snapToPixel);
pEE = pWW =
sceneGraphObjectToDecoration(minX, midY, snapToPixel);
} else if (b.getHeight() == 0) {
pNW = pWW = pSW =
sceneGraphObjectToDecoration(minX, minY, snapToPixel);
pNE = pEE = pSE =
sceneGraphObjectToDecoration(maxX, minY, snapToPixel);
pNN = pSS =
sceneGraphObjectToDecoration(midX, minY, snapToPixel);
} else {
pNW = sceneGraphObjectToDecoration(minX, minY, snapToPixel);
pNE = sceneGraphObjectToDecoration(maxX, minY, snapToPixel);
pSE = sceneGraphObjectToDecoration(maxX, maxY, snapToPixel);
pSW = sceneGraphObjectToDecoration(minX, maxY, snapToPixel);
pNN = sceneGraphObjectToDecoration(midX, minY, snapToPixel);
pEE = sceneGraphObjectToDecoration(maxX, midY, snapToPixel);
pSS = sceneGraphObjectToDecoration(midX, maxY, snapToPixel);
pWW = sceneGraphObjectToDecoration(minX, midY, snapToPixel);
}
moveTo0.setX(pNW.getX());
moveTo0.setY(pNW.getY());
lineTo1.setX(pNE.getX());
lineTo1.setY(pNE.getY());
lineTo2.setX(pSE.getX());
lineTo2.setY(pSE.getY());
lineTo3.setX(pSW.getX());
lineTo3.setY(pSW.getY());
handleNW.setLayoutX(pNW.getX());
handleNW.setLayoutY(pNW.getY());
handleNE.setLayoutX(pNE.getX());
handleNE.setLayoutY(pNE.getY());
handleSE.setLayoutX(pSE.getX());
handleSE.setLayoutY(pSE.getY());
handleSW.setLayoutX(pSW.getX());
handleSW.setLayoutY(pSW.getY());
handleNN.setLayoutX(pNN.getX());
handleNN.setLayoutY(pNN.getY());
handleEE.setLayoutX(pEE.getX());
handleEE.setLayoutY(pEE.getY());
handleSS.setLayoutX(pSS.getX());
handleSS.setLayoutY(pSS.getY());
handleWW.setLayoutX(pWW.getX());
handleWW.setLayoutY(pWW.getY());
final Bounds handlesBounds = computeBounds(pNW, pNE, pSE, pSW);
final int rotation = computeNWHandleRotation(pNW, handlesBounds);
setupCornerHandle(handleNW, rotation + 0);
setupCornerHandle(handleNE, rotation + 90);
setupCornerHandle(handleSE, rotation + 180);
setupCornerHandle(handleSW, rotation + 270);
setupSideHandle(handleNN, rotation + 0);
setupSideHandle(handleEE, rotation + 90);
setupSideHandle(handleSS, rotation + 180);
setupSideHandle(handleWW, rotation + 270);
showHideSideHandle(handleNN, pNW, pNE);
showHideSideHandle(handleEE, pNE, pSE);
showHideSideHandle(handleSS, pSW, pSE);
showHideSideHandle(handleWW, pNW, pSW);
}