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.movedialog.action;
35
36 import info.magnolia.objectfactory.ComponentProvider;
37 import info.magnolia.ui.api.action.AbstractAction;
38 import info.magnolia.ui.api.action.ActionExecutionException;
39 import info.magnolia.ui.api.app.AppContext;
40 import info.magnolia.ui.api.overlay.OverlayCloser;
41 import info.magnolia.ui.contentapp.browser.BrowserSubAppDescriptor;
42 import info.magnolia.ui.contentapp.movedialog.MoveActionCallback;
43 import info.magnolia.ui.contentapp.movedialog.MoveDialogPresenter;
44 import info.magnolia.ui.dialog.DialogCloseHandler;
45 import info.magnolia.ui.dialog.DialogView;
46 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
47 import info.magnolia.ui.workbench.tree.MoveLocation;
48
49 import java.util.Arrays;
50 import java.util.List;
51
52 import com.vaadin.v7.data.Item;
53
54
55
56
57
58
59
60
61 @Deprecated
62 public class OpenMoveDialogAction extends AbstractAction<OpenMoveDialogActionDefinition> {
63
64 private AppContext appContext;
65
66 private ComponentProvider componentProvider;
67
68 private JcrNodeAdapter sourceNodeAdapter;
69
70 private List<Item> sourceNodeAdapters;
71
72 private MoveDialogPresenter moveDialogPresenter;
73
74 private OverlayCloser closeHandle;
75
76 public OpenMoveDialogAction(
77 OpenMoveDialogActionDefinition definition,
78 AppContext appContext,
79 ComponentProvider componentProvider,
80 Item sourceNodeAdapter,
81 MoveDialogPresenter moveDialogPresenter) {
82 this(definition, appContext, componentProvider, moveDialogPresenter, Arrays.asList(sourceNodeAdapter));
83 }
84
85 public OpenMoveDialogAction(
86 OpenMoveDialogActionDefinition definition,
87 AppContext appContext,
88 ComponentProvider componentProvider,
89 MoveDialogPresenter moveDialogPresenter,
90 List<Item> sourceNodeAdapters) {
91 super(definition);
92 this.appContext = appContext;
93 this.componentProvider = componentProvider;
94 this.sourceNodeAdapters = sourceNodeAdapters;
95 this.moveDialogPresenter = moveDialogPresenter;
96 }
97
98 @Override
99 public void execute() throws ActionExecutionException {
100 if (appContext.getActiveSubAppContext().getSubAppDescriptor() instanceof BrowserSubAppDescriptor) {
101 BrowserSubAppDescriptoro/magnolia/ui/contentapp/browser/BrowserSubAppDescriptor.html#BrowserSubAppDescriptor">BrowserSubAppDescriptor descriptor = (BrowserSubAppDescriptor) appContext.getActiveSubAppContext().getSubAppDescriptor();
102 DialogView moveDialog = moveDialogPresenter.start(descriptor, sourceNodeAdapters, new MoveActionCallback() {
103 @Override
104 public void onMoveCancelled() {
105 closeHandle.close();
106 }
107
108 @Override
109 public void onMovePerformed(Item newHost, MoveLocation moveLocation) {
110 closeHandle.close();
111 }
112 });
113
114 this.closeHandle = appContext.openOverlay(moveDialog, moveDialog.getModalityLevel());
115 moveDialog.addDialogCloseHandler(new DialogCloseHandler() {
116 @Override
117 public void onDialogClose(DialogView dialogView) {
118 closeHandle.close();
119 }
120 });
121 }
122 }
123 }