From 1a9b406415adeb1438091c0debe395b5452a3dc4 Mon Sep 17 00:00:00 2001 From: Alexis Gaget Date: Fri, 18 Sep 2026 09:09:29 +0200 Subject: [PATCH] draft: set widget transparent and desaturate, not purely invisible --- .../javafx/widgets/JFXBaseRepresentation.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/JFXBaseRepresentation.java b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/JFXBaseRepresentation.java index 2aac3a3e0e..6decbea75c 100644 --- a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/JFXBaseRepresentation.java +++ b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/widgets/JFXBaseRepresentation.java @@ -14,7 +14,11 @@ import java.util.Optional; import java.util.logging.Level; +import javafx.geometry.Bounds; +import javafx.scene.effect.ColorAdjust; import javafx.scene.input.*; +import javafx.scene.layout.Pane; +import javafx.scene.shape.Line; import org.csstudio.display.builder.model.ChildrenProperty; import org.csstudio.display.builder.model.DirtyFlag; import org.csstudio.display.builder.model.DisplayModel; @@ -336,12 +340,24 @@ private void positionChanged(final WidgetProperty property, final Object old_ @Override public void updateChanges() { - if (dirty_position.checkAndClear()) - { + if (dirty_position.checkAndClear()) { jfx_node.relocate(model_widget.propX().getValue(), - model_widget.propY().getValue()); - if (visible != null) - jfx_node.setVisible(visible.getValue()); + model_widget.propY().getValue()); + if (visible != null) { + + jfx_node.setVisible(toolkit.isEditMode() || visible.getValue()); + + if (toolkit.isEditMode() && !visible.getValue()) { + ColorAdjust effect = new ColorAdjust(); + effect.setSaturation(-1.0); + effect.setBrightness(0.5); + jfx_node.setOpacity(0.5); + jfx_node.setEffect(effect); + } else { + jfx_node.setOpacity(1.0); + jfx_node.setEffect(null); + } + } } }