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.templating.editor.client.button;
35
36 import java.util.List;
37
38 import com.google.gwt.event.dom.client.ClickEvent;
39 import com.google.gwt.event.dom.client.ClickHandler;
40 import com.google.gwt.user.client.Command;
41 import com.google.gwt.user.client.ui.Button;
42 import com.google.gwt.user.client.ui.Composite;
43 import com.google.gwt.user.client.ui.FlowPanel;
44 import com.google.gwt.user.client.ui.MenuItem;
45
46
47
48
49
50
51 public final class PreviewButtonWidget extends Composite {
52
53 private static FlowPanel panel = new FlowPanel();
54 private Button defaultActionButton = new Button();
55
56 public PreviewButtonWidget(final String caption, final Command defaultAction, final List<MenuItem> menuItems) {
57 initWidget(panel);
58 defaultActionButton.setHTML(caption);
59 defaultActionButton.setStylePrimaryName("mgnlEditorButton");
60 defaultActionButton.addClickHandler(new ClickHandler() {
61
62 @Override
63 public void onClick(ClickEvent event) {
64 defaultAction.execute();
65 }
66 });
67
68 panel.add(defaultActionButton);
69
70 final PreviewDropdownButtonWidget dropdown = new PreviewDropdownButtonWidget(menuItems);
71 dropdown.setStylePrimaryName("mgnlEditorButton");
72 dropdown.addStyleDependentName("previewMenuButton");
73 panel.add(dropdown);
74 }
75
76
77
78
79
80 private static final class PreviewDropdownButtonWidget extends DropdownButtonWidget {
81
82 public PreviewDropdownButtonWidget(final List<MenuItem> menuItems) {
83 super("-", menuItems);
84 }
85 @Override
86 protected void setDropdownPosition(int left, int top) {
87 getDropdownPanel().setPopupPosition(panel.getAbsoluteLeft(), panel.getAbsoluteTop() + panel.getOffsetHeight());
88
89 getDropdownPanel().setWidth(panel.getOffsetWidth()+"px");
90 }
91 }
92
93 }