View Javadoc
1   package fr.ifremer.dali.ui.swing.content.manage.referential.pmfm.parameter.menu;
2   
3   import fr.ifremer.dali.dto.referential.pmfm.ParameterDTO;
4   import fr.ifremer.dali.dto.referential.pmfm.ParameterGroupDTO;
5   import fr.ifremer.dali.ui.swing.DaliHelpBroker;
6   import fr.ifremer.dali.ui.swing.DaliUIContext;
7   import fr.ifremer.dali.ui.swing.util.DaliUI;
8   import fr.ifremer.quadrige3.ui.core.dto.referential.StatusDTO;
9   import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
10  import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
11  import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedComboBox;
12  import java.awt.BorderLayout;
13  import java.awt.Component;
14  import java.awt.Container;
15  import java.awt.GridBagConstraints;
16  import java.awt.GridLayout;
17  import java.awt.Insets;
18  import java.awt.LayoutManager;
19  import java.util.ArrayList;
20  import java.util.HashMap;
21  import java.util.List;
22  import java.util.Map;
23  import java.util.TreeMap;
24  import javax.swing.BorderFactory;
25  import javax.swing.Box;
26  import javax.swing.BoxLayout;
27  import javax.swing.JButton;
28  import javax.swing.JLabel;
29  import javax.swing.JPanel;
30  import javax.swing.SwingConstants;
31  import jaxx.runtime.JAXXBinding;
32  import jaxx.runtime.JAXXContext;
33  import jaxx.runtime.JAXXObject;
34  import jaxx.runtime.JAXXObjectDescriptor;
35  import jaxx.runtime.JAXXUtil;
36  import jaxx.runtime.SwingUtil;
37  import jaxx.runtime.binding.DefaultJAXXBinding;
38  import jaxx.runtime.context.DefaultJAXXContext;
39  import jaxx.runtime.swing.Table;
40  import jaxx.runtime.swing.help.JAXXHelpUI;
41  import org.apache.commons.logging.Log;
42  import org.apache.commons.logging.LogFactory;
43  import static org.nuiton.i18n.I18n.t;
44  
45  public class ManageParametersMenuUI extends JPanel implements JAXXHelpUI<DaliHelpBroker>, DaliUI<ManageParametersMenuUIModel, ManageParametersMenuUIHandler>, JAXXObject {
46  
47      /*-----------------------------------------------------------------------*/
48      /*------------------ Constants for all public bindings ------------------*/
49      /*-----------------------------------------------------------------------*/
50  
51      public static final String BINDING_CODE_COMBO_ENABLED = "codeCombo.enabled";
52      public static final String BINDING_CODE_COMBO_SELECTED_ITEM = "codeCombo.selectedItem";
53      public static final String BINDING_LABEL_COMBO_ENABLED = "labelCombo.enabled";
54      public static final String BINDING_LABEL_COMBO_SELECTED_ITEM = "labelCombo.selectedItem";
55      public static final String BINDING_PARAMETER_GROUP_COMBO_SELECTED_ITEM = "parameterGroupCombo.selectedItem";
56      public static final String BINDING_STATUS_COMBO_SELECTED_ITEM = "statusCombo.selectedItem";
57  
58      /*-----------------------------------------------------------------------*/
59      /*------------------------- Other static fields -------------------------*/
60      /*-----------------------------------------------------------------------*/
61  
62      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAL1XW28bRRSeuLk5TkLJTSkNJQ00TVSY0AYQUkgvSQhN5ZSqDlJEJGC8O3amjHe3s7PEkVXET+AnwDsvSLzxQsUDEm888IL4BwhVleAVcWbW3os9jp1aECnb7My5fOebs9+ZfvMnGvAFuviAVKtYBI5kFYrv3Nrff7/4gFpyi/qWYJ50BQp/+jIoc4BydrTuS/TyQV65r9TdVzbdiuc61El4r+XRiC+POfUPKZUSvZj2sHx/pRBtr1W9QDSiRqBMUb96+iTzpf3F1xmEqh6gm4JS5jt5xZX051GG2RJNQKbPyAonThlgCOaUAe+YWtvkxPfvkgp9iD5HQ3k06BEBwSRa6L5kHUP7Vz2Jhl+5c484lL8u0UclgVlJ0AoV2Cac4YBh/wiyY8t1JATDFeKQMsWClqhKywjHXqVUwYACMEnwq1AnwLva7F5j0d+FxQ92PE9nHZRooOLalEtk/bcJd1WWOOtgUbifUiHR5bZpt+DtNvhsaMvYNauyaJrgcNQ5VOsOIXfKKhsZj/uUQ6sy16l7zKY6IHTcI0WuD3Ei8mucxFX1PqUe0zEAC2rJk2IrAL2orGbTxtABRVei9UStDwNiC1amq0me632Ci5Q4+N0qsG5TWztvuNV03AbAawaAI1zhiMDMqcd8066OqlZeSu824q4a4uZ8SWTgpwMvNm+nIy+2RH7DEHky6qH3hBt46QyvtjNLZ4rNpqND3wikdB0/aoyp9CnnLE6JCI0geuosw1VleC2yH/XB3DqMt96q7wt0PtVXoFk41qxYVPoO0IAIYBka8aBV5u7DVihws00CpwLq3X9mJn/9/vfvthuq9gLknjaaJkQZ1MYTrgffG1OpnwslLZCMr+wSb+0AZUPGtGLPGYAV6tsADvI9r9yxcse3iX8IIQaGfnv848wnv5xBmW1oMJfY20TZ76CsPBTAgsvtqnfjpkY0ejQMz7Pw2w/dWGIczlN9gRLeRQD/jIH90Ra1XEEgBkhUiXAf1rNq/T711ZCom/arT0WioZpWsUdVoG7OQF2Ev5j96e/Jwrc3G/T1QTnn2prHFA58iAaZw5lD9VioK75xDOQ8nwa2Gyu7SesRqP3Z5i+8rnHX9XOjha0+JZuusJVs3qht6L9Cmo+xJSiRdI9JTu1wZ0kuLWhBBfkusXKozVIZLCwvA1EqR14zoP66i1q00usAJwOftJaSbXVGuVokdI/U6dAqHNKEBlBvPQAJFqbEsaB2ynlGf4MKJbV3JK1INBOePC5TGY2cpWWAMNxIC/Ej2YBOoY7qNRjsi7VYCJV7IRF3aXl+fX3eCTg3MhWL+ulIGk2kbMuSA1BNSROq/n/SdCk+2FOylBg0p6NprJaYJDFPU2meQhtT4uSc6iJzE1WTMVUFHaeZp8GOmZ+h5umaYbbFtV9J195070q7moCZBuzpqTlv6CIdr5mi8VMj6ooymBcTHxPP48wiSqduabVSR7apBnn4ii2ls4BnhOj3HXV/hbHbmBuazwuaz9AAh1Md68sA5uHFLiddl+8xb0+bz7U1l8xYXfJm8axVTdUKOtNJZfWXmGNHVc0aYBrrmTEYtqkkdefpVIoaUZwcu2CMxt+xiSTzRQAIF6rrLbH71HOyY0S1/IN6PDZHONcFpmF1S9g79ugJcS70jORiVxF+PiHCpZ4xXO4Zw5WeMbzWM4arPWNY7aIrRuAbKDtwL5L7J0R6syssf5wQ4e0usPQzK/wfRU8o/uqA4l/YpjGp0REAAA==";
63      private static final Log log = LogFactory.getLog(ManageParametersMenuUI.class);
64      private static final long serialVersionUID = 1L;
65  
66      /*-----------------------------------------------------------------------*/
67      /*--------------------------- Internal states ---------------------------*/
68      /*-----------------------------------------------------------------------*/
69  
70      protected List<Object> $activeBindings = new ArrayList<Object>();
71      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
72      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
73      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
74      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
75      private boolean allComponentsCreated;
76      protected final JAXXContext delegateContext = new DefaultJAXXContext();
77  
78      /*-----------------------------------------------------------------------*/
79      /*------------------------ Protected components  ------------------------*/
80      /*-----------------------------------------------------------------------*/
81  
82      protected DaliHelpBroker broker;
83      protected JButton clearButton;
84      protected ExtendedComboBox<ParameterDTO> codeCombo;
85      protected JLabel codeLabel;
86      protected final ManageParametersMenuUIHandler handler = createHandler();
87      protected ExtendedComboBox<ParameterDTO> labelCombo;
88      protected JLabel labelLabel;
89      protected JPanel menuPanel;
90      protected ManageParametersMenuUIModel model;
91      protected ExtendedComboBox<ParameterGroupDTO> parameterGroupCombo;
92      protected JLabel parameterGroupLabel;
93      protected JButton searchButton;
94      protected JPanel selectionButtonsPanel;
95      protected Table selectionPanel;
96      protected ExtendedComboBox<StatusDTO> statusCombo;
97      protected JLabel statusLabel;
98  
99      /*-----------------------------------------------------------------------*/
100     /*------------------------- Private components  -------------------------*/
101     /*-----------------------------------------------------------------------*/
102 
103     private ManageParametersMenuUI $JPanel0 = this;
104     private JPanel $JPanel1;
105     private JPanel $JPanel2;
106     private JPanel $JPanel3;
107     private JPanel $JPanel4;
108 
109     /*-----------------------------------------------------------------------*/
110     /*---------------------------- Constructors  ----------------------------*/
111     /*-----------------------------------------------------------------------*/
112 
113     public ManageParametersMenuUI(ApplicationUI parentUI) {
114         ApplicationUIUtil.setParentUI(this, parentUI);
115             $initialize();
116     }
117 
118     public ManageParametersMenuUI() {
119         $initialize();
120     }
121 
122     public ManageParametersMenuUI(JAXXContext parentContext) {
123         JAXXUtil.initContext(this, parentContext);
124         $initialize();
125     }
126 
127     public ManageParametersMenuUI(boolean param0) {
128         super(param0);
129         $initialize();
130     }
131 
132     public ManageParametersMenuUI(JAXXContext parentContext, boolean param1) {
133         super(param1);
134         JAXXUtil.initContext(this, parentContext);
135         $initialize();
136     }
137 
138     public ManageParametersMenuUI(LayoutManager param0) {
139         super(param0);
140         $initialize();
141     }
142 
143     public ManageParametersMenuUI(JAXXContext parentContext, LayoutManager param1) {
144         super(param1);
145         JAXXUtil.initContext(this, parentContext);
146         $initialize();
147     }
148 
149     public ManageParametersMenuUI(LayoutManager param0, boolean param1) {
150         super(param0 ,param1);
151         $initialize();
152     }
153 
154     public ManageParametersMenuUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
155         super(param1 ,param2);
156         JAXXUtil.initContext(this, parentContext);
157         $initialize();
158     }
159 
160     /*-----------------------------------------------------------------------*/
161     /*--------------------------- Statics methods ---------------------------*/
162     /*-----------------------------------------------------------------------*/
163 
164     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
165         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
166     }
167 
168     /*-----------------------------------------------------------------------*/
169     /*---------------------- JAXXObject implementation ----------------------*/
170     /*-----------------------------------------------------------------------*/
171 
172     @Override
173     public void applyDataBinding(String $binding) {
174         if (allComponentsCreated && $bindings.containsKey($binding)) {
175             getDataBinding($binding).applyDataBinding();
176         }
177         processDataBinding($binding);
178     }
179 
180     @Override
181     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
182         super.firePropertyChange(propertyName, oldValue, newValue);
183     }
184 
185     @Override
186     public Map<String, Object> get$objectMap() {
187         return $objectMap;
188     }
189 
190     @Override
191     public JAXXBinding getDataBinding(String bindingId) {
192         return $bindings.get(bindingId);
193     }
194 
195     @Override
196     public JAXXBinding[] getDataBindings() {
197         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
198     }
199 
200     @Override
201     public Object getObjectById(String id) {
202         return $objectMap.get(id);
203     }
204 
205     @Override
206     public void processDataBinding(String $binding, boolean $force) {
207         if (!$force && $activeBindings.contains($binding)) { 
208             return;
209         }
210         $activeBindings.add($binding);
211         try {
212             if (allComponentsCreated && $bindings.containsKey($binding)) {
213                 getDataBinding($binding).processDataBinding();
214             }
215         } finally {
216             $activeBindings.remove($binding);
217         }
218     }
219 
220     @Override
221     public void processDataBinding(String $binding) {
222         processDataBinding($binding, false);
223     }
224 
225     @Override
226     public void registerDataBinding(JAXXBinding binding) {
227         $bindings.put(binding.getId(), binding);
228     }
229 
230     @Override
231     public void removeDataBinding(String $binding) {
232         if (allComponentsCreated && $bindings.containsKey($binding)) {
233             getDataBinding($binding).removeDataBinding();
234         }
235     }
236 
237     /*-----------------------------------------------------------------------*/
238     /*--------------------- JAXXContext implementation  ---------------------*/
239     /*-----------------------------------------------------------------------*/
240 
241     @Override
242     public <T> T getContextValue(Class<T> clazz) {
243         return delegateContext.getContextValue(clazz, null);
244     }
245 
246     @Override
247     public <T> T getContextValue(Class<T> clazz, String name) {
248         return delegateContext.getContextValue(clazz, name);
249     }
250 
251     @Override
252     public JAXXContext getDelegateContext() {
253         return delegateContext;
254     }
255 
256     @Override
257     public <O extends Container> O getParentContainer(Class<O> clazz) {
258         return SwingUtil.getParentContainer(this, clazz);
259     }
260 
261     @Override
262     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
263         return SwingUtil.getParentContainer(source, clazz);
264     }
265 
266     @Override
267     public <T> void removeContextValue(Class<T> clazz) {
268         delegateContext.removeContextValue(clazz, null);
269     }
270 
271     @Override
272     public <T> void removeContextValue(Class<T> clazz, String name) {
273         delegateContext.removeContextValue(clazz, name);
274     }
275 
276     @Override
277     public <T> void setContextValue(T o) {
278         delegateContext.setContextValue(o, null);
279     }
280 
281     @Override
282     public <T> void setContextValue(T o, String name) {
283         delegateContext.setContextValue(o, name);
284     }
285 
286     /*-----------------------------------------------------------------------*/
287     /*----------------------- Public acessor methods  -----------------------*/
288     /*-----------------------------------------------------------------------*/
289 
290     public DaliHelpBroker getBroker() {
291         return broker;
292     }
293 
294     public JButton getClearButton() {
295         return clearButton;
296     }
297 
298     public ExtendedComboBox<ParameterDTO> getCodeCombo() {
299         return codeCombo;
300     }
301 
302     public JLabel getCodeLabel() {
303         return codeLabel;
304     }
305 
306     public ManageParametersMenuUIHandler getHandler() {
307         return handler;
308     }
309 
310     public ExtendedComboBox<ParameterDTO> getLabelCombo() {
311         return labelCombo;
312     }
313 
314     public JLabel getLabelLabel() {
315         return labelLabel;
316     }
317 
318     public JPanel getMenuPanel() {
319         return menuPanel;
320     }
321 
322     public ManageParametersMenuUIModel getModel() {
323         return model;
324     }
325 
326     public ExtendedComboBox<ParameterGroupDTO> getParameterGroupCombo() {
327         return parameterGroupCombo;
328     }
329 
330     public JLabel getParameterGroupLabel() {
331         return parameterGroupLabel;
332     }
333 
334     public JButton getSearchButton() {
335         return searchButton;
336     }
337 
338     public JPanel getSelectionButtonsPanel() {
339         return selectionButtonsPanel;
340     }
341 
342     public Table getSelectionPanel() {
343         return selectionPanel;
344     }
345 
346     public ExtendedComboBox<StatusDTO> getStatusCombo() {
347         return statusCombo;
348     }
349 
350     public JLabel getStatusLabel() {
351         return statusLabel;
352     }
353 
354     /*-----------------------------------------------------------------------*/
355     /*---------------------------- Other methods ----------------------------*/
356     /*-----------------------------------------------------------------------*/
357 
358     @Override
359     public void registerHelpId(DaliHelpBroker broker, Component component, String helpId) {
360         broker.installUI(component, helpId);
361     }
362 
363     @Override
364     public void showHelp(String helpId) {
365         getBroker().showHelp(this, helpId);
366     }
367 
368     /*-----------------------------------------------------------------------*/
369     /*--------------------- Protected acessors methods  ---------------------*/
370     /*-----------------------------------------------------------------------*/
371 
372     protected JPanel get$JPanel1() {
373         return $JPanel1;
374     }
375 
376     protected JPanel get$JPanel2() {
377         return $JPanel2;
378     }
379 
380     protected JPanel get$JPanel3() {
381         return $JPanel3;
382     }
383 
384     protected JPanel get$JPanel4() {
385         return $JPanel4;
386     }
387 
388     /*-----------------------------------------------------------------------*/
389     /*--------------------- Components creation methods ---------------------*/
390     /*-----------------------------------------------------------------------*/
391 
392     protected void addChildrenToMenuPanel() {
393         if (!allComponentsCreated) {
394             return;
395         }
396         menuPanel.add(selectionPanel);
397         menuPanel.add(selectionButtonsPanel);
398     }
399 
400     protected void addChildrenToSelectionButtonsPanel() {
401         if (!allComponentsCreated) {
402             return;
403         }
404         selectionButtonsPanel.add(clearButton);
405         selectionButtonsPanel.add(searchButton);
406     }
407 
408     protected void addChildrenToSelectionPanel() {
409         if (!allComponentsCreated) {
410             return;
411         }
412         selectionPanel.add($JPanel1, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
413         selectionPanel.add($JPanel2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
414         selectionPanel.add($JPanel3, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
415         selectionPanel.add($JPanel4, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
416     }
417 
418     protected void createBroker() {
419         $objectMap.put("broker", broker = new DaliHelpBroker("dali.home.help"));
420     }
421 
422     protected void createClearButton() {
423         $objectMap.put("clearButton", clearButton = new JButton());
424         
425         clearButton.setName("clearButton");
426         clearButton.setText(t("dali.action.search.clear.label"));
427         clearButton.setToolTipText(t("dali.action.search.clear.tip"));
428         clearButton.putClientProperty("applicationAction", ClearAction.class);
429     }
430 
431     protected void createCodeCombo() {
432         $objectMap.put("codeCombo", codeCombo = new ExtendedComboBox<ParameterDTO>(this));
433         
434         codeCombo.setName("codeCombo");
435         codeCombo.setFilterable(true);
436         codeCombo.setShowDecorator(false);
437         codeCombo.setProperty("parameter");
438         codeCombo.setShowReset(true);
439     }
440 
441     protected void createCodeLabel() {
442         $objectMap.put("codeLabel", codeLabel = new JLabel());
443         
444         codeLabel.setName("codeLabel");
445         codeLabel.setText(t("dali.property.code"));
446     }
447 
448     protected ManageParametersMenuUIHandler createHandler() {
449         return new ManageParametersMenuUIHandler();
450     }
451 
452     protected void createLabelCombo() {
453         $objectMap.put("labelCombo", labelCombo = new ExtendedComboBox<ParameterDTO>(this));
454         
455         labelCombo.setName("labelCombo");
456         labelCombo.setFilterable(true);
457         labelCombo.setShowDecorator(false);
458         labelCombo.setProperty("parameter");
459         labelCombo.setShowReset(true);
460     }
461 
462     protected void createLabelLabel() {
463         $objectMap.put("labelLabel", labelLabel = new JLabel());
464         
465         labelLabel.setName("labelLabel");
466         labelLabel.setText(t("dali.property.name"));
467     }
468 
469     protected void createMenuPanel() {
470         $objectMap.put("menuPanel", menuPanel = new JPanel());
471         
472         menuPanel.setName("menuPanel");
473         menuPanel.setLayout(new BoxLayout(menuPanel, BoxLayout.PAGE_AXIS));
474     }
475 
476     protected void createModel() {
477         $objectMap.put("model", model = getContextValue(ManageParametersMenuUIModel.class));
478     }
479 
480     protected void createParameterGroupCombo() {
481         $objectMap.put("parameterGroupCombo", parameterGroupCombo = new ExtendedComboBox<ParameterGroupDTO>(this));
482         
483         parameterGroupCombo.setName("parameterGroupCombo");
484         parameterGroupCombo.setFilterable(true);
485         parameterGroupCombo.setShowDecorator(false);
486         parameterGroupCombo.setProperty("parameterGroup");
487         parameterGroupCombo.setShowReset(true);
488     }
489 
490     protected void createParameterGroupLabel() {
491         $objectMap.put("parameterGroupLabel", parameterGroupLabel = new JLabel());
492         
493         parameterGroupLabel.setName("parameterGroupLabel");
494         parameterGroupLabel.setText(t("dali.property.pmfm.parameter.parameterGroup"));
495     }
496 
497     protected void createSearchButton() {
498         $objectMap.put("searchButton", searchButton = new JButton());
499         
500         searchButton.setName("searchButton");
501         searchButton.setText(t("dali.action.search.label"));
502         searchButton.setToolTipText(t("dali.action.search.tip"));
503         searchButton.putClientProperty("applicationAction", SearchAction.class);
504     }
505 
506     protected void createSelectionButtonsPanel() {
507         $objectMap.put("selectionButtonsPanel", selectionButtonsPanel = new JPanel());
508         
509         selectionButtonsPanel.setName("selectionButtonsPanel");
510         selectionButtonsPanel.setLayout(new GridLayout(1,0));
511     }
512 
513     protected void createSelectionPanel() {
514         $objectMap.put("selectionPanel", selectionPanel = new Table());
515         
516         selectionPanel.setName("selectionPanel");
517     }
518 
519     protected void createStatusCombo() {
520         $objectMap.put("statusCombo", statusCombo = new ExtendedComboBox<StatusDTO>(this));
521         
522         statusCombo.setName("statusCombo");
523         statusCombo.setFilterable(true);
524         statusCombo.setShowDecorator(false);
525         statusCombo.setProperty("status");
526         statusCombo.setShowReset(true);
527     }
528 
529     protected void createStatusLabel() {
530         $objectMap.put("statusLabel", statusLabel = new JLabel());
531         
532         statusLabel.setName("statusLabel");
533         statusLabel.setText(t("dali.property.status"));
534     }
535 
536     /*-----------------------------------------------------------------------*/
537     /*------------------------ Internal jaxx methods ------------------------*/
538     /*-----------------------------------------------------------------------*/
539 
540     private void $completeSetup() {
541         allComponentsCreated = true;
542         if (log.isDebugEnabled()) {
543             log.debug(this);
544         }
545         // inline complete setup of $JPanel0
546         add(menuPanel);
547         addChildrenToMenuPanel();
548         addChildrenToSelectionPanel();
549         // inline complete setup of $JPanel1
550         $JPanel1.add(codeLabel, BorderLayout.PAGE_START);
551         $JPanel1.add(codeCombo, BorderLayout.CENTER);
552         // inline complete setup of $JPanel2
553         $JPanel2.add(labelLabel, BorderLayout.PAGE_START);
554         $JPanel2.add(labelCombo, BorderLayout.CENTER);
555         // inline complete setup of $JPanel3
556         $JPanel3.add(statusLabel, BorderLayout.PAGE_START);
557         $JPanel3.add(statusCombo, BorderLayout.CENTER);
558         // inline complete setup of $JPanel4
559         $JPanel4.add(parameterGroupLabel, BorderLayout.PAGE_START);
560         $JPanel4.add(parameterGroupCombo, BorderLayout.CENTER);
561         addChildrenToSelectionButtonsPanel();
562         
563         // apply 6 data bindings
564         JAXXUtil.applyDataBinding(this, $bindings.keySet());
565         
566         // apply 23 property setters
567         codeCombo.setBeanType(ParameterDTO.class);
568         labelCombo.setBeanType(ParameterDTO.class);
569         statusCombo.setBeanType(StatusDTO.class);
570         parameterGroupCombo.setBeanType(ParameterGroupDTO.class);
571         clearButton.setAlignmentX(Component.CENTER_ALIGNMENT);
572         searchButton.setAlignmentX(Component.CENTER_ALIGNMENT);
573         selectionPanel.setBorder(BorderFactory.createTitledBorder(t("dali.config.menu.title")));
574         codeLabel.setLabelFor(codeCombo);
575         codeCombo.setBean(model);
576         labelLabel.setLabelFor(labelCombo);
577         labelCombo.setBean(model);
578         statusLabel.setLabelFor(statusCombo);
579         statusCombo.setBean(model);
580         parameterGroupLabel.setLabelFor(parameterGroupCombo);
581         parameterGroupCombo.setBean(model);
582         clearButton.setIcon(SwingUtil.createActionIcon("reset"));
583         searchButton.setIcon(SwingUtil.createActionIcon("find"));
584     }
585 
586     private void $initialize() {
587         if (allComponentsCreated) {
588             return;
589         }
590         if (log.isDebugEnabled()) {
591             log.debug(this);
592         }
593         handler.beforeInit(this);
594         $objectMap.put("$JPanel0", $JPanel0);
595         createModel();
596         createBroker();
597         createMenuPanel();
598         createSelectionPanel();
599         // inline creation of $JPanel1
600         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
601         
602         $JPanel1.setName("$JPanel1");
603         $JPanel1.setLayout(new BorderLayout());
604         createCodeLabel();
605         createCodeCombo();
606         // inline creation of $JPanel2
607         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
608         
609         $JPanel2.setName("$JPanel2");
610         $JPanel2.setLayout(new BorderLayout());
611         createLabelLabel();
612         createLabelCombo();
613         // inline creation of $JPanel3
614         $objectMap.put("$JPanel3", $JPanel3 = new JPanel());
615         
616         $JPanel3.setName("$JPanel3");
617         $JPanel3.setLayout(new BorderLayout());
618         createStatusLabel();
619         createStatusCombo();
620         // inline creation of $JPanel4
621         $objectMap.put("$JPanel4", $JPanel4 = new JPanel());
622         
623         $JPanel4.setName("$JPanel4");
624         $JPanel4.setLayout(new BorderLayout());
625         createParameterGroupLabel();
626         createParameterGroupCombo();
627         createSelectionButtonsPanel();
628         createClearButton();
629         createSearchButton();
630         // inline creation of $JPanel0
631         setName("$JPanel0");
632         
633         // registers 6 data bindings
634         $registerDefaultBindings();
635         $completeSetup();
636         handler.afterInit(this);
637     }
638 
639     private void $registerDefaultBindings() {
640         // register 6 data bindings
641         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CODE_COMBO_SELECTED_ITEM, true) {
642         
643             @Override
644             public void applyDataBinding() {
645                 if (model != null) {
646                     model.addPropertyChangeListener("parameter", this);
647                 }
648             }
649         
650             @Override
651             public void processDataBinding() {
652                 if (model != null) {
653                     codeCombo.setSelectedItem(model.getParameter());
654                 }
655             }
656         
657             @Override
658             public void removeDataBinding() {
659                 if (model != null) {
660                     model.removePropertyChangeListener("parameter", this);
661                 }
662             }
663         });
664         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CODE_COMBO_ENABLED, true) {
665         
666             @Override
667             public void applyDataBinding() {
668                 if (labelCombo != null) {
669                     labelCombo.addPropertyChangeListener("selectedItem", this);
670                 }
671             }
672         
673             @Override
674             public void processDataBinding() {
675                 if (labelCombo != null) {
676                     codeCombo.setEnabled(labelCombo.getSelectedItem() == null);
677                 }
678             }
679         
680             @Override
681             public void removeDataBinding() {
682                 if (labelCombo != null) {
683                     labelCombo.removePropertyChangeListener("selectedItem", this);
684                 }
685             }
686         });
687         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LABEL_COMBO_SELECTED_ITEM, true) {
688         
689             @Override
690             public void applyDataBinding() {
691                 if (model != null) {
692                     model.addPropertyChangeListener("parameter", this);
693                 }
694             }
695         
696             @Override
697             public void processDataBinding() {
698                 if (model != null) {
699                     labelCombo.setSelectedItem(model.getParameter());
700                 }
701             }
702         
703             @Override
704             public void removeDataBinding() {
705                 if (model != null) {
706                     model.removePropertyChangeListener("parameter", this);
707                 }
708             }
709         });
710         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LABEL_COMBO_ENABLED, true) {
711         
712             @Override
713             public void applyDataBinding() {
714                 if (codeCombo != null) {
715                     codeCombo.addPropertyChangeListener("selectedItem", this);
716                 }
717             }
718         
719             @Override
720             public void processDataBinding() {
721                 if (codeCombo != null) {
722                     labelCombo.setEnabled(codeCombo.getSelectedItem() == null);
723                 }
724             }
725         
726             @Override
727             public void removeDataBinding() {
728                 if (codeCombo != null) {
729                     codeCombo.removePropertyChangeListener("selectedItem", this);
730                 }
731             }
732         });
733         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STATUS_COMBO_SELECTED_ITEM, true) {
734         
735             @Override
736             public void applyDataBinding() {
737                 if (model != null) {
738                     model.addPropertyChangeListener("status", this);
739                 }
740             }
741         
742             @Override
743             public void processDataBinding() {
744                 if (model != null) {
745                     statusCombo.setSelectedItem(model.getStatus());
746                 }
747             }
748         
749             @Override
750             public void removeDataBinding() {
751                 if (model != null) {
752                     model.removePropertyChangeListener("status", this);
753                 }
754             }
755         });
756         registerDataBinding(new DefaultJAXXBinding(this, BINDING_PARAMETER_GROUP_COMBO_SELECTED_ITEM, true) {
757         
758             @Override
759             public void applyDataBinding() {
760                 if (model != null) {
761                     model.addPropertyChangeListener("parameterGroup", this);
762                 }
763             }
764         
765             @Override
766             public void processDataBinding() {
767                 if (model != null) {
768                     parameterGroupCombo.setSelectedItem(model.getParameterGroup());
769                 }
770             }
771         
772             @Override
773             public void removeDataBinding() {
774                 if (model != null) {
775                     model.removePropertyChangeListener("parameterGroup", this);
776                 }
777             }
778         });
779     }
780 
781 }