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