Skip to content

Commit d682d4f

Browse files
authored
Merge pull request #2327 from ControlSystemStudio/tank-widget
Log-scale property for tank widget
2 parents 5f8816d + b55da84 commit d682d4f

File tree

3 files changed

+21
-1
lines changed
  • app
    • display
      • model/src/main/java/org/csstudio/display/builder/model/widgets
      • representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets
    • rtplot/src/main/java/org/csstudio/javafx/rtplot

3 files changed

+21
-1
lines changed

app/display/model/src/main/java/org/csstudio/display/builder/model/widgets/TankWidget.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2015-2019 Oak Ridge National Laboratory.
2+
* Copyright (c) 2015-2022 Oak Ridge National Laboratory.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -16,6 +16,7 @@
1616
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propLimitsFromPV;
1717
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMaximum;
1818
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propMinimum;
19+
import static org.csstudio.display.builder.model.widgets.plots.PlotWidgetProperties.propLogscale;
1920

2021
import java.util.Arrays;
2122
import java.util.List;
@@ -128,6 +129,7 @@ public WidgetConfigurator getConfigurator(final Version persisted_version)
128129
private volatile WidgetProperty<Boolean> limits_from_pv;
129130
private volatile WidgetProperty<Double> minimum;
130131
private volatile WidgetProperty<Double> maximum;
132+
private volatile WidgetProperty<Boolean> log_scale;
131133

132134
/** Constructor */
133135
public TankWidget()
@@ -148,6 +150,7 @@ protected void defineProperties(final List<WidgetProperty<?>> properties)
148150
properties.add(limits_from_pv = propLimitsFromPV.createProperty(this, true));
149151
properties.add(minimum = propMinimum.createProperty(this, 0.0));
150152
properties.add(maximum = propMaximum.createProperty(this, 100.0));
153+
properties.add(log_scale = propLogscale.createProperty(this, false));
151154
}
152155

153156
@Override
@@ -212,4 +215,10 @@ public WidgetProperty<Double> propMaximum()
212215
{
213216
return maximum;
214217
}
218+
219+
/** @return 'log_scale' property */
220+
public WidgetProperty<Boolean> propLogScale()
221+
{
222+
return log_scale;
223+
}
215224
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ protected void registerListeners()
5757
model_widget.propLimitsFromPV().addUntypedPropertyListener(valueListener);
5858
model_widget.propMinimum().addUntypedPropertyListener(valueListener);
5959
model_widget.propMaximum().addUntypedPropertyListener(valueListener);
60+
model_widget.propLogScale().addUntypedPropertyListener(valueListener);
6061
model_widget.runtimePropValue().addUntypedPropertyListener(valueListener);
6162
valueChanged(null, null, null);
6263
}
@@ -76,6 +77,7 @@ protected void unregisterListeners()
7677
model_widget.propLimitsFromPV().removePropertyListener(valueListener);
7778
model_widget.propMinimum().removePropertyListener(valueListener);
7879
model_widget.propMaximum().removePropertyListener(valueListener);
80+
model_widget.propLogScale().removePropertyListener(valueListener);
7981
model_widget.runtimePropValue().removePropertyListener(valueListener);
8082
super.unregisterListeners();
8183
}
@@ -111,6 +113,8 @@ private void valueChanged(final WidgetProperty<?> property, final Object old_val
111113
else
112114
value = VTypeUtil.getValueNumber(vtype).doubleValue();
113115
tank.setValue(value);
116+
117+
tank.setLogScale(model_widget.propLogScale().getValue());
114118
}
115119

116120
@Override

app/rtplot/src/main/java/org/csstudio/javafx/rtplot/RTTank.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,13 @@ public void setScaleVisible (boolean visible)
185185
}
186186
}
187187

188+
/** @param logscale Use log scale for y-axis? */
189+
public void setLogScale(final boolean logscale)
190+
{
191+
scale.setLogarithmic(logscale);
192+
requestUpdate();
193+
}
194+
188195
/** Set value range
189196
* @param low
190197
* @param high

0 commit comments

Comments
 (0)