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.gwt.client.layout.lazylayout.connector;
35
36 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.rpc.LazyLayoutServerRpc;
37 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.shared.ThumbnailData;
38 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.widget.EscalatorPanel;
39 import info.magnolia.ui.vaadin.gwt.client.layout.lazylayout.widget.EscalatorThumbnailsPanel;
40 import info.magnolia.ui.vaadin.gwt.shared.Range;
41 import info.magnolia.ui.vaadin.layout.LazyThumbnailLayout;
42
43 import com.google.gwt.user.client.Timer;
44 import com.vaadin.client.communication.RpcProxy;
45 import com.vaadin.shared.ui.Connect;
46
47
48
49
50
51
52 @Deprecated
53 @Connect(LazyThumbnailLayout.class)
54 public class LazyThumbnailLayoutConnector extends LazyLayoutConnector implements EscalatorThumbnailsPanel.Listener {
55
56 private final LazyLayoutServerRpc rpc = RpcProxy.create(LazyLayoutServerRpc.class, this);
57
58 private Timer timer = new Timer() {
59 @Override
60 public void run() {
61 serveThumbnails();
62 }
63 };
64
65 protected EscalatorPanel createWidget() {
66 final EscalatorThumbnailsPanel layout = new EscalatorThumbnailsPanel(this);
67 layout.setThumbnailService(new ThumbnailService() {
68 @Override
69 public void onViewportChanged(final Range requestedRange) {
70 timer.schedule(THUMBNAIL_QUERY_RPC_DELAY);
71 updateSelection();
72 }
73
74 @Override
75 public void onThumbnailsScaled(float ratio) {
76 rpc.setScaleRatio(ratio);
77 }
78 });
79 return layout;
80 }
81
82 @Override
83 void updateThumbnailContentAtIndex(int thumbnailAbsoluteIndex) {
84 final ThumbnailData thumbnailData = indexToThumbnail.get(thumbnailAbsoluteIndex);
85 if (thumbnailData.isRealResource()) {
86 getWidget().updateImageSource(idToUrl.get(thumbnailData.getThumbnailId()), thumbnailAbsoluteIndex);
87 } else {
88 getWidget().updateIconFontStyle("icon-" + thumbnailData.getIconFontId(), thumbnailAbsoluteIndex);
89 }
90 }
91
92 @Override
93 LazyLayoutServerRpc getLazyLayoutServerRpc() {
94 return rpc;
95 }
96
97 @Override
98 public void onThumbnailClicked(int index, boolean isMetaKeyPressed, boolean isShiftKeyPressed) {
99 rpc.onElementsSelected(index, isMetaKeyPressed, isShiftKeyPressed);
100 }
101
102 @Override
103 public void onThumbnailRightClicked(int index, int xPos, int yPos) {
104 rpc.onElementRightClicked(index, xPos, yPos);
105 }
106
107 @Override
108 public void onThumbnailDoubleClicked(int index) {
109 rpc.onElementDoubleClicked(index);
110 }
111
112 void cancelTimer() {
113 timer.cancel();
114 }
115 }