Skip to content

Commit 67f8428

Browse files
authored
Merge pull request #3474 from ControlSystemStudio/CSSTUDIO-3337
CSSTUDIO-3337 Restore behavior of widgets after PR to `epicsCoreJava`
2 parents 73fd7a6 + 843f271 commit 67f8428

File tree

5 files changed

+14
-11
lines changed

5 files changed

+14
-11
lines changed

app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/RegionBaseRepresentation.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -255,22 +255,19 @@ private void connectionOrValueChanged(final WidgetProperty<?> property, final Ob
255255
AlarmSeverity severity = AlarmSeverity.NONE;
256256

257257
// Ignore custom border and value of primary PV, show disconnected
258-
if (! model_widget.runtimePropConnected().getValue())
258+
final VType value = value_prop.getValue();
259+
final Alarm alarm = Alarm.alarmOf(value);
260+
if (! model_widget.runtimePropConnected().getValue() || alarm.equals(Alarm.disconnected()))
259261
severity = AlarmSeverity.UNDEFINED;
260262
else
261263
{ // Reflect severity of primary PV's value
262264
if (value_prop != null && alarm_sensitive_border_prop.getValue())
263265
{
264-
final Object value = value_prop.getValue();
265-
final Alarm alarm = Alarm.alarmOf(value);
266266
if (alarm != null && alarm.getSeverity() != AlarmSeverity.NONE)
267267
// Have alarm info
268268
severity = alarm.getSeverity();
269-
else if (value instanceof VType)
270-
// VType that doesn't provide alarm, always OK
271-
severity = AlarmSeverity.NONE;
272269
else if (value != null)
273-
// Not a vtype, but non-null, assume OK
270+
// VType that doesn't provide alarm, always OK
274271
severity = AlarmSeverity.NONE;
275272
else // null
276273
severity = AlarmSeverity.UNDEFINED;

app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/SpinnerRepresentation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.csstudio.display.builder.model.widgets.SpinnerWidget;
2525
import org.csstudio.display.builder.representation.javafx.Cursors;
2626
import org.csstudio.display.builder.representation.javafx.JFXUtil;
27+
import org.epics.vtype.Alarm;
2728
import org.epics.vtype.Display;
2829
import org.epics.vtype.VNumber;
2930
import org.epics.vtype.VType;
@@ -374,7 +375,8 @@ private void writeResultingValue(double change)
374375
*/
375376
private String computeText(final VType value)
376377
{
377-
if (value == null)
378+
Alarm alarm = Alarm.alarmOf(value);
379+
if (value == null || alarm.equals(Alarm.disconnected()))
378380
return "<" + model_widget.propPVName().getValue() + ">";
379381
return FormatOptionHandler.format(value,
380382
model_widget.propFormat().getValue(),

app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/TextEntryRepresentation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.csstudio.display.builder.model.widgets.TextEntryWidget;
2828
import org.csstudio.display.builder.representation.javafx.Cursors;
2929
import org.csstudio.display.builder.representation.javafx.JFXUtil;
30+
import org.epics.vtype.Alarm;
3031
import org.epics.vtype.VType;
3132
import org.phoebus.ui.javafx.Styles;
3233
import org.phoebus.ui.vtype.FormatOptionHandler;
@@ -345,7 +346,8 @@ private void styleChanged(final WidgetProperty<?> property, final Object old_val
345346
*/
346347
private String computeText(final VType value)
347348
{
348-
if (value == null)
349+
Alarm alarm = Alarm.alarmOf(value);
350+
if (value == null || alarm.equals(Alarm.disconnected()))
349351
return "<" + model_widget.propPVName().getValue() + ">";
350352
if (value == PVWidget.RUNTIME_VALUE_NO_PV)
351353
return "";

app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/TextUpdateRepresentation.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.csstudio.display.builder.model.widgets.PVWidget;
2121
import org.csstudio.display.builder.model.widgets.TextUpdateWidget;
2222
import org.csstudio.display.builder.representation.javafx.JFXUtil;
23+
import org.epics.vtype.Alarm;
2324
import org.epics.vtype.VType;
2425
import org.phoebus.ui.vtype.FormatOptionHandler;
2526

@@ -167,7 +168,8 @@ private void styleChanged(final WidgetProperty<?> property, final Object old_val
167168
private String computeText(final VType value)
168169
{
169170
Objects.requireNonNull(model_widget, "No widget");
170-
if (value == null)
171+
Alarm alarm = Alarm.alarmOf(value);
172+
if (value == null || alarm.equals(Alarm.disconnected()))
171173
return "<" + model_widget.propPVName().getValue() + ">";
172174
if (value == PVWidget.RUNTIME_VALUE_NO_PV)
173175
return "";

app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/TooltipSupport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public static void attach(final Node node, final WidgetProperty<String> tooltip_
105105

106106
// If 'vtype' supports it (i.e., it is an instance of "DisplayProvider"),
107107
// append the alarm limits to $(pv_value):
108-
if (vtype instanceof DisplayProvider) {
108+
if (vtype instanceof DisplayProvider && !Alarm.alarmOf(vtype).equals(Alarm.disconnected()) ) {
109109

110110
Range alarmRange = display.getAlarmRange();
111111
double lolo = alarmRange.getMinimum();

0 commit comments

Comments
 (0)