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.client.layout.lazylayout.rpc.LazyLayoutClientRpc;
37 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.rpc.LazyLayoutServerRpc;
38 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.shared.ThumbnailData;
39 import info.magnolia.ui.vaadin.gwt.shared.Range;
40 import info.magnolia.ui.vaadin.layout.data.ThumbnailContainer;
41
42 import java.util.ArrayList;
43 import java.util.List;
44
45 import com.vaadin.server.Resource;
46
47
48
49
50
51
52 @Deprecated
53 public class LazyThumbnailLayout extends LazyLayout {
54
55
56
57
58
59
60 @Deprecated
61 class ThumbnailLayoutServerRpcImpl extends LazyLayoutServerRpcImpl {
62 public ThumbnailLayoutServerRpcImpl(DataProviderKeyMapper mapper, LazyLayoutClientRpc clientRpc, LazyLayout lazyLayout) {
63 super(mapper, clientRpc, lazyLayout);
64 }
65 }
66
67 public LazyThumbnailLayout() {
68 super();
69 }
70
71 @Override
72 LazyLayoutServerRpc getRpc(DataProviderKeyMapper mapper, LazyLayoutClientRpc clientRpc) {
73 return new ThumbnailLayoutServerRpcImpl(mapper, getRpc(), this);
74 }
75
76 @Override
77 LazyLayoutClientRpc getRpc() {
78 return getRpcProxy(LazyLayoutClientRpc.class);
79 }
80
81 public List fetchElements(Range range, DataProviderKeyMapper mapper) {
82 final List<ThumbnailData> thumbnails = new ArrayList<>(range.length());
83 for (int i = range.getStart(); i < range.getEnd(); ++i) {
84 final Object id = mapper.itemIdAtIndex(i);
85 final Object resource = ((ThumbnailContainer) this.getContainerDataSource()).getThumbnailProperty(id).getValue();
86
87 boolean isRealResource = resource instanceof Resource;
88 String thumbnailId = mapper.getKey(id);
89 String iconFontId = isRealResource ? null : String.valueOf(resource);
90 if (isRealResource) {
91 setResource(thumbnailId, (Resource) resource);
92 }
93 ThumbnailData thumbnailData = new ThumbnailData(thumbnailId, isRealResource);
94 thumbnailData.setIconFontId(iconFontId);
95 thumbnails.add(thumbnailData);
96 }
97 return thumbnails;
98 }
99 }