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