diff --git a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterRepresentation.java b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterRepresentation.java index 196ead3438..fb1ec2fc65 100644 --- a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterRepresentation.java +++ b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterRepresentation.java @@ -14,7 +14,9 @@ import org.csstudio.display.builder.model.properties.WidgetColor; import org.csstudio.display.builder.representation.javafx.JFXUtil; import org.csstudio.display.builder.representation.javafx.widgets.RegionBaseRepresentation; +import org.csstudio.display.builder.representation.javafx.widgets.TooltipSupport; import org.epics.util.stats.Range; +import org.phoebus.ui.vtype.FormatOptionHandler; import javafx.scene.layout.Pane; import org.epics.vtype.Display; @@ -96,6 +98,17 @@ private void addUntypedWidgetPropertyListener(WidgetProperty widgetProper widgetPropertiesWithWidgetPropertyListeners.push(new Pair(widgetProperty, widgetPropertyListener)); } + @Override + protected void attachTooltip() + { + // Use formatted value for "$(pv_value)" instead of the default VType.toString() + TooltipSupport.attach(jfx_node, model_widget.propTooltip(), () -> + FormatOptionHandler.format(model_widget.runtimePropValue().getValue(), + model_widget.propFormat().getValue(), + model_widget.propPrecision().getValue(), + model_widget.propShowUnits().getValue())); + } + @Override protected void registerListeners() { diff --git a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterWidget.java b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterWidget.java index 41a01e16dc..f0b073585e 100644 --- a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterWidget.java +++ b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/LinearMeterWidget.java @@ -217,6 +217,7 @@ public EnumWidgetProperty createProperty(Widget widge private WidgetProperty background; private WidgetProperty font; private WidgetProperty format; + private WidgetProperty precision; private WidgetProperty show_units; private WidgetProperty show_limits; private WidgetProperty show_warnings; @@ -260,6 +261,7 @@ protected void defineProperties(List> properties) { properties.add(logScale = propLogScale.createProperty(this, false)); properties.add(font = propFont.createProperty(this, WidgetFontService.get(NamedWidgetFonts.DEFAULT))); properties.add(format = propFormat.createProperty(this, FormatOption.DEFAULT)); + properties.add(precision = propPrecision.createProperty(this, -1)); properties.add(show_units = propShowUnits.createProperty(this, true)); properties.add(scale_visible = propScaleVisible.createProperty(this, true)); properties.add(show_limits = propShowLimits.createProperty(this, true)); @@ -325,6 +327,13 @@ public WidgetProperty propFormat() { return format; } + /** + * @return 'precision' property + */ + public WidgetProperty propPrecision() { + return precision; + } + /** * @return 'show_units' property */