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.LazyLayoutServerRpc;
37 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.rpc.LazyLayoutClientRpc;
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 public class LazyCardLayout extends LazyLayout {
53
54
55
56
57
58
59 class CardLayoutServerRpcImpl extends LazyLayoutServerRpcImpl {
60 public CardLayoutServerRpcImpl(DataProviderKeyMapper mapper, LazyLayoutClientRpc clientRpc, LazyLayout lazyLayout) {
61 super(mapper, clientRpc, lazyLayout);
62 }
63 }
64
65 public LazyCardLayout() {
66 super();
67 }
68
69 @Override
70 LazyLayoutServerRpc getRpc(DataProviderKeyMapper mapper, LazyLayoutClientRpc clientRpc) {
71 return new CardLayoutServerRpcImpl(mapper, getRpc(), this);
72 }
73
74 @Override
75 LazyLayoutClientRpc getRpc() {
76 return getRpcProxy(LazyLayoutClientRpc.class);
77 }
78
79 public List fetchElements(Range range, DataProviderKeyMapper mapper) {
80 final List<ThumbnailData> elements = new ArrayList<>(range.length());
81 for (int i = range.getStart(); i < range.getEnd(); ++i) {
82 final Object id = mapper.itemIdAtIndex(i);
83 ThumbnailContainernfo/magnolia/ui/vaadin/layout/data/ThumbnailContainer.html#ThumbnailContainer">ThumbnailContainer container = ((ThumbnailContainer) this.getContainerDataSource());
84 final Object resource = container.getThumbnailProperty(id).getValue();
85
86 boolean isRealResource = resource instanceof Resource;
87 String thumbnailId = mapper.getKey(id);
88 if (isRealResource) {
89 setResource(thumbnailId, (Resource) resource);
90 }
91 ThumbnailDataut/lazylayout/shared/ThumbnailData.html#ThumbnailData">ThumbnailData thumbnailData = new ThumbnailData(thumbnailId, isRealResource);
92 final String caption = (String) container.getCaptionProperty(id).getValue();
93 thumbnailData.setCaption(caption);
94 elements.add(thumbnailData);
95 }
96 return elements;
97 }
98 }