Skip to content

Commit 59c42e7

Browse files
authored
Merge pull request #3408 from rjwills28/issue3407-missing-context-menu
Fix missing context menu for certain controls widgets
2 parents 4e3b4af + f4d76e4 commit 59c42e7

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

app/display/runtime/src/main/java/org/csstudio/display/builder/runtime/app/ContextMenuSupport.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package org.csstudio.display.builder.runtime.app;
99

1010
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propConfirmDialog;
11+
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propConfirmDialogOptions;
1112
import static org.csstudio.display.builder.model.properties.CommonWidgetProperties.propPassword;
1213

1314
import javafx.collections.ObservableList;
@@ -21,6 +22,7 @@
2122
import org.csstudio.display.builder.model.Widget;
2223
import org.csstudio.display.builder.model.WidgetProperty;
2324
import org.csstudio.display.builder.model.properties.CommonWidgetProperties;
25+
import org.csstudio.display.builder.model.properties.ConfirmDialog;
2426
import org.csstudio.display.builder.model.spi.ActionInfo;
2527
import org.csstudio.display.builder.representation.ToolkitListener;
2628
import org.csstudio.display.builder.representation.javafx.widgets.JFXBaseRepresentation;
@@ -134,8 +136,19 @@ private void fillMenu(Runnable setFocus, final Widget widget) {
134136
// because in here we would invoke actions without those constraints
135137
final Optional<WidgetProperty<String>> pass = widget.checkProperty(propPassword);
136138
final Optional<WidgetProperty<Boolean>> prompt = widget.checkProperty(propConfirmDialog);
139+
final Optional<WidgetProperty<ConfirmDialog>> promptOptions = widget.checkProperty(propConfirmDialogOptions);
140+
Boolean promptBool = false;
141+
if (prompt.isPresent() && promptOptions.isPresent()) {
142+
if (promptOptions.get().getValue() instanceof ConfirmDialog) {
143+
if (((ConfirmDialog) promptOptions.get().getValue()) != ConfirmDialog.NONE) {
144+
promptBool = true;
145+
}
146+
} else {
147+
promptBool = prompt.get().getValue();
148+
}
149+
}
137150
final boolean need_dialog = (pass.isPresent() && !pass.get().getValue().isBlank()) ||
138-
(prompt.isPresent() && prompt.get().getValue());
151+
(prompt.isPresent() && promptBool );
139152

140153
if (! need_dialog)
141154
for (ActionInfo info : widget.propActions().getValue().getActions()) {

0 commit comments

Comments
 (0)