private Point2D makeControlPoint(final double endX, final double endY, final Circle circle, final int numSegments, int direction) { final double controlPointDistance = (4.0 / 3.0) * Math.tan(Math.PI / (2 * numSegments)) * circle.getRadius(); final Point2D center = new Point2D(circle.getCenterX(), circle.getCenterY()); final Point2D end = new Point2D(endX, endY); Point2D perp = rotate(center, end, direction * Math.PI / 2.); Point2D diff = perp.subtract(end); diff = diff.normalize(); diff = scale(diff, controlPointDistance); return end.add(diff); }
selectionCircle.fillProperty().bind(timePicker.defaultColorProperty()); Circle minCircle = new Circle(selectionCircle.getRadius() / 8); minCircle.setFill(Color.rgb(255, 255, 255, 0.87)); minCircle.setTranslateX(selectionCircle.getRadius() - minCircle.getRadius()); minCircle.setVisible(time.getMinute() % 5 != 0); selectedMinLabel.textProperty().addListener((o, oldVal, newVal) -> { pointerGroup.getChildren().add(minsPointer); pointerGroup.setTranslateX((-contentCircleRadius + shift) / 2); minsPointerRotate = new Rotate(0, contentCircleRadius - shift, selectionCircle.getRadius()); pointerGroup.getTransforms().add(minsPointerRotate); double radius = contentCircleRadius - shift - selectionCircle.getRadius(); for (int i = 0; i < 12; i++) { StackPane labelContainer = new StackPane(); double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize);
pointerGroup.getChildren().add(hoursPointer); pointerGroup.setTranslateX((-contentCircleRadius + shift) / 2); hoursPointerRotate = new Rotate(0, contentCircleRadius - shift, selectionCircle.getRadius()); pointerRotate.set(hoursPointerRotate); pointerGroup.getTransforms().add(hoursPointerRotate); pointer24HourGroup.getChildren().add(_24HoursPointer); pointer24HourGroup.setTranslateX(((-contentCircleRadius + shift) / 2) + (_24HourShift / 2)); _24HourHoursPointerRotate = new Rotate(0, contentCircleRadius - shift - _24HourShift, selectionCircle.getRadius()); _24HourPointerRotate.set(_24HourHoursPointerRotate); pointer24HourGroup.getTransforms().add(_24HourHoursPointerRotate); double radius = contentCircleRadius - shift - selectionCircle.getRadius(); for (int i = 0; i < 12; i++) { double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize); double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize);
timeValue; if (_24HourView) { if (Point2D.distance(0, 0, dx, dy) >= (contentCircleRadius - shift - (2 * selectionCircle.getRadius()))) { hoursContent.getChildren().get(1).setVisible(false); hoursContent.getChildren().get(0).setVisible(true);
private Point2D makeControlPoint(final double endX, final double endY, final Circle circle, final int numSegments, int direction) { final double controlPointDistance = (4.0 / 3.0) * Math.tan(Math.PI / (2 * numSegments)) * circle.getRadius(); final Point2D center = new Point2D(circle.getCenterX(), circle.getCenterY()); final Point2D end = new Point2D(endX, endY); Point2D perp = rotate(center, end, direction * Math.PI / 2.); Point2D diff = perp.subtract(end); diff = diff.normalize(); diff = scale(diff, controlPointDistance); return end.add(diff); }
protected void initSenderAndReceiver() { receiverConnectorUI = new Circle(15); final VNode sender = getSender().getNode(); final FXFlowNodeSkin senderSkin = (FXFlowNodeSkin) getController(). getNodeSkinLookup().getById(skinFactory, sender.getId()); senderShape = senderSkin.getConnectorShape(getSender()); final Node senderNode = senderShape.getNode(); senderConnectorUI = senderShape; receiverConnectorUI.setLayoutX(senderNode.getLayoutX() +receiverConnectorUI.getRadius()); receiverConnectorUI.setLayoutY(senderNode.getLayoutY() +receiverConnectorUI.getRadius()); }
selectionCircle.fillProperty().bind(timePicker.defaultColorProperty()); Circle minCircle = new Circle(selectionCircle.getRadius() / 8); minCircle.setFill(Color.rgb(255, 255, 255, 0.87)); minCircle.setTranslateX(selectionCircle.getRadius() - minCircle.getRadius()); minCircle.setVisible(time.getMinute() % 5 != 0); selectedMinLabel.textProperty().addListener((o, oldVal, newVal) -> { pointerGroup.getChildren().add(minsPointer); pointerGroup.setTranslateX((-contentCircleRadius + shift) / 2); minsPointerRotate = new Rotate(0, contentCircleRadius - shift, selectionCircle.getRadius()); pointerGroup.getTransforms().add(minsPointerRotate); double radius = contentCircleRadius - shift - selectionCircle.getRadius(); for (int i = 0; i < 12; i++) { StackPane labelContainer = new StackPane(); double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize);
pointerGroup.getChildren().add(hoursPointer); pointerGroup.setTranslateX((-contentCircleRadius + shift) / 2); hoursPointerRotate = new Rotate(0, contentCircleRadius - shift, selectionCircle.getRadius()); pointerRotate.set(hoursPointerRotate); pointerGroup.getTransforms().add(hoursPointerRotate); pointer24HourGroup.getChildren().add(_24HoursPointer); pointer24HourGroup.setTranslateX(((-contentCircleRadius + shift) / 2) + (_24HourShift / 2)); _24HourHoursPointerRotate = new Rotate(0, contentCircleRadius - shift - _24HourShift, selectionCircle.getRadius()); _24HourPointerRotate.set(_24HourHoursPointerRotate); pointer24HourGroup.getTransforms().add(_24HourHoursPointerRotate); double radius = contentCircleRadius - shift - selectionCircle.getRadius(); for (int i = 0; i < 12; i++) { double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize); double labelSize = (selectionCircle.getRadius() / Math.sqrt(2)) * 2; labelContainer.setMinSize(labelSize, labelSize);
targetRadius = ((Circle) target).getRadius(); } else if (target instanceof ConnectorShape) { targetRadius = ((ConnectorShape) target).getRadius();
timeValue; if (_24HourView) { if (distance(0, 0, dx, dy) >= (contentCircleRadius - shift - (2 * selectionCircle.getRadius()))) { hoursContent.getChildren().get(1).setVisible(false); hoursContent.getChildren().get(0).setVisible(true);