View Javadoc
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      /*------------------ Constants for all public bindings ------------------*/
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      /*------------------------- Other static fields -------------------------*/
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      /*--------------------------- Internal states ---------------------------*/
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      /*------------------------ Protected components  ------------------------*/
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      /*------------------------- Private components  -------------------------*/
86      /*-----------------------------------------------------------------------*/
87  
88      private JPanel $JPanel0;
89      private JPanel $JPanel1;
90  
91      /*-----------------------------------------------------------------------*/
92      /*---------------------------- Constructors  ----------------------------*/
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     /*--------------------------- Statics methods ---------------------------*/
277     /*-----------------------------------------------------------------------*/
278 
279     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
280         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
281     }
282 
283     /*-----------------------------------------------------------------------*/
284     /*---------------------- JAXXObject implementation ----------------------*/
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     /*--------------------- JAXXContext implementation  ---------------------*/
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     /*---------------------------- Event methods ----------------------------*/
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     /*----------------------- Public acessor methods  -----------------------*/
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     /*--------------------- Protected acessors methods  ---------------------*/
457     /*-----------------------------------------------------------------------*/
458 
459     protected JPanel get$JPanel0() {
460         return $JPanel0;
461     }
462 
463     protected JPanel get$JPanel1() {
464         return $JPanel1;
465     }
466 
467     /*-----------------------------------------------------------------------*/
468     /*--------------------- Components creation methods ---------------------*/
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     /*------------------------ Internal jaxx methods ------------------------*/
542     /*-----------------------------------------------------------------------*/
543 
544     private void $completeSetup() {
545         allComponentsCreated = true;
546         if (log.isDebugEnabled()) {
547             log.debug(this);
548         }
549         addChildrenToAddOperationDialog();
550         // inline complete setup of $JPanel0
551         $JPanel0.add(nbOperationLabel);
552         $JPanel0.add(nbOperationEditor);
553         addChildrenToScrollPane();
554         // inline complete setup of $JPanel1
555         $JPanel1.add(cancelButton);
556         $JPanel1.add(validButton);
557         
558         // apply 2 data bindings
559         JAXXUtil.applyDataBinding(this, $bindings.keySet());
560         
561         // apply 12 property setters
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         // late initializer
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         // inline creation of $JPanel0
587         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
588         
589         $JPanel0.setName("$JPanel0");
590         createNbOperationLabel();
591         createNbOperationEditor();
592         createScrollPane();
593         createAddOperationTable();
594         // inline creation of $JPanel1
595         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
596         
597         $JPanel1.setName("$JPanel1");
598         $JPanel1.setLayout(new GridLayout(1,0));
599         createCancelButton();
600         createValidButton();
601         // inline creation of addOperationDialog
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         // registers 2 data bindings
609         $registerDefaultBindings();
610         $completeSetup();
611         handler.afterInit(this);
612     }
613 
614     private void $registerDefaultBindings() {
615         // register 2 data bindings
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 }