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