use of eu.hansolo.enzo.common.Marker in project Board-Instrumentation-Framework by intel.
the class DemoGauge method init.
@Override
public void init() {
control = GaugeBuilder.create().prefSize(400, 400).animated(false).startAngle(330).angleRange(300).minValue(0).maxValue(100).sectionsVisible(true).sections(new Section(0, 15), new Section(15, 25), new Section(25, 35)).areas(new Section(25, 35, Color.rgb(255, 0, 0, 0.5))).majorTickSpace(10).plainValue(false).tickLabelOrientation(Gauge.TickLabelOrientation.HORIZONTAL).threshold(70).thresholdVisible(true).minMeasuredValueVisible(true).maxMeasuredValueVisible(true).title("Title").unit("Unit").build();
// control.setStyle("-tick-label-fill: blue;");
// control.setMinorTickSpaceOne(2);
// control.setHistogramEnabled(true);
// control.setOnThresholdExceeded(observable -> System.out.println("Threshold exceeded") );
// control.setOnThresholdUnderrun(observable -> System.out.println("Threshold underrun"));
marker0 = new Marker(25);
// marker0.setOnMarkerExceeded(observable -> System.out.println("Marker exceeded"));
// marker0.setOnMarkerUnderrun(observable -> System.out.println("Marker underrun"));
control.addMarker(marker0);
control.setMarkerFill0(Color.RED);
lastTimerCall = System.nanoTime() + 3_000_000_000l;
timer = new AnimationTimer() {
@Override
public void handle(long now) {
if (now > lastTimerCall + 2_000_000_000l) {
control.setValue(RND.nextDouble() * (control.getMaxValue() - control.getMinValue()) + control.getMinValue());
System.out.println(control.getValue());
lastTimerCall = now;
}
}
};
}
use of eu.hansolo.enzo.common.Marker in project Board-Instrumentation-Framework by intel.
the class DemoRadialBargraph method init.
@Override
public void init() {
control = RadialBargraphBuilder.create().title("Enzo").unit("°C").markers(new Marker(40)).threshold(25).sections(new Section(60, 80, Color.rgb(255, 255, 0, 0.5))).thresholdVisible(true).build();
control.setBarGradientEnabled(true);
List<Stop> stops = new ArrayList<>();
stops.add(new Stop(0.0, Color.BLUE));
// stops.add(new Stop(0.31, Color.CYAN));
// stops.add(new Stop(0.5, Color.LIME));
// stops.add(new Stop(0.69, Color.YELLOW));
stops.add(new Stop(1.0, Color.RED));
control.setBarGradient(stops);
lastTimerCall = System.nanoTime() + 2_000_000_000l;
timer = new AnimationTimer() {
@Override
public void handle(long now) {
if (now > lastTimerCall + 5_000_000_000l) {
control.setValue(RND.nextDouble() * 100);
lastTimerCall = now;
}
}
};
}
use of eu.hansolo.enzo.common.Marker in project Board-Instrumentation-Framework by intel.
the class GaugeSkin method registerListeners.
private void registerListeners() {
getSkinnable().widthProperty().addListener(observable -> handleControlPropertyChanged("RESIZE"));
getSkinnable().heightProperty().addListener(observable -> handleControlPropertyChanged("RESIZE"));
getSkinnable().minMeasuredValueProperty().addListener(observable -> handleControlPropertyChanged("MIN_MEASURED_VALUE"));
getSkinnable().minMeasuredValueVisibleProperty().addListener(observable -> handleControlPropertyChanged("MIN_MEASURED_VALUE_VISIBLE"));
getSkinnable().maxMeasuredValueProperty().addListener(observable -> handleControlPropertyChanged("MAX_MEASURED_VALUE"));
getSkinnable().maxMeasuredValueVisibleProperty().addListener(observable -> handleControlPropertyChanged("MAX_MEASURED_VALUE_VISIBLE"));
getSkinnable().tickLabelOrientationProperty().addListener(observable -> handleControlPropertyChanged("RESIZE"));
getSkinnable().needleTypeProperty().addListener(observable -> handleControlPropertyChanged("NEEDLE_TYPE"));
getSkinnable().needleColorProperty().addListener(observable -> handleControlPropertyChanged("NEEDLE_COLOR"));
getSkinnable().animatedProperty().addListener(observable -> handleControlPropertyChanged("ANIMATED"));
getSkinnable().thresholdProperty().addListener(observable -> handleControlPropertyChanged("THRESHOLD"));
getSkinnable().thresholdVisibleProperty().addListener(observable -> handleControlPropertyChanged("THRESHOLD_VISIBLE"));
getSkinnable().angleRangeProperty().addListener(observable -> handleControlPropertyChanged("ANGLE_RANGE"));
getSkinnable().numberFormatProperty().addListener(observable -> handleControlPropertyChanged("RECALC"));
getSkinnable().plainValueProperty().addListener(observable -> handleControlPropertyChanged("PLAIN_VALUE"));
getSkinnable().histogramEnabledProperty().addListener(observable -> handleControlPropertyChanged("HISTOGRAM"));
getSkinnable().dropShadowEnabledProperty().addListener(observable -> handleControlPropertyChanged("DROP_SHADOW"));
getSkinnable().interactiveProperty().addListener(observable -> handleControlPropertyChanged("INTERACTIVE"));
getSkinnable().getSections().addListener((ListChangeListener<Section>) change -> handleControlPropertyChanged("CANVAS_REFRESH"));
getSkinnable().getAreas().addListener((ListChangeListener<Section>) change -> handleControlPropertyChanged("CANVAS_REFRESH"));
getSkinnable().getMarkers().addListener((MapChangeListener<Marker, Rotate>) change -> handleControlPropertyChanged("MARKER"));
getSkinnable().markersVisibleProperty().addListener(observable -> handleControlPropertyChanged("MARKER"));
getSkinnable().sectionsVisibleProperty().addListener(observable -> handleControlPropertyChanged("CANVAS_REFRESH"));
getSkinnable().areasVisibleProperty().addListener(observable -> handleControlPropertyChanged("CANVAS_REFRESH"));
getSkinnable().customKnobClickHandlerProperty().addListener(observable -> handleControlPropertyChanged("CUSTOM_KNOB_CLICK_HANDLER"));
getSkinnable().valueProperty().addListener((OV, OLD_VALUE, NEW_VALUE) -> {
withinSpeedLimit = !(Instant.now().minusMillis((long) getSkinnable().getAnimationDuration()).isBefore(lastCall));
lastCall = Instant.now();
oldValue = OLD_VALUE.doubleValue();
rotateNeedle();
});
getSkinnable().minValueProperty().addListener((OV, OLD_VALUE, NEW_VALUE) -> {
angleStep = getSkinnable().getAngleRange() / (getSkinnable().getMaxValue() - NEW_VALUE.doubleValue());
needleRotate.setAngle((180 - getSkinnable().getStartAngle()) + (getSkinnable().getValue() - NEW_VALUE.doubleValue()) * angleStep);
if (getSkinnable().getValue() < NEW_VALUE.doubleValue()) {
getSkinnable().setValue(NEW_VALUE.doubleValue());
oldValue = NEW_VALUE.doubleValue();
}
});
getSkinnable().maxValueProperty().addListener((OV, OLD_VALUE, NEW_VALUE) -> {
angleStep = getSkinnable().getAngleRange() / (NEW_VALUE.doubleValue() - getSkinnable().getMinValue());
needleRotate.setAngle((180 - getSkinnable().getStartAngle()) + (getSkinnable().getValue() - getSkinnable().getMinValue()) * angleStep);
if (getSkinnable().getValue() > NEW_VALUE.doubleValue()) {
getSkinnable().setValue(NEW_VALUE.doubleValue());
oldValue = NEW_VALUE.doubleValue();
}
});
getSkinnable().limitProperty().addListener(observable -> handleControlPropertyChanged("LIMIT"));
needleRotate.angleProperty().addListener(observable -> handleControlPropertyChanged("ANGLE"));
if (null == getSkinnable().getCustomKnobClickHandler()) {
knob.setOnMousePressed(event -> {
timeline.stop();
needleRotate.setAngle(180 - getSkinnable().getStartAngle() + (getSkinnable().getValue() - getSkinnable().getMinValue()) * angleStep);
getSkinnable().setInteractive(!getSkinnable().isInteractive());
});
} else {
knob.setOnMousePressed(getSkinnable().getCustomKnobClickHandler());
}
minMeasuredValue.setOnMousePressed(mouseEventHandler);
minMeasuredValue.setOnMouseReleased(mouseEventHandler);
maxMeasuredValue.setOnMousePressed(mouseEventHandler);
maxMeasuredValue.setOnMouseReleased(mouseEventHandler);
threshold.setOnMousePressed(mouseEventHandler);
threshold.setOnMouseDragged(mouseEventHandler);
threshold.setOnMouseReleased(mouseEventHandler);
for (Marker marker : getSkinnable().getMarkers().keySet()) {
marker.setOnMousePressed(mouseEventHandler);
marker.setOnMouseDragged(mouseEventHandler);
marker.setOnMouseReleased(mouseEventHandler);
}
}
use of eu.hansolo.enzo.common.Marker in project Board-Instrumentation-Framework by intel.
the class GaugeSkin method handleMouseEvent.
private void handleMouseEvent(final MouseEvent MOUSE_EVENT) {
final Object SRC = MOUSE_EVENT.getSource();
final EventType TYPE = MOUSE_EVENT.getEventType();
if (getSkinnable().isInteractive() && SRC.equals(threshold)) {
if (MouseEvent.MOUSE_PRESSED == TYPE) {
unitText.setText("Threshold");
valueText.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", getSkinnable().getThreshold()));
resizeText();
} else if (MouseEvent.MOUSE_DRAGGED == TYPE) {
Point2D point = getSkinnable().sceneToLocal(MOUSE_EVENT.getSceneX(), MOUSE_EVENT.getSceneY());
touchRotate(point.getX(), point.getY(), thresholdRotate);
} else if (MouseEvent.MOUSE_RELEASED == TYPE) {
getSkinnable().setThreshold(Double.parseDouble(valueText.getText()));
fadeBackToInteractive();
}
} else if (getSkinnable().isInteractive() && SRC instanceof Marker) {
if (MouseEvent.MOUSE_PRESSED == TYPE) {
unitText.setText(((Marker) SRC).getText());
valueText.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", ((Marker) SRC).getValue()));
resizeText();
} else if (MouseEvent.MOUSE_DRAGGED == TYPE) {
Point2D point = getSkinnable().sceneToLocal(MOUSE_EVENT.getSceneX(), MOUSE_EVENT.getSceneY());
touchRotate(point.getX(), point.getY(), getSkinnable().getMarkers().get(SRC));
} else if (MouseEvent.MOUSE_RELEASED == TYPE) {
((Marker) SRC).setValue(Double.parseDouble(valueText.getText()));
fadeBackToInteractive();
}
} else if (getSkinnable().isInteractive() && SRC.equals(minMeasuredValue)) {
if (MouseEvent.MOUSE_PRESSED == TYPE) {
unitText.setText("Min");
valueText.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", getSkinnable().getMinMeasuredValue()));
resizeText();
} else if (MouseEvent.MOUSE_RELEASED == TYPE) {
fadeBackToInteractive();
}
} else if (getSkinnable().isInteractive() && SRC.equals(maxMeasuredValue)) {
if (MouseEvent.MOUSE_PRESSED == TYPE) {
unitText.setText("Max");
valueText.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", getSkinnable().getMaxMeasuredValue()));
resizeText();
} else if (MouseEvent.MOUSE_RELEASED == TYPE) {
fadeBackToInteractive();
}
}
}
use of eu.hansolo.enzo.common.Marker in project Board-Instrumentation-Framework by intel.
the class RadialBargraphSkin method checkForRemovedMarkers.
// ******************** Private Methods ***********************************
private void checkForRemovedMarkers() {
markersToRemove.clear();
for (Node node : pane.getChildren()) {
if (node instanceof Marker) {
if (getSkinnable().getMarkers().keySet().contains(node))
continue;
node.setManaged(false);
node.removeEventHandler(MouseEvent.MOUSE_PRESSED, mouseEventHandler);
node.removeEventHandler(MouseEvent.MOUSE_DRAGGED, mouseEventHandler);
node.removeEventHandler(MouseEvent.MOUSE_RELEASED, mouseEventHandler);
node.removeEventHandler(TouchEvent.TOUCH_PRESSED, touchEventHandler);
node.removeEventHandler(TouchEvent.TOUCH_MOVED, touchEventHandler);
node.removeEventHandler(TouchEvent.TOUCH_RELEASED, touchEventHandler);
markersToRemove.add(node);
}
}
for (Node node : markersToRemove) pane.getChildren().remove(node);
}
Aggregations