Java Code Examples for javafx.scene.text.Text#setTextOrigin()
The following examples show how to use
javafx.scene.text.Text#setTextOrigin() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: KeyStrokeMotion.java From marathonv5 with Apache License 2.0 | 7 votes |
private void createLetter(String c) { final Text letter = new Text(c); letter.setFill(Color.BLACK); letter.setFont(FONT_DEFAULT); letter.setTextOrigin(VPos.TOP); letter.setTranslateX((getWidth() - letter.getBoundsInLocal().getWidth()) / 2); letter.setTranslateY((getHeight() - letter.getBoundsInLocal().getHeight()) / 2); getChildren().add(letter); // over 3 seconds move letter to random position and fade it out final Timeline timeline = new Timeline(); timeline.getKeyFrames().add( new KeyFrame(Duration.seconds(3), new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { // we are done remove us from scene getChildren().remove(letter); } }, new KeyValue(letter.translateXProperty(), getRandom(0.0f, getWidth() - letter.getBoundsInLocal().getWidth()),INTERPOLATOR), new KeyValue(letter.translateYProperty(), getRandom(0.0f, getHeight() - letter.getBoundsInLocal().getHeight()),INTERPOLATOR), new KeyValue(letter.opacityProperty(), 0f) )); timeline.play(); }
Example 2
Source File: PaneEllipsesDemo.java From phoebus with Eclipse Public License 1.0 | 5 votes |
private final Text createText(String text) { final Text newText = new Text(text); newText.setFont(new Font(20)); newText.setTextOrigin(VPos.CENTER); newText.setTextAlignment(TextAlignment.CENTER); return newText; }
Example 3
Source File: CustomNodeSample.java From marathonv5 with Apache License 2.0 | 5 votes |
public static Node createIconContent() { MyEnsembleNode myNode = new MyEnsembleNode("MyNode"); myNode.setLayoutY(50); MyEnsembleNode parent = new MyEnsembleNode("Parent"); Polygon arrow = createUMLArrow(); arrow.setLayoutY(20); arrow.setLayoutX(25-7.5); Text text = new Text("<<extends>>"); text.setTextOrigin(VPos.TOP); text.setLayoutY(31); text.setLayoutX(30); return new Group(parent, arrow, text, myNode); }
Example 4
Source File: StopWatchSample.java From marathonv5 with Apache License 2.0 | 5 votes |
private Text createDot(String string) { Text text = new Text(string); text.setFill(Color.web("#000000")); text.setFont(FONT); text.setTextOrigin(VPos.TOP); text.setLayoutX(1); text.setLayoutY(-4); return text; }
Example 5
Source File: LeaderBoardItem.java From tilesfx with Apache License 2.0 | 5 votes |
private void initGraphics() { if (Double.compare(getPrefWidth(), 0.0) <= 0 || Double.compare(getPrefHeight(), 0.0) <= 0 || Double.compare(getWidth(), 0.0) <= 0 || Double.compare(getHeight(), 0.0) <= 0) { if (getPrefWidth() > 0 && getPrefHeight() > 0) { setPrefSize(getPrefWidth(), getPrefHeight()); } else { setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); // 11x7 } } state = State.CONSTANT; triangle = new Path(); triangle.setStroke(null); triangle.setFill(state.color); triangle.setRotate(state.angle); nameText = new Text(getName()); nameText.setTextOrigin(VPos.TOP); valueText = new Text(); valueText.setTextOrigin(VPos.TOP); updateValueText(); separator = new Line(); pane = new Pane(triangle, nameText, valueText, separator); pane.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY))); getChildren().setAll(pane); }
Example 6
Source File: AbstractLabelPart.java From gef with Eclipse Public License 2.0 | 5 votes |
/** * Creates the text visual. * * @return The created {@link Text}. */ protected Text createText() { text = new Text(); text.setTextOrigin(VPos.TOP); text.setManaged(false); text.setPickOnBounds(true); // add css class text.getStyleClass().add(CSS_CLASS_LABEL); return text; }
Example 7
Source File: KeyStrokeMotion.java From marathonv5 with Apache License 2.0 | 5 votes |
public LettersPane() { setId("LettersPane"); setPrefSize(480,480); setFocusTraversable(true); setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me) { requestFocus(); me.consume(); } }); setOnKeyPressed(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent ke) { createLetter(ke.getText()); ke.consume(); } }); // create press keys text pressText = new Text("Press Keys"); pressText.setTextOrigin(VPos.TOP); pressText.setFont(new Font(Font.getDefault().getFamily(), 40)); pressText.setLayoutY(5); pressText.setFill(Color.rgb(80, 80, 80)); DropShadow effect = new DropShadow(); effect.setRadius(0); effect.setOffsetY(1); effect.setColor(Color.WHITE); pressText.setEffect(effect); getChildren().add(pressText); }
Example 8
Source File: KeyStrokeMotion.java From netbeans with Apache License 2.0 | 5 votes |
public LettersPane() { setId("LettersPane"); setPrefSize(480,480); setFocusTraversable(true); setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me) { requestFocus(); me.consume(); } }); setOnKeyPressed(new EventHandler<KeyEvent>() { @Override public void handle(KeyEvent ke) { createLetter(ke.getText()); ke.consume(); } }); // create press keys text pressText = new Text("Press Keys"); pressText.setTextOrigin(VPos.TOP); pressText.setFont(new Font(Font.getDefault().getFamily(), 40)); pressText.setLayoutY(5); pressText.setFill(Color.rgb(80, 80, 80)); DropShadow effect = new DropShadow(); effect.setRadius(0); effect.setOffsetY(1); effect.setColor(Color.WHITE); pressText.setEffect(effect); getChildren().add(pressText); }
Example 9
Source File: LeaderBoardItem.java From OEE-Designer with MIT License | 5 votes |
private void initGraphics() { if (Double.compare(getPrefWidth(), 0.0) <= 0 || Double.compare(getPrefHeight(), 0.0) <= 0 || Double.compare(getWidth(), 0.0) <= 0 || Double.compare(getHeight(), 0.0) <= 0) { if (getPrefWidth() > 0 && getPrefHeight() > 0) { setPrefSize(getPrefWidth(), getPrefHeight()); } else { setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); // 11x7 } } state = State.CONSTANT; triangle = new Path(); triangle.setStroke(null); triangle.setFill(state.color); triangle.setRotate(state.angle); nameText = new Text(getName()); nameText.setTextOrigin(VPos.TOP); valueText = new Text(String.format(locale, formatString, getValue())); valueText.setTextOrigin(VPos.TOP); separator = new Line(); pane = new Pane(triangle, nameText, valueText, separator); pane.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY))); getChildren().setAll(pane); }
Example 10
Source File: ClockTileSkin.java From OEE-Designer with MIT License | 5 votes |
@Override protected void initGraphics() { super.initGraphics(); currentValueListener = o -> { if (tile.isRunning()) { return; } // Update time only if clock is not already running updateTime(ZonedDateTime.ofInstant(Instant.ofEpochSecond(tile.getCurrentTime()), ZoneId.of(ZoneId.systemDefault().getId()))); }; timeListener = o -> updateTime(tile.getTime()); timeFormatter = DateTimeFormatter.ofPattern("HH:mm", tile.getLocale()); dateFormatter = DateTimeFormatter.ofPattern("dd MMM YYYY", tile.getLocale()); dayOfWeekFormatter = DateTimeFormatter.ofPattern("EEEE", tile.getLocale()); titleText = new Text(""); titleText.setTextOrigin(VPos.TOP); Helper.enableNode(titleText, !tile.getTitle().isEmpty()); text = new Text(tile.getText()); text.setFill(tile.getUnitColor()); Helper.enableNode(text, tile.isTextVisible()); timeRect = new Rectangle(); timeText = new Text(timeFormatter.format(tile.getTime())); timeText.setTextOrigin(VPos.CENTER); dateText = new Text(dateFormatter.format(tile.getTime())); dayOfWeekText = new Text(dayOfWeekFormatter.format(tile.getTime())); getPane().getChildren().addAll(titleText, text, timeRect, timeText, dateText, dayOfWeekText); }
Example 11
Source File: WhitespaceOverlayFactory.java From markdown-writer-fx with BSD 2-Clause "Simplified" License | 5 votes |
private Text createTextNode(String text, Collection<String> styleClasses, int start, int end) { Text t = new Text(text); t.setTextOrigin(VPos.TOP); t.getStyleClass().add("text"); t.setOpacity(0.3); t.getStyleClass().addAll(styleClasses); t.setUserData(new Range(start, end)); return t; }
Example 12
Source File: StopWatch.java From netbeans with Apache License 2.0 | 5 votes |
private Text createDot(String string) { Text text = new Text(string); text.setFill(Color.web("#000000")); text.setFont(FONT); text.setTextOrigin(VPos.TOP); text.setLayoutX(1); text.setLayoutY(-4); return text; }
Example 13
Source File: CountryTileSkin.java From OEE-Designer with MIT License | 4 votes |
@Override protected void initGraphics() { super.initGraphics(); //poiLocations = FXCollections.observableHashMap(); //chartDataLocations = FXCollections.observableHashMap(); //circleHandlerMap = new HashMap<>(); country = tile.getCountry(); if (null == country) { country = Country.DE; } clickHandler = event -> tile.fireTileEvent(new TileEvent(EventType.SELECTED_CHART_DATA, new ChartData(country.getName(), country.getValue(), country.getColor()))); countryPaths = Helper.getHiresCountryPaths().get(country.name()); countryMinX = Helper.MAP_WIDTH; countryMinY = Helper.MAP_HEIGHT; countryMaxX = 0; countryMaxY = 0; countryPaths.forEach(path -> { path.setFill(tile.getBarColor()); countryMinX = Math.min(countryMinX, path.getBoundsInParent().getMinX()); countryMinY = Math.min(countryMinY, path.getBoundsInParent().getMinY()); countryMaxX = Math.max(countryMaxX, path.getBoundsInParent().getMaxX()); countryMaxY = Math.max(countryMaxY, path.getBoundsInParent().getMaxY()); }); /* tile.getPoiList() .forEach(poi -> { String tooltipText = new StringBuilder(poi.getName()).append("\n") .append(poi.getInfo()) .toString(); Circle circle = new Circle(3, poi.getColor()); circle.setOnMousePressed(e -> poi.fireLocationEvent(new LocationEvent(poi))); Tooltip.install(circle, new Tooltip(tooltipText)); poiLocations.put(poi, circle); }); */ titleText = new Text(); titleText.setFill(tile.getTitleColor()); Helper.enableNode(titleText, !tile.getTitle().isEmpty()); text = new Text(tile.getCountry().getDisplayName()); text.setFill(tile.getTextColor()); Helper.enableNode(text, tile.isTextVisible()); countryGroup = new Group(); countryGroup.getChildren().setAll(countryPaths); countryContainer = new StackPane(); countryContainer.setMinSize(size * 0.9, tile.isTextVisible() ? size * 0.72 : size * 0.795); countryContainer.setMaxSize(size * 0.9, tile.isTextVisible() ? size * 0.72 : size * 0.795); countryContainer.setPrefSize(size * 0.9, tile.isTextVisible() ? size * 0.72 : size * 0.795); countryContainer.getChildren().setAll(countryGroup); 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); valueUnitFlow.setMouseTransparent(true); getPane().getChildren().addAll(titleText, countryContainer, valueUnitFlow, text); //getPane().getChildren().addAll(poiLocations.values()); }
Example 14
Source File: AmpSkin.java From Medusa with Apache License 2.0 | 4 votes |
private void initGraphics() { // Set initial size if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 || Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) { if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) { gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight()); } else { gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); } } ticksAndSectionsCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT); ticksAndSections = ticksAndSectionsCanvas.getGraphicsContext2D(); ledCanvas = new Canvas(); led = ledCanvas.getGraphicsContext2D(); thresholdTooltip = new Tooltip("Threshold\n(" + String.format(locale, formatString, gauge.getThreshold()) + ")"); thresholdTooltip.setTextAlignment(TextAlignment.CENTER); threshold = new Path(); Helper.enableNode(threshold, gauge.isThresholdVisible()); Tooltip.install(threshold, thresholdTooltip); average = new Path(); Helper.enableNode(average, gauge.isAverageVisible()); markerPane = new Pane(); needleRotate = new Rotate(180 - START_ANGLE); needleRotate.setAngle(needleRotate.getAngle() + (gauge.getValue() - oldValue - gauge.getMinValue()) * angleStep); needleMoveTo1 = new MoveTo(); needleCubicCurveTo2 = new CubicCurveTo(); needleCubicCurveTo3 = new CubicCurveTo(); needleCubicCurveTo4 = new CubicCurveTo(); needleLineTo5 = new LineTo(); needleCubicCurveTo6 = new CubicCurveTo(); needleClosePath7 = new ClosePath(); needle = new Path(needleMoveTo1, needleCubicCurveTo2, needleCubicCurveTo3, needleCubicCurveTo4, needleLineTo5, needleCubicCurveTo6, needleClosePath7); needle.setFillRule(FillRule.EVEN_ODD); needle.getTransforms().setAll(needleRotate); dropShadow = new DropShadow(); dropShadow.setColor(Color.rgb(0, 0, 0, 0.25)); dropShadow.setBlurType(BlurType.TWO_PASS_BOX); dropShadow.setRadius(0.015 * PREFERRED_WIDTH); dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH); shadowGroup = new Group(needle); shadowGroup.setEffect(gauge.isShadowsEnabled() ? dropShadow : null); titleText = new Text(gauge.getTitle()); titleText.setTextOrigin(VPos.CENTER); titleText.setFill(gauge.getTitleColor()); Helper.enableNode(titleText, !gauge.getTitle().isEmpty()); unitText = new Text(gauge.getUnit()); unitText.setMouseTransparent(true); unitText.setTextOrigin(VPos.CENTER); lcd = new Rectangle(0.3 * PREFERRED_WIDTH, 0.1 * PREFERRED_HEIGHT); lcd.setArcWidth(0.0125 * PREFERRED_HEIGHT); lcd.setArcHeight(0.0125 * PREFERRED_HEIGHT); lcd.relocate((PREFERRED_WIDTH - lcd.getWidth()) * 0.5, 0.44 * PREFERRED_HEIGHT); Helper.enableNode(lcd, gauge.isLcdVisible() && gauge.isValueVisible()); lcdText = new Label(String.format(locale, "%." + gauge.getDecimals() + "f", gauge.getValue())); lcdText.setAlignment(Pos.CENTER_RIGHT); lcdText.setVisible(gauge.isValueVisible()); // Set initial value angleStep = ANGLE_RANGE / gauge.getRange(); double targetAngle = 180 - START_ANGLE + (gauge.getValue() - gauge.getMinValue()) * angleStep; targetAngle = clamp(180 - START_ANGLE, 180 - START_ANGLE + ANGLE_RANGE, targetAngle); needleRotate.setAngle(targetAngle); lightEffect = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(255, 255, 255, 0.65), 2, 0.0, 0.0, 2.0); foreground = new SVGPath(); foreground.setContent("M 26 26.5 C 26 20.2432 26.2432 20 32.5 20 L 277.5 20 C 283.7568 20 284 20.2432 284 26.5 L 284 143.5 C 284 149.7568 283.7568 150 277.5 150 L 32.5 150 C 26.2432 150 26 149.7568 26 143.5 L 26 26.5 ZM 0 6.7241 L 0 253.2758 C 0 260 0 260 6.75 260 L 303.25 260 C 310 260 310 260 310 253.2758 L 310 6.7241 C 310 0 310 0 303.25 0 L 6.75 0 C 0 0 0 0 0 6.7241 Z"); foreground.setEffect(lightEffect); // Add all nodes pane = new Pane(); pane.getChildren().setAll(ticksAndSectionsCanvas, markerPane, ledCanvas, unitText, lcd, lcdText, shadowGroup, foreground, titleText); getChildren().setAll(pane); }
Example 15
Source File: StockTileSkin.java From OEE-Designer with MIT License | 4 votes |
@Override protected void initGraphics() { super.initGraphics(); averagingListener = o -> handleEvents("AVERAGING_PERIOD"); timeFormatter = DateTimeFormatter.ofPattern("HH:mm", tile.getLocale()); state = State.CONSTANT; if (tile.isAutoScale()) tile.calcAutoScale(); low = tile.getMaxValue(); high = tile.getMinValue(); movingAverage = tile.getMovingAverage(); noOfDatapoints = tile.getAveragingPeriod(); dataList = new LinkedList<>(); // To get smooth lines in the chart we need at least 4 values if (noOfDatapoints < 4) throw new IllegalArgumentException("Please increase the averaging period to a value larger than 3."); graphBounds = new Rectangle(PREFERRED_WIDTH * 0.05, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.9, PREFERRED_HEIGHT * 0.45); titleText = new Text(tile.getTitle()); titleText.setFill(tile.getTitleColor()); Helper.enableNode(titleText, !tile.getTitle().isEmpty()); valueText = new Text(String.format(locale, formatString, tile.getValue())); valueText.setBoundsType(TextBoundsType.VISUAL); valueText.setFill(tile.getValueColor()); Helper.enableNode(valueText, tile.isValueVisible()); valueUnitFlow = new TextFlow(valueText); valueUnitFlow.setTextAlignment(TextAlignment.RIGHT); highText = new Text(); highText.setTextOrigin(VPos.BOTTOM); highText.setFill(tile.getValueColor()); lowText = new Text(); lowText.setTextOrigin(VPos.TOP); lowText.setFill(tile.getValueColor()); text = new Text(tile.getText()); text.setTextOrigin(VPos.TOP); text.setFill(tile.getTextColor()); timeSpanText = new Text(""); timeSpanText.setTextOrigin(VPos.TOP); timeSpanText.setFill(tile.getTextColor()); Helper.enableNode(timeSpanText, !tile.isTextVisible()); referenceLine = new Line(); referenceLine.getStrokeDashArray().addAll(3d, 3d); referenceLine.setVisible(false); pathElements = new ArrayList<>(noOfDatapoints); pathElements.add(0, new MoveTo()); for (int i = 1 ; i < noOfDatapoints ; i++) { pathElements.add(i, new LineTo()); } sparkLine = new Path(); sparkLine.getElements().addAll(pathElements); sparkLine.setFill(null); sparkLine.setStroke(tile.getBarColor()); sparkLine.setStrokeWidth(PREFERRED_WIDTH * 0.0075); sparkLine.setStrokeLineCap(StrokeLineCap.ROUND); sparkLine.setStrokeLineJoin(StrokeLineJoin.ROUND); dot = new Circle(); dot.setFill(tile.getBarColor()); dot.setVisible(false); triangle = new Path(); triangle.setStroke(null); triangle.setFill(state.color); indicatorPane = new StackPane(triangle); changeText = new Label(String.format(locale, "%." + tile.getTickLabelDecimals() + "f", (tile.getCurrentValue() - tile.getReferenceValue()))); changeText.setTextFill(state.color); changeText.setAlignment(Pos.CENTER_RIGHT); changePercentageText = new Text(new StringBuilder().append(String.format(locale, "%." + tile.getTickLabelDecimals() + "f", (tile.getCurrentValue() / tile.getReferenceValue() * 100.0) - 100.0)).append("\u0025").toString()); changePercentageText.setFill(state.color); changePercentageFlow = new TextFlow(indicatorPane, changePercentageText); changePercentageFlow.setTextAlignment(TextAlignment.RIGHT); getPane().getChildren().addAll(titleText, valueUnitFlow, sparkLine, dot, referenceLine, highText, lowText, timeSpanText, text, changeText, changePercentageFlow); }
Example 16
Source File: SparkLineTileSkin.java From OEE-Designer with MIT License | 4 votes |
@Override protected void initGraphics() { super.initGraphics(); averagingListener = o -> handleEvents("AVERAGING"); timeFormatter = DateTimeFormatter.ofPattern("HH:mm", tile.getLocale()); if (tile.isAutoScale()) tile.calcAutoScale(); niceScaleY = new NiceScale(tile.getMinValue(), tile.getMaxValue()); niceScaleY.setMaxTicks(5); tickLineColor = Color.color(tile.getChartGridColor().getRed(), tile.getChartGridColor().getGreen(), tile.getChartGridColor().getBlue(), 0.5); horizontalTickLines = new ArrayList<>(5); tickLabelsY = new ArrayList<>(5); for (int i = 0 ; i < 5 ; i++) { Line hLine = new Line(0, 0, 0, 0); hLine.getStrokeDashArray().addAll(1.0, 2.0); hLine.setStroke(Color.TRANSPARENT); horizontalTickLines.add(hLine); Text tickLabelY = new Text(""); tickLabelY.setFill(Color.TRANSPARENT); tickLabelsY.add(tickLabelY); } gradientLookup = new GradientLookup(tile.getGradientStops()); low = tile.getMaxValue(); high = tile.getMinValue(); stdDeviation = 0; movingAverage = tile.getMovingAverage(); noOfDatapoints = tile.getAveragingPeriod(); dataList = new LinkedList<>(); // To get smooth lines in the chart we need at least 4 values if (noOfDatapoints < 4) throw new IllegalArgumentException("Please increase the averaging period to a value larger than 3."); graphBounds = new Rectangle(PREFERRED_WIDTH * 0.05, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.9, PREFERRED_HEIGHT * 0.45); titleText = new Text(tile.getTitle()); titleText.setFill(tile.getTitleColor()); Helper.enableNode(titleText, !tile.getTitle().isEmpty()); valueText = new Text(String.format(locale, formatString, tile.getValue())); valueText.setFill(tile.getValueColor()); Helper.enableNode(valueText, tile.isValueVisible()); unitText = new Text(tile.getUnit()); unitText.setFill(tile.getUnitColor()); Helper.enableNode(unitText, !tile.getUnit().isEmpty()); valueUnitFlow = new TextFlow(valueText, unitText); valueUnitFlow.setTextAlignment(TextAlignment.RIGHT); averageText = new Text(String.format(locale, formatString, tile.getAverage())); averageText.setFill(Tile.FOREGROUND); Helper.enableNode(averageText, tile.isAverageVisible()); highText = new Text(); highText.setTextOrigin(VPos.BOTTOM); highText.setFill(tile.getValueColor()); lowText = new Text(); lowText.setTextOrigin(VPos.TOP); lowText.setFill(tile.getValueColor()); text = new Text(tile.getText()); text.setTextOrigin(VPos.TOP); text.setFill(tile.getTextColor()); timeSpanText = new Text(""); timeSpanText.setTextOrigin(VPos.TOP); timeSpanText.setFill(tile.getTextColor()); Helper.enableNode(timeSpanText, !tile.isTextVisible()); stdDeviationArea = new Rectangle(); Helper.enableNode(stdDeviationArea, tile.isAverageVisible()); averageLine = new Line(); averageLine.setStroke(Tile.FOREGROUND); averageLine.getStrokeDashArray().addAll(PREFERRED_WIDTH * 0.005, PREFERRED_WIDTH * 0.005); Helper.enableNode(averageLine, tile.isAverageVisible()); pathElements = new ArrayList<>(noOfDatapoints); pathElements.add(0, new MoveTo()); for (int i = 1 ; i < noOfDatapoints ; i++) { pathElements.add(i, new LineTo()); } sparkLine = new Path(); sparkLine.getElements().addAll(pathElements); sparkLine.setFill(null); sparkLine.setStroke(tile.getBarColor()); sparkLine.setStrokeWidth(PREFERRED_WIDTH * 0.0075); sparkLine.setStrokeLineCap(StrokeLineCap.ROUND); sparkLine.setStrokeLineJoin(StrokeLineJoin.ROUND); dot = new Circle(); dot.setFill(tile.getBarColor()); getPane().getChildren().addAll(titleText, valueUnitFlow, stdDeviationArea, averageLine, sparkLine, dot, averageText, highText, lowText, timeSpanText, text); getPane().getChildren().addAll(horizontalTickLines); getPane().getChildren().addAll(tickLabelsY); }
Example 17
Source File: PlainAmpSkin.java From Medusa with Apache License 2.0 | 4 votes |
private void initGraphics() { // Set initial size if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 || Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) { if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) { gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight()); } else { gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); } } ticksAndSectionsCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT); ticksAndSections = ticksAndSectionsCanvas.getGraphicsContext2D(); ledCanvas = new Canvas(); led = ledCanvas.getGraphicsContext2D(); thresholdTooltip = new Tooltip("Threshold\n(" + String.format(locale, formatString, gauge.getThreshold()) + ")"); thresholdTooltip.setTextAlignment(TextAlignment.CENTER); threshold = new Path(); Helper.enableNode(threshold, gauge.isThresholdVisible()); Tooltip.install(threshold, thresholdTooltip); average = new Path(); Helper.enableNode(average, gauge.isAverageVisible()); markerPane = new Pane(); needleRotate = new Rotate(180 - START_ANGLE); needleRotate.setAngle(needleRotate.getAngle() + (gauge.getValue() - oldValue - gauge.getMinValue()) * angleStep); needleMoveTo1 = new MoveTo(); needleCubicCurveTo2 = new CubicCurveTo(); needleCubicCurveTo3 = new CubicCurveTo(); needleCubicCurveTo4 = new CubicCurveTo(); needleLineTo5 = new LineTo(); needleCubicCurveTo6 = new CubicCurveTo(); needleClosePath7 = new ClosePath(); needle = new Path(needleMoveTo1, needleCubicCurveTo2, needleCubicCurveTo3, needleCubicCurveTo4, needleLineTo5, needleCubicCurveTo6, needleClosePath7); needle.setFillRule(FillRule.EVEN_ODD); needle.getTransforms().setAll(needleRotate); dropShadow = new DropShadow(); dropShadow.setColor(Color.rgb(0, 0, 0, 0.25)); dropShadow.setBlurType(BlurType.TWO_PASS_BOX); dropShadow.setRadius(0.015 * PREFERRED_WIDTH); dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH); shadowGroup = new Group(needle); shadowGroup.setEffect(gauge.isShadowsEnabled() ? dropShadow : null); unitText = new Text(gauge.getUnit()); unitText.setMouseTransparent(true); unitText.setTextOrigin(VPos.CENTER); lcd = new Rectangle(0.3 * PREFERRED_WIDTH, 0.1 * PREFERRED_HEIGHT); lcd.setArcWidth(0.0125 * PREFERRED_HEIGHT); lcd.setArcHeight(0.0125 * PREFERRED_HEIGHT); lcd.relocate((PREFERRED_WIDTH - lcd.getWidth()) * 0.5, 0.66 * PREFERRED_HEIGHT); Helper.enableNode(lcd, gauge.isLcdVisible() && gauge.isValueVisible()); lcdText = new Label(String.format(locale, "%." + gauge.getDecimals() + "f", gauge.getValue())); lcdText.setAlignment(Pos.CENTER_RIGHT); lcdText.setVisible(gauge.isValueVisible()); // Set initial value angleStep = ANGLE_RANGE / gauge.getRange(); double targetAngle = 180 - START_ANGLE + (gauge.getValue() - gauge.getMinValue()) * angleStep; targetAngle = clamp(180 - START_ANGLE, 180 - START_ANGLE + ANGLE_RANGE, targetAngle); needleRotate.setAngle(targetAngle); // Add all nodes pane = new Pane(); pane.getChildren().setAll(ticksAndSectionsCanvas, markerPane, ledCanvas, unitText, lcd, lcdText, shadowGroup); getChildren().setAll(pane); }
Example 18
Source File: ColorRegulator.java From regulators with Apache License 2.0 | 4 votes |
private void initGraphics() { dropShadow = new DropShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), PREFERRED_WIDTH * 0.016, 0.0, 0, PREFERRED_WIDTH * 0.028); highlight = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(255, 255, 255, 0.2), PREFERRED_WIDTH * 0.008, 0.0, 0, PREFERRED_WIDTH * 0.008); innerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.2), PREFERRED_WIDTH * 0.008, 0.0, 0, -PREFERRED_WIDTH * 0.008); highlight.setInput(innerShadow); dropShadow.setInput(highlight); Stop[] stops = { new Stop(0.0, Color.rgb(255,255,0)), new Stop(0.125, Color.rgb(255,0,0)), new Stop(0.375, Color.rgb(255,0,255)), new Stop(0.5, Color.rgb(0,0,255)), new Stop(0.625, Color.rgb(0,255,255)), new Stop(0.875, Color.rgb(0,255,0)), new Stop(1.0, Color.rgb(255,255,0)) }; List<Stop> reorderedStops = reorderStops(stops); gradientLookup = new GradientLookup(stops); barGradient = new ConicalGradient(reorderedStops); barArc = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.46, PREFERRED_HEIGHT * 0.46, BAR_START_ANGLE, 0); barArc.setType(ArcType.OPEN); barArc.setStrokeLineCap(StrokeLineCap.ROUND); barArc.setFill(null); barArc.setStroke(barGradient.getImagePattern(new Rectangle(0, 0, PREFERRED_WIDTH, PREFERRED_HEIGHT))); buttonOn = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.46, PREFERRED_HEIGHT * 0.46, -125, 34.75); buttonOn.setFill(null); buttonOn.setStroke(color.get()); buttonOn.setStrokeLineCap(StrokeLineCap.BUTT); buttonOn.setStrokeWidth(PREFERRED_WIDTH * 0.072); buttonOn.setEffect(dropShadow); buttonOff = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.46, PREFERRED_HEIGHT * 0.46, -89.75, 34.75); buttonOff.setFill(null); buttonOff.setStroke(color.get()); buttonOff.setStrokeLineCap(StrokeLineCap.BUTT); buttonOff.setStrokeWidth(PREFERRED_WIDTH * 0.072); buttonOff.setEffect(dropShadow); double center = PREFERRED_WIDTH * 0.5; ring = Shape.subtract(new Circle(center, center, PREFERRED_WIDTH * 0.42), new Circle(center, center, PREFERRED_WIDTH * 0.3)); ring.setFill(color.get()); ring.setEffect(highlight); mainCircle = new Circle(); mainCircle.setFill(color.get().darker().darker()); textOn = new Text("ON"); textOn.setFill(textColor.get()); textOn.setTextOrigin(VPos.CENTER); textOn.setMouseTransparent(true); textOn.setRotate(17); textOff = new Text("OFF"); textOff.setFill(textColor.get()); textOff.setTextOrigin(VPos.CENTER); textOff.setMouseTransparent(true); textOff.setRotate(-17); indicatorRotate = new Rotate(-ANGLE_RANGE * 0.5, center, center); indicatorGlow = new DropShadow(BlurType.TWO_PASS_BOX, getIndicatorColor(), PREFERRED_WIDTH * 0.02, 0.0, 0, 0); indicatorInnerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.5), PREFERRED_WIDTH * 0.008, 0.0, 0, PREFERRED_WIDTH * 0.008); indicatorHighlight = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(255, 255, 255, 0.35), PREFERRED_WIDTH * 0.008, 0.0, 0, -PREFERRED_WIDTH * 0.008); indicatorHighlight.setInput(indicatorInnerShadow); indicator = new Circle(); indicator.setFill(color.get().darker()); indicator.setStroke(color.get().darker().darker()); indicator.setMouseTransparent(true); indicator.getTransforms().add(indicatorRotate); Group indicatorGroup = new Group(indicator); indicatorGroup.setEffect(indicatorHighlight); innerRing = Shape.subtract(new Circle(center, center, PREFERRED_WIDTH * 0.24), new Circle(center, center, PREFERRED_WIDTH * 0.2)); innerRing.setFill(color.get()); currentColorCircle = new Circle(); currentColorCircle.setFill(targetColor.get()); currentColorCircle.setVisible(isOn()); pane = new Pane(barArc, ring, mainCircle, currentColorCircle, innerRing, indicatorGroup, buttonOn, textOn, buttonOff, textOff); pane.setPrefSize(PREFERRED_HEIGHT, PREFERRED_HEIGHT); pane.setBackground(new Background(new BackgroundFill(color.get().darker(), new CornerRadii(1024), Insets.EMPTY))); pane.setEffect(highlight); getChildren().setAll(pane); }
Example 19
Source File: CustomPlainAmpSkin.java From medusademo with Apache License 2.0 | 4 votes |
private void initGraphics() { // Set initial size if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 || Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) { if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) { gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight()); } else { gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT); } } ticksAndSectionsCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT); ticksAndSections = ticksAndSectionsCanvas.getGraphicsContext2D(); ledCanvas = new Canvas(); led = ledCanvas.getGraphicsContext2D(); thresholdTooltip = new Tooltip("Threshold\n(" + String.format(locale, formatString, gauge.getThreshold()) + ")"); thresholdTooltip.setTextAlignment(TextAlignment.CENTER); threshold = new Path(); Helper.enableNode(threshold, gauge.isThresholdVisible()); Tooltip.install(threshold, thresholdTooltip); average = new Path(); Helper.enableNode(average, gauge.isAverageVisible()); markerPane = new Pane(); needleRotate = new Rotate(180 - START_ANGLE); needleRotate.setAngle(needleRotate.getAngle() + (gauge.getValue() - oldValue - gauge.getMinValue()) * angleStep); needleMoveTo1 = new MoveTo(); needleCubicCurveTo2 = new CubicCurveTo(); needleCubicCurveTo3 = new CubicCurveTo(); needleCubicCurveTo4 = new CubicCurveTo(); needleLineTo5 = new LineTo(); needleCubicCurveTo6 = new CubicCurveTo(); needleClosePath7 = new ClosePath(); needle = new Path(needleMoveTo1, needleCubicCurveTo2, needleCubicCurveTo3, needleCubicCurveTo4, needleLineTo5, needleCubicCurveTo6, needleClosePath7); needle.setFillRule(FillRule.EVEN_ODD); needle.getTransforms().setAll(needleRotate); needle.getStyleClass().add("needle"); dropShadow = new DropShadow(); dropShadow.setColor(Color.rgb(0, 0, 0, 0.25)); dropShadow.setBlurType(BlurType.TWO_PASS_BOX); dropShadow.setRadius(0.015 * PREFERRED_WIDTH); dropShadow.setOffsetY(0.015 * PREFERRED_WIDTH); shadowGroup = new Group(needle); shadowGroup.setEffect(gauge.isShadowsEnabled() ? dropShadow : null); shadowGroup.getStyleClass().add("shadow-group"); unitText = new Text(gauge.getUnit()); unitText.setMouseTransparent(true); unitText.setTextOrigin(VPos.CENTER); unitText.getStyleClass().add("unit"); lcd = new Rectangle(0.3 * PREFERRED_WIDTH, 0.1 * PREFERRED_HEIGHT); lcd.setArcWidth(0.0125 * PREFERRED_HEIGHT); lcd.setArcHeight(0.0125 * PREFERRED_HEIGHT); lcd.relocate((PREFERRED_WIDTH - lcd.getWidth()) * 0.5, 0.66 * PREFERRED_HEIGHT); lcd.getStyleClass().add("lcd"); Helper.enableNode(lcd, gauge.isLcdVisible() && gauge.isValueVisible()); lcdText = new Label(String.format(locale, "%." + gauge.getDecimals() + "f", gauge.getValue())); lcdText.setAlignment(Pos.CENTER_RIGHT); lcdText.setVisible(gauge.isValueVisible()); lcdText.getStyleClass().add("lcd-foreground"); // Set initial value angleStep = ANGLE_RANGE / gauge.getRange(); double targetAngle = 180 - START_ANGLE + (gauge.getValue() - gauge.getMinValue()) * angleStep; targetAngle = clamp(180 - START_ANGLE, 180 - START_ANGLE + ANGLE_RANGE, targetAngle); needleRotate.setAngle(targetAngle); // Add all nodes pane = new Pane(); pane.getChildren().setAll(ticksAndSectionsCanvas, markerPane, ledCanvas, unitText, lcd, lcdText, shadowGroup); pane.getStyleClass().add("background-pane"); getChildren().setAll(pane); }
Example 20
Source File: Level.java From marathonv5 with Apache License 2.0 | 4 votes |
private void initInfoPanel() { infoPanel = new Group(); roundCaption = new Text(); roundCaption.setText("ROUND"); roundCaption.setTextOrigin(VPos.TOP); roundCaption.setFill(Color.rgb(51, 102, 51)); Font f = new Font("Impact", 18); roundCaption.setFont(f); roundCaption.setTranslateX(30); roundCaption.setTranslateY(128); round = new Text(); round.setTranslateX(roundCaption.getTranslateX() + roundCaption.getBoundsInLocal().getWidth() + Config.INFO_TEXT_SPACE); round.setTranslateY(roundCaption.getTranslateY()); round.setText(levelNumber + ""); round.setTextOrigin(VPos.TOP); round.setFont(f); round.setFill(Color.rgb(0, 204, 102)); scoreCaption = new Text(); scoreCaption.setText("SCORE"); scoreCaption.setFill(Color.rgb(51, 102, 51)); scoreCaption.setTranslateX(30); scoreCaption.setTranslateY(164); scoreCaption.setTextOrigin(VPos.TOP); scoreCaption.setFont(f); score = new Text(); score.setTranslateX(scoreCaption.getTranslateX() + scoreCaption.getBoundsInLocal().getWidth() + Config.INFO_TEXT_SPACE); score.setTranslateY(scoreCaption.getTranslateY()); score.setFill(Color.rgb(0, 204, 102)); score.setTextOrigin(VPos.TOP); score.setFont(f); score.setText(""); livesCaption = new Text(); livesCaption.setText("LIFE"); livesCaption.setTranslateX(30); livesCaption.setTranslateY(200); livesCaption.setFill(Color.rgb(51, 102, 51)); livesCaption.setTextOrigin(VPos.TOP); livesCaption.setFont(f); Color INFO_LEGEND_COLOR = Color.rgb(0, 114, 188); int infoWidth = Config.SCREEN_WIDTH - Config.FIELD_WIDTH; Rectangle black = new Rectangle(); black.setWidth(infoWidth); black.setHeight(Config.SCREEN_HEIGHT); black.setFill(Color.BLACK); ImageView verLine = new ImageView(); verLine.setImage(new Image(Level.class.getResourceAsStream(Config.IMAGE_DIR+"vline.png"))); verLine.setTranslateX(3); ImageView logo = new ImageView(); logo.setImage(Config.getImages().get(Config.IMAGE_LOGO)); logo.setTranslateX(30); logo.setTranslateY(30); Text legend = new Text(); legend.setTranslateX(30); legend.setTranslateY(310); legend.setText("LEGEND"); legend.setFill(INFO_LEGEND_COLOR); legend.setTextOrigin(VPos.TOP); legend.setFont(new Font("Impact", 18)); infoPanel.getChildren().addAll(black, verLine, logo, roundCaption, round, scoreCaption, score, livesCaption, legend); for (int i = 0; i < Bonus.COUNT; i++) { Bonus bonus = new Bonus(i); Text text = new Text(); text.setTranslateX(100); text.setTranslateY(350 + i * 40); text.setText(Bonus.NAMES[i]); text.setFill(INFO_LEGEND_COLOR); text.setTextOrigin(VPos.TOP); text.setFont(new Font("Arial", 12)); bonus.setTranslateX(30 + (820 - 750 - bonus.getWidth()) / 2); bonus.setTranslateY(text.getTranslateY() - (bonus.getHeight() - text.getBoundsInLocal().getHeight()) / 2); // Workaround JFXC-2379 infoPanel.getChildren().addAll(bonus, text); } infoPanel.setTranslateX(Config.FIELD_WIDTH); }