1 package fr.ifremer.dali.ui.swing.content.extraction.filters.period;
2
3 import fr.ifremer.dali.ui.swing.DaliUIContext;
4 import fr.ifremer.dali.ui.swing.util.DaliUI;
5 import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
6 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
7 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
8 import java.awt.BorderLayout;
9 import java.awt.Component;
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.JPanel;
28 import javax.swing.JScrollPane;
29 import jaxx.runtime.JAXXBinding;
30 import jaxx.runtime.JAXXContext;
31 import jaxx.runtime.JAXXObject;
32 import jaxx.runtime.JAXXObjectDescriptor;
33 import jaxx.runtime.JAXXUtil;
34 import jaxx.runtime.SwingUtil;
35 import jaxx.runtime.binding.DefaultJAXXBinding;
36 import jaxx.runtime.context.DefaultJAXXContext;
37 import org.apache.commons.logging.Log;
38 import org.apache.commons.logging.LogFactory;
39 import static org.nuiton.i18n.I18n.t;
40
41 public class ExtractionPeriodUI extends JDialog implements DaliUI<ExtractionPeriodUIModel, ExtractionPeriodUIHandler>, JAXXObject {
42
43
44
45
46
47 public static final String BINDING_DELETE_BUTTON_ENABLED = "deleteButton.enabled";
48 public static final String BINDING_VALID_BUTTON_ENABLED = "validButton.enabled";
49
50
51
52
53
54 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVWz28bRRQeO3FSOyltElpSJS1pm0Pbw5gKCVVKBYXSiEQJreKAInzpeHfiTLU7M5mZbTZUIA78AfAfwJ0LEjdOiANnDlwQ/wJCHLgi3uzY+yNex5ZSIsV29nvve9/3Zt5zvvsT1bRC15+ROMYq4oaFFG++u7f3uPOMeuZ9qj3FpBEKuZ9KFVXbaMZPn2uDbra3bHqzl958KEIpOOW57LUt1NDmOKD6gFJj0NVihqd1s5XCa7GMVJ81FVXG+s3ff1W/8r/4topQLEHdDFhZGZWVOZncQlXmGzQPlZ6TZkB4F2Qoxrug97x99jAgWn9IQnqIPkfTW2hKEgVkBt0Y33LCkeTHEmrR2CjiGSb4E6qY8D/aMGh7X2G2r2hIFfZJwHDEsD4CHdgT3AAtzrLwPgsMVRrLJB0/GuCTMik3ZVAtFD4NDNp5qfzbljQrcm518wnhNHgDzNmexT1q99QG1dPY86ubLU+JILAYJLxWSMggG34hzZpxUnZJJ6AG4ZyZw4j4inXpm5kjY6Nwy35OEizHfEo176gSae9FxgieIHPFgnVOjxxq0EJBontqwxbT6FloBzU0g5aLeL9Bd9NKWUNmPcK9vpQ09/XM+nM4Ln8QVmipcM9hgnA2QdkVr7RRTUXw2KDF9uDQ7QDkxm3xxLhZwgT99/LCbz/+8cN6f8YuQu1LpaG5FQF3XyoBvTbMlr7gBiwyLGhuE7nWRnUNPfPc/lguEdbqwSAO6s3ZdGzT8QdEHwBFbfr3n36+/PTXCVRdR41AEH+d2PgNVDcHCrogAj+W7zxIFM0enbPC4XcCzhZQ9qm7SrV9Emj7bpixfy8nw5Gbhd4M9GA7TgTGadKoiMbQtOWSpqXKO/Vf/lloff+g37gKGLkyNDxrXu0TNMV4wDhN1lNv85SuoxmpaeSLbMOU7RxUunRkb4DvJK+4rFMNl7FhdwSaIL5vnQMTnGfSJ0+EIfQIZgXuqREi2GVyN8GvDekjhEIvZRzZmm8lPbGf7qH8yI1SNnlC2ZQbv1TcfF5cHyvqKw2ZptzeCnC5+uJ6sjhxlxp3PtTfEUf61m3M9KNQmuNbtz8rM1HYBGP4mGV37/FtTkEG8wxaystyiwGHKVo07eBy033sFNMupNRDfiON8lAb8HA1XyVZXsTQoS6I51FpUhevliWf9DEkKDu+uRfu9Jj+2KJDziq/WUfZrIDUgBwLCEav3Id6ZKXDuA/fCG8PUFfsa2Mcxo5QPlUWV+UsF0ey2MeH/yvDlTGcNKCTXR7C/xF7pzAtjaXly1MYrp3ZzcoYbiaZ575rz+Tj6zP7OI3hxpkZVoHhP9lxUS/9CwAA";
55 private static final Log log = LogFactory.getLog(ExtractionPeriodUI.class);
56 private static final long serialVersionUID = 1L;
57
58
59
60
61
62 protected List<Object> $activeBindings = new ArrayList<Object>();
63 protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
64 protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
65 protected Map<String, Object> $objectMap = new HashMap<String, Object>();
66 protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
67 private boolean allComponentsCreated;
68 protected final JAXXContext delegateContext = new DefaultJAXXContext();
69
70
71
72
73
74 protected JButton cancelButton;
75 protected JButton deleteButton;
76 protected ExtractionPeriodUI extractionPeriodUI = this;
77 protected final ExtractionPeriodUIHandler handler = createHandler();
78 protected ExtractionPeriodUIModel model;
79 protected JButton newButton;
80 protected JPanel periodPanelButtons;
81 protected SwingTable periodTable;
82 protected JButton validButton;
83
84
85
86
87
88 private JPanel $JPanel0;
89 private JPanel $JPanel1;
90 private JScrollPane $JScrollPane0;
91
92
93
94
95
96 public ExtractionPeriodUI(DaliUIContext context) {
97 super(context.getMainUI());
98 ApplicationUIUtil.setApplicationContext(this, context);
99 $initialize();
100 }
101
102 public ExtractionPeriodUI(Window param0) {
103 super(param0);
104 $initialize();
105 }
106
107 public ExtractionPeriodUI(JAXXContext parentContext, Window param1) {
108 super(param1);
109 JAXXUtil.initContext(this, parentContext);
110 $initialize();
111 }
112
113 public ExtractionPeriodUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
114 super(param0 ,param1 ,param2 ,param3);
115 $initialize();
116 }
117
118 public ExtractionPeriodUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
119 super(param1 ,param2 ,param3 ,param4);
120 JAXXUtil.initContext(this, parentContext);
121 $initialize();
122 }
123
124 public ExtractionPeriodUI(Dialog param0, String param1, boolean param2) {
125 super(param0 ,param1 ,param2);
126 $initialize();
127 }
128
129 public ExtractionPeriodUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
130 super(param1 ,param2 ,param3);
131 JAXXUtil.initContext(this, parentContext);
132 $initialize();
133 }
134
135 public ExtractionPeriodUI(Dialog param0, String param1) {
136 super(param0 ,param1);
137 $initialize();
138 }
139
140 public ExtractionPeriodUI(JAXXContext parentContext, Dialog param1, String param2) {
141 super(param1 ,param2);
142 JAXXUtil.initContext(this, parentContext);
143 $initialize();
144 }
145
146 public ExtractionPeriodUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
147 super(param0 ,param1 ,param2 ,param3);
148 $initialize();
149 }
150
151 public ExtractionPeriodUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
152 super(param1 ,param2 ,param3 ,param4);
153 JAXXUtil.initContext(this, parentContext);
154 $initialize();
155 }
156
157 public ExtractionPeriodUI(Window param0, String param1, ModalityType param2) {
158 super(param0 ,param1 ,param2);
159 $initialize();
160 }
161
162 public ExtractionPeriodUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
163 super(param1 ,param2 ,param3);
164 JAXXUtil.initContext(this, parentContext);
165 $initialize();
166 }
167
168 public ExtractionPeriodUI(Window param0, String param1) {
169 super(param0 ,param1);
170 $initialize();
171 }
172
173 public ExtractionPeriodUI(JAXXContext parentContext, Window param1, String param2) {
174 super(param1 ,param2);
175 JAXXUtil.initContext(this, parentContext);
176 $initialize();
177 }
178
179 public ExtractionPeriodUI(Window param0, ModalityType param1) {
180 super(param0 ,param1);
181 $initialize();
182 }
183
184 public ExtractionPeriodUI(JAXXContext parentContext, Window param1, ModalityType param2) {
185 super(param1 ,param2);
186 JAXXUtil.initContext(this, parentContext);
187 $initialize();
188 }
189
190 public ExtractionPeriodUI(Frame param0, String param1) {
191 super(param0 ,param1);
192 $initialize();
193 }
194
195 public ExtractionPeriodUI(JAXXContext parentContext, Frame param1, String param2) {
196 super(param1 ,param2);
197 JAXXUtil.initContext(this, parentContext);
198 $initialize();
199 }
200
201 public ExtractionPeriodUI(Frame param0, boolean param1) {
202 super(param0 ,param1);
203 $initialize();
204 }
205
206 public ExtractionPeriodUI(JAXXContext parentContext, Frame param1, boolean param2) {
207 super(param1 ,param2);
208 JAXXUtil.initContext(this, parentContext);
209 $initialize();
210 }
211
212 public ExtractionPeriodUI(Frame param0) {
213 super(param0);
214 $initialize();
215 }
216
217 public ExtractionPeriodUI(JAXXContext parentContext, Frame param1) {
218 super(param1);
219 JAXXUtil.initContext(this, parentContext);
220 $initialize();
221 }
222
223 public ExtractionPeriodUI() {
224 $initialize();
225 }
226
227 public ExtractionPeriodUI(JAXXContext parentContext) {
228 JAXXUtil.initContext(this, parentContext);
229 $initialize();
230 }
231
232 public ExtractionPeriodUI(Dialog param0, boolean param1) {
233 super(param0 ,param1);
234 $initialize();
235 }
236
237 public ExtractionPeriodUI(JAXXContext parentContext, Dialog param1, boolean param2) {
238 super(param1 ,param2);
239 JAXXUtil.initContext(this, parentContext);
240 $initialize();
241 }
242
243 public ExtractionPeriodUI(Dialog param0) {
244 super(param0);
245 $initialize();
246 }
247
248 public ExtractionPeriodUI(JAXXContext parentContext, Dialog param1) {
249 super(param1);
250 JAXXUtil.initContext(this, parentContext);
251 $initialize();
252 }
253
254 public ExtractionPeriodUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
255 super(param0 ,param1 ,param2 ,param3);
256 $initialize();
257 }
258
259 public ExtractionPeriodUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
260 super(param1 ,param2 ,param3 ,param4);
261 JAXXUtil.initContext(this, parentContext);
262 $initialize();
263 }
264
265 public ExtractionPeriodUI(Frame param0, String param1, boolean param2) {
266 super(param0 ,param1 ,param2);
267 $initialize();
268 }
269
270 public ExtractionPeriodUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
271 super(param1 ,param2 ,param3);
272 JAXXUtil.initContext(this, parentContext);
273 $initialize();
274 }
275
276
277
278
279
280 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
281 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
282 }
283
284
285
286
287
288 @Override
289 public void applyDataBinding(String $binding) {
290 if (allComponentsCreated && $bindings.containsKey($binding)) {
291 getDataBinding($binding).applyDataBinding();
292 }
293 processDataBinding($binding);
294 }
295
296 @Override
297 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
298 super.firePropertyChange(propertyName, oldValue, newValue);
299 }
300
301 @Override
302 public Map<String, Object> get$objectMap() {
303 return $objectMap;
304 }
305
306 @Override
307 public JAXXBinding getDataBinding(String bindingId) {
308 return $bindings.get(bindingId);
309 }
310
311 @Override
312 public JAXXBinding[] getDataBindings() {
313 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
314 }
315
316 @Override
317 public Object getObjectById(String id) {
318 return $objectMap.get(id);
319 }
320
321 @Override
322 public void processDataBinding(String $binding, boolean $force) {
323 if (!$force && $activeBindings.contains($binding)) {
324 return;
325 }
326 $activeBindings.add($binding);
327 try {
328 if (allComponentsCreated && $bindings.containsKey($binding)) {
329 getDataBinding($binding).processDataBinding();
330 }
331 } finally {
332 $activeBindings.remove($binding);
333 }
334 }
335
336 @Override
337 public void processDataBinding(String $binding) {
338 processDataBinding($binding, false);
339 }
340
341 @Override
342 public void registerDataBinding(JAXXBinding binding) {
343 $bindings.put(binding.getId(), binding);
344 }
345
346 @Override
347 public void removeDataBinding(String $binding) {
348 if (allComponentsCreated && $bindings.containsKey($binding)) {
349 getDataBinding($binding).removeDataBinding();
350 }
351 }
352
353
354
355
356
357 @Override
358 public <T> T getContextValue(Class<T> clazz) {
359 return delegateContext.getContextValue(clazz, null);
360 }
361
362 @Override
363 public <T> T getContextValue(Class<T> clazz, String name) {
364 return delegateContext.getContextValue(clazz, name);
365 }
366
367 @Override
368 public JAXXContext getDelegateContext() {
369 return delegateContext;
370 }
371
372 @Override
373 public <O extends Container> O getParentContainer(Class<O> clazz) {
374 return SwingUtil.getParentContainer(this, clazz);
375 }
376
377 @Override
378 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
379 return SwingUtil.getParentContainer(source, clazz);
380 }
381
382 @Override
383 public <T> void removeContextValue(Class<T> clazz) {
384 delegateContext.removeContextValue(clazz, null);
385 }
386
387 @Override
388 public <T> void removeContextValue(Class<T> clazz, String name) {
389 delegateContext.removeContextValue(clazz, name);
390 }
391
392 @Override
393 public <T> void setContextValue(T o) {
394 delegateContext.setContextValue(o, null);
395 }
396
397 @Override
398 public <T> void setContextValue(T o, String name) {
399 delegateContext.setContextValue(o, name);
400 }
401
402
403
404
405
406 public void doActionPerformed__on__cancelButton(ActionEvent event) {
407 if (log.isDebugEnabled()) {
408 log.debug(event);
409 }
410 handler.cancel();
411 }
412
413 public void doActionPerformed__on__deleteButton(ActionEvent event) {
414 if (log.isDebugEnabled()) {
415 log.debug(event);
416 }
417 handler.removeSelectedRows();
418 }
419
420 public void doActionPerformed__on__newButton(ActionEvent event) {
421 if (log.isDebugEnabled()) {
422 log.debug(event);
423 }
424 model.addNewRow();
425 }
426
427 public void doActionPerformed__on__validButton(ActionEvent event) {
428 if (log.isDebugEnabled()) {
429 log.debug(event);
430 }
431 handler.valid();
432 }
433
434
435
436
437
438 public JButton getCancelButton() {
439 return cancelButton;
440 }
441
442 public JButton getDeleteButton() {
443 return deleteButton;
444 }
445
446 public ExtractionPeriodUIHandler getHandler() {
447 return handler;
448 }
449
450 public ExtractionPeriodUIModel getModel() {
451 return model;
452 }
453
454 public JButton getNewButton() {
455 return newButton;
456 }
457
458 public JPanel getPeriodPanelButtons() {
459 return periodPanelButtons;
460 }
461
462 public SwingTable getPeriodTable() {
463 return periodTable;
464 }
465
466 public JButton getValidButton() {
467 return validButton;
468 }
469
470
471
472
473
474 protected JPanel get$JPanel0() {
475 return $JPanel0;
476 }
477
478 protected JPanel get$JPanel1() {
479 return $JPanel1;
480 }
481
482 protected JScrollPane get$JScrollPane0() {
483 return $JScrollPane0;
484 }
485
486
487
488
489
490 protected void addChildrenToExtractionPeriodUI() {
491 if (!allComponentsCreated) {
492 return;
493 }
494 add($JPanel0);
495 add($JPanel1, BorderLayout.PAGE_END);
496 }
497
498 protected void addChildrenToPeriodPanelButtons() {
499 if (!allComponentsCreated) {
500 return;
501 }
502 periodPanelButtons.add(newButton);
503 periodPanelButtons.add(deleteButton);
504 }
505
506 protected void createCancelButton() {
507 $objectMap.put("cancelButton", cancelButton = new JButton());
508
509 cancelButton.setName("cancelButton");
510 cancelButton.setText(t("dali.common.cancel"));
511 cancelButton.setToolTipText(t("dali.common.cancel"));
512 cancelButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelButton"));
513 }
514
515 protected void createDeleteButton() {
516 $objectMap.put("deleteButton", deleteButton = new JButton());
517
518 deleteButton.setName("deleteButton");
519 deleteButton.setText(t("dali.common.delete"));
520 deleteButton.setToolTipText(t("dali.common.delete"));
521 deleteButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__deleteButton"));
522 }
523
524 protected ExtractionPeriodUIHandler createHandler() {
525 return new ExtractionPeriodUIHandler();
526 }
527
528 protected void createModel() {
529 $objectMap.put("model", model = getContextValue(ExtractionPeriodUIModel.class));
530 }
531
532 protected void createNewButton() {
533 $objectMap.put("newButton", newButton = new JButton());
534
535 newButton.setName("newButton");
536 newButton.setText(t("dali.common.new"));
537 newButton.setToolTipText(t("dali.extraction.period.new.tip"));
538 newButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__newButton"));
539 }
540
541 protected void createPeriodPanelButtons() {
542 $objectMap.put("periodPanelButtons", periodPanelButtons = new JPanel());
543
544 periodPanelButtons.setName("periodPanelButtons");
545 periodPanelButtons.setLayout(new GridLayout(1,0));
546 }
547
548 protected void createPeriodTable() {
549 $objectMap.put("periodTable", periodTable = new SwingTable());
550
551 periodTable.setName("periodTable");
552 }
553
554 protected void createValidButton() {
555 $objectMap.put("validButton", validButton = new JButton());
556
557 validButton.setName("validButton");
558 validButton.setText(t("dali.common.validate"));
559 validButton.setToolTipText(t("dali.common.validate"));
560 validButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__validButton"));
561 }
562
563
564
565
566
567 private void $completeSetup() {
568 allComponentsCreated = true;
569 if (log.isDebugEnabled()) {
570 log.debug(this);
571 }
572 addChildrenToExtractionPeriodUI();
573
574 $JPanel0.add($JScrollPane0);
575 $JPanel0.add(periodPanelButtons, BorderLayout.PAGE_END);
576
577 $JScrollPane0.getViewport().add(periodTable);
578 addChildrenToPeriodPanelButtons();
579
580 $JPanel1.add(cancelButton);
581 $JPanel1.add(validButton);
582
583
584 JAXXUtil.applyDataBinding(this, $bindings.keySet());
585
586
587 $JPanel0.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
588 newButton.setAlignmentX(Component.CENTER_ALIGNMENT);
589 deleteButton.setAlignmentX(Component.CENTER_ALIGNMENT);
590 newButton.setIcon(SwingUtil.createActionIcon("add"));
591 deleteButton.setIcon(SwingUtil.createActionIcon("delete"));
592 cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.cancel.mnemonic"),'Z'));
593 cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
594 validButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.validate.mnemonic"),'Z'));
595 validButton.setIcon(SwingUtil.createActionIcon("accept"));
596
597 extractionPeriodUI.pack();
598 }
599
600 private void $initialize() {
601 if (allComponentsCreated) {
602 return;
603 }
604 if (log.isDebugEnabled()) {
605 log.debug(this);
606 }
607 handler.beforeInit(this);
608 $objectMap.put("extractionPeriodUI", extractionPeriodUI);
609 createModel();
610
611 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
612
613 $JPanel0.setName("$JPanel0");
614 $JPanel0.setLayout(new BorderLayout());
615
616 $objectMap.put("$JScrollPane0", $JScrollPane0 = new JScrollPane());
617
618 $JScrollPane0.setName("$JScrollPane0");
619 createPeriodTable();
620 createPeriodPanelButtons();
621 createNewButton();
622 createDeleteButton();
623
624 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
625
626 $JPanel1.setName("$JPanel1");
627 $JPanel1.setLayout(new GridLayout(1,0));
628 createCancelButton();
629 createValidButton();
630
631 setName("extractionPeriodUI");
632 extractionPeriodUI.getContentPane().setLayout(new BorderLayout());
633 setResizable(false);
634 setTitle(t("dali.extraction.period.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_DELETE_BUTTON_ENABLED, true) {
646
647 @Override
648 public void applyDataBinding() {
649 if (model != null) {
650 model.addPropertyChangeListener("selectedRows", this);
651 }
652 }
653
654 @Override
655 public void processDataBinding() {
656 if (model != null && model.getSelectedRows() != null) {
657 deleteButton.setEnabled(!model.getSelectedRows().isEmpty());
658 }
659 }
660
661 @Override
662 public void removeDataBinding() {
663 if (model != null) {
664 model.removePropertyChangeListener("selectedRows", this);
665 }
666 }
667 });
668 registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALID_BUTTON_ENABLED, true) {
669
670 @Override
671 public void applyDataBinding() {
672 if (model != null) {
673 model.addPropertyChangeListener("valid", this);
674 }
675 }
676
677 @Override
678 public void processDataBinding() {
679 if (model != null) {
680 validButton.setEnabled(model.isValid());
681 }
682 }
683
684 @Override
685 public void removeDataBinding() {
686 if (model != null) {
687 model.removePropertyChangeListener("valid", this);
688 }
689 }
690 });
691 }
692
693 }