From b4089975fc7f7d5a84b769bc1b32bea0a416fdf0 Mon Sep 17 00:00:00 2001 From: cjenkscybercom Date: Thu, 28 Jul 2022 11:55:44 +0200 Subject: [PATCH] feature: text alignment in Spinner widget --- .../builder/model/widgets/SpinnerWidget.java | 35 +++++++++++-------- .../javafx/widgets/SpinnerRepresentation.java | 9 +++++ 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/app/display/model/src/main/java/org/csstudio/display/builder/model/widgets/SpinnerWidget.java b/app/display/model/src/main/java/org/csstudio/display/builder/model/widgets/SpinnerWidget.java index 5f01c6d652..857fac9320 100644 --- a/app/display/model/src/main/java/org/csstudio/display/builder/model/widgets/SpinnerWidget.java +++ b/app/display/model/src/main/java/org/csstudio/display/builder/model/widgets/SpinnerWidget.java @@ -7,18 +7,6 @@ *******************************************************************************/ package org.csstudio.display.builder.model.widgets; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propBackgroundColor; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propEnabled; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propFont; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propForegroundColor; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propFormat; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propIncrement; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propLimitsFromPV; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMaximum; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMinimum; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propPrecision; -import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propShowUnits; - import java.util.Arrays; import java.util.List; @@ -35,11 +23,11 @@ import org.csstudio.display.builder.model.persist.NamedWidgetFonts; import org.csstudio.display.builder.model.persist.WidgetColorService; import org.csstudio.display.builder.model.persist.WidgetFontService; -import org.csstudio.display.builder.model.properties.CommonWidgetProperties; -import org.csstudio.display.builder.model.properties.WidgetColor; -import org.csstudio.display.builder.model.properties.WidgetFont; +import org.csstudio.display.builder.model.properties.*; import org.phoebus.ui.vtype.FormatOption; +import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.*; + /** Widget that represents a spinner * @author Amanda Carpenter */ @@ -79,6 +67,8 @@ public Widget createWidget() private volatile WidgetProperty buttons_on_left; private volatile WidgetProperty enabled; private volatile WidgetProperty font; + private volatile WidgetProperty horizontal_alignment; + private volatile WidgetProperty vertical_alignment; /** Constructor */ public SpinnerWidget() @@ -102,6 +92,8 @@ protected void defineProperties(final List> properties) properties.add(increment = propIncrement.createProperty(this, 1.0)); properties.add(buttons_on_left = propButtonsOnLeft.createProperty(this, false)); properties.add(enabled = propEnabled.createProperty(this, true)); + properties.add(horizontal_alignment = propHorizontalAlignment.createProperty(this, HorizontalAlignment.LEFT)); + properties.add(vertical_alignment = propVerticalAlignment.createProperty(this, VerticalAlignment.TOP)); } @Override @@ -181,4 +173,17 @@ public WidgetProperty propFont() { return font; } + + /** @return 'horizontal_alignment' property */ + public WidgetProperty propHorizontalAlignment() + { + return horizontal_alignment; + } + + /** @return 'vertical_alignment' property */ + public WidgetProperty propVerticalAlignment() + { + return vertical_alignment; + } + } diff --git a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/SpinnerRepresentation.java b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/SpinnerRepresentation.java index 684769b204..f5e6efc435 100644 --- a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/SpinnerRepresentation.java +++ b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/SpinnerRepresentation.java @@ -12,6 +12,7 @@ import java.util.logging.Level; import javafx.application.Platform; +import javafx.geometry.Pos; import javafx.scene.Cursor; import org.csstudio.display.builder.model.DirtyFlag; import org.csstudio.display.builder.model.UntypedWidgetPropertyListener; @@ -60,6 +61,7 @@ public class SpinnerRepresentation extends RegionBaseRepresentation property, final Object old_value, final Object new_value) { + pos = JFXUtil.computePos(model_widget.propHorizontalAlignment().getValue(), + model_widget.propVerticalAlignment().getValue()); dirty_style.mark(); toolkit.scheduleUpdate(this); } @@ -491,6 +499,7 @@ public void updateChanges() JFXUtil.appendWebRGB(style, back_color).append(";"); jfx_node.editorProperty().getValue().setStyle(style.toString()); + jfx_node.editorProperty().getValue().setAlignment(pos); jfx_node.resize(model_widget.propWidth().getValue(), model_widget.propHeight().getValue()); // Enable if enabled by user and there's write access