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.mediaeditor;
35
36 import info.magnolia.i18nsystem.SimpleTranslator;
37 import info.magnolia.ui.api.view.View;
38 import info.magnolia.ui.contentapp.browser.actions.ActionbarView;
39 import info.magnolia.ui.dialog.DialogComponent;
40 import info.magnolia.ui.dialog.EditorActionLayout;
41 import info.magnolia.ui.mediaeditor.field.MediaField;
42
43 import javax.inject.Inject;
44
45 import com.vaadin.ui.Component;
46 import com.vaadin.ui.CustomComponent;
47 import com.vaadin.ui.HorizontalLayout;
48 import com.vaadin.ui.VerticalLayout;
49
50
51
52
53 public class MediaEditorViewImpl extends CustomComponent implements MediaEditorView {
54
55 private View contentView;
56
57 private ActionbarView actionbar;
58
59 private DialogComponent dialogComponent = new DialogComponent();
60 private EditorActionLayout editorActionLayout = new EditorActionLayout();
61 private HorizontalLayout workArea = new HorizontalLayout();
62
63 @Inject
64 public MediaEditorViewImpl(SimpleTranslator i18n) {
65 setCaption(i18n.translate("ui-mediaeditor.image.actionbar.sections.operations.label"));
66 addStyleName("v-media-editor");
67 VerticalLayout root = new VerticalLayout();
68 setCompositionRoot(root);
69 setSizeFull();
70 root.setSizeFull();
71 root.setMargin(false);
72 root.setSpacing(false);
73 workArea.setSizeFull();
74 workArea.setSpacing(false);
75
76 workArea.addComponent(dialogComponent);
77 workArea.setExpandRatio(dialogComponent, 1f);
78 dialogComponent.setSizeFull();
79
80 root.addComponent(workArea);
81 root.setExpandRatio(workArea, 1f);
82 editorActionLayout.setWidth("100%");
83 editorActionLayout.setSpacing(false);
84 root.addComponent(editorActionLayout);
85 root.setExpandRatio(editorActionLayout, 0);
86 }
87
88 @Override
89 public Component asVaadinComponent() {
90 return this;
91 }
92
93 @Override
94 public void setActionBar(ActionbarView actionbar) {
95 this.actionbar = actionbar;
96 workArea.addComponent(actionbar.asVaadinComponent());
97 }
98
99 @Override
100 public View getContentView() {
101 return contentView;
102 }
103
104 @Override
105 public ActionbarView getActionbar() {
106 return actionbar;
107 }
108
109 @Override
110 public void clearActions() {
111 editorActionLayout.removeAllActions();
112 }
113
114 @Override
115 public void setMediaContent(final MediaField mediaField) {
116 contentView = () -> mediaField;
117 dialogComponent.setContent(mediaField);
118 }
119
120 @Override
121 public void setToolbar(Component controls) {
122 editorActionLayout.setToolbarComponent(controls);
123 }
124
125 @Override
126 public EditorActionLayout getEditorActionLayout() {
127 return editorActionLayout;
128 }
129 }