Skip to content

Commit dad762d

Browse files
feature: stripchart widget axis/grid color. refactor: use commonwidgetproperties 'color' instead of grid color; grid color follows axis color, like in data editor
1 parent 9956180 commit dad762d

File tree

4 files changed

+52
-23
lines changed

4 files changed

+52
-23
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public WidgetProperty<WidgetFont> createProperty(final Widget widget,
8989

9090
/** 'grid_color' */
9191
public static final WidgetPropertyDescriptor<WidgetColor> propGridColor =
92-
CommonWidgetProperties.newColorPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "grid_color", Messages.PlotWidget_GridColor);
92+
CommonWidgetProperties.newColorPropertyDescriptor(WidgetPropertyCategory.DISPLAY, "grid_color", Messages.PlotWidget_Color);
9393

9494
/** 'x_axis' */
9595
public final static StructuredWidgetProperty.Descriptor propXAxis =
@@ -173,7 +173,7 @@ public static YAxisWidgetProperty create(final StructuredWidgetProperty.Descript
173173
propScaleFont.createProperty(widget, WidgetFontService.get(NamedWidgetFonts.DEFAULT)),
174174
propOnRight.createProperty(widget, false),
175175
CommonWidgetProperties.propVisible.createProperty(widget, true),
176-
propGridColor.createProperty(widget, WidgetColorService.getColor(NamedWidgetColors.GRID))
176+
CommonWidgetProperties.propColor.createProperty(widget, WidgetColorService.getColor(NamedWidgetColors.TEXT))
177177
)
178178
);
179179
}
@@ -191,8 +191,8 @@ protected YAxisWidgetProperty(final StructuredWidgetProperty.Descriptor axis_des
191191
@Override
192192
public WidgetProperty<Boolean> visible() { return getElement(9); }
193193

194-
/** @return Grid color */
195-
public WidgetProperty<WidgetColor> gridColor() { return getElement(10); }
194+
/** @return Axis/Grid color */
195+
public WidgetProperty<WidgetColor> color() { return getElement(10); }
196196
};
197197

198198

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

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,36 @@ protected AxisWidgetProperty(final StructuredWidgetProperty.Descriptor axis_desc
148148
public WidgetProperty<Boolean> visible() { return getElement(6); }
149149
};
150150

151+
public static class YAxisWidgetProperty extends AxisWidgetProperty {
152+
153+
public static YAxisWidgetProperty create(final StructuredWidgetProperty.Descriptor descriptor, final Widget widget, final String title_text)
154+
{
155+
return new YAxisWidgetProperty(descriptor, widget,
156+
Arrays.asList(PlotWidgetProperties.propTitle.createProperty(widget, title_text),
157+
PlotWidgetProperties.propAutoscale.createProperty(widget, false),
158+
PlotWidgetProperties.propLogscale.createProperty(widget, false),
159+
CommonWidgetProperties.propMinimum.createProperty(widget, 0.0),
160+
CommonWidgetProperties.propMaximum.createProperty(widget, 100.0),
161+
PlotWidgetProperties.propGrid.createProperty(widget, false),
162+
CommonWidgetProperties.propVisible.createProperty(widget, true),
163+
CommonWidgetProperties.propColor.createProperty(widget, WidgetColorService.getColor(NamedWidgetColors.TEXT))
164+
));
165+
}
166+
167+
protected YAxisWidgetProperty(Descriptor axis_descriptor, Widget widget, List<WidgetProperty<?>> elements) {
168+
super(axis_descriptor, widget, elements);
169+
}
170+
171+
/** @return Axis/Grid color */
172+
public WidgetProperty<WidgetColor> color() { return getElement(7); }
173+
174+
}
175+
151176
/** 'y_axes' array */
152-
public static final ArrayWidgetProperty.Descriptor<AxisWidgetProperty> propYAxes =
177+
public static final ArrayWidgetProperty.Descriptor<YAxisWidgetProperty> propYAxes =
153178
new ArrayWidgetProperty.Descriptor<>(WidgetPropertyCategory.BEHAVIOR, "y_axes", Messages.PlotWidget_YAxes,
154179
(widget, index) ->
155-
AxisWidgetProperty.create(propYAxis, widget,
180+
YAxisWidgetProperty.create(propYAxis, widget,
156181
index > 0
157182
? Messages.PlotWidget_Y + " " + index
158183
: Messages.PlotWidget_Y));
@@ -358,10 +383,10 @@ private void handleLegacyAxes(final ModelReader model_reader,
358383
// Count actual Y axes, because legacy_axis includes skipped X axes
359384
++y_count;
360385

361-
final AxisWidgetProperty y_axis;
386+
final YAxisWidgetProperty y_axis;
362387
if (strip.y_axes.size() < y_count)
363388
{
364-
y_axis = AxisWidgetProperty.create(propYAxis, strip, "");
389+
y_axis = YAxisWidgetProperty.create(propYAxis, strip, "");
365390
strip.y_axes.addElement(y_axis);
366391
}
367392
else
@@ -452,7 +477,7 @@ private boolean handleLegacyTraces(final ModelReader model_reader, final Stripch
452477
private volatile WidgetProperty<Boolean> show_legend;
453478
private volatile WidgetProperty<String> start;
454479
private volatile WidgetProperty<String> end;
455-
private volatile ArrayWidgetProperty<AxisWidgetProperty> y_axes;
480+
private volatile ArrayWidgetProperty<YAxisWidgetProperty> y_axes;
456481
private volatile ArrayWidgetProperty<TraceWidgetProperty> traces;
457482
private volatile RuntimeEventProperty configure;
458483
private volatile RuntimeEventProperty open_full;
@@ -485,7 +510,7 @@ protected void defineProperties(final List<WidgetProperty<?>> properties)
485510
properties.add(show_legend = PlotWidgetProperties.propLegend.createProperty(this, false));
486511
properties.add(start = propStart.createProperty(this, "1 minute"));
487512
properties.add(end = propEnd.createProperty(this, ""));
488-
properties.add(y_axes = propYAxes.createProperty(this, Arrays.asList(AxisWidgetProperty.create(propYAxis, this, Messages.PlotWidget_Y))));
513+
properties.add(y_axes = propYAxes.createProperty(this, Arrays.asList(YAxisWidgetProperty.create(propYAxis, this, Messages.PlotWidget_Y))));
489514
properties.add(traces = propTraces.createProperty(this, Arrays.asList(new TraceWidgetProperty(this, 0))));
490515
properties.add(configure = (RuntimeEventProperty) runtimePropConfigure.createProperty(this, null));
491516
properties.add(open_full = (RuntimeEventProperty) DataBrowserWidget.runtimePropOpenFull.createProperty(this, null));
@@ -585,7 +610,7 @@ public WidgetProperty<String> propEnd()
585610
}
586611

587612
/** @return 'y_axes' property */
588-
public ArrayWidgetProperty<AxisWidgetProperty> propYAxes()
613+
public ArrayWidgetProperty<YAxisWidgetProperty> propYAxes()
589614
{
590615
return y_axes;
591616
}

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public class StripchartRepresentation extends RegionBaseRepresentation<Pane, Str
6868
private final WidgetPropertyListener<Integer> sizeChangedListener = this::sizeChanged;
6969
private final UntypedWidgetPropertyListener optsChangedListener = this::optsChanged;
7070
private final UntypedWidgetPropertyListener modelChangedListener = this::modelChanged;
71-
private final WidgetPropertyListener<List<AxisWidgetProperty>> axes_listener = this::axesChanged;
71+
private final WidgetPropertyListener<List<StripchartWidget.YAxisWidgetProperty>> axes_listener = this::axesChanged;
7272
private final WidgetPropertyListener<List<TraceWidgetProperty>> traces_listener = this::tracesChanged;
7373
private final WidgetPropertyListener<Instant> config_dialog_listener = (p, o, n) -> plot.getPlot().showConfigurationDialog();
7474
private final WidgetPropertyListener<Instant> open_databrowser_listener = (p, o, n) ->
@@ -164,22 +164,22 @@ protected void unregisterListeners()
164164
super.unregisterListeners();
165165
}
166166

167-
private void axesChanged(final WidgetProperty<List<AxisWidgetProperty>> prop, final List<AxisWidgetProperty> removed, final List<AxisWidgetProperty> added)
167+
private void axesChanged(final WidgetProperty<List<StripchartWidget.YAxisWidgetProperty>> prop, final List<StripchartWidget.YAxisWidgetProperty> removed, final List<StripchartWidget.YAxisWidgetProperty> added)
168168
{
169169
// Track/ignore axes
170170
if (removed != null)
171-
for (AxisWidgetProperty axis : removed)
171+
for (StripchartWidget.YAxisWidgetProperty axis : removed)
172172
ignoreAxisChanges(axis);
173173

174174
if (added != null)
175-
for (AxisWidgetProperty axis : added)
175+
for (StripchartWidget.YAxisWidgetProperty axis : added)
176176
trackAxisChanges(axis);
177177

178178
// Anything changed -> Update complete model
179179
modelChanged(null, null, null);
180180
}
181181

182-
private void trackAxisChanges(final AxisWidgetProperty axis)
182+
private void trackAxisChanges(final StripchartWidget.YAxisWidgetProperty axis)
183183
{
184184
axis.title().addUntypedPropertyListener(modelChangedListener);
185185
axis.autoscale().addUntypedPropertyListener(modelChangedListener);
@@ -188,9 +188,10 @@ private void trackAxisChanges(final AxisWidgetProperty axis)
188188
axis.maximum().addUntypedPropertyListener(modelChangedListener);
189189
axis.grid().addUntypedPropertyListener(modelChangedListener);
190190
axis.visible().addUntypedPropertyListener(modelChangedListener);
191+
axis.color().addUntypedPropertyListener(modelChangedListener);
191192
}
192193

193-
private void ignoreAxisChanges(final AxisWidgetProperty axis)
194+
private void ignoreAxisChanges(final StripchartWidget.YAxisWidgetProperty axis)
194195
{
195196
axis.title().removePropertyListener(modelChangedListener);
196197
axis.autoscale().removePropertyListener(modelChangedListener);
@@ -199,6 +200,8 @@ private void ignoreAxisChanges(final AxisWidgetProperty axis)
199200
axis.maximum().removePropertyListener(modelChangedListener);
200201
axis.grid().removePropertyListener(modelChangedListener);
201202
axis.visible().removePropertyListener(modelChangedListener);
203+
axis.color().removePropertyListener(modelChangedListener);
204+
202205
}
203206

204207

@@ -317,10 +320,10 @@ private void updateModel()
317320

318321
// Value Axes
319322
int index = 0;
320-
final List<AxisWidgetProperty> axes = model_widget.propYAxes().getValue();
323+
final List<StripchartWidget.YAxisWidgetProperty> axes = model_widget.propYAxes().getValue();
321324
while (model.getAxisCount() > axes.size())
322325
model.removeAxis(model.getAxis(0));
323-
for (AxisWidgetProperty axis : axes)
326+
for (StripchartWidget.YAxisWidgetProperty axis : axes)
324327
{
325328
final AxisConfig config;
326329
if (index < model.getAxisCount())
@@ -336,6 +339,7 @@ private void updateModel()
336339
config.setLogScale(axis.logscale().getValue());
337340
config.setGridVisible(axis.grid().getValue());
338341
config.setVisible(axis.visible().getValue());
342+
config.setColor(JFXUtil.convert(axis.color().getValue()));
339343
++index;
340344
}
341345

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ private void trackAxisChanges(final AxisWidgetProperty axis)
548548
axis.visible().addUntypedPropertyListener(config_listener);
549549
if (axis instanceof YAxisWidgetProperty) {
550550
((YAxisWidgetProperty) axis).onRight().addUntypedPropertyListener(config_listener);
551-
((YAxisWidgetProperty) axis).gridColor().addUntypedPropertyListener(config_listener);
551+
((YAxisWidgetProperty) axis).color().addUntypedPropertyListener(config_listener);
552552
}
553553
}
554554

@@ -568,7 +568,7 @@ private void ignoreAxisChanges(final AxisWidgetProperty axis)
568568
axis.visible().removePropertyListener(config_listener);
569569
if (axis instanceof YAxisWidgetProperty) {
570570
((YAxisWidgetProperty) axis).onRight().removePropertyListener(config_listener);
571-
((YAxisWidgetProperty) axis).gridColor().removePropertyListener(config_listener);
571+
((YAxisWidgetProperty) axis).color().removePropertyListener(config_listener);
572572
}
573573
}
574574

@@ -685,12 +685,12 @@ private void updateAxisConfig(final Axis<Double> plot_axis, final AxisWidgetProp
685685
((YAxisImpl)plot_axis).setGridColor(
686686
GraphicsUtils.convert(
687687
JFXUtil.convert(
688-
((YAxisWidgetProperty) model_axis).gridColor().getValue()
688+
((YAxisWidgetProperty) model_axis).color().getValue()
689689
)
690690
)
691691
);
692692
plot_axis.setColor(JFXUtil.convert(
693-
((YAxisWidgetProperty) model_axis).gridColor().getValue()
693+
((YAxisWidgetProperty) model_axis).color().getValue()
694694
));
695695
}
696696
}

0 commit comments

Comments
 (0)