Skip to content

Commit ccfa988

Browse files
authored
GLSP-1586: Adjust to new MenuItem API (#265)
* GLSP-1586: Adjust to new MenuItem API Counterpart to eclipse-glsp/glsp-server-node#116 Part of eclipse-glsp/glsp#1586 * Address review feedback
1 parent 0d79e4f commit ccfa988

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

examples/org.eclipse.glsp.example.workflow/src/org/eclipse/glsp/example/workflow/provider/WorkflowContextMenuItemProvider.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,13 @@
1818
import static org.eclipse.glsp.example.workflow.utils.ModelTypes.AUTOMATED_TASK;
1919
import static org.eclipse.glsp.example.workflow.utils.ModelTypes.MANUAL_TASK;
2020

21-
import java.util.ArrayList;
2221
import java.util.Arrays;
23-
import java.util.Collections;
2422
import java.util.List;
2523
import java.util.Map;
2624

2725
import org.eclipse.glsp.example.workflow.handler.GridSnapper;
2826
import org.eclipse.glsp.graph.GPoint;
27+
import org.eclipse.glsp.server.actions.SetEditModeAction;
2928
import org.eclipse.glsp.server.features.contextmenu.ContextMenuItemProvider;
3029
import org.eclipse.glsp.server.features.contextmenu.MenuItem;
3130
import org.eclipse.glsp.server.model.GModelState;
@@ -41,16 +40,24 @@ public class WorkflowContextMenuItemProvider implements ContextMenuItemProvider
4140
@Override
4241
public List<MenuItem> getItems(final List<String> selectedElementIds, final GPoint position,
4342
final Map<String, String> args) {
43+
SetEditModeAction editModeAction = new SetEditModeAction(
44+
modelState.isReadonly() ? SetEditModeAction.EDIT_MODE_EDITABLE : SetEditModeAction.EDIT_MODE_READONLY);
45+
MenuItem editModeMenu = new MenuItem("editMode", "Readonly Mode", Arrays.asList(editModeAction), true);
46+
editModeMenu.setToggled(modelState.isReadonly());
47+
4448
if (modelState.isReadonly()) {
45-
return Collections.emptyList();
49+
return Arrays.asList(editModeMenu);
4650
}
51+
4752
GPoint snappedPosition = GridSnapper.snap(position);
4853
MenuItem newAutTask = new MenuItem("newAutoTask", "Automated Task",
4954
Arrays.asList(new CreateNodeOperation(AUTOMATED_TASK, snappedPosition)), true);
5055
MenuItem newManTask = new MenuItem("newManualTask", "Manual Task",
5156
Arrays.asList(new CreateNodeOperation(MANUAL_TASK, snappedPosition)), true);
52-
MenuItem newChildMenu = new MenuItem("new", "New", Arrays.asList(newAutTask, newManTask), "add", "0_new");
53-
return new ArrayList<>(List.of(newChildMenu));
57+
MenuItem hiddenItem = new MenuItem("hiddenItem", "Should be hidden", Arrays.asList(), false);
58+
MenuItem newChildMenu = new MenuItem("new", "New", Arrays.asList(newAutTask, newManTask, hiddenItem), "add",
59+
"0_new");
60+
return Arrays.asList(newChildMenu, editModeMenu);
5461
}
5562

5663
}

plugins/org.eclipse.glsp.server/src/org/eclipse/glsp/server/features/contextmenu/MenuItem.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class MenuItem extends LabeledAction {
2929
private final List<MenuItem> children;
3030
private boolean isEnabled;
3131
private boolean isToggled;
32+
private boolean isVisible;
3233

3334
public MenuItem(final String id, final String label, final List<Action> actions, final boolean isEnabled) {
3435
this(id, label, actions, isEnabled, null);
@@ -41,7 +42,7 @@ public MenuItem(final String id, final String label, final List<Action> actions,
4142

4243
public MenuItem(final String id, final String label, final List<Action> actions, final boolean isEnabled,
4344
final String icon, final String sortString) {
44-
this(id, label, actions, icon, sortString, null, null, isEnabled, false, Collections.emptyList());
45+
this(id, label, actions, icon, sortString, null, null, isEnabled, isEnabled, false, Collections.emptyList());
4546
}
4647

4748
public MenuItem(final String id, final String label, final List<MenuItem> children) {
@@ -54,20 +55,22 @@ public MenuItem(final String id, final String label, final List<MenuItem> childr
5455

5556
public MenuItem(final String id, final String label, final List<MenuItem> children, final String group,
5657
final String sortString) {
57-
this(id, label, Collections.emptyList(), null, sortString, group, null, true, false, children);
58+
this(id, label, Collections.emptyList(), null, sortString, group, null, true, true, false, children);
5859
}
5960

6061
@SuppressWarnings("checkstyle:ParameterNumber")
6162
public MenuItem(final String id, final String label, final List<Action> actions, final String icon,
6263
final String sortString, final String group,
63-
final String parentId, final boolean isEnabled, final boolean isToggled, final List<MenuItem> children) {
64+
final String parentId, final boolean isEnabled, final boolean isVisible, final boolean isToggled,
65+
final List<MenuItem> children) {
6466
super(label, actions, icon);
6567
this.id = id;
6668
this.sortString = sortString;
6769
this.children = children;
6870
this.group = group;
6971
this.parentId = parentId;
7072
this.isEnabled = isEnabled;
73+
this.isVisible = isVisible;
7174
this.isToggled = isToggled;
7275
}
7376

@@ -92,4 +95,9 @@ public MenuItem(final String id, final String label, final List<Action> actions,
9295
public String getSortString() { return sortString; }
9396

9497
public List<MenuItem> getChildren() { return children; }
98+
99+
public boolean isVisible() { return isVisible; }
100+
101+
public void setVisible(final boolean isVisible) { this.isVisible = isVisible; }
102+
95103
}

0 commit comments

Comments
 (0)