View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling;
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.ui.swing.TuttiUIContext;
28  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
29  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
30  import java.awt.BorderLayout;
31  import java.awt.Container;
32  import java.awt.Dialog;
33  import java.awt.Dialog.ModalityType;
34  import java.awt.Frame;
35  import java.awt.GraphicsConfiguration;
36  import java.awt.GridBagConstraints;
37  import java.awt.GridLayout;
38  import java.awt.Insets;
39  import java.awt.Window;
40  import java.awt.event.ActionEvent;
41  import java.awt.event.ActionListener;
42  import java.util.ArrayList;
43  import java.util.HashMap;
44  import java.util.List;
45  import java.util.Map;
46  import java.util.TreeMap;
47  import javax.swing.JButton;
48  import javax.swing.JDialog;
49  import javax.swing.JLabel;
50  import javax.swing.JPanel;
51  import jaxx.runtime.JAXXBinding;
52  import jaxx.runtime.JAXXContext;
53  import jaxx.runtime.JAXXObject;
54  import jaxx.runtime.JAXXObjectDescriptor;
55  import jaxx.runtime.JAXXUtil;
56  import jaxx.runtime.JAXXValidator;
57  import jaxx.runtime.SwingUtil;
58  import jaxx.runtime.binding.DefaultJAXXBinding;
59  import jaxx.runtime.context.DefaultJAXXContext;
60  import jaxx.runtime.swing.Table;
61  import jaxx.runtime.validator.swing.SwingValidator;
62  import jaxx.runtime.validator.swing.SwingValidatorUtil;
63  import jaxx.runtime.validator.swing.meta.Validator;
64  import jaxx.runtime.validator.swing.meta.ValidatorField;
65  import jaxx.runtime.validator.swing.ui.ImageValidationUI;
66  import org.apache.commons.logging.Log;
67  import org.apache.commons.logging.LogFactory;
68  import org.nuiton.jaxx.widgets.number.NumberEditor;
69  import static org.nuiton.i18n.I18n.t;
70  
71  public class MinSizePopupUI extends JDialog implements TuttiUI<MinSizePopupUIModel, MinSizePopupUIHandler>, JAXXObject, JAXXValidator {
72  
73      /*-----------------------------------------------------------------------*/
74      /*---------------- Constants for all javaBean properties ----------------*/
75      /*-----------------------------------------------------------------------*/
76  
77      public static final String PROPERTY_MODEL = "model";
78  
79      /*-----------------------------------------------------------------------*/
80      /*------------------ Constants for all public bindings ------------------*/
81      /*-----------------------------------------------------------------------*/
82  
83      public static final String BINDING_MIN_SIZE_FIELD_NUMBER_VALUE = "minSizeField.numberValue";
84      public static final String BINDING_VALIDATE_BUTTON_ENABLED = "validateButton.enabled";
85  
86      /*-----------------------------------------------------------------------*/
87      /*------------------------- Other static fields -------------------------*/
88      /*-----------------------------------------------------------------------*/
89  
90      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAK1WTW8bRRieuLETO00CDWmLaKO25NBSaRwQIKQgaEhqcOSkIXbaihzMeHdsT5mdGXZnGwcriCuckPgDcOeCxI0T4sCZAxfEX6gQB66Id2bXXttZxzmQwzia9+t5v57Z75+hbOCjm09Ip4P9UGjmUby98fjxg8YT6ugtGjg+U1r6KPqbyqDMIZpz+/eBRi8fVox5MTYvbkpPSUHFgPV6BRUCfcxp0KZUa3R92MIJgmK1L17vqNDvee2DSvP67d9/Zb52v/gug1BHAboCpHJjklWSyXQFZZir0SWI9JQUOREtgOEz0QK88+Zuk5Mg2CUe/RR9jmYqKKeID840unX+lK0Pa99RGs17TFTZZ3SLES5bGn3Y9DFr+tSjPtah1gyHDAdHgAE7UmhwiZUvtXQkxw7hDmsy6ipGHRoExFPcKO5ELvekCtVBWSkbLadR1pMu5Ro9/N9j7BjHSaD8U8KZSyBrje4O1b8viONVzfmwdzngwSNM7BFh4F4d8hDZ1UiD2ybk+yYznoHXotA/06pOrLldIQ3Kjc6lvurFuOh90ZV0eYlRDvNwV/otLEKmpcAWyxFzIU4Ad14Darhrf+67oOAPO5pd3bZJrI2CsrcjQR0iHMrfg4ZAE9DSkH50azSv9w0W4mLSRHgr1vDRS0NFg4XCyUIlEz91iLJ+CNdQ5cPTO7gPomj7ro5sn3Fopf9eXvr9pz9/LPVWbg5iL6eqDjAGrAIMmKK+Zib0YrRvoWa8uEPU+iHKB5QD3Vg6uZYCrBqLARzEe96YY2OOPyBBG1xkZ/74+ZfLH/92AWVKqMAlcUvE6JdRXrd9qILkbke9e88iung0C+dzBhsUtU5c9xFlrbY+EAw2+0rXbg2GhifXt++cdKAq11Kq0ofWyP/6z1L1h3u9ykwB0hfHqifVyX6EckzAklFLRzHTpNLPnApo6MqEUdI4BilleIabWX/EdNvgt7JX7InTqpBr21Q1yryx1gmN2ms2A/Pf65HDuYadOjvIZ7rLAPFopjnM3WrENo4KomXBrmU9HK8bjtUMTxFY/Gnth/R0+FHSVDFtnAFg1mZfMny00B1c7hMThXb0ZGxNo54GZohMJmHJA7WRUEvLmxoVu20iXA4cAuO1KUWTtW7fwSzY6KkMUgsMnUaFiHNqxwoKtdgtA123wNwxDQfxfCTeI1pTH1hkpVszaR2UcXm3Vn+zvlV+v1yr1vc2arX7+7tgsAi7cGRD9YhnbQymKigOwon0LajZeJuPDQtH1TCbFC3xA1GSTgiLnOuafoL6XAQSaD8EvReSBYsfFeszb4Dt08B8HthBgJ8GJQBwJjI4OasZtrmTmpEFffbqW2JHUE8K5gDXxEMgPbjAESFjry8uAIkwKcrmlUS5SAzp1INPmNqwogRrNFVLKQ7BQkvJa0zVxuqk5jb4QEzKLXcqt5WhML23Y1x2F4AGz05tOdXfaHLjtGaoME84xFjuJh8FLLDfApZeTxdg5MGbVALDY5wcS1BGC2+DHbnRYMKF9/SdU96nzFmY6NFcf2mOr9I9rJwD0zRzosd6jI+b50LxzRkeVsHDf1vqbGzJCwAA";
91      private static final Log log = LogFactory.getLog(MinSizePopupUI.class);
92      private static final long serialVersionUID = 1L;
93  
94      /*-----------------------------------------------------------------------*/
95      /*--------------------------- Internal states ---------------------------*/
96      /*-----------------------------------------------------------------------*/
97  
98      protected List<Object> $activeBindings = new ArrayList<Object>();
99      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
100     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
101     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
102     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
103     private boolean allComponentsCreated;
104     protected final JAXXContext delegateContext = new DefaultJAXXContext();
105 
106     /*-----------------------------------------------------------------------*/
107     /*------------------------ Protected components  ------------------------*/
108     /*-----------------------------------------------------------------------*/
109 
110     protected JButton cancelButton;
111     protected final MinSizePopupUIHandler handler = createHandler();
112     protected Table mainPanel;
113     protected JLabel message;
114     protected MinSizePopupUI minSizeDialog = this;
115     @ValidatorField( validatorId = "validator",  propertyName = "minSize",  editorName = "minSizeField")
116     protected NumberEditor minSizeField;
117     protected JLabel minSizeLabel;
118     protected MinSizePopupUIModel model;
119     protected JButton validateButton;
120     @Validator( validatorId = "validator")
121     protected SwingValidator<MinSizePopupUIModel> validator;
122     protected List<String> validatorIds = new ArrayList<String>();
123 
124     /*-----------------------------------------------------------------------*/
125     /*------------------------- Private components  -------------------------*/
126     /*-----------------------------------------------------------------------*/
127 
128     private JPanel $JPanel0;
129 
130     /*-----------------------------------------------------------------------*/
131     /*---------------------- Raw body code from script ----------------------*/
132     /*-----------------------------------------------------------------------*/
133     
134     
135     public void open(int minMinSize, Integer maxMinSize) {
136         handler.open(minMinSize, maxMinSize);
137     }
138 
139     /*-----------------------------------------------------------------------*/
140     /*---------------------------- Constructors  ----------------------------*/
141     /*-----------------------------------------------------------------------*/
142 
143     public MinSizePopupUI(TuttiUI parentUI) {
144         super(parentUI.getHandler().getContext().getMainUI());
145             TuttiUIUtil.setParentUI(this, parentUI);
146             $initialize();
147     }
148 
149     public MinSizePopupUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
150         super(param0 ,param1 ,param2 ,param3);
151         $initialize();
152     }
153 
154     public MinSizePopupUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
155         super(param1 ,param2 ,param3 ,param4);
156         JAXXUtil.initContext(this, parentContext);
157         $initialize();
158     }
159 
160     public MinSizePopupUI(Dialog param0) {
161         super(param0);
162         $initialize();
163     }
164 
165     public MinSizePopupUI(JAXXContext parentContext, Dialog param1) {
166         super(param1);
167         JAXXUtil.initContext(this, parentContext);
168         $initialize();
169     }
170 
171     public MinSizePopupUI(Frame param0, String param1, boolean param2) {
172         super(param0 ,param1 ,param2);
173         $initialize();
174     }
175 
176     public MinSizePopupUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
177         super(param1 ,param2 ,param3);
178         JAXXUtil.initContext(this, parentContext);
179         $initialize();
180     }
181 
182     public MinSizePopupUI() {
183         $initialize();
184     }
185 
186     public MinSizePopupUI(JAXXContext parentContext) {
187         JAXXUtil.initContext(this, parentContext);
188         $initialize();
189     }
190 
191     public MinSizePopupUI(Frame param0) {
192         super(param0);
193         $initialize();
194     }
195 
196     public MinSizePopupUI(JAXXContext parentContext, Frame param1) {
197         super(param1);
198         JAXXUtil.initContext(this, parentContext);
199         $initialize();
200     }
201 
202     public MinSizePopupUI(Frame param0, boolean param1) {
203         super(param0 ,param1);
204         $initialize();
205     }
206 
207     public MinSizePopupUI(JAXXContext parentContext, Frame param1, boolean param2) {
208         super(param1 ,param2);
209         JAXXUtil.initContext(this, parentContext);
210         $initialize();
211     }
212 
213     public MinSizePopupUI(Frame param0, String param1) {
214         super(param0 ,param1);
215         $initialize();
216     }
217 
218     public MinSizePopupUI(JAXXContext parentContext, Frame param1, String param2) {
219         super(param1 ,param2);
220         JAXXUtil.initContext(this, parentContext);
221         $initialize();
222     }
223 
224     public MinSizePopupUI(Window param0) {
225         super(param0);
226         $initialize();
227     }
228 
229     public MinSizePopupUI(JAXXContext parentContext, Window param1) {
230         super(param1);
231         JAXXUtil.initContext(this, parentContext);
232         $initialize();
233     }
234 
235     public MinSizePopupUI(Window param0, ModalityType param1) {
236         super(param0 ,param1);
237         $initialize();
238     }
239 
240     public MinSizePopupUI(JAXXContext parentContext, Window param1, ModalityType param2) {
241         super(param1 ,param2);
242         JAXXUtil.initContext(this, parentContext);
243         $initialize();
244     }
245 
246     public MinSizePopupUI(Window param0, String param1) {
247         super(param0 ,param1);
248         $initialize();
249     }
250 
251     public MinSizePopupUI(JAXXContext parentContext, Window param1, String param2) {
252         super(param1 ,param2);
253         JAXXUtil.initContext(this, parentContext);
254         $initialize();
255     }
256 
257     public MinSizePopupUI(Window param0, String param1, ModalityType param2) {
258         super(param0 ,param1 ,param2);
259         $initialize();
260     }
261 
262     public MinSizePopupUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
263         super(param1 ,param2 ,param3);
264         JAXXUtil.initContext(this, parentContext);
265         $initialize();
266     }
267 
268     public MinSizePopupUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
269         super(param0 ,param1 ,param2 ,param3);
270         $initialize();
271     }
272 
273     public MinSizePopupUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
274         super(param1 ,param2 ,param3 ,param4);
275         JAXXUtil.initContext(this, parentContext);
276         $initialize();
277     }
278 
279     public MinSizePopupUI(Dialog param0, boolean param1) {
280         super(param0 ,param1);
281         $initialize();
282     }
283 
284     public MinSizePopupUI(JAXXContext parentContext, Dialog param1, boolean param2) {
285         super(param1 ,param2);
286         JAXXUtil.initContext(this, parentContext);
287         $initialize();
288     }
289 
290     public MinSizePopupUI(Dialog param0, String param1) {
291         super(param0 ,param1);
292         $initialize();
293     }
294 
295     public MinSizePopupUI(JAXXContext parentContext, Dialog param1, String param2) {
296         super(param1 ,param2);
297         JAXXUtil.initContext(this, parentContext);
298         $initialize();
299     }
300 
301     public MinSizePopupUI(Dialog param0, String param1, boolean param2) {
302         super(param0 ,param1 ,param2);
303         $initialize();
304     }
305 
306     public MinSizePopupUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
307         super(param1 ,param2 ,param3);
308         JAXXUtil.initContext(this, parentContext);
309         $initialize();
310     }
311 
312     public MinSizePopupUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
313         super(param0 ,param1 ,param2 ,param3);
314         $initialize();
315     }
316 
317     public MinSizePopupUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
318         super(param1 ,param2 ,param3 ,param4);
319         JAXXUtil.initContext(this, parentContext);
320         $initialize();
321     }
322 
323     /*-----------------------------------------------------------------------*/
324     /*--------------------------- Statics methods ---------------------------*/
325     /*-----------------------------------------------------------------------*/
326 
327     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
328         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
329     }
330 
331     /*-----------------------------------------------------------------------*/
332     /*---------------------- JAXXObject implementation ----------------------*/
333     /*-----------------------------------------------------------------------*/
334 
335     @Override
336     public void applyDataBinding(String $binding) {
337         if (allComponentsCreated && $bindings.containsKey($binding)) {
338             getDataBinding($binding).applyDataBinding();
339         }
340         processDataBinding($binding);
341     }
342 
343     @Override
344     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
345         super.firePropertyChange(propertyName, oldValue, newValue);
346     }
347 
348     @Override
349     public Map<String, Object> get$objectMap() {
350         return $objectMap;
351     }
352 
353     @Override
354     public JAXXBinding getDataBinding(String bindingId) {
355         return $bindings.get(bindingId);
356     }
357 
358     @Override
359     public JAXXBinding[] getDataBindings() {
360         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
361     }
362 
363     @Override
364     public Object getObjectById(String id) {
365         return $objectMap.get(id);
366     }
367 
368     @Override
369     public void processDataBinding(String $binding, boolean $force) {
370         if (!$force && $activeBindings.contains($binding)) { 
371             return;
372         }
373         $activeBindings.add($binding);
374         try {
375             if (allComponentsCreated && $bindings.containsKey($binding)) {
376                 getDataBinding($binding).processDataBinding();
377             }
378         } finally {
379             $activeBindings.remove($binding);
380         }
381     }
382 
383     @Override
384     public void processDataBinding(String $binding) {
385         processDataBinding($binding, false);
386     }
387 
388     @Override
389     public void registerDataBinding(JAXXBinding binding) {
390         $bindings.put(binding.getId(), binding);
391     }
392 
393     @Override
394     public void removeDataBinding(String $binding) {
395         if (allComponentsCreated && $bindings.containsKey($binding)) {
396             getDataBinding($binding).removeDataBinding();
397         }
398     }
399 
400     /*-----------------------------------------------------------------------*/
401     /*--------------------- JAXXContext implementation  ---------------------*/
402     /*-----------------------------------------------------------------------*/
403 
404     @Override
405     public <T> T getContextValue(Class<T> clazz) {
406         return delegateContext.getContextValue(clazz, null);
407     }
408 
409     @Override
410     public <T> T getContextValue(Class<T> clazz, String name) {
411         return delegateContext.getContextValue(clazz, name);
412     }
413 
414     @Override
415     public JAXXContext getDelegateContext() {
416         return delegateContext;
417     }
418 
419     @Override
420     public <O extends Container> O getParentContainer(Class<O> clazz) {
421         return SwingUtil.getParentContainer(this, clazz);
422     }
423 
424     @Override
425     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
426         return SwingUtil.getParentContainer(source, clazz);
427     }
428 
429     @Override
430     public <T> void removeContextValue(Class<T> clazz) {
431         delegateContext.removeContextValue(clazz, null);
432     }
433 
434     @Override
435     public <T> void removeContextValue(Class<T> clazz, String name) {
436         delegateContext.removeContextValue(clazz, name);
437     }
438 
439     @Override
440     public <T> void setContextValue(T o) {
441         delegateContext.setContextValue(o, null);
442     }
443 
444     @Override
445     public <T> void setContextValue(T o, String name) {
446         delegateContext.setContextValue(o, name);
447     }
448 
449     /*-----------------------------------------------------------------------*/
450     /*-------------------- JAXXValidator implementation  --------------------*/
451     /*-----------------------------------------------------------------------*/
452 
453     @Override
454     public SwingValidator<?> getValidator(String validatorId) {
455         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
456     }
457 
458     @Override
459     public List<String> getValidatorIds() {
460         return validatorIds;
461     }
462 
463     @Override
464     public void registerValidatorFields() {
465         SwingValidatorUtil.detectValidatorFields(this);
466     }
467 
468     /*-----------------------------------------------------------------------*/
469     /*---------------------------- Event methods ----------------------------*/
470     /*-----------------------------------------------------------------------*/
471 
472     public void doActionPerformed__on__cancelButton(ActionEvent event) {
473         if (log.isDebugEnabled()) {
474             log.debug(event);
475         }
476         handler.cancel();
477     }
478 
479     public void doActionPerformed__on__validateButton(ActionEvent event) {
480         if (log.isDebugEnabled()) {
481             log.debug(event);
482         }
483         handler.validate();
484     }
485 
486     /*-----------------------------------------------------------------------*/
487     /*----------------------- Public acessor methods  -----------------------*/
488     /*-----------------------------------------------------------------------*/
489 
490     public JButton getCancelButton() {
491         return cancelButton;
492     }
493 
494     public MinSizePopupUIHandler getHandler() {
495         return handler;
496     }
497 
498     public Table getMainPanel() {
499         return mainPanel;
500     }
501 
502     public JLabel getMessage() {
503         return message;
504     }
505 
506     public NumberEditor getMinSizeField() {
507         return minSizeField;
508     }
509 
510     public JLabel getMinSizeLabel() {
511         return minSizeLabel;
512     }
513 
514     public MinSizePopupUIModel getModel() {
515         return model;
516     }
517 
518     public JButton getValidateButton() {
519         return validateButton;
520     }
521 
522     public SwingValidator<MinSizePopupUIModel> getValidator() {
523         return validator;
524     }
525 
526     /*-----------------------------------------------------------------------*/
527     /*----------------------- Public mutator methods  -----------------------*/
528     /*-----------------------------------------------------------------------*/
529 
530     public void setModel(MinSizePopupUIModel model) {
531         MinSizePopupUIModel oldValue = this.model;
532         this.model = model;
533         firePropertyChange(PROPERTY_MODEL, oldValue, model);
534     }
535 
536     /*-----------------------------------------------------------------------*/
537     /*--------------------- Protected acessors methods  ---------------------*/
538     /*-----------------------------------------------------------------------*/
539 
540     protected JPanel get$JPanel0() {
541         return $JPanel0;
542     }
543 
544     /*-----------------------------------------------------------------------*/
545     /*--------------------- Components creation methods ---------------------*/
546     /*-----------------------------------------------------------------------*/
547 
548     protected void addChildrenToMainPanel() {
549         if (!allComponentsCreated) {
550             return;
551         }
552         mainPanel.add(message, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
553         mainPanel.add(minSizeLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
554         mainPanel.add(SwingUtil.boxComponentWithJxLayer(minSizeField), new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
555         mainPanel.add($JPanel0, new GridBagConstraints(0, 2, 2, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
556     }
557 
558     protected void addChildrenToMinSizeDialog() {
559         if (!allComponentsCreated) {
560             return;
561         }
562         add(mainPanel);
563     }
564 
565     protected void addChildrenToValidator() {
566         if (!allComponentsCreated) {
567             return;
568         }
569         validator.setUiClass(ImageValidationUI.class);
570         validator.setBean(model);
571     }
572 
573     protected void createCancelButton() {
574         $objectMap.put("cancelButton", cancelButton = new JButton());
575         
576         cancelButton.setName("cancelButton");
577         cancelButton.setText(t("tutti.common.cancel"));
578         cancelButton.setToolTipText(t("tutti.common.cancel"));
579         cancelButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelButton"));
580         cancelButton.putClientProperty("skipAction", true);
581     }
582 
583     protected MinSizePopupUIHandler createHandler() {
584         return new MinSizePopupUIHandler();
585     }
586 
587     protected void createMainPanel() {
588         $objectMap.put("mainPanel", mainPanel = new Table());
589         
590         mainPanel.setName("mainPanel");
591     }
592 
593     protected void createMessage() {
594         $objectMap.put("message", message = new JLabel());
595         
596         message.setName("message");
597     }
598 
599     protected void createMinSizeField() {
600         $objectMap.put("minSizeField", minSizeField = new NumberEditor());
601         
602         minSizeField.setName("minSizeField");
603         minSizeField.setProperty("minSize");
604         minSizeField.setShowReset(true);
605         minSizeField.putClientProperty("selectOnFocus", true);
606     }
607 
608     protected void createMinSizeLabel() {
609         $objectMap.put("minSizeLabel", minSizeLabel = new JLabel());
610         
611         minSizeLabel.setName("minSizeLabel");
612         minSizeLabel.setText(t("tutti.cpsEditor.dialog.minSize.field"));
613     }
614 
615     protected void createModel() {
616         $objectMap.put("model", model = new MinSizePopupUIModel());
617     }
618 
619     protected void createValidateButton() {
620         $objectMap.put("validateButton", validateButton = new JButton());
621         
622         validateButton.setName("validateButton");
623         validateButton.setText(t("tutti.common.validate"));
624         validateButton.setToolTipText(t("tutti.common.validate"));
625         validateButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__validateButton"));
626         validateButton.putClientProperty("skipAction", true);
627     }
628 
629     protected void createValidator() {
630         $objectMap.put("validator", validator = SwingValidator.newValidator(MinSizePopupUIModel.class, null));
631     }
632 
633     /*-----------------------------------------------------------------------*/
634     /*------------------------ Internal jaxx methods ------------------------*/
635     /*-----------------------------------------------------------------------*/
636 
637     private void $completeSetup() {
638         allComponentsCreated = true;
639         if (log.isDebugEnabled()) {
640             log.debug(this);
641         }
642         addChildrenToMinSizeDialog();
643         addChildrenToValidator();
644         addChildrenToMainPanel();
645         // inline complete setup of $JPanel0
646         $JPanel0.add(cancelButton);
647         $JPanel0.add(validateButton);
648         
649         // apply 2 data bindings
650         JAXXUtil.applyDataBinding(this, $bindings.keySet());
651         
652         // apply 12 property setters
653         minSizeLabel.setLabelFor(minSizeField);
654         minSizeField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
655         minSizeField.setNumberType(Integer.class);
656         minSizeField.setNumberPattern(TuttiUI.INT_6_DIGITS_PATTERN);
657         minSizeField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
658         minSizeField.setBean(model);
659         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.common.cancel.mnemonic"),'Z'));
660         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
661         validateButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.common.validate.mnemonic"),'Z'));
662         validateButton.setIcon(SwingUtil.createActionIcon("add"));
663         // late initializer
664         minSizeDialog.pack();
665         // register 1 validator(s)
666         validatorIds = SwingValidatorUtil.detectValidators(this);
667         SwingValidatorUtil.installUI(this);
668     }
669 
670     private void $initialize() {
671         if (allComponentsCreated) {
672             return;
673         }
674         if (log.isDebugEnabled()) {
675             log.debug(this);
676         }
677         handler.beforeInit(this);
678         $objectMap.put("minSizeDialog", minSizeDialog);
679         createModel();
680         createValidator();
681         createMainPanel();
682         createMessage();
683         createMinSizeLabel();
684         createMinSizeField();
685         // inline creation of $JPanel0
686         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
687         
688         $JPanel0.setName("$JPanel0");
689         $JPanel0.setLayout(new GridLayout(1, 0));
690         createCancelButton();
691         createValidateButton();
692         // inline creation of minSizeDialog
693         setName("minSizeDialog");
694         minSizeDialog.getContentPane().setLayout(new BorderLayout());
695         setTitle(t("tutti.cpsEditor.dialog.minSize.title"));
696         setModal(true);
697         
698         // registers 2 data bindings
699         $registerDefaultBindings();
700         $completeSetup();
701         handler.afterInit(this);
702     }
703 
704     private void $registerDefaultBindings() {
705         // register 2 data bindings
706         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MIN_SIZE_FIELD_NUMBER_VALUE, true) {
707         
708             @Override
709             public void applyDataBinding() {
710                 if (model != null) {
711                     model.addPropertyChangeListener("minSize", this);
712                 }
713             }
714         
715             @Override
716             public void processDataBinding() {
717                 if (model != null) {
718                     minSizeField.setNumberValue(model.getMinSize());
719                 }
720             }
721         
722             @Override
723             public void removeDataBinding() {
724                 if (model != null) {
725                     model.removePropertyChangeListener("minSize", this);
726                 }
727             }
728         });
729         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_BUTTON_ENABLED, true) {
730         
731             @Override
732             public void applyDataBinding() {
733                 if (validator != null) {
734                     validator.addPropertyChangeListener("valid", this);
735                 }
736             }
737         
738             @Override
739             public void processDataBinding() {
740                 if (validator != null) {
741                     validateButton.setEnabled(validator.isValid());
742                 }
743             }
744         
745             @Override
746             public void removeDataBinding() {
747                 if (validator != null) {
748                     validator.removePropertyChangeListener("valid", this);
749                 }
750             }
751         });
752     }
753 
754 }