1 package fr.ifremer.reefdb.ui.swing.content.manage.referential.taxon.taxonsDialog;
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 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
28 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
29 import fr.ifremer.reefdb.ui.swing.ReefDbHelpBroker;
30 import fr.ifremer.reefdb.ui.swing.ReefDbUIContext;
31 import fr.ifremer.reefdb.ui.swing.content.manage.filter.taxon.element.FilterElementTaxonUI;
32 import fr.ifremer.reefdb.ui.swing.content.manage.referential.taxon.national.TaxonsNationalUI;
33 import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
34 import java.awt.BorderLayout;
35 import java.awt.Component;
36 import java.awt.Container;
37 import java.awt.Dialog;
38 import java.awt.Dialog.ModalityType;
39 import java.awt.FlowLayout;
40 import java.awt.Frame;
41 import java.awt.GraphicsConfiguration;
42 import java.awt.GridLayout;
43 import java.awt.Window;
44 import java.awt.event.ActionEvent;
45 import java.awt.event.ActionListener;
46 import java.util.ArrayList;
47 import java.util.HashMap;
48 import java.util.List;
49 import java.util.Map;
50 import java.util.TreeMap;
51 import javax.swing.Box;
52 import javax.swing.BoxLayout;
53 import javax.swing.JButton;
54 import javax.swing.JDialog;
55 import javax.swing.JPanel;
56 import javax.swing.SwingConstants;
57 import jaxx.runtime.JAXXBinding;
58 import jaxx.runtime.JAXXContext;
59 import jaxx.runtime.JAXXObject;
60 import jaxx.runtime.JAXXObjectDescriptor;
61 import jaxx.runtime.JAXXUtil;
62 import jaxx.runtime.SwingUtil;
63 import jaxx.runtime.binding.DefaultJAXXBinding;
64 import jaxx.runtime.context.DefaultJAXXContext;
65 import jaxx.runtime.swing.CardLayout2Ext;
66 import org.apache.commons.logging.Log;
67 import org.apache.commons.logging.LogFactory;
68 import static org.nuiton.i18n.I18n.t;
69
70 public class TaxonsDialogUI extends JDialog implements ReefDbUI<TaxonsDialogUIModel, TaxonsDialogUIHandler>, JAXXObject {
71
72
73
74
75
76 public static final String BINDING_ACTION_VALIDATE_ENABLED = "actionValidate.enabled";
77
78
79
80
81
82 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVVTW8UORCtGTJJJuE7ELEiLASQACF5YFdIK2W1fIRkN2gCiCSAGA54uj2Jkdv2ut3QYQXiJ+xPWO5ckLhxQhw4c+CC9i+sVhy4Isrdzkxm0kMiIUYaT+yq915V2VV5/h9UYgOT92maEpNIyyNGrly8ffta8z4L7GUWB4Zrqwzkn1IZyg0YDdvnsYVjjbqD1zy8Nq0irSST69BTdRiJ7apg8Qpj1sKhbkQQx7WFtnkq1YlZY20HVcT6z8f/y3+HT5+VAVKN0VUxlSOboTqZDNShzEMLe1HpAa0JKpcxDMPlMsa7w51NCxrHV2nE/oQnMFSHQU0Nklk4uvWUM44Mn2oL2y1NlYwvcyrUsoVbLUN4y7CIGWIYa4VNknASP8QYSKCkRUoSUUmXGZpbzIkjkmQkZD0VWVy3WZrTOpMctFCJVMiEhbvfSWne0Xfkdgke2+tUMlGnqyrBUnW/rVxwmpowt/80k9oOejQXyvB4L+4KUg+5kh06v2qv+yJtCmZh6VsylNRyJXGbZ3fVb5fmnNTetqK/vlkuLDMWFrYu2cogXo0JhKAt55nJd5lyr+Dw8TzxM26/rzv9ERq4KGdSjmUe6yrWJay8ks7vYNt9Z+5+kwoeUps96cPew8DBrlvChiSdhux0TKkBFZPgsYUDjY09fANNefce6OleR5hZP4+PvX/178vZtZYdRu39ha7rJg62kjZKY8W5k96V92tiuajNUz3VwMbHigb5OJooCGzBmzE41Nvj4MTByR80XkGKytCH12/G773bBuVZGBGKhrPU+c9B1a4YrIISYarPX8gi2v5wGNfd+N1moYpW/ih/gAPWJPhTsdy67aR/ET701fzufzcq0b6h8u6kwkNTLNxEQeHa0Terbz+NLby4sFa8EibzQ1/3TgErd2CQS8ElyyaeH2aFE25UxywJVWdoFY0x6Jlj2nfwiWw9vaFOA+jPz/4i5yWLlOQBXpKvTaAiPCGBUDEjUdvsX/ac6yEYDKgMWFYklrqXXoB1s0Apscj1Yl+fNHHR/ZzVzf11DrpaaLMkKhuSONwt8sA3Vt88aBAwbdt5jBfDe1Pp6zbEpHt3+A9s31/ZkCc8ngm5dYcnTz0uSrdnBGyWcgmDFn6M7/wVEfRIk8sQJ8xvG9hLbh3ZlNEd33TLrWKGsW9mmNhCVgM8yKdjH44ftxRF+BWGSWT4Auha7HhdCQAA";
83 private static final Log log = LogFactory.getLog(TaxonsDialogUI.class);
84 private static final long serialVersionUID = 1L;
85
86
87
88
89
90 protected List<Object> $activeBindings = new ArrayList<Object>();
91 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
92 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
93 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
94 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
95 private boolean allComponentsCreated;
96 protected final JAXXContext delegateContext = new DefaultJAXXContext();
97
98
99
100
101
102 protected JButton actionExit;
103 protected JButton actionValidate;
104 protected final TaxonsDialogUIHandler handler = createHandler();
105 protected CardLayout2Ext listPanelLayout;
106 protected TaxonsDialogUIModel model;
107 protected TaxonsDialogUI taxonsDialog = this;
108 protected FilterElementTaxonUI taxonsFilter;
109 protected JPanel taxonsPanel;
110 protected TaxonsNationalUI taxonsTable;
111
112
113
114
115
116 private JPanel $JPanel0;
117
118
119
120
121
122 public TaxonsDialogUI(ApplicationUI parentUI) {
123 ApplicationUIUtil.setParentUI(this, parentUI);
124 $initialize();
125 }
126
127 public TaxonsDialogUI(Frame param0, String param1, boolean param2) {
128 super(param0 ,param1 ,param2);
129 $initialize();
130 }
131
132 public TaxonsDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
133 super(param1 ,param2 ,param3);
134 JAXXUtil.initContext(this, parentContext);
135 $initialize();
136 }
137
138 public TaxonsDialogUI(Frame param0, String param1) {
139 super(param0 ,param1);
140 $initialize();
141 }
142
143 public TaxonsDialogUI(JAXXContext parentContext, Frame param1, String param2) {
144 super(param1 ,param2);
145 JAXXUtil.initContext(this, parentContext);
146 $initialize();
147 }
148
149 public TaxonsDialogUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
150 super(param0 ,param1 ,param2 ,param3);
151 $initialize();
152 }
153
154 public TaxonsDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
155 super(param1 ,param2 ,param3 ,param4);
156 JAXXUtil.initContext(this, parentContext);
157 $initialize();
158 }
159
160 public TaxonsDialogUI(Dialog param0) {
161 super(param0);
162 $initialize();
163 }
164
165 public TaxonsDialogUI(JAXXContext parentContext, Dialog param1) {
166 super(param1);
167 JAXXUtil.initContext(this, parentContext);
168 $initialize();
169 }
170
171 public TaxonsDialogUI(Frame param0, boolean param1) {
172 super(param0 ,param1);
173 $initialize();
174 }
175
176 public TaxonsDialogUI(JAXXContext parentContext, Frame param1, boolean param2) {
177 super(param1 ,param2);
178 JAXXUtil.initContext(this, parentContext);
179 $initialize();
180 }
181
182 public TaxonsDialogUI() {
183 $initialize();
184 }
185
186 public TaxonsDialogUI(JAXXContext parentContext) {
187 JAXXUtil.initContext(this, parentContext);
188 $initialize();
189 }
190
191 public TaxonsDialogUI(Frame param0) {
192 super(param0);
193 $initialize();
194 }
195
196 public TaxonsDialogUI(JAXXContext parentContext, Frame param1) {
197 super(param1);
198 JAXXUtil.initContext(this, parentContext);
199 $initialize();
200 }
201
202 public TaxonsDialogUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
203 super(param0 ,param1 ,param2 ,param3);
204 $initialize();
205 }
206
207 public TaxonsDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
208 super(param1 ,param2 ,param3 ,param4);
209 JAXXUtil.initContext(this, parentContext);
210 $initialize();
211 }
212
213 public TaxonsDialogUI(Window param0) {
214 super(param0);
215 $initialize();
216 }
217
218 public TaxonsDialogUI(JAXXContext parentContext, Window param1) {
219 super(param1);
220 JAXXUtil.initContext(this, parentContext);
221 $initialize();
222 }
223
224 public TaxonsDialogUI(Window param0, ModalityType param1) {
225 super(param0 ,param1);
226 $initialize();
227 }
228
229 public TaxonsDialogUI(JAXXContext parentContext, Window param1, ModalityType param2) {
230 super(param1 ,param2);
231 JAXXUtil.initContext(this, parentContext);
232 $initialize();
233 }
234
235 public TaxonsDialogUI(Window param0, String param1) {
236 super(param0 ,param1);
237 $initialize();
238 }
239
240 public TaxonsDialogUI(JAXXContext parentContext, Window param1, String param2) {
241 super(param1 ,param2);
242 JAXXUtil.initContext(this, parentContext);
243 $initialize();
244 }
245
246 public TaxonsDialogUI(Window param0, String param1, ModalityType param2) {
247 super(param0 ,param1 ,param2);
248 $initialize();
249 }
250
251 public TaxonsDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
252 super(param1 ,param2 ,param3);
253 JAXXUtil.initContext(this, parentContext);
254 $initialize();
255 }
256
257 public TaxonsDialogUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
258 super(param0 ,param1 ,param2 ,param3);
259 $initialize();
260 }
261
262 public TaxonsDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
263 super(param1 ,param2 ,param3 ,param4);
264 JAXXUtil.initContext(this, parentContext);
265 $initialize();
266 }
267
268 public TaxonsDialogUI(Dialog param0, boolean param1) {
269 super(param0 ,param1);
270 $initialize();
271 }
272
273 public TaxonsDialogUI(JAXXContext parentContext, Dialog param1, boolean param2) {
274 super(param1 ,param2);
275 JAXXUtil.initContext(this, parentContext);
276 $initialize();
277 }
278
279 public TaxonsDialogUI(Dialog param0, String param1) {
280 super(param0 ,param1);
281 $initialize();
282 }
283
284 public TaxonsDialogUI(JAXXContext parentContext, Dialog param1, String param2) {
285 super(param1 ,param2);
286 JAXXUtil.initContext(this, parentContext);
287 $initialize();
288 }
289
290 public TaxonsDialogUI(Dialog param0, String param1, boolean param2) {
291 super(param0 ,param1 ,param2);
292 $initialize();
293 }
294
295 public TaxonsDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
296 super(param1 ,param2 ,param3);
297 JAXXUtil.initContext(this, parentContext);
298 $initialize();
299 }
300
301
302
303
304
305 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
306 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
307 }
308
309
310
311
312
313 @Override
314 public void applyDataBinding(String $binding) {
315 if (allComponentsCreated && $bindings.containsKey($binding)) {
316 getDataBinding($binding).applyDataBinding();
317 }
318 processDataBinding($binding);
319 }
320
321 @Override
322 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
323 super.firePropertyChange(propertyName, oldValue, newValue);
324 }
325
326 @Override
327 public Map<String, Object> get$objectMap() {
328 return $objectMap;
329 }
330
331 @Override
332 public JAXXBinding getDataBinding(String bindingId) {
333 return $bindings.get(bindingId);
334 }
335
336 @Override
337 public JAXXBinding[] getDataBindings() {
338 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
339 }
340
341 @Override
342 public Object getObjectById(String id) {
343 return $objectMap.get(id);
344 }
345
346 @Override
347 public void processDataBinding(String $binding, boolean $force) {
348 if (!$force && $activeBindings.contains($binding)) {
349 return;
350 }
351 $activeBindings.add($binding);
352 try {
353 if (allComponentsCreated && $bindings.containsKey($binding)) {
354 getDataBinding($binding).processDataBinding();
355 }
356 } finally {
357 $activeBindings.remove($binding);
358 }
359 }
360
361 @Override
362 public void processDataBinding(String $binding) {
363 processDataBinding($binding, false);
364 }
365
366 @Override
367 public void registerDataBinding(JAXXBinding binding) {
368 $bindings.put(binding.getId(), binding);
369 }
370
371 @Override
372 public void removeDataBinding(String $binding) {
373 if (allComponentsCreated && $bindings.containsKey($binding)) {
374 getDataBinding($binding).removeDataBinding();
375 }
376 }
377
378
379
380
381
382 @Override
383 public <T> T getContextValue(Class<T> clazz) {
384 return delegateContext.getContextValue(clazz, null);
385 }
386
387 @Override
388 public <T> T getContextValue(Class<T> clazz, String name) {
389 return delegateContext.getContextValue(clazz, name);
390 }
391
392 @Override
393 public JAXXContext getDelegateContext() {
394 return delegateContext;
395 }
396
397 @Override
398 public <O extends Container> O getParentContainer(Class<O> clazz) {
399 return SwingUtil.getParentContainer(this, clazz);
400 }
401
402 @Override
403 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
404 return SwingUtil.getParentContainer(source, clazz);
405 }
406
407 @Override
408 public <T> void removeContextValue(Class<T> clazz) {
409 delegateContext.removeContextValue(clazz, null);
410 }
411
412 @Override
413 public <T> void removeContextValue(Class<T> clazz, String name) {
414 delegateContext.removeContextValue(clazz, name);
415 }
416
417 @Override
418 public <T> void setContextValue(T o) {
419 delegateContext.setContextValue(o, null);
420 }
421
422 @Override
423 public <T> void setContextValue(T o, String name) {
424 delegateContext.setContextValue(o, name);
425 }
426
427
428
429
430
431 public void doActionPerformed__on__actionExit(ActionEvent event) {
432 if (log.isDebugEnabled()) {
433 log.debug(event);
434 }
435 handler.cancel();
436 }
437
438 public void doActionPerformed__on__actionValidate(ActionEvent event) {
439 if (log.isDebugEnabled()) {
440 log.debug(event);
441 }
442 handler.valid();
443 }
444
445
446
447
448
449 public JButton getActionExit() {
450 return actionExit;
451 }
452
453 public JButton getActionValidate() {
454 return actionValidate;
455 }
456
457 public TaxonsDialogUIHandler getHandler() {
458 return handler;
459 }
460
461 public CardLayout2Ext getListPanelLayout() {
462 return listPanelLayout;
463 }
464
465 public TaxonsDialogUIModel getModel() {
466 return model;
467 }
468
469 public FilterElementTaxonUI getTaxonsFilter() {
470 return taxonsFilter;
471 }
472
473 public JPanel getTaxonsPanel() {
474 return taxonsPanel;
475 }
476
477 public TaxonsNationalUI getTaxonsTable() {
478 return taxonsTable;
479 }
480
481
482
483
484
485 protected JPanel get$JPanel0() {
486 return $JPanel0;
487 }
488
489
490
491
492
493 protected void addChildrenToTaxonsDialog() {
494 if (!allComponentsCreated) {
495 return;
496 }
497 add(taxonsPanel, BorderLayout.CENTER);
498 add($JPanel0, BorderLayout.PAGE_END);
499 }
500
501 protected void addChildrenToTaxonsPanel() {
502 if (!allComponentsCreated) {
503 return;
504 }
505 taxonsPanel.add(taxonsTable, TaxonsDialogUIHandler.TABLE);
506 taxonsPanel.add(taxonsFilter, TaxonsDialogUIHandler.FILTER);
507 }
508
509 protected void createActionExit() {
510 $objectMap.put("actionExit", actionExit = new JButton());
511
512 actionExit.setName("actionExit");
513 actionExit.setText(t("reefdb.common.close"));
514 actionExit.setToolTipText(t("reefdb.common.close"));
515 actionExit.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionExit"));
516 }
517
518 protected void createActionValidate() {
519 $objectMap.put("actionValidate", actionValidate = new JButton());
520
521 actionValidate.setName("actionValidate");
522 actionValidate.setText(t("reefdb.common.validate"));
523 actionValidate.setToolTipText(t("reefdb.common.validate"));
524 actionValidate.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionValidate"));
525 }
526
527 protected TaxonsDialogUIHandler createHandler() {
528 return new TaxonsDialogUIHandler();
529 }
530
531 protected void createListPanelLayout() {
532 $objectMap.put("listPanelLayout", listPanelLayout = new CardLayout2Ext(this, "taxonsPanel"));
533 }
534
535 protected void createModel() {
536 $objectMap.put("model", model = getContextValue(TaxonsDialogUIModel.class));
537 }
538
539 protected void createTaxonsFilter() {
540 $objectMap.put("taxonsFilter", taxonsFilter = new FilterElementTaxonUI(this));
541
542 taxonsFilter.setName("taxonsFilter");
543 }
544
545 protected void createTaxonsPanel() {
546 $objectMap.put("taxonsPanel", taxonsPanel = new JPanel());
547
548 taxonsPanel.setName("taxonsPanel");
549 taxonsPanel.setLayout(listPanelLayout);
550 }
551
552 protected void createTaxonsTable() {
553 $objectMap.put("taxonsTable", taxonsTable = new TaxonsNationalUI(this));
554
555 taxonsTable.setName("taxonsTable");
556 }
557
558
559
560
561
562 private void $completeSetup() {
563 allComponentsCreated = true;
564 if (log.isDebugEnabled()) {
565 log.debug(this);
566 }
567 addChildrenToTaxonsDialog();
568 addChildrenToTaxonsPanel();
569
570 $JPanel0.add(actionExit);
571 $JPanel0.add(actionValidate);
572
573
574 JAXXUtil.applyDataBinding(this, $bindings.keySet());
575
576
577 actionExit.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.close.mnemonic"),'Z'));
578 actionExit.setIcon(SwingUtil.createActionIcon("cancel"));
579 actionValidate.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.validate.mnemonic"),'Z'));
580 actionValidate.setIcon(SwingUtil.createActionIcon("accept"));
581
582 taxonsDialog.pack();
583 }
584
585 private void $initialize() {
586 if (allComponentsCreated) {
587 return;
588 }
589 if (log.isDebugEnabled()) {
590 log.debug(this);
591 }
592 handler.beforeInit(this);
593 $objectMap.put("taxonsDialog", taxonsDialog);
594 createModel();
595 createListPanelLayout();
596 createTaxonsPanel();
597 createTaxonsTable();
598 createTaxonsFilter();
599
600 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
601
602 $JPanel0.setName("$JPanel0");
603 $JPanel0.setLayout(new GridLayout(1,0));
604 createActionExit();
605 createActionValidate();
606
607 setName("taxonsDialog");
608 taxonsDialog.getContentPane().setLayout(new BorderLayout());
609 setResizable(true);
610 setTitle(t("reefdb.property.taxonGroup.taxons"));
611 setModal(true);
612
613
614 $registerDefaultBindings();
615 $completeSetup();
616 handler.afterInit(this);
617 }
618
619 private void $registerDefaultBindings() {
620
621 registerDataBinding(new DefaultJAXXBinding(this, BINDING_ACTION_VALIDATE_ENABLED, true) {
622
623 @Override
624 public void applyDataBinding() {
625 if (model != null) {
626 model.addPropertyChangeListener("editable", this);
627 }
628 }
629
630 @Override
631 public void processDataBinding() {
632 if (model != null) {
633 actionValidate.setEnabled(model.isEditable());
634 }
635 }
636
637 @Override
638 public void removeDataBinding() {
639 if (model != null) {
640 model.removePropertyChangeListener("editable", this);
641 }
642 }
643 });
644 }
645
646 }