View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.operation.catches.individualobservation;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2017 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import fr.ifremer.tutti.service.sampling.SamplingCodePrefix;
28  import fr.ifremer.tutti.ui.swing.TuttiUIContext;
29  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
30  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
31  import java.awt.BorderLayout;
32  import java.awt.Container;
33  import java.awt.Dialog;
34  import java.awt.Dialog.ModalityType;
35  import java.awt.Frame;
36  import java.awt.GraphicsConfiguration;
37  import java.awt.GridBagConstraints;
38  import java.awt.GridLayout;
39  import java.awt.Insets;
40  import java.awt.Window;
41  import java.awt.event.ActionEvent;
42  import java.awt.event.ActionListener;
43  import java.util.ArrayList;
44  import java.util.HashMap;
45  import java.util.List;
46  import java.util.Map;
47  import java.util.TreeMap;
48  import javax.swing.JButton;
49  import javax.swing.JDialog;
50  import javax.swing.JLabel;
51  import javax.swing.JPanel;
52  import jaxx.runtime.JAXXBinding;
53  import jaxx.runtime.JAXXContext;
54  import jaxx.runtime.JAXXObject;
55  import jaxx.runtime.JAXXObjectDescriptor;
56  import jaxx.runtime.JAXXUtil;
57  import jaxx.runtime.JAXXValidator;
58  import jaxx.runtime.SwingUtil;
59  import jaxx.runtime.binding.DefaultJAXXBinding;
60  import jaxx.runtime.context.DefaultJAXXContext;
61  import jaxx.runtime.swing.Table;
62  import jaxx.runtime.validator.swing.SwingValidator;
63  import jaxx.runtime.validator.swing.SwingValidatorUtil;
64  import jaxx.runtime.validator.swing.meta.Validator;
65  import jaxx.runtime.validator.swing.meta.ValidatorField;
66  import jaxx.runtime.validator.swing.ui.ImageValidationUI;
67  import org.apache.commons.logging.Log;
68  import org.apache.commons.logging.LogFactory;
69  import org.nuiton.jaxx.widgets.number.NumberEditor;
70  import static org.nuiton.i18n.I18n.t;
71  
72  public class SampleCodeEditionPopupUI extends JDialog implements TuttiUI<SampleCodeEditionPopupUIModel, SampleCodeEditionPopupUIHandler>, JAXXObject, JAXXValidator {
73  
74      /*-----------------------------------------------------------------------*/
75      /*---------------- Constants for all javaBean properties ----------------*/
76      /*-----------------------------------------------------------------------*/
77  
78      public static final String PROPERTY_MODEL = "model";
79  
80      /*-----------------------------------------------------------------------*/
81      /*------------------ Constants for all public bindings ------------------*/
82      /*-----------------------------------------------------------------------*/
83  
84      public static final String BINDING_SAMPLE_CODE_FIELD_NUMBER_VALUE = "sampleCodeField.numberValue";
85      public static final String BINDING_SAMPLE_CODE_PREFIX_TEXT = "sampleCodePrefix.text";
86      public static final String BINDING_VALIDATE_BUTTON_ENABLED = "validateButton.enabled";
87  
88      /*-----------------------------------------------------------------------*/
89      /*------------------------- Other static fields -------------------------*/
90      /*-----------------------------------------------------------------------*/
91  
92      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVWzW8bRRSfmNqJnaRpE6Upoo3a0kNLxTggQEhB0DSpwZHzodihFTmE8e7EnrI7M+zOJhtZQfwJ5coJ7lyQuHFCHDhz4IL4FxDi0Cvizay967XXcQ6Qwzp6n7/35r3fzHd/orzvodvPSBhiL+CKuRRvrj19utN8Ri21QX3LY1IJD0V/EzmUO0DTdiz3FXr1oKbdy1338rpwpeCU93mv1lDJV6cO9duUKoVupj0s3y/XY/VqKAOvFzUGlRX1m7//yj23v/w2h1AoAV0JSrk1ziup5FIN5Zit0DxkOiZlh/AWwPAYbwHeWS1bd4jvbxOXfo6+QJM1VJDEg2AK3bl4ySaG8Q+lQks+cSUIhU0f20wxwTcYcURLoeaRh9mRR13qYRUoxXDAsH8CaLAluILgWEjqEe2DLaKsNvUx4zY7ZnYAIZo+9Y4jbX0wx66QgdyvSmmAFBTKu6B0FGr9/0m3dKYkc/GYOMwm0CGFHqTOKlZ0AdT19+OesC+CSxjfJVzjv56KEPk1SNMxB1aMXeaSrtdIUzvO6+MNux6bRqht52OXK4nLrkePWKjlS2mbvrAVRh0YpQfCa2EeMAUNMdBOmN2iygeZ24Qeb5sf3SDhpWNN3d00Na0MYjPStO2MRbhFnUdwYHBIaCFlH0m15c3Y4XK3tzRR3ulaeOiVVA9hF3Gyi8myTBygvBeAGJp+MLy+e6CKFvf6wOLqgEb7z7WF337844dKb1tnIPdipmkf2cAWSU+PoGI69Vy0qoFiTnmLyNUDVPSpA0xlmOhGBrB6Vw3gIN9V7Y61O/6I+G0IkZ/8/aefr33660soV0ElRxC7QrR9FRVV24MuCMcO5QcPDaKZkyn4XtHYoKmHxLafUNZqq33OgBSWOmarMBx4Ir53/yyErtzI6EoMrVn85cVC/fuHvc5MANKXR5on3cl/ggqMO4xTw2Rdkspkrmnp08AWCRll0ROSEihq1tHb8ISptsZvdK+ZL87qQqFtSlUo9/ZKGGizN00F+r+3ooDTTTN1ZpDPDZcDYlJMOTB31YiNKGxKNaabnYRuHmkuwkqvujHSrDFIQLgbS5MdgZ2/pLyADmMcTcqySzrn4J0yzapoNrvaGaCDM52ShtCbxn9RTSLBJmlWJYNEN66CiRji6x0YW8PV9+7rCa4P0B9IlYhuRzPSw7mHGHNc8iJwOQmUMBeFQuVOm3DbAZaE9OuCHzHIhJm/1jPpJ0/AoFApYtXGqYRTnutU4cJqgbulRxrUs5F6lyhFPeDJ5U5DH8N+FVe3G4fvHG5UP6w26oe7a43G473tM929tjgxqXrUujICUx0M++FE9gbUVJevTgFf0hFNFxFT7fCKsAJgq0JHzyN4TEc44aoLaIpFkjMwkYsa3h719QvKzDL8NCkBmJORT+axDF5S404lD/cLe+NdvsWpKzizgFaj6bWE65pXgL57sBurS8CXMJ9V/WBAhUgNRR36nzG5ZlQJ3GjWFjICgocSwmkw2Rhpk1Ve6i4cV1thqLblVJreNTmquqmewfn1LWYGHaxwlNUk5ZoI4DWx2EneRMw3T6ERuzdwwV9g7QsOORVgjC6/B37kVlO/6njr/aHoE/pbGhtRi5/rz1fZEZYvQkXMih4nI2LcvhCKr8+JcBci/AtBxsKp9AwAAA==";
93      private static final Log log = LogFactory.getLog(SampleCodeEditionPopupUI.class);
94      private static final long serialVersionUID = 1L;
95  
96      /*-----------------------------------------------------------------------*/
97      /*--------------------------- Internal states ---------------------------*/
98      /*-----------------------------------------------------------------------*/
99  
100     protected List<Object> $activeBindings = new ArrayList<Object>();
101     protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
102     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
103     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
104     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
105     private boolean allComponentsCreated;
106     protected final JAXXContext delegateContext = new DefaultJAXXContext();
107 
108     /*-----------------------------------------------------------------------*/
109     /*------------------------ Protected components  ------------------------*/
110     /*-----------------------------------------------------------------------*/
111 
112     protected JButton cancelButton;
113     protected final SampleCodeEditionPopupUIHandler handler = createHandler();
114     protected Table mainPanel;
115     protected SampleCodeEditionPopupUIModel model;
116     protected SampleCodeEditionPopupUI sampleCodeEditionDialog = this;
117     @ValidatorField( validatorId = "validator",  propertyName = "sampleCode",  editorName = "sampleCodeField")
118     protected NumberEditor sampleCodeField;
119     protected JLabel sampleCodeLabel;
120     protected JLabel sampleCodePrefix;
121     protected JButton validateButton;
122     @Validator( validatorId = "validator")
123     protected SwingValidator<SampleCodeEditionPopupUIModel> validator;
124     protected List<String> validatorIds = new ArrayList<String>();
125 
126     /*-----------------------------------------------------------------------*/
127     /*------------------------- Private components  -------------------------*/
128     /*-----------------------------------------------------------------------*/
129 
130     private JPanel $JPanel0;
131 
132     /*-----------------------------------------------------------------------*/
133     /*---------------------- Raw body code from script ----------------------*/
134     /*-----------------------------------------------------------------------*/
135     
136     
137     public void open(SamplingCodePrefix prefix, Integer sampleCode) {
138         handler.open(prefix, sampleCode);
139     }
140 
141     /*-----------------------------------------------------------------------*/
142     /*---------------------------- Constructors  ----------------------------*/
143     /*-----------------------------------------------------------------------*/
144 
145     public SampleCodeEditionPopupUI(TuttiUI parentUI) {
146         super(parentUI.getHandler().getContext().getMainUI());
147             TuttiUIUtil.setParentUI(this, parentUI);
148             $initialize();
149     }
150 
151     public SampleCodeEditionPopupUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
152         super(param0 ,param1 ,param2 ,param3);
153         $initialize();
154     }
155 
156     public SampleCodeEditionPopupUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
157         super(param1 ,param2 ,param3 ,param4);
158         JAXXUtil.initContext(this, parentContext);
159         $initialize();
160     }
161 
162     public SampleCodeEditionPopupUI(Dialog param0) {
163         super(param0);
164         $initialize();
165     }
166 
167     public SampleCodeEditionPopupUI(JAXXContext parentContext, Dialog param1) {
168         super(param1);
169         JAXXUtil.initContext(this, parentContext);
170         $initialize();
171     }
172 
173     public SampleCodeEditionPopupUI(Frame param0, String param1, boolean param2) {
174         super(param0 ,param1 ,param2);
175         $initialize();
176     }
177 
178     public SampleCodeEditionPopupUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
179         super(param1 ,param2 ,param3);
180         JAXXUtil.initContext(this, parentContext);
181         $initialize();
182     }
183 
184     public SampleCodeEditionPopupUI() {
185         $initialize();
186     }
187 
188     public SampleCodeEditionPopupUI(JAXXContext parentContext) {
189         JAXXUtil.initContext(this, parentContext);
190         $initialize();
191     }
192 
193     public SampleCodeEditionPopupUI(Frame param0) {
194         super(param0);
195         $initialize();
196     }
197 
198     public SampleCodeEditionPopupUI(JAXXContext parentContext, Frame param1) {
199         super(param1);
200         JAXXUtil.initContext(this, parentContext);
201         $initialize();
202     }
203 
204     public SampleCodeEditionPopupUI(Frame param0, boolean param1) {
205         super(param0 ,param1);
206         $initialize();
207     }
208 
209     public SampleCodeEditionPopupUI(JAXXContext parentContext, Frame param1, boolean param2) {
210         super(param1 ,param2);
211         JAXXUtil.initContext(this, parentContext);
212         $initialize();
213     }
214 
215     public SampleCodeEditionPopupUI(Frame param0, String param1) {
216         super(param0 ,param1);
217         $initialize();
218     }
219 
220     public SampleCodeEditionPopupUI(JAXXContext parentContext, Frame param1, String param2) {
221         super(param1 ,param2);
222         JAXXUtil.initContext(this, parentContext);
223         $initialize();
224     }
225 
226     public SampleCodeEditionPopupUI(Window param0) {
227         super(param0);
228         $initialize();
229     }
230 
231     public SampleCodeEditionPopupUI(JAXXContext parentContext, Window param1) {
232         super(param1);
233         JAXXUtil.initContext(this, parentContext);
234         $initialize();
235     }
236 
237     public SampleCodeEditionPopupUI(Window param0, ModalityType param1) {
238         super(param0 ,param1);
239         $initialize();
240     }
241 
242     public SampleCodeEditionPopupUI(JAXXContext parentContext, Window param1, ModalityType param2) {
243         super(param1 ,param2);
244         JAXXUtil.initContext(this, parentContext);
245         $initialize();
246     }
247 
248     public SampleCodeEditionPopupUI(Window param0, String param1) {
249         super(param0 ,param1);
250         $initialize();
251     }
252 
253     public SampleCodeEditionPopupUI(JAXXContext parentContext, Window param1, String param2) {
254         super(param1 ,param2);
255         JAXXUtil.initContext(this, parentContext);
256         $initialize();
257     }
258 
259     public SampleCodeEditionPopupUI(Window param0, String param1, ModalityType param2) {
260         super(param0 ,param1 ,param2);
261         $initialize();
262     }
263 
264     public SampleCodeEditionPopupUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
265         super(param1 ,param2 ,param3);
266         JAXXUtil.initContext(this, parentContext);
267         $initialize();
268     }
269 
270     public SampleCodeEditionPopupUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
271         super(param0 ,param1 ,param2 ,param3);
272         $initialize();
273     }
274 
275     public SampleCodeEditionPopupUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
276         super(param1 ,param2 ,param3 ,param4);
277         JAXXUtil.initContext(this, parentContext);
278         $initialize();
279     }
280 
281     public SampleCodeEditionPopupUI(Dialog param0, boolean param1) {
282         super(param0 ,param1);
283         $initialize();
284     }
285 
286     public SampleCodeEditionPopupUI(JAXXContext parentContext, Dialog param1, boolean param2) {
287         super(param1 ,param2);
288         JAXXUtil.initContext(this, parentContext);
289         $initialize();
290     }
291 
292     public SampleCodeEditionPopupUI(Dialog param0, String param1) {
293         super(param0 ,param1);
294         $initialize();
295     }
296 
297     public SampleCodeEditionPopupUI(JAXXContext parentContext, Dialog param1, String param2) {
298         super(param1 ,param2);
299         JAXXUtil.initContext(this, parentContext);
300         $initialize();
301     }
302 
303     public SampleCodeEditionPopupUI(Dialog param0, String param1, boolean param2) {
304         super(param0 ,param1 ,param2);
305         $initialize();
306     }
307 
308     public SampleCodeEditionPopupUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
309         super(param1 ,param2 ,param3);
310         JAXXUtil.initContext(this, parentContext);
311         $initialize();
312     }
313 
314     public SampleCodeEditionPopupUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
315         super(param0 ,param1 ,param2 ,param3);
316         $initialize();
317     }
318 
319     public SampleCodeEditionPopupUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
320         super(param1 ,param2 ,param3 ,param4);
321         JAXXUtil.initContext(this, parentContext);
322         $initialize();
323     }
324 
325     /*-----------------------------------------------------------------------*/
326     /*--------------------------- Statics methods ---------------------------*/
327     /*-----------------------------------------------------------------------*/
328 
329     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
330         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
331     }
332 
333     /*-----------------------------------------------------------------------*/
334     /*---------------------- JAXXObject implementation ----------------------*/
335     /*-----------------------------------------------------------------------*/
336 
337     @Override
338     public void applyDataBinding(String $binding) {
339         if (allComponentsCreated && $bindings.containsKey($binding)) {
340             getDataBinding($binding).applyDataBinding();
341         }
342         processDataBinding($binding);
343     }
344 
345     @Override
346     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
347         super.firePropertyChange(propertyName, oldValue, newValue);
348     }
349 
350     @Override
351     public Map<String, Object> get$objectMap() {
352         return $objectMap;
353     }
354 
355     @Override
356     public JAXXBinding getDataBinding(String bindingId) {
357         return $bindings.get(bindingId);
358     }
359 
360     @Override
361     public JAXXBinding[] getDataBindings() {
362         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
363     }
364 
365     @Override
366     public Object getObjectById(String id) {
367         return $objectMap.get(id);
368     }
369 
370     @Override
371     public void processDataBinding(String $binding, boolean $force) {
372         if (!$force && $activeBindings.contains($binding)) { 
373             return;
374         }
375         $activeBindings.add($binding);
376         try {
377             if (allComponentsCreated && $bindings.containsKey($binding)) {
378                 getDataBinding($binding).processDataBinding();
379             }
380         } finally {
381             $activeBindings.remove($binding);
382         }
383     }
384 
385     @Override
386     public void processDataBinding(String $binding) {
387         processDataBinding($binding, false);
388     }
389 
390     @Override
391     public void registerDataBinding(JAXXBinding binding) {
392         $bindings.put(binding.getId(), binding);
393     }
394 
395     @Override
396     public void removeDataBinding(String $binding) {
397         if (allComponentsCreated && $bindings.containsKey($binding)) {
398             getDataBinding($binding).removeDataBinding();
399         }
400     }
401 
402     /*-----------------------------------------------------------------------*/
403     /*--------------------- JAXXContext implementation  ---------------------*/
404     /*-----------------------------------------------------------------------*/
405 
406     @Override
407     public <T> T getContextValue(Class<T> clazz) {
408         return delegateContext.getContextValue(clazz, null);
409     }
410 
411     @Override
412     public <T> T getContextValue(Class<T> clazz, String name) {
413         return delegateContext.getContextValue(clazz, name);
414     }
415 
416     @Override
417     public JAXXContext getDelegateContext() {
418         return delegateContext;
419     }
420 
421     @Override
422     public <O extends Container> O getParentContainer(Class<O> clazz) {
423         return SwingUtil.getParentContainer(this, clazz);
424     }
425 
426     @Override
427     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
428         return SwingUtil.getParentContainer(source, clazz);
429     }
430 
431     @Override
432     public <T> void removeContextValue(Class<T> clazz) {
433         delegateContext.removeContextValue(clazz, null);
434     }
435 
436     @Override
437     public <T> void removeContextValue(Class<T> clazz, String name) {
438         delegateContext.removeContextValue(clazz, name);
439     }
440 
441     @Override
442     public <T> void setContextValue(T o) {
443         delegateContext.setContextValue(o, null);
444     }
445 
446     @Override
447     public <T> void setContextValue(T o, String name) {
448         delegateContext.setContextValue(o, name);
449     }
450 
451     /*-----------------------------------------------------------------------*/
452     /*-------------------- JAXXValidator implementation  --------------------*/
453     /*-----------------------------------------------------------------------*/
454 
455     @Override
456     public SwingValidator<?> getValidator(String validatorId) {
457         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
458     }
459 
460     @Override
461     public List<String> getValidatorIds() {
462         return validatorIds;
463     }
464 
465     @Override
466     public void registerValidatorFields() {
467         SwingValidatorUtil.detectValidatorFields(this);
468     }
469 
470     /*-----------------------------------------------------------------------*/
471     /*---------------------------- Event methods ----------------------------*/
472     /*-----------------------------------------------------------------------*/
473 
474     public void doActionPerformed__on__cancelButton(ActionEvent event) {
475         if (log.isDebugEnabled()) {
476             log.debug(event);
477         }
478         handler.cancel();
479     }
480 
481     public void doActionPerformed__on__validateButton(ActionEvent event) {
482         if (log.isDebugEnabled()) {
483             log.debug(event);
484         }
485         handler.validate();
486     }
487 
488     /*-----------------------------------------------------------------------*/
489     /*----------------------- Public acessor methods  -----------------------*/
490     /*-----------------------------------------------------------------------*/
491 
492     public JButton getCancelButton() {
493         return cancelButton;
494     }
495 
496     public SampleCodeEditionPopupUIHandler getHandler() {
497         return handler;
498     }
499 
500     public Table getMainPanel() {
501         return mainPanel;
502     }
503 
504     public SampleCodeEditionPopupUIModel getModel() {
505         return model;
506     }
507 
508     public NumberEditor getSampleCodeField() {
509         return sampleCodeField;
510     }
511 
512     public JLabel getSampleCodeLabel() {
513         return sampleCodeLabel;
514     }
515 
516     public JLabel getSampleCodePrefix() {
517         return sampleCodePrefix;
518     }
519 
520     public JButton getValidateButton() {
521         return validateButton;
522     }
523 
524     public SwingValidator<SampleCodeEditionPopupUIModel> getValidator() {
525         return validator;
526     }
527 
528     /*-----------------------------------------------------------------------*/
529     /*----------------------- Public mutator methods  -----------------------*/
530     /*-----------------------------------------------------------------------*/
531 
532     public void setModel(SampleCodeEditionPopupUIModel model) {
533         SampleCodeEditionPopupUIModel oldValue = this.model;
534         this.model = model;
535         firePropertyChange(PROPERTY_MODEL, oldValue, model);
536     }
537 
538     /*-----------------------------------------------------------------------*/
539     /*--------------------- Protected acessors methods  ---------------------*/
540     /*-----------------------------------------------------------------------*/
541 
542     protected JPanel get$JPanel0() {
543         return $JPanel0;
544     }
545 
546     /*-----------------------------------------------------------------------*/
547     /*--------------------- Components creation methods ---------------------*/
548     /*-----------------------------------------------------------------------*/
549 
550     protected void addChildrenToMainPanel() {
551         if (!allComponentsCreated) {
552             return;
553         }
554         mainPanel.add(sampleCodeLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
555         mainPanel.add(sampleCodePrefix, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
556         mainPanel.add(SwingUtil.boxComponentWithJxLayer(sampleCodeField), new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
557         mainPanel.add($JPanel0, new GridBagConstraints(0, 1, 3, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
558     }
559 
560     protected void addChildrenToSampleCodeEditionDialog() {
561         if (!allComponentsCreated) {
562             return;
563         }
564         add(mainPanel);
565     }
566 
567     protected void addChildrenToValidator() {
568         if (!allComponentsCreated) {
569             return;
570         }
571         validator.setUiClass(ImageValidationUI.class);
572         validator.setBean(model);
573     }
574 
575     protected void createCancelButton() {
576         $objectMap.put("cancelButton", cancelButton = new JButton());
577         
578         cancelButton.setName("cancelButton");
579         cancelButton.setText(t("tutti.common.cancel"));
580         cancelButton.setToolTipText(t("tutti.common.cancel"));
581         cancelButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelButton"));
582         cancelButton.putClientProperty("skipAction", true);
583     }
584 
585     protected SampleCodeEditionPopupUIHandler createHandler() {
586         return new SampleCodeEditionPopupUIHandler();
587     }
588 
589     protected void createMainPanel() {
590         $objectMap.put("mainPanel", mainPanel = new Table());
591         
592         mainPanel.setName("mainPanel");
593     }
594 
595     protected void createModel() {
596         $objectMap.put("model", model = new SampleCodeEditionPopupUIModel());
597     }
598 
599     protected void createSampleCodeField() {
600         $objectMap.put("sampleCodeField", sampleCodeField = new NumberEditor());
601         
602         sampleCodeField.setName("sampleCodeField");
603         sampleCodeField.setProperty("sampleCode");
604         sampleCodeField.setShowReset(true);
605         sampleCodeField.putClientProperty("selectOnFocus", true);
606     }
607 
608     protected void createSampleCodeLabel() {
609         $objectMap.put("sampleCodeLabel", sampleCodeLabel = new JLabel());
610         
611         sampleCodeLabel.setName("sampleCodeLabel");
612         sampleCodeLabel.setText(t("tutti.editIndividualObservationBatch.table.editor.sampleCodeEdition.sampleCode.label"));
613     }
614 
615     protected void createSampleCodePrefix() {
616         $objectMap.put("sampleCodePrefix", sampleCodePrefix = new JLabel());
617         
618         sampleCodePrefix.setName("sampleCodePrefix");
619     }
620 
621     protected void createValidateButton() {
622         $objectMap.put("validateButton", validateButton = new JButton());
623         
624         validateButton.setName("validateButton");
625         validateButton.setText(t("tutti.common.validate"));
626         validateButton.setToolTipText(t("tutti.common.validate"));
627         validateButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__validateButton"));
628         validateButton.putClientProperty("skipAction", true);
629     }
630 
631     protected void createValidator() {
632         $objectMap.put("validator", validator = SwingValidator.newValidator(SampleCodeEditionPopupUIModel.class, null));
633     }
634 
635     /*-----------------------------------------------------------------------*/
636     /*------------------------ Internal jaxx methods ------------------------*/
637     /*-----------------------------------------------------------------------*/
638 
639     private void $completeSetup() {
640         allComponentsCreated = true;
641         if (log.isDebugEnabled()) {
642             log.debug(this);
643         }
644         addChildrenToSampleCodeEditionDialog();
645         addChildrenToValidator();
646         addChildrenToMainPanel();
647         // inline complete setup of $JPanel0
648         $JPanel0.add(cancelButton);
649         $JPanel0.add(validateButton);
650         
651         // apply 3 data bindings
652         JAXXUtil.applyDataBinding(this, $bindings.keySet());
653         
654         // apply 12 property setters
655         sampleCodeLabel.setLabelFor(sampleCodeField);
656         sampleCodeField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
657         sampleCodeField.setNumberType(Integer.class);
658         sampleCodeField.setNumberPattern(TuttiUI.INT_6_DIGITS_PATTERN);
659         sampleCodeField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
660         sampleCodeField.setBean(model);
661         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.common.cancel.mnemonic"),'Z'));
662         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
663         validateButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.common.validate.mnemonic"),'Z'));
664         validateButton.setIcon(SwingUtil.createActionIcon("validate"));
665         // late initializer
666         sampleCodeEditionDialog.pack();
667         // register 1 validator(s)
668         validatorIds = SwingValidatorUtil.detectValidators(this);
669         SwingValidatorUtil.installUI(this);
670     }
671 
672     private void $initialize() {
673         if (allComponentsCreated) {
674             return;
675         }
676         if (log.isDebugEnabled()) {
677             log.debug(this);
678         }
679         handler.beforeInit(this);
680         $objectMap.put("sampleCodeEditionDialog", sampleCodeEditionDialog);
681         createModel();
682         createValidator();
683         createMainPanel();
684         createSampleCodeLabel();
685         createSampleCodePrefix();
686         createSampleCodeField();
687         // inline creation of $JPanel0
688         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
689         
690         $JPanel0.setName("$JPanel0");
691         $JPanel0.setLayout(new GridLayout(1, 0));
692         createCancelButton();
693         createValidateButton();
694         // inline creation of sampleCodeEditionDialog
695         setName("sampleCodeEditionDialog");
696         sampleCodeEditionDialog.getContentPane().setLayout(new BorderLayout());
697         setTitle(t("tutti.editIndividualObservationBatch.table.editor.sampleCodeEdition.title"));
698         setModal(true);
699         
700         // registers 3 data bindings
701         $registerDefaultBindings();
702         $completeSetup();
703         handler.afterInit(this);
704     }
705 
706     private void $registerDefaultBindings() {
707         // register 3 data bindings
708         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAMPLE_CODE_PREFIX_TEXT, true, true) {
709         
710             @Override
711             public void applyDataBinding() {
712                 addPropertyChangeListener("model", this);
713                 if (getModel() != null) {
714                     getModel().addPropertyChangeListener("sampleCodePrefix", this);
715                 }
716             }
717         
718             @Override
719             public void processDataBinding() {
720                 if (getModel() != null && getModel().getSampleCodePrefix() != null) {
721                     sampleCodePrefix.setText(t(getModel().getSampleCodePrefix().toString()));
722                 }
723             }
724         
725             @Override
726             public void removeDataBinding() {
727                 removePropertyChangeListener("model", this);
728                 if (getModel() != null) {
729                     getModel().removePropertyChangeListener("sampleCodePrefix", this);
730                 }
731             }
732         });
733         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAMPLE_CODE_FIELD_NUMBER_VALUE, true) {
734         
735             @Override
736             public void applyDataBinding() {
737                 if (model != null) {
738                     model.addPropertyChangeListener("sampleCode", this);
739                 }
740             }
741         
742             @Override
743             public void processDataBinding() {
744                 if (model != null) {
745                     sampleCodeField.setNumberValue(model.getSampleCode());
746                 }
747             }
748         
749             @Override
750             public void removeDataBinding() {
751                 if (model != null) {
752                     model.removePropertyChangeListener("sampleCode", this);
753                 }
754             }
755         });
756         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_BUTTON_ENABLED, true) {
757         
758             @Override
759             public void applyDataBinding() {
760                 if (validator != null) {
761                     validator.addPropertyChangeListener("valid", this);
762                 }
763             }
764         
765             @Override
766             public void processDataBinding() {
767                 if (validator != null) {
768                     validateButton.setEnabled(validator.isValid());
769                 }
770             }
771         
772             @Override
773             public void removeDataBinding() {
774                 if (validator != null) {
775                     validator.removePropertyChangeListener("valid", this);
776                 }
777             }
778         });
779     }
780 
781 }