View Javadoc
1   package fr.ifremer.tutti.ui.swing.util.catches;
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.type.WeightUnit;
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.Dimension;
36  import java.awt.Frame;
37  import java.awt.GraphicsConfiguration;
38  import java.awt.GridBagConstraints;
39  import java.awt.GridLayout;
40  import java.awt.Insets;
41  import java.awt.Window;
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.JPanel;
50  import jaxx.runtime.JAXXBinding;
51  import jaxx.runtime.JAXXContext;
52  import jaxx.runtime.JAXXObject;
53  import jaxx.runtime.JAXXObjectDescriptor;
54  import jaxx.runtime.JAXXUtil;
55  import jaxx.runtime.SwingUtil;
56  import jaxx.runtime.binding.DefaultJAXXBinding;
57  import jaxx.runtime.binding.SimpleJAXXObjectBinding;
58  import jaxx.runtime.context.DefaultJAXXContext;
59  import jaxx.runtime.swing.Table;
60  import org.apache.commons.logging.Log;
61  import org.apache.commons.logging.LogFactory;
62  import org.nuiton.jaxx.widgets.number.NumberEditor;
63  import static org.nuiton.i18n.I18n.t;
64  
65  public class EnterWeightUI extends JDialog implements TuttiUI<TuttiUIContext, EnterWeightUIHandler>, JAXXObject {
66  
67      /*-----------------------------------------------------------------------*/
68      /*---------------- Constants for all javaBean properties ----------------*/
69      /*-----------------------------------------------------------------------*/
70  
71      public static final String PROPERTY_ORIGINAL_WEIGHT = "originalWeight";
72      public static final String PROPERTY_WEIGHT_LABEL = "weightLabel";
73      public static final String PROPERTY_WEIGHT_UNIT = "weightUnit";
74  
75      /*-----------------------------------------------------------------------*/
76      /*------------------ Constants for all public bindings ------------------*/
77      /*-----------------------------------------------------------------------*/
78  
79      public static final String BINDING_DIALOG_TITLE = "dialog.title";
80      public static final String BINDING_EDITOR_NUMBER_PATTERN = "editor.numberPattern";
81      public static final String BINDING_EDITOR_NUMBER_VALUE = "editor.numberValue";
82      public static final String BINDING_VALIDATE_BUTTON_ENABLED = "validateButton.enabled";
83  
84      /*-----------------------------------------------------------------------*/
85      /*------------------------- Other static fields -------------------------*/
86      /*-----------------------------------------------------------------------*/
87  
88      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAKVWz28bRRSemNip7bQpjVqCWsBtQSQE1uFHJKQUaAiNSJWkUZM0FTmU8e7Enmp2dth9Wzs1QfwJ/RPgzgWJGyfEgTMHLoh/ASEOXBFvZta7/pXaKjlsvDPvfe97b977Zr/7k+SjkFx9SFstJ4wlcJ85t1fv379Te8hc+IRFbsgVBCGxfxM5kjskZS9dj4BcP9zU7tXEvboW+CqQTHZ5r2ySUgTHgkUNxgDIS70ebhRVd9PtlZaKww5qSmoY6jd//5V74n39bY6QlkJ2JUylMsory2Ryk+S4B+QCRnpEq4LKOtIIuawj37N6bU3QKNqmPvuCfEWmNklB0RDBgFwbP2WDYfxbCkjB41QEdSDvHYUOPwqZz0IHYgDuxNyJmhjciYELx6XgNljk3JLAwgPG6w3Y31DKIBWA5P3AYwLI/Okwe/p1f2MtQIQWZK7lpkHbpDUNcF7n6ejcHZt7ZnguCHmdSypseCAzme26CGgXZsli7kuOZpUBTnCsmHOQmnSlAbQmGJC5nlNL+OstbVdMzQvM41hbIItBWHdkjC/SMa5N7tUZRLjm1zDstvl3y1hr37kU4syrt3eoZGIJz12n00qi2dXecNMulS4TH2MOWEQy22NvV7Xly1nFHlHBPQos27yeWITkck+O2PNO1vNZU04cknwY4zIW5XBwTO7ilh2Qub4B0YBm999Ls7/9+McP652pmMbYF4eadg01dqsKA8VC4Dr0jB0J3YnVLapWDkkxYgIVwUz8lSHEdpNtJIfxnjedYhr5Uxo1ECI/9ftPP1/6/NfnSG6dlLB7vHWq7TdIERohViEQXkt9dNMwmm6ewed5zQ2L+oB63kFXf73QNs3v4IFny/MLJy2sypUhVUmp1Yq//DO7+/3NTmUmkOmLp5pn1cl/RgpcCi6ZUYxEDIYqRFlFLPaCbOiHyQBRCqXgrNATeMChofmbvUXzrA6rQqGRDGFueakVa7N3TQb617IFLNdM15lGHgWXBw568JbbDSo9gSOD1dzTa/NpWY1CzC+8WekrtK50P4FU2VQy3KfFngJSpDEEO4GKkXP+iIoIeZTs4O6hUGBl2kZeHFfX7ATf7eYOBdRCHMQ32n2MNPnukU8ssSeATMUR2+V1mcWawWZrmvidye7slG2ge1TE+HZRh7nTo4EGsaj977JI32STEMZsaDmsVI0qRx5Vhr/9vtySzA8kd4EsWcns6D/L9N/BgeEoeFaVHD91KdmNDVfnUrDbmhrKPpDXx8TD7CEIxB5Xe8ZvcVwewHUzP4i4rwRbNVtAtttj3m8Wq+eeWzO4q0kQ0wPDKtyjzqPqXBio8zsj8+uI+amVpq7LFKSVXhgbsb/Wb43PxVR7ikl9OeK3y+W27TM9AVtaFecXKlc/qMhYiJPBU9n5H6dyL2Ew8lz6LsFRJ6O1TdDjAI3JuRvoRys1Lj2k9OEA+oR+lsZALPtccj/2d/ljo8xfPjtUES8n/th+ply4Ya+BCupLyFFu2TNz1Mvtp1B7ZQxqk9y1HxmnYFwbi8WTpyC8hgj/AbfXi08kDAAA";
89      private static final Log log = LogFactory.getLog(EnterWeightUI.class);
90      private static final long serialVersionUID = 1L;
91  
92      /*-----------------------------------------------------------------------*/
93      /*--------------------------- Internal states ---------------------------*/
94      /*-----------------------------------------------------------------------*/
95  
96      protected List<Object> $activeBindings = new ArrayList<Object>();
97      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
98      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
99      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
100     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
101     private boolean allComponentsCreated;
102     protected final JAXXContext delegateContext = new DefaultJAXXContext();
103 
104     /*-----------------------------------------------------------------------*/
105     /*------------------------ Protected components  ------------------------*/
106     /*-----------------------------------------------------------------------*/
107 
108     protected JButton cancelButton;
109     protected EnterWeightUI dialog = this;
110     protected NumberEditor editor;
111     protected final EnterWeightUIHandler handler = createHandler();
112     protected TuttiUIContext model;
113     protected Float originalWeight;
114     protected Table table;
115     protected JButton validateButton;
116     protected String weightLabel;
117     protected WeightUnit weightUnit;
118 
119     /*-----------------------------------------------------------------------*/
120     /*------------------------- Private components  -------------------------*/
121     /*-----------------------------------------------------------------------*/
122 
123     private JPanel $JPanel0;
124 
125     /*-----------------------------------------------------------------------*/
126     /*---------------------- Raw body code from script ----------------------*/
127     /*-----------------------------------------------------------------------*/
128     
129     
130     public Float openAndGetWeightValue(String weightLabel, Float originalWeight, WeightUnit weightUnit) {
131         return handler.openAndGetWeightValue(weightLabel, originalWeight, weightUnit);
132     }
133 
134     /*-----------------------------------------------------------------------*/
135     /*---------------------------- Constructors  ----------------------------*/
136     /*-----------------------------------------------------------------------*/
137 
138     public EnterWeightUI(TuttiUIContext context) {
139         super(context.getMainUI(), true);
140             TuttiUIUtil.setApplicationContext(this, context);
141             $initialize();
142     }
143 
144     public EnterWeightUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
145         super(param0 ,param1 ,param2 ,param3);
146         $initialize();
147     }
148 
149     public EnterWeightUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
150         super(param1 ,param2 ,param3 ,param4);
151         JAXXUtil.initContext(this, parentContext);
152         $initialize();
153     }
154 
155     public EnterWeightUI(Dialog param0) {
156         super(param0);
157         $initialize();
158     }
159 
160     public EnterWeightUI(JAXXContext parentContext, Dialog param1) {
161         super(param1);
162         JAXXUtil.initContext(this, parentContext);
163         $initialize();
164     }
165 
166     public EnterWeightUI(Frame param0, String param1, boolean param2) {
167         super(param0 ,param1 ,param2);
168         $initialize();
169     }
170 
171     public EnterWeightUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
172         super(param1 ,param2 ,param3);
173         JAXXUtil.initContext(this, parentContext);
174         $initialize();
175     }
176 
177     public EnterWeightUI() {
178         $initialize();
179     }
180 
181     public EnterWeightUI(JAXXContext parentContext) {
182         JAXXUtil.initContext(this, parentContext);
183         $initialize();
184     }
185 
186     public EnterWeightUI(Frame param0) {
187         super(param0);
188         $initialize();
189     }
190 
191     public EnterWeightUI(JAXXContext parentContext, Frame param1) {
192         super(param1);
193         JAXXUtil.initContext(this, parentContext);
194         $initialize();
195     }
196 
197     public EnterWeightUI(Frame param0, boolean param1) {
198         super(param0 ,param1);
199         $initialize();
200     }
201 
202     public EnterWeightUI(JAXXContext parentContext, Frame param1, boolean param2) {
203         super(param1 ,param2);
204         JAXXUtil.initContext(this, parentContext);
205         $initialize();
206     }
207 
208     public EnterWeightUI(Frame param0, String param1) {
209         super(param0 ,param1);
210         $initialize();
211     }
212 
213     public EnterWeightUI(JAXXContext parentContext, Frame param1, String param2) {
214         super(param1 ,param2);
215         JAXXUtil.initContext(this, parentContext);
216         $initialize();
217     }
218 
219     public EnterWeightUI(Window param0) {
220         super(param0);
221         $initialize();
222     }
223 
224     public EnterWeightUI(JAXXContext parentContext, Window param1) {
225         super(param1);
226         JAXXUtil.initContext(this, parentContext);
227         $initialize();
228     }
229 
230     public EnterWeightUI(Window param0, ModalityType param1) {
231         super(param0 ,param1);
232         $initialize();
233     }
234 
235     public EnterWeightUI(JAXXContext parentContext, Window param1, ModalityType param2) {
236         super(param1 ,param2);
237         JAXXUtil.initContext(this, parentContext);
238         $initialize();
239     }
240 
241     public EnterWeightUI(Window param0, String param1) {
242         super(param0 ,param1);
243         $initialize();
244     }
245 
246     public EnterWeightUI(JAXXContext parentContext, Window param1, String param2) {
247         super(param1 ,param2);
248         JAXXUtil.initContext(this, parentContext);
249         $initialize();
250     }
251 
252     public EnterWeightUI(Window param0, String param1, ModalityType param2) {
253         super(param0 ,param1 ,param2);
254         $initialize();
255     }
256 
257     public EnterWeightUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
258         super(param1 ,param2 ,param3);
259         JAXXUtil.initContext(this, parentContext);
260         $initialize();
261     }
262 
263     public EnterWeightUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
264         super(param0 ,param1 ,param2 ,param3);
265         $initialize();
266     }
267 
268     public EnterWeightUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
269         super(param1 ,param2 ,param3 ,param4);
270         JAXXUtil.initContext(this, parentContext);
271         $initialize();
272     }
273 
274     public EnterWeightUI(Dialog param0, boolean param1) {
275         super(param0 ,param1);
276         $initialize();
277     }
278 
279     public EnterWeightUI(JAXXContext parentContext, Dialog param1, boolean param2) {
280         super(param1 ,param2);
281         JAXXUtil.initContext(this, parentContext);
282         $initialize();
283     }
284 
285     public EnterWeightUI(Dialog param0, String param1) {
286         super(param0 ,param1);
287         $initialize();
288     }
289 
290     public EnterWeightUI(JAXXContext parentContext, Dialog param1, String param2) {
291         super(param1 ,param2);
292         JAXXUtil.initContext(this, parentContext);
293         $initialize();
294     }
295 
296     public EnterWeightUI(Dialog param0, String param1, boolean param2) {
297         super(param0 ,param1 ,param2);
298         $initialize();
299     }
300 
301     public EnterWeightUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
302         super(param1 ,param2 ,param3);
303         JAXXUtil.initContext(this, parentContext);
304         $initialize();
305     }
306 
307     public EnterWeightUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
308         super(param0 ,param1 ,param2 ,param3);
309         $initialize();
310     }
311 
312     public EnterWeightUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
313         super(param1 ,param2 ,param3 ,param4);
314         JAXXUtil.initContext(this, parentContext);
315         $initialize();
316     }
317 
318     /*-----------------------------------------------------------------------*/
319     /*--------------------------- Statics methods ---------------------------*/
320     /*-----------------------------------------------------------------------*/
321 
322     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
323         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
324     }
325 
326     /*-----------------------------------------------------------------------*/
327     /*---------------------- JAXXObject implementation ----------------------*/
328     /*-----------------------------------------------------------------------*/
329 
330     @Override
331     public void applyDataBinding(String $binding) {
332         if (allComponentsCreated && $bindings.containsKey($binding)) {
333             getDataBinding($binding).applyDataBinding();
334         }
335         processDataBinding($binding);
336     }
337 
338     @Override
339     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
340         super.firePropertyChange(propertyName, oldValue, newValue);
341     }
342 
343     @Override
344     public Map<String, Object> get$objectMap() {
345         return $objectMap;
346     }
347 
348     @Override
349     public JAXXBinding getDataBinding(String bindingId) {
350         return $bindings.get(bindingId);
351     }
352 
353     @Override
354     public JAXXBinding[] getDataBindings() {
355         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
356     }
357 
358     @Override
359     public Object getObjectById(String id) {
360         return $objectMap.get(id);
361     }
362 
363     @Override
364     public void processDataBinding(String $binding, boolean $force) {
365         if (!$force && $activeBindings.contains($binding)) { 
366             return;
367         }
368         $activeBindings.add($binding);
369         try {
370             if (allComponentsCreated && $bindings.containsKey($binding)) {
371                 getDataBinding($binding).processDataBinding();
372             }
373         } finally {
374             $activeBindings.remove($binding);
375         }
376     }
377 
378     @Override
379     public void processDataBinding(String $binding) {
380         processDataBinding($binding, false);
381     }
382 
383     @Override
384     public void registerDataBinding(JAXXBinding binding) {
385         $bindings.put(binding.getId(), binding);
386     }
387 
388     @Override
389     public void removeDataBinding(String $binding) {
390         if (allComponentsCreated && $bindings.containsKey($binding)) {
391             getDataBinding($binding).removeDataBinding();
392         }
393     }
394 
395     /*-----------------------------------------------------------------------*/
396     /*--------------------- JAXXContext implementation  ---------------------*/
397     /*-----------------------------------------------------------------------*/
398 
399     @Override
400     public <T> T getContextValue(Class<T> clazz) {
401         return delegateContext.getContextValue(clazz, null);
402     }
403 
404     @Override
405     public <T> T getContextValue(Class<T> clazz, String name) {
406         return delegateContext.getContextValue(clazz, name);
407     }
408 
409     @Override
410     public JAXXContext getDelegateContext() {
411         return delegateContext;
412     }
413 
414     @Override
415     public <O extends Container> O getParentContainer(Class<O> clazz) {
416         return SwingUtil.getParentContainer(this, clazz);
417     }
418 
419     @Override
420     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
421         return SwingUtil.getParentContainer(source, clazz);
422     }
423 
424     @Override
425     public <T> void removeContextValue(Class<T> clazz) {
426         delegateContext.removeContextValue(clazz, null);
427     }
428 
429     @Override
430     public <T> void removeContextValue(Class<T> clazz, String name) {
431         delegateContext.removeContextValue(clazz, name);
432     }
433 
434     @Override
435     public <T> void setContextValue(T o) {
436         delegateContext.setContextValue(o, null);
437     }
438 
439     @Override
440     public <T> void setContextValue(T o, String name) {
441         delegateContext.setContextValue(o, name);
442     }
443 
444     /*-----------------------------------------------------------------------*/
445     /*----------------------- Public acessor methods  -----------------------*/
446     /*-----------------------------------------------------------------------*/
447 
448     public JButton getCancelButton() {
449         return cancelButton;
450     }
451 
452     public NumberEditor getEditor() {
453         return editor;
454     }
455 
456     public EnterWeightUIHandler getHandler() {
457         return handler;
458     }
459 
460     public TuttiUIContext getModel() {
461         return model;
462     }
463 
464     public Float getOriginalWeight() {
465         return originalWeight;
466     }
467 
468     public Table getTable() {
469         return table;
470     }
471 
472     public JButton getValidateButton() {
473         return validateButton;
474     }
475 
476     public String getWeightLabel() {
477         return weightLabel;
478     }
479 
480     public WeightUnit getWeightUnit() {
481         return weightUnit;
482     }
483 
484     /*-----------------------------------------------------------------------*/
485     /*----------------------- Public mutator methods  -----------------------*/
486     /*-----------------------------------------------------------------------*/
487 
488     public void setOriginalWeight(Float originalWeight) {
489         Float oldValue = this.originalWeight;
490         this.originalWeight = originalWeight;
491         firePropertyChange(PROPERTY_ORIGINAL_WEIGHT, oldValue, originalWeight);
492     }
493 
494     public void setWeightLabel(String weightLabel) {
495         String oldValue = this.weightLabel;
496         this.weightLabel = weightLabel;
497         firePropertyChange(PROPERTY_WEIGHT_LABEL, oldValue, weightLabel);
498     }
499 
500     public void setWeightUnit(WeightUnit weightUnit) {
501         WeightUnit oldValue = this.weightUnit;
502         this.weightUnit = weightUnit;
503         firePropertyChange(PROPERTY_WEIGHT_UNIT, oldValue, weightUnit);
504     }
505 
506     /*-----------------------------------------------------------------------*/
507     /*--------------------- Protected acessors methods  ---------------------*/
508     /*-----------------------------------------------------------------------*/
509 
510     protected JPanel get$JPanel0() {
511         return $JPanel0;
512     }
513 
514     /*-----------------------------------------------------------------------*/
515     /*--------------------- Components creation methods ---------------------*/
516     /*-----------------------------------------------------------------------*/
517 
518     protected void addChildrenToDialog() {
519         if (!allComponentsCreated) {
520             return;
521         }
522         add(table, BorderLayout.CENTER);
523         add($JPanel0, BorderLayout.SOUTH);
524     }
525 
526     protected void addChildrenToTable() {
527         if (!allComponentsCreated) {
528             return;
529         }
530         table.add(editor, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
531     }
532 
533     protected void createCancelButton() {
534         $objectMap.put("cancelButton", cancelButton = new JButton());
535         
536         cancelButton.setName("cancelButton");
537         cancelButton.setText(t("tutti.catches.enterWeight.action.cancel"));
538         cancelButton.setToolTipText(t("tutti.catches.enterWeight.action.cancel.tip"));
539         cancelButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.util.catches.actions.EnterWeightCancelAction.class);
540     }
541 
542     protected void createEditor() {
543         $objectMap.put("editor", editor = new NumberEditor());
544         
545         editor.setName("editor");
546         editor.setAutoPopup(false);
547         editor.setUseSign(false);
548         editor.setShowPopupButton(false);
549         editor.setShowReset(true);
550     }
551 
552     protected EnterWeightUIHandler createHandler() {
553         return new EnterWeightUIHandler();
554     }
555 
556     protected void createModel() {
557         $objectMap.put("model", model = getContextValue(TuttiUIContext.class));
558     }
559 
560     protected void createOriginalWeight() {
561         $objectMap.put("originalWeight", originalWeight = null);
562     }
563 
564     protected void createTable() {
565         $objectMap.put("table", table = new Table());
566         
567         table.setName("table");
568     }
569 
570     protected void createValidateButton() {
571         $objectMap.put("validateButton", validateButton = new JButton());
572         
573         validateButton.setName("validateButton");
574         validateButton.setText(t("tutti.catches.enterWeight.action.validate"));
575         validateButton.setToolTipText(t("tutti.catches.enterWeight.action.validate.tip"));
576         validateButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.util.catches.actions.EnterWeightValidateAction.class);
577     }
578 
579     protected void createWeightLabel() {
580         $objectMap.put("weightLabel", weightLabel = null);
581     }
582 
583     protected void createWeightUnit() {
584         $objectMap.put("weightUnit", weightUnit = WeightUnit.KG);
585     }
586 
587     /*-----------------------------------------------------------------------*/
588     /*------------------------ Internal jaxx methods ------------------------*/
589     /*-----------------------------------------------------------------------*/
590 
591     private void $completeSetup() {
592         allComponentsCreated = true;
593         if (log.isDebugEnabled()) {
594             log.debug(this);
595         }
596         addChildrenToDialog();
597         addChildrenToTable();
598         // inline complete setup of $JPanel0
599         $JPanel0.add(cancelButton);
600         $JPanel0.add(validateButton);
601         
602         // apply 4 data bindings
603         JAXXUtil.applyDataBinding(this, $bindings.keySet());
604         
605         // apply 8 property setters
606         setMinimumSize(new Dimension(350,100));
607         editor.setNumberType(Float.class);
608         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.catches.enterWeight.action.cancel.mnemonic"),'Z'));
609         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
610         validateButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.catches.enterWeight.action.validate.mnemonic"),'Z'));
611         validateButton.setIcon(SwingUtil.createActionIcon("accept"));
612         // late initializer
613         dialog.pack();
614     }
615 
616     private void $initialize() {
617         if (allComponentsCreated) {
618             return;
619         }
620         if (log.isDebugEnabled()) {
621             log.debug(this);
622         }
623         handler.beforeInit(this);
624         $objectMap.put("dialog", dialog);
625         createModel();
626         createWeightLabel();
627         createOriginalWeight();
628         createWeightUnit();
629         createTable();
630         createEditor();
631         // inline creation of $JPanel0
632         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
633         
634         $JPanel0.setName("$JPanel0");
635         $JPanel0.setLayout(new GridLayout(1,0));
636         createCancelButton();
637         createValidateButton();
638         // inline creation of dialog
639         setName("dialog");
640         dialog.getContentPane().setLayout(new BorderLayout());
641         setResizable(false);
642         
643         // registers 4 data bindings
644         $registerDefaultBindings();
645         $completeSetup();
646         handler.afterInit(this);
647     }
648 
649     private void $registerDefaultBindings() {
650         // register 4 data bindings
651         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_DIALOG_TITLE, true ,"weightLabel" ,"weightUnit") {
652         
653             @Override
654             public void processDataBinding() {
655                 setTitle(t(handler.getTitle(getWeightLabel(), getWeightUnit())));
656             }
657         });
658         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_EDITOR_NUMBER_PATTERN, true ,"weightUnit") {
659         
660             @Override
661             public void processDataBinding() {
662                 if (getWeightUnit() != null) {
663                     editor.setNumberPattern(getWeightUnit().getNumberEditorPattern());
664                 }
665             }
666         });
667         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_EDITOR_NUMBER_VALUE, true ,"originalWeight") {
668         
669             @Override
670             public void processDataBinding() {
671                 editor.setNumberValue(getOriginalWeight());
672             }
673         });
674         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_BUTTON_ENABLED, true) {
675         
676             @Override
677             public void applyDataBinding() {
678                 if (editor != null) {
679                     editor.addPropertyChangeListener("model", this);
680                 }
681             }
682         
683             @Override
684             public void processDataBinding() {
685                 if (editor != null) {
686                     validateButton.setEnabled(editor.getModel() != null);
687                 }
688             }
689         
690             @Override
691             public void removeDataBinding() {
692                 if (editor != null) {
693                     editor.removePropertyChangeListener("model", this);
694                 }
695             }
696         });
697     }
698 
699 }