Skip to content

Commit a692819

Browse files
committed
Fix vertical progress bar sizing bug in Group widget
A translation is applied to JFX progress bar to get a vertical bar but the width property of the bar remains unchanged and so the group pane think this child is wider than it should be and paints the group out to this width causing screen sizing problems.
1 parent fc767eb commit a692819

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

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

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
*******************************************************************************/
88
package org.csstudio.display.builder.representation.javafx.widgets;
99

10+
import javafx.scene.layout.Pane;
1011
import org.csstudio.display.builder.model.DirtyFlag;
1112
import org.csstudio.display.builder.model.UntypedWidgetPropertyListener;
1213
import org.csstudio.display.builder.model.WidgetProperty;
@@ -28,7 +29,7 @@
2829
* @author Amanda Carpenter
2930
*/
3031
@SuppressWarnings("nls")
31-
public class ProgressBarRepresentation extends RegionBaseRepresentation<ProgressBar, ProgressBarWidget>
32+
public class ProgressBarRepresentation extends RegionBaseRepresentation<Pane, ProgressBarWidget>
3233
{
3334
private final DirtyFlag dirty_look = new DirtyFlag();
3435
private final DirtyFlag dirty_value = new DirtyFlag();
@@ -39,11 +40,13 @@ public class ProgressBarRepresentation extends RegionBaseRepresentation<Progress
3940

4041
private volatile double percentage = 0.0;
4142

43+
private ProgressBar bar;
44+
4245
@Override
43-
public ProgressBar createJFXNode() throws Exception
46+
public Pane createJFXNode() throws Exception
4447
{
45-
final ProgressBar bar = new ProgressBar();
46-
return bar;
48+
bar = new ProgressBar();
49+
return new Pane(bar);
4750
}
4851

4952
@Override
@@ -172,6 +175,9 @@ else if (percentage > 1.0)
172175
toolkit.scheduleUpdate(this);
173176
}
174177

178+
protected boolean isFilteringEditModeClicks() {
179+
return true;
180+
}
175181

176182
@Override
177183
public void updateChanges()
@@ -187,29 +193,31 @@ public void updateChanges()
187193

188194
if (!horizontal)
189195
{
190-
jfx_node.getTransforms().setAll(
196+
bar.getTransforms().setAll(
191197
new Translate(0, height),
192198
new Rotate(-90, 0, 0));
193-
jfx_node.setPrefSize(height, width);
199+
bar.setPrefSize(height, width);
200+
jfx_node.setPrefSize(width, height);
194201

195202
if (min_val > max_val)
196203
{
197-
jfx_node.getTransforms().setAll(
204+
bar.getTransforms().setAll(
198205
new Translate(0, height),
199206
new Rotate(-90, 0, 0, 0),
200207
new Translate(height, 0),
201208
new Rotate(180, 0, 0, 0, Rotate.Y_AXIS));
202-
jfx_node.setPrefSize(height, width);
209+
bar.setPrefSize(height, width);
203210
}
204211
}
205212
else
206213
{
207-
jfx_node.getTransforms().clear();
214+
bar.getTransforms().clear();
215+
bar.setPrefSize(width, height);
208216
jfx_node.setPrefSize(width, height);
209217

210218
if (min_val > max_val)
211219
{
212-
jfx_node.getTransforms().setAll(
220+
bar.getTransforms().setAll(
213221
new Translate(width, 0),
214222
new Rotate(180, 0, 0, 0, Rotate.Y_AXIS));
215223
}
@@ -259,6 +267,6 @@ public void updateChanges()
259267
jfx_node.setStyle(style.toString());
260268
}
261269
if (dirty_value.checkAndClear())
262-
jfx_node.setProgress(percentage);
270+
bar.setProgress(percentage);
263271
}
264272
}

0 commit comments

Comments
 (0)