1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.contentapp.action;
35
36 import static info.magnolia.ui.contentapp.action.ChooseActionDefinition.CHOOSE_ACTION_NAME;
37 import static info.magnolia.ui.contentapp.action.CloseActionDefinition.CLOSE_ACTION_NAME;
38
39 import info.magnolia.ui.api.action.ActionType;
40 import info.magnolia.ui.api.action.ConfiguredActionDefinition;
41 import info.magnolia.ui.api.availability.ConfiguredAvailabilityDefinition;
42 import info.magnolia.ui.availability.rule.CanMoveRuleDefinition;
43 import info.magnolia.ui.chooser.definition.SingleItemWorkbenchChooserDefinition;
44 import info.magnolia.ui.dialog.layout.DefaultEditorActionLayoutDefinition;
45
46 import java.util.Arrays;
47 import java.util.Collections;
48
49 import com.vaadin.shared.ui.grid.DropLocation;
50
51 import lombok.Data;
52 import lombok.EqualsAndHashCode;
53
54
55
56
57 @ActionType("moveAction")
58 @Data
59 @EqualsAndHashCode(callSuper = true)
60 public class MoveActionDefinition<T> extends ConfiguredActionDefinition {
61
62 @Deprecated
63 private MoveWorkbenchDefinition<T> chooser;
64
65 private String dialogId = "ui-framework-jcr:move";
66
67 public MoveActionDefinition() {
68 setImplementationClass(MoveAction.class);
69 }
70
71
72
73
74
75
76 @Deprecated
77 public static class MoveWorkbenchDefinition<T> extends SingleItemWorkbenchChooserDefinition<T> {
78
79 private static final String BEFORE = DropLocation.ABOVE.name().toLowerCase();
80 private static final String AFTER = DropLocation.BELOW.name().toLowerCase();
81
82 public MoveWorkbenchDefinition() {
83 getActions().put(CHOOSE_ACTION_NAME, configureAvailability(new ChooseActionDefinition()));
84 getActions().put(BEFORE, configureAvailability(new ChooseActionDefinition(BEFORE)));
85 getActions().put(AFTER, configureAvailability(new ChooseActionDefinition(AFTER)));
86
87 final DefaultEditorActionLayoutDefinitionnition.html#DefaultEditorActionLayoutDefinition">DefaultEditorActionLayoutDefinition footerLayout = new DefaultEditorActionLayoutDefinition();
88 footerLayout.setSecondaryActions(Arrays.asList(BEFORE, AFTER));
89 footerLayout.setPrimaryActions(Arrays.asList(CHOOSE_ACTION_NAME, CLOSE_ACTION_NAME));
90 setFooterLayout(footerLayout);
91 }
92
93 private ConfiguredActionDefinitionapi/action/ConfiguredActionDefinition.html#ConfiguredActionDefinition">ConfiguredActionDefinition configureAvailability(ConfiguredActionDefinition actionDefinition) {
94 final ConfiguredAvailabilityDefinitionefinition.html#ConfiguredAvailabilityDefinition">ConfiguredAvailabilityDefinition availability = new ConfiguredAvailabilityDefinition();
95 availability.setRoot(true);
96 availability.setRules(Collections.singleton(new CanMoveRuleDefinition()));
97 actionDefinition.setAvailability(availability);
98 return actionDefinition;
99 }
100 }
101
102 }