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 e51b07da2f..b57afd78f1 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 @@ -84,7 +84,8 @@ public Pane createJFXNode() model_widget.propNeedleWidth().getValue(), widgetColorToAWTColor(model_widget.propNeedleColor().getValue()), model_widget.propKnobSize().getValue(), - widgetColorToAWTColor(model_widget.propKnobColor().getValue())); + widgetColorToAWTColor(model_widget.propKnobColor().getValue()), + model_widget.propShowWarnings().getValue()); meter.setSize(model_widget.propWidth().getValue(),model_widget.propHeight().getValue()); meter.setHorizontal(model_widget.propDisplayHorizontal().getValue()); meter.setManaged(false); @@ -114,6 +115,11 @@ protected void registerListeners() addUntypedWidgetPropertyListener(model_widget.propFont(), layoutChangedListener); addUntypedWidgetPropertyListener(model_widget.propNeedleColor(), layoutChangedListener); + addWidgetPropertyListener(model_widget.propShowWarnings(), (property, oldValue, newValue) -> { + meter.setShowWarnings(newValue); + layoutChanged(null, null, null); + }); + addWidgetPropertyListener(model_widget.propShowUnits(), (property, old_value, new_value) -> { meter.setShowUnits(new_value); layoutChanged(null, null, null); 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 79357b4ae9..68f643b3fe 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 @@ -103,6 +103,9 @@ else if (xml_version.getMajor() < 3) public static WidgetPropertyDescriptor propShowLimits = newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "show_limits", Messages.WidgetProperties_ShowLimits); + public static WidgetPropertyDescriptor propShowWarnings = + newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "show_warnings", Messages.WidgetProperties_ShowWarnings); + public static WidgetPropertyDescriptor propDisplayHorizontal = newBooleanPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "displayHorizontal", Messages.WidgetProperties_Horizontal); @@ -162,6 +165,7 @@ else if (xml_version.getMajor() < 3) private WidgetProperty format; private WidgetProperty show_units; private WidgetProperty show_limits; + private WidgetProperty show_warnings; private WidgetProperty needle_color; private WidgetProperty scale_visible; private WidgetProperty knob_color; @@ -206,6 +210,7 @@ protected void defineProperties(List> properties) properties.add(show_units = propShowUnits.createProperty(this, true)); properties.add(scale_visible = propScaleVisible.createProperty(this, true)); properties.add(show_limits = propShowLimits.createProperty(this, true)); + properties.add(show_warnings = propShowWarnings.createProperty(this, true)); properties.add(limits_from_pv = propLimitsFromPV.createProperty(this, true)); properties.add(minimum = propMinimum.createProperty(this, 0.0)); properties.add(maximum = propMaximum.createProperty(this, 100.0)); @@ -281,6 +286,12 @@ public WidgetProperty propShowLimits() return show_limits; } + /** @return 'show_warnings' property */ + public WidgetProperty propShowWarnings() + { + return show_warnings; + } + /** @return 'needle_color' property */ public WidgetProperty propNeedleColor() { diff --git a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/RTLinearMeter.java b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/RTLinearMeter.java index c8a67df4a5..812957e1ac 100644 --- a/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/RTLinearMeter.java +++ b/app/display/linearmeter/src/main/java/org/csstudio/display/extra/widgets/linearmeter/RTLinearMeter.java @@ -21,8 +21,6 @@ import java.awt.image.DataBufferInt; import java.io.IOException; import java.util.Arrays; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.FutureTask; import java.util.logging.Level; import javafx.application.Platform; @@ -76,7 +74,8 @@ public RTLinearMeter(double initialValue, int needleWidth, Color needleColor, int knobSize, - Color knobColor) + Color knobColor, + boolean showWarnings) { if (warningTriangle == null) { try { @@ -109,6 +108,7 @@ public RTLinearMeter(double initialValue, this.hiHi = hiHi; this.showUnits = showUnits; this.showLimits = showLimits; + this.showWarnings = showWarnings; layout(); @@ -576,6 +576,11 @@ public void setFont(javafx.scene.text.Font font) }); } + private boolean showWarnings = true; + + public void setShowWarnings(boolean showWarnings) { + runOnJavaFXThread(() -> { this.showWarnings = showWarnings; }); + } private boolean lag = false; private Boolean isValueWaitingToBeDrawn = false; @@ -633,7 +638,10 @@ else if (!Double.isNaN(oldValue)) { } private WARNING determineWarning() { - if (lag) { + if (!showWarnings) { + return WARNING.NONE; + } + else if (lag) { return WARNING.LAG; } else if (showUnits && units.equals("")) { diff --git a/app/display/model/src/main/java/org/csstudio/display/builder/model/Messages.java b/app/display/model/src/main/java/org/csstudio/display/builder/model/Messages.java index 7798812059..168d05a679 100644 --- a/app/display/model/src/main/java/org/csstudio/display/builder/model/Messages.java +++ b/app/display/model/src/main/java/org/csstudio/display/builder/model/Messages.java @@ -296,6 +296,7 @@ public class Messages WidgetProperties_ShowScale, WidgetProperties_ShowUnits, WidgetProperties_ShowValue, + WidgetProperties_ShowWarnings, WidgetProperties_Skin, WidgetProperties_Square, WidgetProperties_StartFromZero, diff --git a/app/display/model/src/main/resources/org/csstudio/display/builder/model/messages.properties b/app/display/model/src/main/resources/org/csstudio/display/builder/model/messages.properties index 3eb1a7853b..a1ed97dd4d 100644 --- a/app/display/model/src/main/resources/org/csstudio/display/builder/model/messages.properties +++ b/app/display/model/src/main/resources/org/csstudio/display/builder/model/messages.properties @@ -281,6 +281,7 @@ WidgetProperties_ShowOK=Show OK WidgetProperties_ShowScale=Show Scale WidgetProperties_ShowUnits=Show Units WidgetProperties_ShowValue=Show Value +WidgetProperties_ShowWarnings=Show Warnings WidgetProperties_Skin=Skin WidgetProperties_Square=Square WidgetProperties_StartFromZero=Start From Zero