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.vaadin.layout;
35
36 import info.magnolia.ui.vaadin.gwt.shared.Range;
37 import info.magnolia.ui.vaadin.layout.data.ThumbnailContainer;
38
39 import java.util.List;
40
41 import com.vaadin.server.Resource;
42 import com.vaadin.ui.IconGenerator;
43 import com.vaadin.ui.ItemCaptionGenerator;
44 import com.vaadin.v7.data.Container;
45 import com.vaadin.v7.data.Container.Ordered;
46
47
48
49
50
51
52
53 @Deprecated
54 public class CompatibilityThumbnailLayout extends LazyLayout<Object> implements Container.Viewer, Container.ItemSetChangeListener {
55
56 private ThumbnailContainer container;
57
58 @Override
59 public void setContainerDataSource(Container newDataSource) {
60 if (!(newDataSource instanceof ThumbnailContainer)) {
61 throw new IllegalArgumentException("Container must implement info.magnolia.ui.vaadin.layout.data.ThumbnailContainer...");
62 }
63
64 if (this.container instanceof Container.ItemSetChangeNotifier) {
65 ((Container.ItemSetChangeNotifier) this.container).removeItemSetChangeListener(this);
66 }
67
68 this.container = (ThumbnailContainer) newDataSource;
69
70 if (this.container instanceof Container.ItemSetChangeNotifier) {
71 ((Container.ItemSetChangeNotifier) this.container).addItemSetChangeListener(this);
72 }
73
74 refresh();
75 }
76
77 @Override
78 public Ordered getContainerDataSource() {
79 return container;
80 }
81
82 public void setSelectedItemId(Object selectedItemId) {
83 if (selectedItemId == null) {
84 this.getState().selection.selectedIndices.clear();
85 } else {
86 this.getState().selection.toggleSelection(-1);
87 this.getState().selection.toggleSelection(container.indexOfId(selectedItemId));
88 }
89
90 updateSelectionIndices();
91 }
92
93 @Override
94 public void containerItemSetChange(Container.ItemSetChangeEvent event) {
95 refresh();
96 }
97
98 @Override
99 protected ItemCaptionGenerator<Object> getItemCaptionGenerator() {
100 return item -> String.valueOf(this.container.getCaptionProperty(item).getValue());
101 }
102
103 @Override
104 protected IconGenerator<Object> getItemResourceGenerator() {
105 return id -> {
106 ThumbnailContainernfo/magnolia/ui/vaadin/layout/data/ThumbnailContainer.html#ThumbnailContainer">ThumbnailContainer container = ((ThumbnailContainer) this.getContainerDataSource());
107 final Object resource = container.getThumbnailProperty(id).getValue();
108 boolean isRealResource = resource instanceof Resource;
109 if (isRealResource) {
110 return (Resource) resource;
111 }
112 return null;
113 };
114 }
115
116 @Override
117 public int size() {
118 return this.container.size();
119 }
120
121 @Override
122 protected List fetchItems(Range added) {
123 return container.getItemIds(added.getStart(), added.length());
124 }
125 }