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.workbench.thumbnail;
35
36 import info.magnolia.ui.framework.ioc.AdmincentralFlavour;
37 import info.magnolia.ui.vaadin.layout.LazyCardLayout;
38 import info.magnolia.ui.vaadin.layout.LazyLayout;
39 import info.magnolia.ui.vaadin.layout.LazyThumbnailLayout;
40
41 import java.util.LinkedHashSet;
42 import java.util.List;
43 import java.util.Set;
44
45 import com.vaadin.ui.Component;
46 import com.vaadin.v7.data.Container;
47
48
49
50
51 public class ThumbnailViewImpl implements ThumbnailView {
52
53 private Listener listener;
54
55 private LazyLayout thumbnailLayout;
56
57 public ThumbnailViewImpl() {
58 if (AdmincentralFlavour.get().isM5()) {
59 thumbnailLayout = new LazyThumbnailLayout();
60 } else {
61 thumbnailLayout = new LazyCardLayout();
62 }
63 thumbnailLayout.setSizeFull();
64 thumbnailLayout.addStyleName("mgnl-workbench-thumbnail-view");
65 bindHandlers();
66 }
67
68 private void bindHandlers() {
69 thumbnailLayout.addElementSelectionListener(ids -> listener.onItemSelection(ids));
70
71 thumbnailLayout.addDoubleClickListener(itemId -> listener.onDoubleClick(itemId));
72
73 thumbnailLayout.addRightClickListener((itemId, clickX, clickY) -> {
74 Set<Object> items = new LinkedHashSet<>();
75 items.add(itemId);
76 listener.onItemSelection(items);
77 listener.onRightClick(itemId, clickX, clickY);
78 });
79 }
80
81 @Override
82 public void setListener(Listener listener) {
83 this.listener = listener;
84 }
85
86 @Override
87 public void select(List<Object> itemIds) {
88
89
90 Object itemId = itemIds == null || itemIds.isEmpty() ? null : itemIds.get(0);
91 thumbnailLayout.setSelectedItemId(itemId);
92 }
93
94 @Override
95 public void refresh() {
96 thumbnailLayout.refresh();
97 }
98
99 @Override
100 public void setContainer(Container container) {
101 thumbnailLayout.setContainerDataSource(container);
102 }
103
104 @Override
105 public void setThumbnailSize(int width, int height) {
106 thumbnailLayout.setElementSize(width, height);
107 }
108
109 @Override
110 public Component asVaadinComponent() {
111 return thumbnailLayout;
112 }
113
114 @Override
115 public void setMultiselect(boolean multiselect) {
116
117 }
118
119 @Override
120 public void onShortcutKey(int keyCode, int[] modifierKeys) {
121 if (listener != null) {
122 listener.onShortcutKey(keyCode, modifierKeys);
123 }
124 }
125
126 @Override
127 public void expand(Object itemId) {
128 }
129
130 }