1 package fr.ifremer.dali.ui.swing.content.manage.program.programs.users;
2
3 import fr.ifremer.dali.dto.referential.PersonDTO;
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.user.element.FilterElementUserUI;
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 UsersDialogUI extends JDialog implements DaliUI<UsersDialogUIModel, UsersDialogUIHandler>, 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 = "H4sIAAAAAAAAAK1Vz28TRxR+NnESxylpMUS0CSIJrUSENAYk1EqpaNr8UIMcoA2RQn3peHfiDJqd2c7MwkJVxJ/QP6HcuVTqraeqB84ceqn6L1SIA1fEm11nN47XxFKw5LH9fnzv+97Oe372P1SMhvl7NI6JjqTlASM3vt7ZudW+xzy7yoyneWiVhvRVKkO5BTU/sxsLF1pNl97opjdWVBAqyeSB7KUmTBj7UDCzx5i1cK43wzOmsZW5l+Iw0vuoGaki1N9evSz/6j95WgaIQ2RXQylzR2XlSkaaUOa+hVNY6T5tCCo7SENz2UG+HzjbiqDG3KQB+wkew1gTRkOqEczCwvCSE4wkPw4t1CLDtFnlVKiOheauJnxXs4Bp4lPBScSJeYAEiKekRTwSUEk7jIRadTQN9j8NSWDIdg62vRGGSZlRC5VA+UxY+O59wm86zLzGlODG3qaSiSZ9qCLsSe8lSuusUO2n/qtrsc2zxz+9keRexu67Rsfd+NTqgqpZbDWr5Ayn3XEqc9Z3ubBMrwkUKa0jvL1h4dawwtPsRC5hKQZZ70d0xc70kb+S8cl91aRzTWRs4aMeZc7mgj7pw7laoGvSo9Jj4htsLDKGeg9UanWR57OEk/dRp08ty50XuhEaZnoeDY4bycctn4dSCyo6QrOFs63+Cf0eXelsnj00mw4w8b6Zrv/z539/rB8cyDOFoQf2CQ4K3ruQactd6al0GiPLRWOThkstqBp8NF66bGYLiG113UgO6yVdJy6dfEvNHkJUxv796+/pH1+cgPI6TAhF/XXq4jegavc0dkEJPw6/Wk4YTT4Yx/NDfJfxaaKXP6JtgW0asTpi6WxR0f0ZYzNmC5qRMWpXn7+ub/2+vN+QEhL8eGB43pTKDzDKpeCSJTuqu34Kd1ItNCzyVb5mihYP9G6esDuJl5Kz0Sd9BC8gv/KF3JQsUJJ7FmaSMfJUgL9JejdJkHknsJ9cyQ03XTCaul2LWOzGoCdVKINdrFmlxB0e3hkQEUeO2LWkY+7b53BoJI5SUOlTcO5gkf1hGaiBeh4LbabhdFHyYRkDgsaYdDcI/2jmf04WM+kwezvdtBcXCTdrPrcu4uLiL0W6D032UcpLyF50V/LJLzGPzrW59HFxXO9DL7lz4khEZ95xx91ihPqxEaaHUdVW2mf6HSgzx+ZxfIS5IZSMcC/d0AMwFoZiYd6B8BkivAWjdIwa3AkAAA==";
57 private static final Log log = LogFactory.getLog(UsersDialogUI.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 FilterElementUserUI filterElementUserUI;
78 protected final UsersDialogUIHandler handler = createHandler();
79 protected JPanel listPanel;
80 protected CardLayout2Ext listPanelLayout;
81 protected UsersDialogUIModel model;
82 protected UsersDialogUI usersDialog = this;
83 protected JList<PersonDTO> usersList;
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 UsersDialogUI(DaliUIContext context) {
99 super(context.getMainUI());
100 ApplicationUIUtil.setApplicationContext(this, context);
101 $initialize();
102 }
103
104 public UsersDialogUI(Window param0) {
105 super(param0);
106 $initialize();
107 }
108
109 public UsersDialogUI(JAXXContext parentContext, Window param1) {
110 super(param1);
111 JAXXUtil.initContext(this, parentContext);
112 $initialize();
113 }
114
115 public UsersDialogUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
116 super(param0 ,param1 ,param2 ,param3);
117 $initialize();
118 }
119
120 public UsersDialogUI(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 UsersDialogUI(Dialog param0, String param1, boolean param2) {
127 super(param0 ,param1 ,param2);
128 $initialize();
129 }
130
131 public UsersDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
132 super(param1 ,param2 ,param3);
133 JAXXUtil.initContext(this, parentContext);
134 $initialize();
135 }
136
137 public UsersDialogUI(Dialog param0, String param1) {
138 super(param0 ,param1);
139 $initialize();
140 }
141
142 public UsersDialogUI(JAXXContext parentContext, Dialog param1, String param2) {
143 super(param1 ,param2);
144 JAXXUtil.initContext(this, parentContext);
145 $initialize();
146 }
147
148 public UsersDialogUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
149 super(param0 ,param1 ,param2 ,param3);
150 $initialize();
151 }
152
153 public UsersDialogUI(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 UsersDialogUI(Window param0, String param1, ModalityType param2) {
160 super(param0 ,param1 ,param2);
161 $initialize();
162 }
163
164 public UsersDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
165 super(param1 ,param2 ,param3);
166 JAXXUtil.initContext(this, parentContext);
167 $initialize();
168 }
169
170 public UsersDialogUI(Window param0, String param1) {
171 super(param0 ,param1);
172 $initialize();
173 }
174
175 public UsersDialogUI(JAXXContext parentContext, Window param1, String param2) {
176 super(param1 ,param2);
177 JAXXUtil.initContext(this, parentContext);
178 $initialize();
179 }
180
181 public UsersDialogUI(Window param0, ModalityType param1) {
182 super(param0 ,param1);
183 $initialize();
184 }
185
186 public UsersDialogUI(JAXXContext parentContext, Window param1, ModalityType param2) {
187 super(param1 ,param2);
188 JAXXUtil.initContext(this, parentContext);
189 $initialize();
190 }
191
192 public UsersDialogUI(Frame param0, String param1) {
193 super(param0 ,param1);
194 $initialize();
195 }
196
197 public UsersDialogUI(JAXXContext parentContext, Frame param1, String param2) {
198 super(param1 ,param2);
199 JAXXUtil.initContext(this, parentContext);
200 $initialize();
201 }
202
203 public UsersDialogUI(Frame param0, boolean param1) {
204 super(param0 ,param1);
205 $initialize();
206 }
207
208 public UsersDialogUI(JAXXContext parentContext, Frame param1, boolean param2) {
209 super(param1 ,param2);
210 JAXXUtil.initContext(this, parentContext);
211 $initialize();
212 }
213
214 public UsersDialogUI(Frame param0) {
215 super(param0);
216 $initialize();
217 }
218
219 public UsersDialogUI(JAXXContext parentContext, Frame param1) {
220 super(param1);
221 JAXXUtil.initContext(this, parentContext);
222 $initialize();
223 }
224
225 public UsersDialogUI() {
226 $initialize();
227 }
228
229 public UsersDialogUI(JAXXContext parentContext) {
230 JAXXUtil.initContext(this, parentContext);
231 $initialize();
232 }
233
234 public UsersDialogUI(Dialog param0, boolean param1) {
235 super(param0 ,param1);
236 $initialize();
237 }
238
239 public UsersDialogUI(JAXXContext parentContext, Dialog param1, boolean param2) {
240 super(param1 ,param2);
241 JAXXUtil.initContext(this, parentContext);
242 $initialize();
243 }
244
245 public UsersDialogUI(Dialog param0) {
246 super(param0);
247 $initialize();
248 }
249
250 public UsersDialogUI(JAXXContext parentContext, Dialog param1) {
251 super(param1);
252 JAXXUtil.initContext(this, parentContext);
253 $initialize();
254 }
255
256 public UsersDialogUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
257 super(param0 ,param1 ,param2 ,param3);
258 $initialize();
259 }
260
261 public UsersDialogUI(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 UsersDialogUI(Frame param0, String param1, boolean param2) {
268 super(param0 ,param1 ,param2);
269 $initialize();
270 }
271
272 public UsersDialogUI(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 FilterElementUserUI getFilterElementUserUI() {
431 return filterElementUserUI;
432 }
433
434 public UsersDialogUIHandler getHandler() {
435 return handler;
436 }
437
438 public JPanel getListPanel() {
439 return listPanel;
440 }
441
442 public CardLayout2Ext getListPanelLayout() {
443 return listPanelLayout;
444 }
445
446 public UsersDialogUIModel getModel() {
447 return model;
448 }
449
450 public JList<PersonDTO> getUsersList() {
451 return usersList;
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 addChildrenToListPanel() {
479 if (!allComponentsCreated) {
480 return;
481 }
482 listPanel.add(filterElementUserUI, UsersDialogUIHandler.DOUBLE_LIST);
483 listPanel.add($JPanel1, UsersDialogUIHandler.LIST);
484 }
485
486 protected void addChildrenToUsersDialog() {
487 if (!allComponentsCreated) {
488 return;
489 }
490 add($JPanel0);
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 createFilterElementUserUI() {
503 $objectMap.put("filterElementUserUI", filterElementUserUI = new FilterElementUserUI(this));
504
505 filterElementUserUI.setName("filterElementUserUI");
506 }
507
508 protected UsersDialogUIHandler createHandler() {
509 return new UsersDialogUIHandler();
510 }
511
512 protected void createListPanel() {
513 $objectMap.put("listPanel", listPanel = new JPanel());
514
515 listPanel.setName("listPanel");
516 listPanel.setLayout(listPanelLayout);
517 }
518
519 protected void createListPanelLayout() {
520 $objectMap.put("listPanelLayout", listPanelLayout = new CardLayout2Ext(this, "listPanel"));
521 }
522
523 protected void createModel() {
524 $objectMap.put("model", model = getContextValue(UsersDialogUIModel.class));
525 }
526
527 protected void createUsersList() {
528 $objectMap.put("usersList", usersList = new JList<PersonDTO>());
529
530 usersList.setName("usersList");
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 addChildrenToUsersDialog();
552
553 $JPanel0.add(listPanel);
554 $JPanel0.add($JPanel2, BorderLayout.PAGE_END);
555 addChildrenToListPanel();
556
557 $JPanel1.add(usersList);
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 usersDialog.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("usersDialog", usersDialog);
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 createFilterElementUserUI();
593
594 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
595
596 $JPanel1.setName("$JPanel1");
597 $JPanel1.setLayout(new BorderLayout());
598 createUsersList();
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("usersDialog");
608 usersDialog.getContentPane().setLayout(new BorderLayout());
609 setResizable(true);
610 setModal(true);
611
612
613 $registerDefaultBindings();
614 $completeSetup();
615 handler.afterInit(this);
616 }
617
618 private void $registerDefaultBindings() {
619
620 registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_BUTTON_ENABLED, true) {
621
622 @Override
623 public void applyDataBinding() {
624 if (model != null) {
625 model.addPropertyChangeListener("program", this);
626 }
627 }
628
629 @Override
630 public void processDataBinding() {
631 if (model != null && model.getProgram() != null) {
632 validateButton.setEnabled(model.getProgram().isEditable());
633 }
634 }
635
636 @Override
637 public void removeDataBinding() {
638 if (model != null) {
639 model.removePropertyChangeListener("program", this);
640 }
641 }
642 });
643 }
644
645 }