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.browser;
35
36 import info.magnolia.ui.actionbar.ActionbarView;
37 import info.magnolia.ui.vaadin.actionbar.ActionPopup;
38 import info.magnolia.ui.workbench.WorkbenchView;
39
40 import com.vaadin.contextmenu.MenuItem;
41 import com.vaadin.server.Resource;
42 import com.vaadin.ui.Component;
43 import com.vaadin.ui.CssLayout;
44 import com.vaadin.v7.ui.HorizontalLayout;
45
46
47
48
49 public class BrowserViewImpl extends HorizontalLayout implements BrowserView {
50
51 private ActionbarView actionBar;
52
53 private ActionPopup actionPopup;
54
55 private final CssLayout actionBarWrapper = new CssLayout();
56
57 private WorkbenchView workbench;
58
59 private BrowserView.Listener listener;
60
61 public BrowserViewImpl() {
62 setSizeFull();
63 setMargin(false);
64 setSpacing(true);
65 addStyleName("browser");
66
67 actionBarWrapper.setHeight(100, Unit.PERCENTAGE);
68 actionBarWrapper.addStyleName("actionbar");
69 addComponent(actionBarWrapper);
70 setExpandRatio(actionBarWrapper, 0);
71
72 createActionPopup();
73
74 }
75
76 @Override
77 public void setActionbarView(final ActionbarView actionBar) {
78 Component c = actionBar.asVaadinComponent();
79 Component old = actionBarWrapper.getComponentCount() != 0 ? actionBarWrapper.getComponent(0) : null;
80 if (old == null) {
81 actionBarWrapper.addComponent(c);
82 } else {
83 actionBarWrapper.replaceComponent(old, c);
84 }
85 this.actionBar = actionBar;
86 }
87
88 @Override
89 public Component asVaadinComponent() {
90 return this;
91 }
92
93 @Override
94 public void setListener(BrowserView.Listener listener) {
95 this.listener = listener;
96 }
97
98 @Override
99 public void setWorkbenchView(WorkbenchView workbench) {
100 if (this.workbench == null) {
101 addComponent(workbench.asVaadinComponent(), 0);
102 } else {
103 replaceComponent(this.workbench.asVaadinComponent(), workbench.asVaadinComponent());
104 }
105 setExpandRatio(workbench.asVaadinComponent(), 1);
106 this.workbench = workbench;
107 }
108
109
110
111
112 protected void createActionPopup() {
113 actionPopup = new ActionPopup(this, false);
114 actionPopup.setAsContextMenuOf(this);
115 }
116
117 @Override
118 public ActionPopup getActionPopup() {
119 return actionPopup;
120 }
121
122 @Override
123 public MenuItem addPopupItem(String label, Resource iconFontResource) {
124 return actionPopup.addItem(label, iconFontResource, item -> {});
125 }
126 }