@Override protected double computePrefWidth(double height) { final double left = snappedLeftInset(); final double right = snappedRightInset(); final double aw = snapSize(arrow.prefWidth(-1)); return left + aw + right; }
@Override protected void layoutChildren() { final double top = snappedTopInset(); final double left = snappedLeftInset(); final double bottom = snappedBottomInset(); final double right = snappedRightInset(); final double aw = snapSize(arrow.prefWidth(-1)); final double ah = snapSize(arrow.prefHeight(-1)); final double yPos = snapPosition((getHeight() - (top + bottom + ah)) / 2.0); final double xPos = snapPosition((getWidth() - (left + right + aw)) / 2.0); arrow.resizeRelocate(xPos + left, yPos + top, aw, ah); }
@Override protected double computePrefWidth(double height) { double w = 0; for (Node child : getChildren()) { if (child instanceof Region) { Region region = (Region) child; if (region.getShape() != null) { w = Math.max(w, region.getShape().getLayoutBounds().getMaxX()); } else { w = Math.max(w, region.prefWidth(height)); } } } return w; }
public void update( double closeOffset, double highOffset, double lowOffset, double candleWidth) { openAboveClose = closeOffset > 0; updateStyleClasses(); highLowLine.setStartY(highOffset); highLowLine.setEndY(lowOffset); if (candleWidth == -1) { candleWidth = bar.prefWidth(-1); } if (openAboveClose) { bar.resizeRelocate(-candleWidth / 2, 0, candleWidth, closeOffset); } else { bar.resizeRelocate(-candleWidth / 2, closeOffset, candleWidth, closeOffset * -1); } }