1 package fr.ifremer.dali.ui.swing.content.home.operation.add;
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.ApplicationUIUtil;
6 import fr.ifremer.quadrige3.ui.swing.component.number.NumberEditor;
7 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
8 import java.awt.BorderLayout;
9 import java.awt.Container;
10 import java.awt.Dialog;
11 import java.awt.Dialog.ModalityType;
12 import java.awt.Frame;
13 import java.awt.GraphicsConfiguration;
14 import java.awt.GridLayout;
15 import java.awt.Window;
16 import java.awt.event.ActionEvent;
17 import java.awt.event.ActionListener;
18 import java.text.NumberFormat;
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.JButton;
25 import javax.swing.JDialog;
26 import javax.swing.JLabel;
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 AddOperationTableUI extends JDialog implements DaliUI<AddOperationTableUIModel, AddOperationTableUIHandler>, JAXXObject {
42
43
44
45
46
47 public static final String BINDING_NB_OPERATION_EDITOR_NUMBER_VALUE = "nbOperationEditor.numberValue";
48 public static final String BINDING_VALID_BUTTON_ENABLED = "validButton.enabled";
49
50
51
52
53
54 private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAK1WQW8bRRQeu7YTO23TNBCC2kIbWslBaNwKhCoFQdOkLq4cJ6pNVeFDGO9O7KnGM9vd2cbGSuHIkZ8Ady5I3DghDpw5cEH8BYQ49Ip4M7ter+N17UMjZb2e9973vvdmvjf+4W+U9Vx07Qnp9bDrC8W6FD/Yfvx4v/WEWmqXepbLHCVdFPyl0ijdREt2tO4p9E6zqsNLYXhpR3YdKaiIRW9VUcFTfU69DqVKoSvjEZbnleqReavn+O4QNSKVhPrdv/+kv7W//j6NUM8BdgUo5eqsqFElmSpKM1uhi5DpGSlxItpAw2WiDXzP6bUdTjyvRrr0KXqOFqoo5xAXwBTamL9kg2Hiew7kIra971CXKCbFLiNcthW6f+RiduTSLnWxTTjDPsPeMfDAlhQKYHFHQjFyGIcBBG/HgBqkxelnFccxiXIKZbvSplyh6itC3tNwI/jF6w8OiKD8JhSk+9QLQYNV7ZSPfC+IVoRWJS3NajzGLGrn5ShmJRZzz2bQToW2YqU89YntsjZ9P15PuAVY+N0W+NTMRxA9jl6APZKca64KvTHGpR5ZxotYIad7ohB+OSGlvXBdv5sAjbQ+0cFb+vvKeLKzFhEW5Xd9pWCT0OoYw2BVe74VBSw9g621R5aN0OyiS2NqAJ3hkc5GQkg1Udb1YVmh9eakNB+CKRDl+ilRakBj/W9t9Y+f//qpHFfi64musUECCnFcffQU06mXAxn6ivHSHnG2mijvUQ5TyEyZywnE6qEZyEG+FR2OdTj+lHgdgMgu/PnLr2tf/H4GpcuowCWxy0T7V1BedVzoguR2z/nkjmF09ngRnhfg/4xCebCyL4N9zijXh4+sYkp/vWF0ZGTjka7DYVeik4EFPcahn5Yg4WF4D5p3OaF5UQWt/G8vVus/3hk2MAUFvTnVfdTE7OcoxwSQoGaYhXMqcXgtOR71bTmaR0kTCiWOKCeU/rvmiSc6llIo15KuDVuJaoO75i1odR9bLiWKNnRT7MBSVMWNuZq4sbl50vN1yg9NS/TbbaS3Qu/MLFJpUBnXs6Wsx8fqYGKmnOjNoT0Y5+/NohPOFAOXxGhiyM0itwhnjPhKHkjHh2uhNOgQYXNI0aZqR4oj1i5uYuZtD13i06y4CcwLAaVG34GztjyowDRvQ7il9xLM5wLzAVGKujBE1gaVWuPwg8Pdyv1Ko354sN1o3HtYA8fFUIJ9GCOxIgAT5HFscg8H0c0pJOvgGOcX+BuW5w8DCe+LsrR8kHFuoOVwopOZiEeEa3GtD8yFpYFrIxIGItOiBJIvBB6J52HyupjV/gxMWXbrttgTtCsFsxS6ZI4A3CLwHQcDGHcjawEOM4BX9K2JcoE5Oj0XJ0OhPiUlbzCnMc0lqZCxyT+rhuxEDVfiWcydAMqbWgWxLOqoqIrXkoJP1zHFaYEKrUj4LbUSbiTzHmlrMVnA8QtrntnCSV+CMzr/EeQjV1tM2CDRjyegU/pZmImol5/rx1fJCG/PwSnDrOCynYJxbS4W37wE4Tog/A9/T2l5oAsAAA==";
55 private static final Log log = LogFactory.getLog(AddOperationTableUI.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 AddOperationTableUI addOperationDialog = this;
75 protected SwingTable addOperationTable;
76 protected JButton cancelButton;
77 protected final AddOperationTableUIHandler handler = createHandler();
78 protected AddOperationTableUIModel model;
79 protected NumberEditor nbOperationEditor;
80 protected JLabel nbOperationLabel;
81 protected JScrollPane scrollPane;
82 protected JButton validButton;
83
84
85
86
87
88 private JPanel $JPanel0;
89 private JPanel $JPanel1;
90
91
92
93
94
95 public AddOperationTableUI(DaliUIContext context) {
96 super(context.getMainUI());
97 ApplicationUIUtil.setApplicationContext(this, context);
98 $initialize();
99 }
100
101 public AddOperationTableUI(Window param0) {
102 super(param0);
103 $initialize();
104 }
105
106 public AddOperationTableUI(JAXXContext parentContext, Window param1) {
107 super(param1);
108 JAXXUtil.initContext(this, parentContext);
109 $initialize();
110 }
111
112 public AddOperationTableUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
113 super(param0 ,param1 ,param2 ,param3);
114 $initialize();
115 }
116
117 public AddOperationTableUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
118 super(param1 ,param2 ,param3 ,param4);
119 JAXXUtil.initContext(this, parentContext);
120 $initialize();
121 }
122
123 public AddOperationTableUI(Dialog param0, String param1, boolean param2) {
124 super(param0 ,param1 ,param2);
125 $initialize();
126 }
127
128 public AddOperationTableUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
129 super(param1 ,param2 ,param3);
130 JAXXUtil.initContext(this, parentContext);
131 $initialize();
132 }
133
134 public AddOperationTableUI(Dialog param0, String param1) {
135 super(param0 ,param1);
136 $initialize();
137 }
138
139 public AddOperationTableUI(JAXXContext parentContext, Dialog param1, String param2) {
140 super(param1 ,param2);
141 JAXXUtil.initContext(this, parentContext);
142 $initialize();
143 }
144
145 public AddOperationTableUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
146 super(param0 ,param1 ,param2 ,param3);
147 $initialize();
148 }
149
150 public AddOperationTableUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
151 super(param1 ,param2 ,param3 ,param4);
152 JAXXUtil.initContext(this, parentContext);
153 $initialize();
154 }
155
156 public AddOperationTableUI(Window param0, String param1, ModalityType param2) {
157 super(param0 ,param1 ,param2);
158 $initialize();
159 }
160
161 public AddOperationTableUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
162 super(param1 ,param2 ,param3);
163 JAXXUtil.initContext(this, parentContext);
164 $initialize();
165 }
166
167 public AddOperationTableUI(Window param0, String param1) {
168 super(param0 ,param1);
169 $initialize();
170 }
171
172 public AddOperationTableUI(JAXXContext parentContext, Window param1, String param2) {
173 super(param1 ,param2);
174 JAXXUtil.initContext(this, parentContext);
175 $initialize();
176 }
177
178 public AddOperationTableUI(Window param0, ModalityType param1) {
179 super(param0 ,param1);
180 $initialize();
181 }
182
183 public AddOperationTableUI(JAXXContext parentContext, Window param1, ModalityType param2) {
184 super(param1 ,param2);
185 JAXXUtil.initContext(this, parentContext);
186 $initialize();
187 }
188
189 public AddOperationTableUI(Frame param0, String param1) {
190 super(param0 ,param1);
191 $initialize();
192 }
193
194 public AddOperationTableUI(JAXXContext parentContext, Frame param1, String param2) {
195 super(param1 ,param2);
196 JAXXUtil.initContext(this, parentContext);
197 $initialize();
198 }
199
200 public AddOperationTableUI(Frame param0, boolean param1) {
201 super(param0 ,param1);
202 $initialize();
203 }
204
205 public AddOperationTableUI(JAXXContext parentContext, Frame param1, boolean param2) {
206 super(param1 ,param2);
207 JAXXUtil.initContext(this, parentContext);
208 $initialize();
209 }
210
211 public AddOperationTableUI(Frame param0) {
212 super(param0);
213 $initialize();
214 }
215
216 public AddOperationTableUI(JAXXContext parentContext, Frame param1) {
217 super(param1);
218 JAXXUtil.initContext(this, parentContext);
219 $initialize();
220 }
221
222 public AddOperationTableUI() {
223 $initialize();
224 }
225
226 public AddOperationTableUI(JAXXContext parentContext) {
227 JAXXUtil.initContext(this, parentContext);
228 $initialize();
229 }
230
231 public AddOperationTableUI(Dialog param0, boolean param1) {
232 super(param0 ,param1);
233 $initialize();
234 }
235
236 public AddOperationTableUI(JAXXContext parentContext, Dialog param1, boolean param2) {
237 super(param1 ,param2);
238 JAXXUtil.initContext(this, parentContext);
239 $initialize();
240 }
241
242 public AddOperationTableUI(Dialog param0) {
243 super(param0);
244 $initialize();
245 }
246
247 public AddOperationTableUI(JAXXContext parentContext, Dialog param1) {
248 super(param1);
249 JAXXUtil.initContext(this, parentContext);
250 $initialize();
251 }
252
253 public AddOperationTableUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
254 super(param0 ,param1 ,param2 ,param3);
255 $initialize();
256 }
257
258 public AddOperationTableUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
259 super(param1 ,param2 ,param3 ,param4);
260 JAXXUtil.initContext(this, parentContext);
261 $initialize();
262 }
263
264 public AddOperationTableUI(Frame param0, String param1, boolean param2) {
265 super(param0 ,param1 ,param2);
266 $initialize();
267 }
268
269 public AddOperationTableUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
270 super(param1 ,param2 ,param3);
271 JAXXUtil.initContext(this, parentContext);
272 $initialize();
273 }
274
275
276
277
278
279 public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
280 return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
281 }
282
283
284
285
286
287 @Override
288 public void applyDataBinding(String $binding) {
289 if (allComponentsCreated && $bindings.containsKey($binding)) {
290 getDataBinding($binding).applyDataBinding();
291 }
292 processDataBinding($binding);
293 }
294
295 @Override
296 public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
297 super.firePropertyChange(propertyName, oldValue, newValue);
298 }
299
300 @Override
301 public Map<String, Object> get$objectMap() {
302 return $objectMap;
303 }
304
305 @Override
306 public JAXXBinding getDataBinding(String bindingId) {
307 return $bindings.get(bindingId);
308 }
309
310 @Override
311 public JAXXBinding[] getDataBindings() {
312 return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
313 }
314
315 @Override
316 public Object getObjectById(String id) {
317 return $objectMap.get(id);
318 }
319
320 @Override
321 public void processDataBinding(String $binding, boolean $force) {
322 if (!$force && $activeBindings.contains($binding)) {
323 return;
324 }
325 $activeBindings.add($binding);
326 try {
327 if (allComponentsCreated && $bindings.containsKey($binding)) {
328 getDataBinding($binding).processDataBinding();
329 }
330 } finally {
331 $activeBindings.remove($binding);
332 }
333 }
334
335 @Override
336 public void processDataBinding(String $binding) {
337 processDataBinding($binding, false);
338 }
339
340 @Override
341 public void registerDataBinding(JAXXBinding binding) {
342 $bindings.put(binding.getId(), binding);
343 }
344
345 @Override
346 public void removeDataBinding(String $binding) {
347 if (allComponentsCreated && $bindings.containsKey($binding)) {
348 getDataBinding($binding).removeDataBinding();
349 }
350 }
351
352
353
354
355
356 @Override
357 public <T> T getContextValue(Class<T> clazz) {
358 return delegateContext.getContextValue(clazz, null);
359 }
360
361 @Override
362 public <T> T getContextValue(Class<T> clazz, String name) {
363 return delegateContext.getContextValue(clazz, name);
364 }
365
366 @Override
367 public JAXXContext getDelegateContext() {
368 return delegateContext;
369 }
370
371 @Override
372 public <O extends Container> O getParentContainer(Class<O> clazz) {
373 return SwingUtil.getParentContainer(this, clazz);
374 }
375
376 @Override
377 public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
378 return SwingUtil.getParentContainer(source, clazz);
379 }
380
381 @Override
382 public <T> void removeContextValue(Class<T> clazz) {
383 delegateContext.removeContextValue(clazz, null);
384 }
385
386 @Override
387 public <T> void removeContextValue(Class<T> clazz, String name) {
388 delegateContext.removeContextValue(clazz, name);
389 }
390
391 @Override
392 public <T> void setContextValue(T o) {
393 delegateContext.setContextValue(o, null);
394 }
395
396 @Override
397 public <T> void setContextValue(T o, String name) {
398 delegateContext.setContextValue(o, name);
399 }
400
401
402
403
404
405 public void doActionPerformed__on__cancelButton(ActionEvent event) {
406 if (log.isDebugEnabled()) {
407 log.debug(event);
408 }
409 handler.cancel();
410 }
411
412 public void doActionPerformed__on__validButton(ActionEvent event) {
413 if (log.isDebugEnabled()) {
414 log.debug(event);
415 }
416 handler.valid();
417 }
418
419
420
421
422
423 public SwingTable getAddOperationTable() {
424 return addOperationTable;
425 }
426
427 public JButton getCancelButton() {
428 return cancelButton;
429 }
430
431 public AddOperationTableUIHandler getHandler() {
432 return handler;
433 }
434
435 public AddOperationTableUIModel getModel() {
436 return model;
437 }
438
439 public NumberEditor getNbOperationEditor() {
440 return nbOperationEditor;
441 }
442
443 public JLabel getNbOperationLabel() {
444 return nbOperationLabel;
445 }
446
447 public JScrollPane getScrollPane() {
448 return scrollPane;
449 }
450
451 public JButton getValidButton() {
452 return validButton;
453 }
454
455
456
457
458
459 protected JPanel get$JPanel0() {
460 return $JPanel0;
461 }
462
463 protected JPanel get$JPanel1() {
464 return $JPanel1;
465 }
466
467
468
469
470
471 protected void addChildrenToAddOperationDialog() {
472 if (!allComponentsCreated) {
473 return;
474 }
475 add($JPanel0, BorderLayout.PAGE_START);
476 add(scrollPane, BorderLayout.CENTER);
477 add($JPanel1, BorderLayout.PAGE_END);
478 }
479
480 protected void addChildrenToScrollPane() {
481 if (!allComponentsCreated) {
482 return;
483 }
484 scrollPane.getViewport().add(addOperationTable);
485 }
486
487 protected void createAddOperationTable() {
488 $objectMap.put("addOperationTable", addOperationTable = new SwingTable());
489
490 addOperationTable.setName("addOperationTable");
491 }
492
493 protected void createCancelButton() {
494 $objectMap.put("cancelButton", cancelButton = new JButton());
495
496 cancelButton.setName("cancelButton");
497 cancelButton.setText(t("dali.common.cancel"));
498 cancelButton.setToolTipText(t("dali.common.cancel"));
499 cancelButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelButton"));
500 }
501
502 protected AddOperationTableUIHandler createHandler() {
503 return new AddOperationTableUIHandler();
504 }
505
506 protected void createModel() {
507 $objectMap.put("model", model = getContextValue(AddOperationTableUIModel.class));
508 }
509
510 protected void createNbOperationEditor() {
511 $objectMap.put("nbOperationEditor", nbOperationEditor = new NumberEditor(this));
512
513 nbOperationEditor.setName("nbOperationEditor");
514 nbOperationEditor.setProperty("nbOperation");
515 nbOperationEditor.putClientProperty("selectOnFocus", true);
516 }
517
518 protected void createNbOperationLabel() {
519 $objectMap.put("nbOperationLabel", nbOperationLabel = new JLabel());
520
521 nbOperationLabel.setName("nbOperationLabel");
522 nbOperationLabel.setText(t("dali.home.samplingOperation.new.number.label"));
523 }
524
525 protected void createScrollPane() {
526 $objectMap.put("scrollPane", scrollPane = new JScrollPane());
527
528 scrollPane.setName("scrollPane");
529 }
530
531 protected void createValidButton() {
532 $objectMap.put("validButton", validButton = new JButton());
533
534 validButton.setName("validButton");
535 validButton.setText(t("dali.common.validate"));
536 validButton.setToolTipText(t("dali.common.validate"));
537 validButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__validButton"));
538 }
539
540
541
542
543
544 private void $completeSetup() {
545 allComponentsCreated = true;
546 if (log.isDebugEnabled()) {
547 log.debug(this);
548 }
549 addChildrenToAddOperationDialog();
550
551 $JPanel0.add(nbOperationLabel);
552 $JPanel0.add(nbOperationEditor);
553 addChildrenToScrollPane();
554
555 $JPanel1.add(cancelButton);
556 $JPanel1.add(validButton);
557
558
559 JAXXUtil.applyDataBinding(this, $bindings.keySet());
560
561
562 nbOperationLabel.setLabelFor(nbOperationEditor);
563 nbOperationEditor.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
564 nbOperationEditor.setNumberType(Integer.class);
565 nbOperationEditor.setNumberPattern(INT_4_DIGITS_PATTERN);
566 nbOperationEditor.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
567 nbOperationEditor.setBean(model);
568 cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.cancel.mnemonic"),'Z'));
569 cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
570 validButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.validate.mnemonic"),'Z'));
571 validButton.setIcon(SwingUtil.createActionIcon("accept"));
572
573 addOperationDialog.pack();
574 }
575
576 private void $initialize() {
577 if (allComponentsCreated) {
578 return;
579 }
580 if (log.isDebugEnabled()) {
581 log.debug(this);
582 }
583 handler.beforeInit(this);
584 $objectMap.put("addOperationDialog", addOperationDialog);
585 createModel();
586
587 $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
588
589 $JPanel0.setName("$JPanel0");
590 createNbOperationLabel();
591 createNbOperationEditor();
592 createScrollPane();
593 createAddOperationTable();
594
595 $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
596
597 $JPanel1.setName("$JPanel1");
598 $JPanel1.setLayout(new GridLayout(1,0));
599 createCancelButton();
600 createValidButton();
601
602 setName("addOperationDialog");
603 addOperationDialog.getContentPane().setLayout(new BorderLayout());
604 setResizable(true);
605 setTitle(t("dali.home.samplingOperation.new.title"));
606 setModal(true);
607
608
609 $registerDefaultBindings();
610 $completeSetup();
611 handler.afterInit(this);
612 }
613
614 private void $registerDefaultBindings() {
615
616 registerDataBinding(new DefaultJAXXBinding(this, BINDING_NB_OPERATION_EDITOR_NUMBER_VALUE, true) {
617
618 @Override
619 public void applyDataBinding() {
620 if (model != null) {
621 model.addPropertyChangeListener("nbOperation", this);
622 }
623 }
624
625 @Override
626 public void processDataBinding() {
627 if (model != null) {
628 nbOperationEditor.setNumberValue(model.getNbOperation());
629 }
630 }
631
632 @Override
633 public void removeDataBinding() {
634 if (model != null) {
635 model.removePropertyChangeListener("nbOperation", this);
636 }
637 }
638 });
639 registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALID_BUTTON_ENABLED, true) {
640
641 @Override
642 public void applyDataBinding() {
643 if (model != null) {
644 model.addPropertyChangeListener("valid", this);
645 }
646 }
647
648 @Override
649 public void processDataBinding() {
650 if (model != null) {
651 validButton.setEnabled(model.isValid());
652 }
653 }
654
655 @Override
656 public void removeDataBinding() {
657 if (model != null) {
658 model.removePropertyChangeListener("valid", this);
659 }
660 }
661 });
662 }
663
664 }