Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/map/ExternalWMSWindow.java @ 1406:6c8a29abbe30
Added an initial control that allows (when it is finished) adding map layers from external WMS.
flys-client/trunk@3291 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 18 Nov 2011 15:18:29 +0000 |
parents | |
children | 5b5a20e4c4e5 |
comparison
equal
deleted
inserted
replaced
1405:442ce7d6bc39 | 1406:6c8a29abbe30 |
---|---|
1 package de.intevation.flys.client.client.ui.map; | |
2 | |
3 import com.google.gwt.user.client.ui.TextBox; | |
4 | |
5 import com.smartgwt.client.util.SC; | |
6 import com.smartgwt.client.widgets.Button; | |
7 import com.smartgwt.client.widgets.Canvas; | |
8 import com.smartgwt.client.widgets.Label; | |
9 import com.smartgwt.client.widgets.Window; | |
10 import com.smartgwt.client.widgets.events.ClickEvent; | |
11 import com.smartgwt.client.widgets.events.ClickHandler; | |
12 import com.smartgwt.client.widgets.layout.HLayout; | |
13 import com.smartgwt.client.widgets.layout.Layout; | |
14 import com.smartgwt.client.widgets.layout.VLayout; | |
15 | |
16 | |
17 public class ExternalWMSWindow extends Window { | |
18 | |
19 protected Layout inputPanel; | |
20 protected Layout infoPanel; | |
21 protected Layout layersPanel; | |
22 | |
23 protected String url; | |
24 | |
25 | |
26 public ExternalWMSWindow() { | |
27 super(); | |
28 } | |
29 | |
30 | |
31 protected void setUrl(String url) { | |
32 this.url = url; | |
33 } | |
34 | |
35 | |
36 protected String getUrl() { | |
37 return url; | |
38 } | |
39 | |
40 | |
41 public void start() { | |
42 show(); | |
43 centerInPage(); | |
44 | |
45 goToInputPanel(); | |
46 } | |
47 | |
48 | |
49 protected void goToInputPanel() { | |
50 clearItems(); | |
51 | |
52 inputPanel = createInputPanel(); | |
53 | |
54 addItem(inputPanel); | |
55 | |
56 setWidth(380); | |
57 setHeight(140); | |
58 } | |
59 | |
60 | |
61 protected void goToInfoPanel() { | |
62 clearItems(); | |
63 | |
64 infoPanel = createInfoPanel(); | |
65 | |
66 addItem(infoPanel); | |
67 | |
68 setWidth(500); | |
69 setHeight(500); | |
70 } | |
71 | |
72 | |
73 protected void goToLayersPanel() { | |
74 clearItems(); | |
75 | |
76 layersPanel = createLayersPanel(); | |
77 | |
78 addItem(layersPanel); | |
79 | |
80 setWidth(500); | |
81 setHeight(500); | |
82 } | |
83 | |
84 | |
85 protected void clearItems() { | |
86 Canvas[] items = getItems(); | |
87 | |
88 if (items != null) { | |
89 for (Canvas item: items) { | |
90 removeItem(item); | |
91 } | |
92 } | |
93 } | |
94 | |
95 | |
96 protected Layout createInputPanel() { | |
97 // TODO I18N | |
98 setTitle("Basis URL des WMS Dienstes"); | |
99 | |
100 final TextBox url = new TextBox(); | |
101 url.setHeight("25px"); | |
102 url.setWidth("326px"); | |
103 | |
104 String oldUrl = getUrl(); | |
105 if (oldUrl != null && oldUrl.length() > 0) { | |
106 url.setValue(oldUrl); | |
107 } | |
108 | |
109 ClickHandler goHandler = new ClickHandler() { | |
110 @Override | |
111 public void onClick(ClickEvent e) { | |
112 String newUrl = url.getValue(); | |
113 | |
114 if (!isUrlValid(newUrl)) { | |
115 // TODO I18N | |
116 SC.warn("Enter a valid URL!"); | |
117 return; | |
118 } | |
119 | |
120 setUrl(url.getValue()); | |
121 goToInfoPanel(); | |
122 } | |
123 }; | |
124 | |
125 ClickHandler cancelHandler = new ClickHandler() { | |
126 @Override | |
127 public void onClick(ClickEvent e) { | |
128 quit(); | |
129 } | |
130 }; | |
131 | |
132 VLayout root = new VLayout(); | |
133 root.setHeight(75); | |
134 root.setMargin(10); | |
135 root.setLayoutMargin(10); | |
136 | |
137 root.addMember(url); | |
138 root.addMember(createButtonPanel(null, goHandler, cancelHandler)); | |
139 | |
140 return root; | |
141 } | |
142 | |
143 | |
144 protected Layout createInfoPanel() { | |
145 // TODO I18N | |
146 setTitle("Informationen des WMS Dienstes"); | |
147 | |
148 ClickHandler backHandler = new ClickHandler() { | |
149 @Override | |
150 public void onClick(ClickEvent e) { | |
151 goToInputPanel(); | |
152 } | |
153 }; | |
154 | |
155 ClickHandler goHandler = new ClickHandler() { | |
156 @Override | |
157 public void onClick(ClickEvent e) { | |
158 goToLayersPanel(); | |
159 } | |
160 }; | |
161 | |
162 ClickHandler cancelHandler = new ClickHandler() { | |
163 @Override | |
164 public void onClick(ClickEvent e) { | |
165 quit(); | |
166 } | |
167 }; | |
168 | |
169 VLayout root = new VLayout(); | |
170 | |
171 root.addMember(new Label("STEP 2: " + getUrl())); | |
172 | |
173 // TODO IMPLEMENT ME | |
174 | |
175 root.addMember(createButtonPanel(backHandler, goHandler, cancelHandler)); | |
176 | |
177 return root; | |
178 } | |
179 | |
180 | |
181 protected Layout createLayersPanel() { | |
182 // TODO I18N | |
183 setTitle("Ebene auswählen"); | |
184 | |
185 ClickHandler backHandler = new ClickHandler() { | |
186 @Override | |
187 public void onClick(ClickEvent e) { | |
188 goToInfoPanel(); | |
189 } | |
190 }; | |
191 | |
192 ClickHandler goHandler = new ClickHandler() { | |
193 @Override | |
194 public void onClick(ClickEvent e) { | |
195 goToLayersPanel(); | |
196 } | |
197 }; | |
198 | |
199 ClickHandler cancelHandler = new ClickHandler() { | |
200 @Override | |
201 public void onClick(ClickEvent e) { | |
202 quit(); | |
203 } | |
204 }; | |
205 | |
206 VLayout root = new VLayout(); | |
207 | |
208 root.addMember(new Label("STEP 3")); | |
209 | |
210 // TODO IMPLEMENT ME | |
211 | |
212 root.addMember(createButtonPanel(backHandler, goHandler, cancelHandler)); | |
213 | |
214 return root; | |
215 } | |
216 | |
217 | |
218 /** | |
219 * @param back | |
220 * @param ok | |
221 * @param cancel | |
222 * | |
223 * @return | |
224 */ | |
225 protected Layout createButtonPanel( | |
226 ClickHandler backHandler, | |
227 ClickHandler goHandler, | |
228 ClickHandler cancelHandler | |
229 ) { | |
230 Button back = new Button("Back"); | |
231 Button go = new Button("Go on"); | |
232 Button cancel = new Button("Cancel"); | |
233 | |
234 if (backHandler != null) { | |
235 back.addClickHandler(backHandler); | |
236 } | |
237 else { | |
238 back.setDisabled(true); | |
239 } | |
240 | |
241 if (goHandler != null) { | |
242 go.addClickHandler(goHandler); | |
243 } | |
244 else { | |
245 go.setDisabled(true); | |
246 } | |
247 | |
248 if (cancelHandler != null) { | |
249 cancel.addClickHandler(cancelHandler); | |
250 } | |
251 else { | |
252 cancel.setDisabled(true); | |
253 } | |
254 | |
255 HLayout buttonPanel = new HLayout(); | |
256 buttonPanel.setHeight(25); | |
257 buttonPanel.setMembersMargin(15); | |
258 buttonPanel.setLayoutTopMargin(10); | |
259 buttonPanel.addMember(back); | |
260 buttonPanel.addMember(go); | |
261 buttonPanel.addMember(cancel); | |
262 | |
263 return buttonPanel; | |
264 } | |
265 | |
266 | |
267 protected boolean isUrlValid(String url) { | |
268 // TODO Improve URL validation | |
269 return !(url == null || url.length() == 0); | |
270 } | |
271 | |
272 | |
273 protected void quit() { | |
274 destroy(); | |
275 } | |
276 } | |
277 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |