View Javadoc
1   package fr.ifremer.dali.ui.swing.content.extraction.config.preset;
2   
3   import fr.ifremer.dali.dto.referential.pmfm.PmfmDTO;
4   import fr.ifremer.dali.dto.referential.pmfm.QualitativeValueDTO;
5   import fr.ifremer.dali.ui.swing.DaliUIContext;
6   import fr.ifremer.dali.ui.swing.util.DaliUI;
7   import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
8   import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
9   import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedBeanDoubleList;
10  import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
11  import java.awt.BorderLayout;
12  import java.awt.Component;
13  import java.awt.Container;
14  import java.awt.Dialog;
15  import java.awt.Dialog.ModalityType;
16  import java.awt.Frame;
17  import java.awt.GraphicsConfiguration;
18  import java.awt.GridLayout;
19  import java.awt.Window;
20  import java.awt.event.ActionEvent;
21  import java.awt.event.ActionListener;
22  import java.util.ArrayList;
23  import java.util.HashMap;
24  import java.util.List;
25  import java.util.Map;
26  import java.util.TreeMap;
27  import javax.swing.BorderFactory;
28  import javax.swing.JButton;
29  import javax.swing.JDialog;
30  import javax.swing.JLabel;
31  import javax.swing.JPanel;
32  import javax.swing.JScrollPane;
33  import javax.swing.SwingConstants;
34  import jaxx.runtime.JAXXBinding;
35  import jaxx.runtime.JAXXContext;
36  import jaxx.runtime.JAXXObject;
37  import jaxx.runtime.JAXXObjectDescriptor;
38  import jaxx.runtime.JAXXUtil;
39  import jaxx.runtime.JAXXValidator;
40  import jaxx.runtime.SwingUtil;
41  import jaxx.runtime.binding.DefaultJAXXBinding;
42  import jaxx.runtime.context.DefaultJAXXContext;
43  import jaxx.runtime.validator.swing.SwingValidator;
44  import jaxx.runtime.validator.swing.SwingValidatorUtil;
45  import jaxx.runtime.validator.swing.meta.Validator;
46  import jaxx.runtime.validator.swing.meta.ValidatorField;
47  import jaxx.runtime.validator.swing.ui.ImageValidationUI;
48  import org.apache.commons.logging.Log;
49  import org.apache.commons.logging.LogFactory;
50  import static org.nuiton.i18n.I18n.t;
51  
52  public class PmfmPresetUI extends JDialog implements DaliUI<PmfmPresetUIModel, PmfmPresetUIHandler>, JAXXObject, JAXXValidator {
53  
54      /*-----------------------------------------------------------------------*/
55      /*------------------ Constants for all public bindings ------------------*/
56      /*-----------------------------------------------------------------------*/
57  
58      public static final String BINDING_VALID_BUTTON_ENABLED = "validButton.enabled";
59      public static final String BINDING_VALUE_DOUBLE_LIST_ENABLED = "valueDoubleList.enabled";
60  
61      /*-----------------------------------------------------------------------*/
62      /*------------------------- Other static fields -------------------------*/
63      /*-----------------------------------------------------------------------*/
64  
65      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAM1XzW8bRRSfuHESJ2lD81naBpIUQULRhjaIDwXoh5OItEmJ4rRU5MJ4d2xPNd7dzs42dqMg/gT+BLhzQeLGCXHgAJceuCAu/AEIcYAj4s3s7qzXWX9UDqKRsrL3vfeb33tv5vfGX/2Osh5H8w9wrWZw3xa0SoxbN+7f/7D4gJhijXgmp65wOAr++jIos49GLP3eE+jS/pYMXw7Dl/NO1XVsYjdEr26hYU/UGfEqhAiBZpMRpuctF7R5teb6PELVpNJQv/jzj8zn1mdfZhCqucBuElKZ6xQVZ9K/hTLUEmgcVnqElxm2y0CDU7sMfE/Ld3mGPe8OrpKH6FM0uIUGXMwBTKCF7lNWGCq+5go06lZL1R1OPCLubgq0UeIGLXFSJdywMKOGTw3vABgYpmMLADRITXBsCurY8lWJlg1XRRs7DUCuq1YYEChbdSzCBLp9MsDbEi1Gzz0CKAtDegJdThRaG8JVCvJ5L3oZIwy9dGsH24S9DmWXFa6F/sFb6ZTTvmNxrbR1Uj7GtcuEdNnDRUYKJncYk34CzSSQY4sMmoqT0bECGQ3leuhji9MyWYlrJqRXkJMKkAgzGmgEkveJl+Q4dSzlK9o2q21ngChlEnILF2XfkkVRL6XrizritEcYnExiadulpMOYYrPm+BKUerBZ8+2TM6PNaxQJto31GmwPi1g34UuMkqQ9Ak3xWcuuRBlf1bYlbZvUGe8qjGQal+PORnm2d5sMmUArk2QXk8tGlFY0pXifjZrYNgm76QsBZwNNJFoQvJWeK4mGUyu2vBWaObqQOBSga0asa7Hw9O2jLPfhtUDn9o9L4S6YAhE81ySCElBZ/5me+PnbX7/ZiJTvPKw9leraINygSC53XMIFlUuPBbLnC8qWt7G7uo9yQc2Vql9MIVYIzUAO1jsrww0ZbnyAvQpAZAd/+e776U+enEKZDTTMHGxtYOm/iXKiAo2qOMyqudeuK0ajB0PwfA7+Twk0XKJMEB4cxn7BfSJ3esU5WCOmwwPByZYw86RZblOBBg+V1B3VoE4XU+qkyRZzP/w1Ufj6elSrPuD+fEv3uF7Zj9EAtRm1iZoT4QhInQsjrkd8y4mlPk38Ecj/dPrpCvXxmnrm0wqUg/LRx4n6ZAUV8uu80vcUOYczYYQ+cixgFobWfLnMbVUK+WkbNc0ltwOfPoEGig63YCehncOb6lPQ6bphcoIF2ZPLWoFlUSwutKEYLBoQXVhaOkpj1zwJnobg3RMiGJezFcu0YdSJaQbCKg6nj0F5MLvBaNmuqhvGzKEaN3nH9gRsd8/Ir9/ZW989kj0EngJdUJSDc2NoUTWYFMo0dk2j5r8jdr6RWKTirXklB9rTdPajE+psML7b97ZxxnfiCMd1HLMDXPcKoFuFMD19bodCEa5DT6Lc7yl0EDViyw6B88uBvBllIgpQbthT0Tx0DhaX5ubfm7N9xtJPS9MN4P+oaTCWO9S04Rbx7JyT1AvKM3Na0q5FXfS3Yc81Icibk5dah7SbVael+mGS0Ctv29s2qTo2NaPywx2zKveJumgZVW0dDjbQpvxRggYCsy7N+PFQ2DTCcdgedfdauaROt8YbXqccssdymG1cJfylQ1pmgU2TuEJnMZkW3JxHC6dYDs6GckA99aNqsbVKRRfTbk49w3UHnNGZd2E9PFektgWb9f1j0H3yOdwRUb7+UT5+SkeY6BlhumeEF3pGmOvmvMk76l7dJW1wXumZyas9I7zWFcJvbRCu9szhjS7q2U/N4KdWC4w3u2LxdxuEdwDhX7F50vUOEwAA";
66      private static final Log log = LogFactory.getLog(PmfmPresetUI.class);
67      private static final long serialVersionUID = 1L;
68  
69      /*-----------------------------------------------------------------------*/
70      /*--------------------------- Internal states ---------------------------*/
71      /*-----------------------------------------------------------------------*/
72  
73      protected List<Object> $activeBindings = new ArrayList<Object>();
74      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
75      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
76      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
77      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
78      private boolean allComponentsCreated;
79      protected final JAXXContext delegateContext = new DefaultJAXXContext();
80  
81      /*-----------------------------------------------------------------------*/
82      /*------------------------ Protected components  ------------------------*/
83      /*-----------------------------------------------------------------------*/
84  
85      protected JLabel availableLabel;
86      protected JLabel availableResultLabel;
87      protected JButton cancelButton;
88      protected final PmfmPresetUIHandler handler = createHandler();
89      protected PmfmPresetUIModel model;
90      protected JPanel pmfmPresetPanel;
91      protected PmfmPresetUI pmfmPresetUI = this;
92      protected SwingTable pmfmTable;
93      @ValidatorField( validatorId = "validator",  propertyName = "presetValid",  editorName = "pmfmTableScrollPane")
94      protected JScrollPane pmfmTableScrollPane;
95      protected JPanel resultPanel;
96      @ValidatorField( validatorId = "validator",  propertyName = "resultValid",  editorName = "resultPmfmDoubleList")
97      protected ExtendedBeanDoubleList<PmfmDTO> resultPmfmDoubleList;
98      protected JLabel selectedLabel;
99      protected JLabel selectedResultLabel;
100     protected JButton validButton;
101     @Validator( validatorId = "validator")
102     protected SwingValidator<PmfmPresetUIModel> validator;
103     protected List<String> validatorIds = new ArrayList<String>();
104     protected ExtendedBeanDoubleList<QualitativeValueDTO> valueDoubleList;
105     protected JPanel valuesPanel;
106 
107     /*-----------------------------------------------------------------------*/
108     /*------------------------- Private components  -------------------------*/
109     /*-----------------------------------------------------------------------*/
110 
111     private JPanel $JPanel0;
112     private JPanel $JPanel1;
113     private JPanel $JPanel2;
114     private JPanel $JPanel3;
115 
116     /*-----------------------------------------------------------------------*/
117     /*---------------------------- Constructors  ----------------------------*/
118     /*-----------------------------------------------------------------------*/
119 
120     public PmfmPresetUI(DaliUIContext context) {
121         super(context.getMainUI());
122         			ApplicationUIUtil.setApplicationContext(this, context);
123             $initialize();
124     }
125 
126     public PmfmPresetUI(Window param0) {
127         super(param0);
128         $initialize();
129     }
130 
131     public PmfmPresetUI(JAXXContext parentContext, Window param1) {
132         super(param1);
133         JAXXUtil.initContext(this, parentContext);
134         $initialize();
135     }
136 
137     public PmfmPresetUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
138         super(param0 ,param1 ,param2 ,param3);
139         $initialize();
140     }
141 
142     public PmfmPresetUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
143         super(param1 ,param2 ,param3 ,param4);
144         JAXXUtil.initContext(this, parentContext);
145         $initialize();
146     }
147 
148     public PmfmPresetUI(Dialog param0, String param1, boolean param2) {
149         super(param0 ,param1 ,param2);
150         $initialize();
151     }
152 
153     public PmfmPresetUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
154         super(param1 ,param2 ,param3);
155         JAXXUtil.initContext(this, parentContext);
156         $initialize();
157     }
158 
159     public PmfmPresetUI(Dialog param0, String param1) {
160         super(param0 ,param1);
161         $initialize();
162     }
163 
164     public PmfmPresetUI(JAXXContext parentContext, Dialog param1, String param2) {
165         super(param1 ,param2);
166         JAXXUtil.initContext(this, parentContext);
167         $initialize();
168     }
169 
170     public PmfmPresetUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
171         super(param0 ,param1 ,param2 ,param3);
172         $initialize();
173     }
174 
175     public PmfmPresetUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
176         super(param1 ,param2 ,param3 ,param4);
177         JAXXUtil.initContext(this, parentContext);
178         $initialize();
179     }
180 
181     public PmfmPresetUI(Window param0, String param1, ModalityType param2) {
182         super(param0 ,param1 ,param2);
183         $initialize();
184     }
185 
186     public PmfmPresetUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
187         super(param1 ,param2 ,param3);
188         JAXXUtil.initContext(this, parentContext);
189         $initialize();
190     }
191 
192     public PmfmPresetUI(Window param0, String param1) {
193         super(param0 ,param1);
194         $initialize();
195     }
196 
197     public PmfmPresetUI(JAXXContext parentContext, Window param1, String param2) {
198         super(param1 ,param2);
199         JAXXUtil.initContext(this, parentContext);
200         $initialize();
201     }
202 
203     public PmfmPresetUI(Window param0, ModalityType param1) {
204         super(param0 ,param1);
205         $initialize();
206     }
207 
208     public PmfmPresetUI(JAXXContext parentContext, Window param1, ModalityType param2) {
209         super(param1 ,param2);
210         JAXXUtil.initContext(this, parentContext);
211         $initialize();
212     }
213 
214     public PmfmPresetUI(Frame param0, String param1) {
215         super(param0 ,param1);
216         $initialize();
217     }
218 
219     public PmfmPresetUI(JAXXContext parentContext, Frame param1, String param2) {
220         super(param1 ,param2);
221         JAXXUtil.initContext(this, parentContext);
222         $initialize();
223     }
224 
225     public PmfmPresetUI(Frame param0, boolean param1) {
226         super(param0 ,param1);
227         $initialize();
228     }
229 
230     public PmfmPresetUI(JAXXContext parentContext, Frame param1, boolean param2) {
231         super(param1 ,param2);
232         JAXXUtil.initContext(this, parentContext);
233         $initialize();
234     }
235 
236     public PmfmPresetUI(Frame param0) {
237         super(param0);
238         $initialize();
239     }
240 
241     public PmfmPresetUI(JAXXContext parentContext, Frame param1) {
242         super(param1);
243         JAXXUtil.initContext(this, parentContext);
244         $initialize();
245     }
246 
247     public PmfmPresetUI() {
248         $initialize();
249     }
250 
251     public PmfmPresetUI(JAXXContext parentContext) {
252         JAXXUtil.initContext(this, parentContext);
253         $initialize();
254     }
255 
256     public PmfmPresetUI(Dialog param0, boolean param1) {
257         super(param0 ,param1);
258         $initialize();
259     }
260 
261     public PmfmPresetUI(JAXXContext parentContext, Dialog param1, boolean param2) {
262         super(param1 ,param2);
263         JAXXUtil.initContext(this, parentContext);
264         $initialize();
265     }
266 
267     public PmfmPresetUI(Dialog param0) {
268         super(param0);
269         $initialize();
270     }
271 
272     public PmfmPresetUI(JAXXContext parentContext, Dialog param1) {
273         super(param1);
274         JAXXUtil.initContext(this, parentContext);
275         $initialize();
276     }
277 
278     public PmfmPresetUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
279         super(param0 ,param1 ,param2 ,param3);
280         $initialize();
281     }
282 
283     public PmfmPresetUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
284         super(param1 ,param2 ,param3 ,param4);
285         JAXXUtil.initContext(this, parentContext);
286         $initialize();
287     }
288 
289     public PmfmPresetUI(Frame param0, String param1, boolean param2) {
290         super(param0 ,param1 ,param2);
291         $initialize();
292     }
293 
294     public PmfmPresetUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
295         super(param1 ,param2 ,param3);
296         JAXXUtil.initContext(this, parentContext);
297         $initialize();
298     }
299 
300     /*-----------------------------------------------------------------------*/
301     /*--------------------------- Statics methods ---------------------------*/
302     /*-----------------------------------------------------------------------*/
303 
304     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
305         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
306     }
307 
308     /*-----------------------------------------------------------------------*/
309     /*---------------------- JAXXObject implementation ----------------------*/
310     /*-----------------------------------------------------------------------*/
311 
312     @Override
313     public void applyDataBinding(String $binding) {
314         if (allComponentsCreated && $bindings.containsKey($binding)) {
315             getDataBinding($binding).applyDataBinding();
316         }
317         processDataBinding($binding);
318     }
319 
320     @Override
321     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
322         super.firePropertyChange(propertyName, oldValue, newValue);
323     }
324 
325     @Override
326     public Map<String, Object> get$objectMap() {
327         return $objectMap;
328     }
329 
330     @Override
331     public JAXXBinding getDataBinding(String bindingId) {
332         return $bindings.get(bindingId);
333     }
334 
335     @Override
336     public JAXXBinding[] getDataBindings() {
337         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
338     }
339 
340     @Override
341     public Object getObjectById(String id) {
342         return $objectMap.get(id);
343     }
344 
345     @Override
346     public void processDataBinding(String $binding, boolean $force) {
347         if (!$force && $activeBindings.contains($binding)) { 
348             return;
349         }
350         $activeBindings.add($binding);
351         try {
352             if (allComponentsCreated && $bindings.containsKey($binding)) {
353                 getDataBinding($binding).processDataBinding();
354             }
355         } finally {
356             $activeBindings.remove($binding);
357         }
358     }
359 
360     @Override
361     public void processDataBinding(String $binding) {
362         processDataBinding($binding, false);
363     }
364 
365     @Override
366     public void registerDataBinding(JAXXBinding binding) {
367         $bindings.put(binding.getId(), binding);
368     }
369 
370     @Override
371     public void removeDataBinding(String $binding) {
372         if (allComponentsCreated && $bindings.containsKey($binding)) {
373             getDataBinding($binding).removeDataBinding();
374         }
375     }
376 
377     /*-----------------------------------------------------------------------*/
378     /*--------------------- JAXXContext implementation  ---------------------*/
379     /*-----------------------------------------------------------------------*/
380 
381     @Override
382     public <T> T getContextValue(Class<T> clazz) {
383         return delegateContext.getContextValue(clazz, null);
384     }
385 
386     @Override
387     public <T> T getContextValue(Class<T> clazz, String name) {
388         return delegateContext.getContextValue(clazz, name);
389     }
390 
391     @Override
392     public JAXXContext getDelegateContext() {
393         return delegateContext;
394     }
395 
396     @Override
397     public <O extends Container> O getParentContainer(Class<O> clazz) {
398         return SwingUtil.getParentContainer(this, clazz);
399     }
400 
401     @Override
402     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
403         return SwingUtil.getParentContainer(source, clazz);
404     }
405 
406     @Override
407     public <T> void removeContextValue(Class<T> clazz) {
408         delegateContext.removeContextValue(clazz, null);
409     }
410 
411     @Override
412     public <T> void removeContextValue(Class<T> clazz, String name) {
413         delegateContext.removeContextValue(clazz, name);
414     }
415 
416     @Override
417     public <T> void setContextValue(T o) {
418         delegateContext.setContextValue(o, null);
419     }
420 
421     @Override
422     public <T> void setContextValue(T o, String name) {
423         delegateContext.setContextValue(o, name);
424     }
425 
426     /*-----------------------------------------------------------------------*/
427     /*-------------------- JAXXValidator implementation  --------------------*/
428     /*-----------------------------------------------------------------------*/
429 
430     @Override
431     public SwingValidator<?> getValidator(String validatorId) {
432         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
433     }
434 
435     @Override
436     public List<String> getValidatorIds() {
437         return validatorIds;
438     }
439 
440     @Override
441     public void registerValidatorFields() {
442         SwingValidatorUtil.detectValidatorFields(this);
443     }
444 
445     /*-----------------------------------------------------------------------*/
446     /*---------------------------- Event methods ----------------------------*/
447     /*-----------------------------------------------------------------------*/
448 
449     public void doActionPerformed__on__cancelButton(ActionEvent event) {
450         if (log.isDebugEnabled()) {
451             log.debug(event);
452         }
453         handler.cancel();
454     }
455 
456     public void doActionPerformed__on__validButton(ActionEvent event) {
457         if (log.isDebugEnabled()) {
458             log.debug(event);
459         }
460         handler.valid();
461     }
462 
463     /*-----------------------------------------------------------------------*/
464     /*----------------------- Public acessor methods  -----------------------*/
465     /*-----------------------------------------------------------------------*/
466 
467     public JLabel getAvailableLabel() {
468         return availableLabel;
469     }
470 
471     public JLabel getAvailableResultLabel() {
472         return availableResultLabel;
473     }
474 
475     public JButton getCancelButton() {
476         return cancelButton;
477     }
478 
479     public PmfmPresetUIHandler getHandler() {
480         return handler;
481     }
482 
483     public PmfmPresetUIModel getModel() {
484         return model;
485     }
486 
487     public JPanel getPmfmPresetPanel() {
488         return pmfmPresetPanel;
489     }
490 
491     public SwingTable getPmfmTable() {
492         return pmfmTable;
493     }
494 
495     public JScrollPane getPmfmTableScrollPane() {
496         return pmfmTableScrollPane;
497     }
498 
499     public JPanel getResultPanel() {
500         return resultPanel;
501     }
502 
503     public ExtendedBeanDoubleList<PmfmDTO> getResultPmfmDoubleList() {
504         return resultPmfmDoubleList;
505     }
506 
507     public JLabel getSelectedLabel() {
508         return selectedLabel;
509     }
510 
511     public JLabel getSelectedResultLabel() {
512         return selectedResultLabel;
513     }
514 
515     public JButton getValidButton() {
516         return validButton;
517     }
518 
519     public SwingValidator<PmfmPresetUIModel> getValidator() {
520         return validator;
521     }
522 
523     public ExtendedBeanDoubleList<QualitativeValueDTO> getValueDoubleList() {
524         return valueDoubleList;
525     }
526 
527     public JPanel getValuesPanel() {
528         return valuesPanel;
529     }
530 
531     /*-----------------------------------------------------------------------*/
532     /*--------------------- Protected acessors methods  ---------------------*/
533     /*-----------------------------------------------------------------------*/
534 
535     protected JPanel get$JPanel0() {
536         return $JPanel0;
537     }
538 
539     protected JPanel get$JPanel1() {
540         return $JPanel1;
541     }
542 
543     protected JPanel get$JPanel2() {
544         return $JPanel2;
545     }
546 
547     protected JPanel get$JPanel3() {
548         return $JPanel3;
549     }
550 
551     /*-----------------------------------------------------------------------*/
552     /*--------------------- Components creation methods ---------------------*/
553     /*-----------------------------------------------------------------------*/
554 
555     protected void addChildrenToPmfmPresetPanel() {
556         if (!allComponentsCreated) {
557             return;
558         }
559         pmfmPresetPanel.add(SwingUtil.boxComponentWithJxLayer(pmfmTableScrollPane), BorderLayout.PAGE_START);
560         pmfmPresetPanel.add(valuesPanel, BorderLayout.CENTER);
561     }
562 
563     protected void addChildrenToPmfmPresetUI() {
564         if (!allComponentsCreated) {
565             return;
566         }
567         add($JPanel0, BorderLayout.CENTER);
568         add($JPanel3, BorderLayout.PAGE_END);
569     }
570 
571     protected void addChildrenToPmfmTableScrollPane() {
572         if (!allComponentsCreated) {
573             return;
574         }
575         pmfmTableScrollPane.getViewport().add(pmfmTable);
576     }
577 
578     protected void addChildrenToResultPanel() {
579         if (!allComponentsCreated) {
580             return;
581         }
582         resultPanel.add($JPanel2, BorderLayout.PAGE_START);
583         resultPanel.add(SwingUtil.boxComponentWithJxLayer(resultPmfmDoubleList), BorderLayout.CENTER);
584     }
585 
586     protected void addChildrenToValidator() {
587         if (!allComponentsCreated) {
588             return;
589         }
590         validator.setUiClass(ImageValidationUI.class);
591         validator.setBean(model);
592     }
593 
594     protected void addChildrenToValuesPanel() {
595         if (!allComponentsCreated) {
596             return;
597         }
598         valuesPanel.add($JPanel1, BorderLayout.PAGE_START);
599         valuesPanel.add(valueDoubleList, BorderLayout.CENTER);
600     }
601 
602     protected void createAvailableLabel() {
603         $objectMap.put("availableLabel", availableLabel = new JLabel());
604         
605         availableLabel.setName("availableLabel");
606         availableLabel.setText(t("dali.filter.available.label"));
607     }
608 
609     protected void createAvailableResultLabel() {
610         $objectMap.put("availableResultLabel", availableResultLabel = new JLabel());
611         
612         availableResultLabel.setName("availableResultLabel");
613         availableResultLabel.setText(t("dali.filter.available.label"));
614     }
615 
616     protected void createCancelButton() {
617         $objectMap.put("cancelButton", cancelButton = new JButton());
618         
619         cancelButton.setName("cancelButton");
620         cancelButton.setText(t("dali.common.cancel"));
621         cancelButton.setToolTipText(t("dali.common.cancel"));
622         cancelButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__cancelButton"));
623     }
624 
625     protected PmfmPresetUIHandler createHandler() {
626         return new PmfmPresetUIHandler();
627     }
628 
629     protected void createModel() {
630         $objectMap.put("model", model = getContextValue(PmfmPresetUIModel.class));
631     }
632 
633     protected void createPmfmPresetPanel() {
634         $objectMap.put("pmfmPresetPanel", pmfmPresetPanel = new JPanel());
635         
636         pmfmPresetPanel.setName("pmfmPresetPanel");
637         pmfmPresetPanel.setLayout(new BorderLayout());
638     }
639 
640     protected void createPmfmTable() {
641         $objectMap.put("pmfmTable", pmfmTable = new SwingTable());
642         
643         pmfmTable.setName("pmfmTable");
644     }
645 
646     protected void createPmfmTableScrollPane() {
647         $objectMap.put("pmfmTableScrollPane", pmfmTableScrollPane = new JScrollPane());
648         
649         pmfmTableScrollPane.setName("pmfmTableScrollPane");
650     }
651 
652     protected void createResultPanel() {
653         $objectMap.put("resultPanel", resultPanel = new JPanel());
654         
655         resultPanel.setName("resultPanel");
656         resultPanel.setLayout(new BorderLayout());
657     }
658 
659     protected void createResultPmfmDoubleList() {
660         $objectMap.put("resultPmfmDoubleList", resultPmfmDoubleList = new ExtendedBeanDoubleList<PmfmDTO>());
661         
662         resultPmfmDoubleList.setName("resultPmfmDoubleList");
663         resultPmfmDoubleList.setFilterable(true);
664         resultPmfmDoubleList.setShowDecorator(false);
665         resultPmfmDoubleList.setProperty("selectedResultPmfms");
666     }
667 
668     protected void createSelectedLabel() {
669         $objectMap.put("selectedLabel", selectedLabel = new JLabel());
670         
671         selectedLabel.setName("selectedLabel");
672         selectedLabel.setText(t("dali.filter.selected.label"));
673     }
674 
675     protected void createSelectedResultLabel() {
676         $objectMap.put("selectedResultLabel", selectedResultLabel = new JLabel());
677         
678         selectedResultLabel.setName("selectedResultLabel");
679         selectedResultLabel.setText(t("dali.filter.selected.label"));
680     }
681 
682     protected void createValidButton() {
683         $objectMap.put("validButton", validButton = new JButton());
684         
685         validButton.setName("validButton");
686         validButton.setText(t("dali.common.validate"));
687         validButton.setToolTipText(t("dali.common.validate"));
688         validButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__validButton"));
689     }
690 
691     protected void createValidator() {
692         $objectMap.put("validator", validator = SwingValidator.newValidator(PmfmPresetUIModel.class, null));
693     }
694 
695     protected void createValueDoubleList() {
696         $objectMap.put("valueDoubleList", valueDoubleList = new ExtendedBeanDoubleList<QualitativeValueDTO>());
697         
698         valueDoubleList.setName("valueDoubleList");
699         valueDoubleList.setFilterable(true);
700         valueDoubleList.setShowDecorator(false);
701         valueDoubleList.setAlwaysSortSelected(true);
702         valueDoubleList.setProperty("selectedValues");
703     }
704 
705     protected void createValuesPanel() {
706         $objectMap.put("valuesPanel", valuesPanel = new JPanel());
707         
708         valuesPanel.setName("valuesPanel");
709         valuesPanel.setLayout(new BorderLayout());
710     }
711 
712     /*-----------------------------------------------------------------------*/
713     /*------------------------ Internal jaxx methods ------------------------*/
714     /*-----------------------------------------------------------------------*/
715 
716     private void $completeSetup() {
717         allComponentsCreated = true;
718         if (log.isDebugEnabled()) {
719             log.debug(this);
720         }
721         addChildrenToPmfmPresetUI();
722         addChildrenToValidator();
723         // inline complete setup of $JPanel0
724         $JPanel0.add(pmfmPresetPanel, BorderLayout.CENTER);
725         $JPanel0.add(resultPanel, BorderLayout.PAGE_END);
726         addChildrenToPmfmPresetPanel();
727         addChildrenToPmfmTableScrollPane();
728         addChildrenToValuesPanel();
729         // inline complete setup of $JPanel1
730         $JPanel1.add(availableLabel);
731         $JPanel1.add(selectedLabel);
732         addChildrenToResultPanel();
733         // inline complete setup of $JPanel2
734         $JPanel2.add(availableResultLabel);
735         $JPanel2.add(selectedResultLabel);
736         // inline complete setup of $JPanel3
737         $JPanel3.add(cancelButton);
738         $JPanel3.add(validButton);
739         
740         // apply 2 data bindings
741         JAXXUtil.applyDataBinding(this, $bindings.keySet());
742         
743         // apply 24 property setters
744         valueDoubleList.setBeanType(QualitativeValueDTO.class);
745         resultPmfmDoubleList.setBeanType(PmfmDTO.class);
746         pmfmPresetPanel.setBorder(BorderFactory.createTitledBorder(t("dali.extraction.config.pmfmPreset.title")));
747         pmfmTableScrollPane.setBorder(BorderFactory.createTitledBorder(t("dali.extraction.config.pmfmPreset.pmfm.title")));
748         valuesPanel.setBorder(BorderFactory.createTitledBorder(t("dali.extraction.config.pmfmPreset.values.title")));
749         availableLabel.setHorizontalAlignment(SwingConstants.CENTER);
750         selectedLabel.setHorizontalAlignment(SwingConstants.CENTER);
751         valueDoubleList.setBean(model);
752         resultPanel.setBorder(BorderFactory.createTitledBorder(t("dali.extraction.config.pmfmPreset.result.title")));
753         availableResultLabel.setHorizontalAlignment(SwingConstants.CENTER);
754         selectedResultLabel.setHorizontalAlignment(SwingConstants.CENTER);
755         resultPmfmDoubleList.setBean(model);
756         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.cancel.mnemonic"),'Z'));
757         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
758         validButton.setMnemonic(SwingUtil.getFirstCharAt(t("dali.common.validate.mnemonic"),'Z'));
759         validButton.setIcon(SwingUtil.createActionIcon("accept"));
760         // late initializer
761         pmfmPresetUI.pack();
762         // register 1 validator(s)
763         validatorIds = SwingValidatorUtil.detectValidators(this);
764         SwingValidatorUtil.installUI(this);
765     }
766 
767     private void $initialize() {
768         if (allComponentsCreated) {
769             return;
770         }
771         if (log.isDebugEnabled()) {
772             log.debug(this);
773         }
774         handler.beforeInit(this);
775         $objectMap.put("pmfmPresetUI", pmfmPresetUI);
776         createModel();
777         createValidator();
778         // inline creation of $JPanel0
779         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
780         
781         $JPanel0.setName("$JPanel0");
782         $JPanel0.setLayout(new BorderLayout());
783         createPmfmPresetPanel();
784         createPmfmTableScrollPane();
785         createPmfmTable();
786         createValuesPanel();
787         // inline creation of $JPanel1
788         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
789         
790         $JPanel1.setName("$JPanel1");
791         $JPanel1.setLayout(new GridLayout(1,0));
792         createAvailableLabel();
793         createSelectedLabel();
794         createValueDoubleList();
795         createResultPanel();
796         // inline creation of $JPanel2
797         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
798         
799         $JPanel2.setName("$JPanel2");
800         $JPanel2.setLayout(new GridLayout(1,0));
801         createAvailableResultLabel();
802         createSelectedResultLabel();
803         createResultPmfmDoubleList();
804         // inline creation of $JPanel3
805         $objectMap.put("$JPanel3", $JPanel3 = new JPanel());
806         
807         $JPanel3.setName("$JPanel3");
808         $JPanel3.setLayout(new GridLayout(1,0));
809         createCancelButton();
810         createValidButton();
811         // inline creation of pmfmPresetUI
812         setName("pmfmPresetUI");
813         pmfmPresetUI.getContentPane().setLayout(new BorderLayout());
814         setResizable(true);
815         setTitle(t("dali.extraction.config.pmfm.title"));
816         setModal(true);
817         
818         // registers 2 data bindings
819         $registerDefaultBindings();
820         $completeSetup();
821         handler.afterInit(this);
822     }
823 
824     private void $registerDefaultBindings() {
825         // register 2 data bindings
826         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALUE_DOUBLE_LIST_ENABLED, true) {
827         
828             @Override
829             public void applyDataBinding() {
830                 if (model != null) {
831                     model.addPropertyChangeListener("singleSelectedRow", this);
832                 }
833             }
834         
835             @Override
836             public void processDataBinding() {
837                 if (model != null) {
838                     valueDoubleList.setEnabled(model.getSingleSelectedRow() != null);
839                 }
840             }
841         
842             @Override
843             public void removeDataBinding() {
844                 if (model != null) {
845                     model.removePropertyChangeListener("singleSelectedRow", this);
846                 }
847             }
848         });
849         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALID_BUTTON_ENABLED, true) {
850         
851             @Override
852             public void applyDataBinding() {
853                 if (model != null) {
854                     model.addPropertyChangeListener("valid", this);
855                 }
856             }
857         
858             @Override
859             public void processDataBinding() {
860                 if (model != null) {
861                     validButton.setEnabled(model.isValid());
862                 }
863             }
864         
865             @Override
866             public void removeDataBinding() {
867                 if (model != null) {
868                     model.removePropertyChangeListener("valid", this);
869                 }
870             }
871         });
872     }
873 
874 }