use of javafx.animation.SequentialTransition in project tilesfx by HanSolo.
the class SmoothAreaChartTileSkin method initGraphics.
// ******************** Initialization ************************************
@Override
protected void initGraphics() {
super.initGraphics();
chartEventListener = e -> handleData();
chartDataListener = c -> {
while (c.next()) {
if (c.wasAdded()) {
c.getAddedSubList().forEach(addedItem -> addedItem.addChartDataEventListener(chartEventListener));
} else if (c.wasRemoved()) {
c.getRemoved().forEach(removedItem -> removedItem.removeChartDataEventListener(chartEventListener));
}
}
handleData();
};
clickHandler = e -> select(e);
endOfTransformationHandler = e -> selectorTooltip.hide();
smoothing = tile.isSmoothing();
titleText = new Text();
titleText.setFill(tile.getTitleColor());
Helper.enableNode(titleText, !tile.getTitle().isEmpty());
fillClip = new Rectangle(0, 0, PREFERRED_WIDTH, PREFERRED_HEIGHT);
strokeClip = new Rectangle(0, 0, PREFERRED_WIDTH, PREFERRED_HEIGHT);
points = new ArrayList<>();
fillPath = new Path();
fillPath.setStroke(null);
fillPath.setClip(fillClip);
strokePath = new Path();
strokePath.setFill(null);
strokePath.setStroke(tile.getBarColor());
strokePath.setClip(strokeClip);
strokePath.setMouseTransparent(true);
Helper.enableNode(fillPath, ChartType.AREA == tile.getChartType());
canvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
canvas.setMouseTransparent(true);
ctx = canvas.getGraphicsContext2D();
dataPointsVisible = tile.getDataPointsVisible();
valueText = new Text(String.format(locale, formatString, ((tile.getValue() - minValue) / range * 100)));
valueText.setFill(tile.getValueColor());
valueText.setTextOrigin(VPos.BASELINE);
Helper.enableNode(valueText, tile.isValueVisible());
unitText = new Text(" " + tile.getUnit());
unitText.setFill(tile.getUnitColor());
unitText.setTextOrigin(VPos.BASELINE);
Helper.enableNode(unitText, !tile.getUnit().isEmpty());
valueUnitFlow = new TextFlow(valueText, unitText);
valueUnitFlow.setTextAlignment(TextAlignment.RIGHT);
selector = new Circle();
selectorTooltip = new Tooltip("");
selectorTooltip.setWidth(60);
selectorTooltip.setHeight(48);
Tooltip.install(selector, selectorTooltip);
FadeTransition fadeIn = new FadeTransition(Duration.millis(100), selector);
fadeIn.setFromValue(0);
fadeIn.setToValue(1);
FadeTransition fadeOut = new FadeTransition(Duration.millis(100), selector);
fadeOut.setFromValue(1);
fadeOut.setToValue(0);
fadeInFadeOut = new SequentialTransition(fadeIn, new PauseTransition(Duration.millis(3000)), fadeOut);
handleData();
getPane().getChildren().addAll(titleText, fillPath, strokePath, canvas, valueUnitFlow, selector);
}
use of javafx.animation.SequentialTransition in project tilesfx by HanSolo.
the class SmoothedChart method init.
// ******************** Initialization ************************************
private void init() {
_smoothed = true;
_chartType = ChartType.LINE;
_subDivisions = 16;
_snapToTicks = false;
_selectorFillColor = Color.WHITE;
_selectorStrokeColor = Color.RED;
_selectorSize = 10;
_decimals = 2;
_interactive = true;
_tooltipTimeout = 2000;
formatString = "%.2f";
strokePaths = new ArrayList<>();
clickHandler = e -> select(e);
endOfTransformationHandler = e -> selectorTooltip.hide();
seriesListener = change -> {
while (change.next()) {
if (change.wasAdded()) {
change.getAddedSubList().forEach(addedItem -> {
final Series<X, Y> series = addedItem;
final Path strokePath = (Path) ((Group) series.getNode()).getChildren().get(1);
final Path fillPath = (Path) ((Group) series.getNode()).getChildren().get(0);
fillPath.addEventHandler(MouseEvent.MOUSE_PRESSED, clickHandler);
strokePath.addEventHandler(MouseEvent.MOUSE_PRESSED, clickHandler);
strokePaths.add(strokePath);
series.getData().forEach(data -> data.YValueProperty().addListener(o -> layoutPlotChildren()));
});
} else if (change.wasRemoved()) {
change.getRemoved().forEach(removedItem -> {
final Series<X, Y> series = removedItem;
final Path strokePath = (Path) ((Group) series.getNode()).getChildren().get(1);
final Path fillPath = (Path) ((Group) series.getNode()).getChildren().get(0);
fillPath.removeEventHandler(MouseEvent.MOUSE_PRESSED, clickHandler);
strokePath.removeEventHandler(MouseEvent.MOUSE_PRESSED, clickHandler);
strokePaths.remove(strokePath);
});
}
}
};
// Add selector to chart
selector = new Circle();
selector.setFill(_selectorFillColor);
selector.setStroke(_selectorStrokeColor);
selector.setOpacity(0);
selectorTooltip = new Tooltip("");
Tooltip.install(selector, selectorTooltip);
FadeTransition fadeIn = new FadeTransition(Duration.millis(100), selector);
fadeIn.setFromValue(0);
fadeIn.setToValue(1);
timeBeforeFadeOut = new PauseTransition(Duration.millis(_tooltipTimeout));
FadeTransition fadeOut = new FadeTransition(Duration.millis(100), selector);
fadeOut.setFromValue(1);
fadeOut.setToValue(0);
fadeInFadeOut = new SequentialTransition(fadeIn, timeBeforeFadeOut, fadeOut);
fadeInFadeOut.setOnFinished(endOfTransformationHandler);
chartPlotBackground = getChartPlotBackground();
chartPlotBackground.widthProperty().addListener(o -> resizeSelector());
chartPlotBackground.heightProperty().addListener(o -> resizeSelector());
chartPlotBackground.layoutYProperty().addListener(o -> resizeSelector());
Path horizontalGridLines = getHorizontalGridLines();
if (null != horizontalGridLines) {
horizontalGridLines.setMouseTransparent(true);
}
Path verticalGridLines = getVerticalGridLines();
if (null != verticalGridLines) {
verticalGridLines.setMouseTransparent(true);
}
getChartChildren().addAll(selector);
}
use of javafx.animation.SequentialTransition in project Board-Instrumentation-Framework by intel.
the class GaugeSkin method fadeBackToInteractive.
private void fadeBackToInteractive() {
FadeTransition fadeUnitOut = new FadeTransition(Duration.millis(425), unitText);
fadeUnitOut.setFromValue(1.0);
fadeUnitOut.setToValue(0.0);
FadeTransition fadeValueOut = new FadeTransition(Duration.millis(425), valueText);
fadeValueOut.setFromValue(1.0);
fadeValueOut.setToValue(0.0);
PauseTransition pause = new PauseTransition(Duration.millis(50));
FadeTransition fadeUnitIn = new FadeTransition(Duration.millis(425), unitText);
fadeUnitIn.setFromValue(0.0);
fadeUnitIn.setToValue(1.0);
FadeTransition fadeValueIn = new FadeTransition(Duration.millis(425), valueText);
fadeValueIn.setFromValue(0.0);
fadeValueIn.setToValue(1.0);
ParallelTransition parallelIn = new ParallelTransition(fadeUnitIn, fadeValueIn);
ParallelTransition parallelOut = new ParallelTransition(fadeUnitOut, fadeValueOut);
parallelOut.setOnFinished(event -> {
unitText.setText("Interactive");
valueText.setText("");
resizeText();
});
SequentialTransition sequence = new SequentialTransition(parallelOut, pause, parallelIn);
sequence.play();
}
Aggregations