1 package fr.ifremer.dali.ui.swing.content.welcome;
2
3 import fr.ifremer.dali.ui.swing.DaliHelpBroker;
4 import fr.ifremer.dali.ui.swing.DaliUIContext;
5 import fr.ifremer.dali.ui.swing.util.DaliUI;
6 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
7 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
8 import java.awt.BorderLayout;
9 import java.awt.Component;
10 import java.awt.Container;
11 import java.awt.GridBagLayout;
12 import java.awt.LayoutManager;
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.List;
16 import java.util.Map;
17 import java.util.TreeMap;
18 import javax.swing.Box;
19 import javax.swing.BoxLayout;
20 import javax.swing.JButton;
21 import javax.swing.JLabel;
22 import javax.swing.JPanel;
23 import jaxx.runtime.JAXXBinding;
24 import jaxx.runtime.JAXXContext;
25 import jaxx.runtime.JAXXObject;
26 import jaxx.runtime.JAXXObjectDescriptor;
27 import jaxx.runtime.JAXXUtil;
28 import jaxx.runtime.SwingUtil;
29 import jaxx.runtime.binding.DefaultJAXXBinding;
30 import jaxx.runtime.context.DefaultJAXXContext;
31 import jaxx.runtime.swing.help.JAXXHelpUI;
32 import org.apache.commons.logging.Log;
33 import org.apache.commons.logging.LogFactory;
34
35 public class WelcomeUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<DaliUIContext, WelcomeUIHandler>, JAXXObject {
36
37
38
39
40
41 public static final String BINDING_EXTRACTION_BUTTON_ENABLED = "extractionButton.enabled";
42 public static final String BINDING_OBSERVATION_BUTTON_ENABLED = "observationButton.enabled";
43
44
45
46
47
48 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAJ1UTU8TQRh+Wy3Q4gcfEUExwY/gx2ELXEGlgBVMFSMSiT3odHegi9OdcXYWlhCMP8GfoHcvJt48GQ+ePXgx/gVjPHg1vjPbdqks0Nik2+477/u8zzzzvPP2B2R8CefXSRhaMvCUW6PWncLKymJlndpqjvq2dIXiEqJPKg3pMnQ7zbiv4GK5pMvz9fL8LK8J7lFvV/VkCXK+2mLUr1KqFJxrrbB9P7/UXJ4MRSAbqE1SSaivf/1Mv3JevkkDhALZZXErI4dVxTs5WoK06yjow04bJM+It4Y0pOutId/jOjbLiO/fIzX6HF5AZwk6BJEIpuBC+1s2GKY+FAq6Lt25TzzKxhRMrErLXZW0RqXlEOZagWv5m9jdsrmnEMzapMzmuItH0e/yghAGqUNBpsYdyhSM7gsyh2/LC7MaKlRxYUdF8mdUKrh8YOU8ZWLGZMalDe7jKJlWJ6znR1GdlG3m9vKKT+UGUS73ZgKlkAb0txRFUZ3et7tDiVSMOq0dTDQ5d1y/n0lem0hY60E5JLFjYjp+up4j4WyLf9CZVuzM2DqpMmRkgGEFg+W9Zn6AS5GNB/+xsQY0q38G+r9++P6+2PCuHsNTiam7Rg89JSQXeHyubn0yMm6gXJa/S8RkGSeAMpxbM5fDCcSW6stIDvv16nJLl1vzxK8iRKbz28dPA0+/HIF0EXKME6dIdP4CZFVVogqcOaG4OW0YHdvswmcPftN4Xk+IEMy1zYkXjLwKrm/va7LoBKzb/CFfjK0SFVq2npkdBZ3UIxVGcUaHto3hLdcvBKqKw6E7UefK1Z0QVR5OULm51Ur28+/+pXfTDaVTuPOhfdNjtTOPocP1mOtRc0/Ur4DEe6Fb+DRweDzqScMPSVMh6uM1ap7X2lZ2qi1lbzWt/l/CakpjRjH9bwIShucw/im8cRjZ4pgMJ6YcoshIxfUc5HljD35KP3NtIOZwv2teDcmu6JxCMtLAoUg6XDwAYQQR/gIL7OOAIgcAAA==";
49 private static final Log log = LogFactory.getLog(WelcomeUI.class);
50 private static final long serialVersionUID = 1L;
51
52
53
54
55
56 protected List<Object> $activeBindings = new ArrayList<Object>();
57 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
58 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
59 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
60 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
61 private boolean allComponentsCreated;
62 protected final JAXXContext delegateContext = new DefaultJAXXContext();
63
64
65
66
67
68 protected DaliHelpBroker broker;
69 protected JButton extractionButton;
70 protected final WelcomeUIHandler handler = createHandler();
71 protected DaliUIContext model;
72 protected JButton observationButton;
73
74
75
76
77
78 private JLabel $JLabel0;
79 private JLabel $JLabel1;
80 private JLabel $JLabel2;
81 private WelcomeUI $JPanel0 = this;
82 private JPanel $JPanel1;
83
84
85
86
87
88 public WelcomeUI(ApplicationUI parentUI) {
89 ApplicationUIUtil.setParentUI(this, parentUI);
90 $initialize();
91 }
92
93 public WelcomeUI() {
94 $initialize();
95 }
96
97 public WelcomeUI(JAXXContext parentContext) {
98 JAXXUtil.initContext(this, parentContext);
99 $initialize();
100 }
101
102 public WelcomeUI(boolean param0) {
103 super(param0);
104 $initialize();
105 }
106
107 public WelcomeUI(JAXXContext parentContext, boolean param1) {
108 super(param1);
109 JAXXUtil.initContext(this, parentContext);
110 $initialize();
111 }
112
113 public WelcomeUI(LayoutManager param0) {
114 super(param0);
115 $initialize();
116 }
117
118 public WelcomeUI(JAXXContext parentContext, LayoutManager param1) {
119 super(param1);
120 JAXXUtil.initContext(this, parentContext);
121 $initialize();
122 }
123
124 public WelcomeUI(LayoutManager param0, boolean param1) {
125 super(param0 ,param1);
126 $initialize();
127 }
128
129 public WelcomeUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
130 super(param1 ,param2);
131 JAXXUtil.initContext(this, parentContext);
132 $initialize();
133 }
134
135
136
137
138
139 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
140 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
141 }
142
143
144
145
146
147 @Override
148 public void applyDataBinding(String $binding) {
149 if (allComponentsCreated && $bindings.containsKey($binding)) {
150 getDataBinding($binding).applyDataBinding();
151 }
152 processDataBinding($binding);
153 }
154
155 @Override
156 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
157 super.firePropertyChange(propertyName, oldValue, newValue);
158 }
159
160 @Override
161 public Map<String, Object> get$objectMap() {
162 return $objectMap;
163 }
164
165 @Override
166 public JAXXBinding getDataBinding(String bindingId) {
167 return $bindings.get(bindingId);
168 }
169
170 @Override
171 public JAXXBinding[] getDataBindings() {
172 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
173 }
174
175 @Override
176 public Object getObjectById(String id) {
177 return $objectMap.get(id);
178 }
179
180 @Override
181 public void processDataBinding(String $binding, boolean $force) {
182 if (!$force && $activeBindings.contains($binding)) {
183 return;
184 }
185 $activeBindings.add($binding);
186 try {
187 if (allComponentsCreated && $bindings.containsKey($binding)) {
188 getDataBinding($binding).processDataBinding();
189 }
190 } finally {
191 $activeBindings.remove($binding);
192 }
193 }
194
195 @Override
196 public void processDataBinding(String $binding) {
197 processDataBinding($binding, false);
198 }
199
200 @Override
201 public void registerDataBinding(JAXXBinding binding) {
202 $bindings.put(binding.getId(), binding);
203 }
204
205 @Override
206 public void removeDataBinding(String $binding) {
207 if (allComponentsCreated && $bindings.containsKey($binding)) {
208 getDataBinding($binding).removeDataBinding();
209 }
210 }
211
212
213
214
215
216 @Override
217 public <T> T getContextValue(Class<T> clazz) {
218 return delegateContext.getContextValue(clazz, null);
219 }
220
221 @Override
222 public <T> T getContextValue(Class<T> clazz, String name) {
223 return delegateContext.getContextValue(clazz, name);
224 }
225
226 @Override
227 public JAXXContext getDelegateContext() {
228 return delegateContext;
229 }
230
231 @Override
232 public <O extends Container> O getParentContainer(Class<O> clazz) {
233 return SwingUtil.getParentContainer(this, clazz);
234 }
235
236 @Override
237 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
238 return SwingUtil.getParentContainer(source, clazz);
239 }
240
241 @Override
242 public <T> void removeContextValue(Class<T> clazz) {
243 delegateContext.removeContextValue(clazz, null);
244 }
245
246 @Override
247 public <T> void removeContextValue(Class<T> clazz, String name) {
248 delegateContext.removeContextValue(clazz, name);
249 }
250
251 @Override
252 public <T> void setContextValue(T o) {
253 delegateContext.setContextValue(o, null);
254 }
255
256 @Override
257 public <T> void setContextValue(T o, String name) {
258 delegateContext.setContextValue(o, name);
259 }
260
261
262
263
264
265 public DaliHelpBroker getBroker() {
266 return broker;
267 }
268
269 public JButton getExtractionButton() {
270 return extractionButton;
271 }
272
273 public WelcomeUIHandler getHandler() {
274 return handler;
275 }
276
277 public DaliUIContext getModel() {
278 return model;
279 }
280
281 public JButton getObservationButton() {
282 return observationButton;
283 }
284
285
286
287
288
289 @Override
290 public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
291 broker.installUI(component, helpId);
292 }
293
294 @Override
295 public void showHelp(String helpId) {
296 getBroker().showHelp(this, helpId);
297 }
298
299
300
301
302
303 protected JLabel get$JLabel0() {
304 return $JLabel0;
305 }
306
307 protected JLabel get$JLabel1() {
308 return $JLabel1;
309 }
310
311 protected JLabel get$JLabel2() {
312 return $JLabel2;
313 }
314
315 protected JPanel get$JPanel1() {
316 return $JPanel1;
317 }
318
319
320
321
322
323 protected void createBroker() {
324 $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
325 }
326
327 protected void createExtractionButton() {
328 $objectMap.put("extractionButton", extractionButton = new JButton());
329
330 extractionButton.setName("extractionButton");
331 extractionButton.putClientProperty("applicationAction", fr.ifremer.dali.ui.swing.action.GoToExtractionAction.class);
332 }
333
334 protected WelcomeUIHandler createHandler() {
335 return new WelcomeUIHandler();
336 }
337
338 protected void createModel() {
339 $objectMap.put("model", model = getContextValue(DaliUIContext.class));
340 }
341
342 protected void createObservationButton() {
343 $objectMap.put("observationButton", observationButton = new JButton());
344
345 observationButton.setName("observationButton");
346 observationButton.putClientProperty("applicationAction", fr.ifremer.dali.ui.swing.action.GoToObservationAction.class);
347 }
348
349
350
351
352
353 private void $completeSetup() {
354 allComponentsCreated = true;
355 if (log.isDebugEnabled()) {
356 log.debug(this);
357 }
358
359 add($JPanel1);
360
361 $JPanel1.add(observationButton);
362 $JPanel1.add($JLabel0);
363 $JPanel1.add($JLabel1);
364 $JPanel1.add($JLabel2);
365 $JPanel1.add(extractionButton);
366
367
368 JAXXUtil.applyDataBinding(this, $bindings.keySet());
369
370
371 observationButton.setAlignmentX(Component.CENTER_ALIGNMENT);
372 extractionButton.setAlignmentX(Component.CENTER_ALIGNMENT);
373 }
374
375 private void $initialize() {
376 if (allComponentsCreated) {
377 return;
378 }
379 if (log.isDebugEnabled()) {
380 log.debug(this);
381 }
382 handler.beforeInit(this);
383 $objectMap.put("$JPanel0", $JPanel0);
384 createModel();
385 createBroker();
386
387 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
388
389 $JPanel1.setName("$JPanel1");
390 createObservationButton();
391
392 $objectMap.put("$JLabel0", $JLabel0 = new JLabel());
393
394 $JLabel0.setName("$JLabel0");
395
396 $objectMap.put("$JLabel1", $JLabel1 = new JLabel());
397
398 $JLabel1.setName("$JLabel1");
399
400 $objectMap.put("$JLabel2", $JLabel2 = new JLabel());
401
402 $JLabel2.setName("$JLabel2");
403 createExtractionButton();
404
405 setName("$JPanel0");
406 setLayout(new GridBagLayout());
407
408
409 $registerDefaultBindings();
410 $completeSetup();
411 handler.afterInit(this);
412 }
413
414 private void $registerDefaultBindings() {
415
416 registerDataBinding(new DefaultJAXXBinding(this, BINDING_OBSERVATION_BUTTON_ENABLED, true) {
417
418 @Override
419 public void applyDataBinding() {
420 if (model != null) {
421 model.addPropertyChangeListener("authenticated", this);
422 }
423 }
424
425 @Override
426 public void processDataBinding() {
427 if (model != null) {
428 observationButton.setEnabled(model.isAuthenticated());
429 }
430 }
431
432 @Override
433 public void removeDataBinding() {
434 if (model != null) {
435 model.removePropertyChangeListener("authenticated", this);
436 }
437 }
438 });
439 registerDataBinding(new DefaultJAXXBinding(this, BINDING_EXTRACTION_BUTTON_ENABLED, true) {
440
441 @Override
442 public void applyDataBinding() {
443 if (model != null) {
444 model.addPropertyChangeListener("authenticated", this);
445 }
446 }
447
448 @Override
449 public void processDataBinding() {
450 if (model != null) {
451 extractionButton.setEnabled(model.isAuthenticated());
452 }
453 }
454
455 @Override
456 public void removeDataBinding() {
457 if (model != null) {
458 model.removePropertyChangeListener("authenticated", this);
459 }
460 }
461 });
462 }
463
464 }