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