View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.manage.program.pmfms.edit;
2   
3   /*-
4    * #%L
5    * Reef DB :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2014 - 2022 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU Affero General Public License as published by
13   * the Free Software Foundation, either version 3 of the License, or
14   * (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU Affero General Public License
22   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23   * #L%
24   */
25  
26  
27  import fr.ifremer.quadrige3.ui.swing.ApplicationUI;
28  import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
29  import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedComboBox;
30  import fr.ifremer.reefdb.dto.configuration.programStrategy.PmfmStrategyDTO;
31  import fr.ifremer.reefdb.dto.referential.DepartmentDTO;
32  import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
33  import java.awt.BorderLayout;
34  import java.awt.Container;
35  import java.awt.Dialog;
36  import java.awt.Dialog.ModalityType;
37  import java.awt.Frame;
38  import java.awt.GraphicsConfiguration;
39  import java.awt.GridBagConstraints;
40  import java.awt.GridLayout;
41  import java.awt.Insets;
42  import java.awt.Window;
43  import java.awt.event.ActionEvent;
44  import java.awt.event.ActionListener;
45  import java.awt.event.ItemEvent;
46  import java.awt.event.ItemListener;
47  import java.util.ArrayList;
48  import java.util.HashMap;
49  import java.util.List;
50  import java.util.Map;
51  import java.util.TreeMap;
52  import javax.swing.JButton;
53  import javax.swing.JCheckBox;
54  import javax.swing.JDialog;
55  import javax.swing.JLabel;
56  import javax.swing.JPanel;
57  import jaxx.runtime.JAXXBinding;
58  import jaxx.runtime.JAXXContext;
59  import jaxx.runtime.JAXXObject;
60  import jaxx.runtime.JAXXObjectDescriptor;
61  import jaxx.runtime.JAXXUtil;
62  import jaxx.runtime.SwingUtil;
63  import jaxx.runtime.binding.DefaultJAXXBinding;
64  import jaxx.runtime.context.DefaultJAXXContext;
65  import jaxx.runtime.swing.Table;
66  import org.apache.commons.logging.Log;
67  import org.apache.commons.logging.LogFactory;
68  import static org.nuiton.i18n.I18n.t;
69  
70  public class EditPmfmDialogUI extends JDialog implements ReefDbUI<EditPmfmDialogUIModel, EditPmfmDialogUIHandler>, JAXXObject {
71  
72      /*-----------------------------------------------------------------------*/
73      /*------------------ Constants for all public bindings ------------------*/
74      /*-----------------------------------------------------------------------*/
75  
76      public static final String BINDING_ANALYSTE_COMBO_SELECTED_ITEM = "analysteCombo.selectedItem";
77      public static final String BINDING_PASSAGE_CHECKBOX_SELECTED = "passageCheckbox.selected";
78      public static final String BINDING_PRELEVEMENT_CHECKBOX_SELECTED = "prelevementCheckbox.selected";
79      public static final String BINDING_REGROUPEMENT_CHECKBOX_SELECTED = "regroupementCheckbox.selected";
80      public static final String BINDING_UNICITE_CHECKBOX_SELECTED = "uniciteCheckbox.selected";
81  
82      /*-----------------------------------------------------------------------*/
83      /*------------------------- Other static fields -------------------------*/
84      /*-----------------------------------------------------------------------*/
85  
86      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAK1Wy24cRRQtDx6/g98mCIMTkgVBom2EhBDm4diOwZZNgu2gCG+o6b4zrtDdVa6utntkBfEJfALs2SCxCxvEAokdCzaIX0CIBduIW90909M91WNPlJFmZFfde+45t6pO1fd/k2ogyfWHNIosGfqKeWDt3H7w4G7tIdhqEwJbMqG4JMlnoEIqR2TcaY8Hitw42tXpy2n68gb3BPfB78he3SVjgWq6EBwDKEVezmfYQbB80J5ejUQoW6htUibUb//9p/KN8/V3FUIigeymUMq1i7IyJYO7pMIcRWaw0ilddqnfQBqS+Q3ke0WPbbg0CD6hHpyQr8jwLhkSVCKYIq9eXnKMEedHQpEpcJi659W9TUZd3ri/rcheXVqsLsEDaUmAulOzQmYFZ8jDsrmvENbyqE8bYAnJG5J6lkCAwNJQ1p0CnhBxsSFFqh53wFVk/5ni72nQrMjwzUNac2FFkau5xifw8ZyOHG0nXMFKbjNQsEtrmt2M7nOUxu/EgzpysjsBm1zjirzfIeckpI5kDXirU1G6FFYNqG/diVCfA06cvM6jPPaEwLVB4e2yc/n5yXR+4xjsL2s8UmQ+Rzce70KdEhJcOEWGvipDnu2IaaHrqcV82LSEhuSh6Ik11xnUA2wi9JnNVLnadL4HxMjNnXvUB3eluHDxaHGlbcW4/2nIlAKJknMJ66FS3Neht4oZn1GXOSD1oJUGSPJSbnuhY1iZY2RHeuCIVGWIw7gfj7pNZh+nEnu5WrAXDRjPPlmY/ePxXz9utTxlBmvPG0M7LBHPOh4dgSqZLj2ZGEqomLu8R8XqERkNcLXtxC8XDcQO0mkkh/Wmdbql062PaXCMENXhP3/+ZeGL358jlS0y5nLqbFEdv01G1bHELnDXicSHazGjibMRbYb4raALKKZcbNEr6dHvPOLJCccACYldUDyQg0qGEGGLFg0tavOsjf763+zBD2utNg0g7RdLw7NWVT8nQ8x3mQ+x+aa+ajTbcRFA6PDMP02OSgyWKlJ7ejv+fdfUlRFXn4Etjtty8jxnMI90ByBCj38h65he2aaVxkWhhl2LReu/1knR1S4igFt9rM5cPBXaH9OWIwgu49km2FxSpZlV69QNcHwi2TzgbCvwFFk6j43daoC6HVdlwSbgxaT08X/tFgoYaVHGU0q7QhTuRiy0D4G+itPag9ot0c4T7Ec9NcZ96q/J0+cFJ83avFBscxDKU2iaGOTs+iICA0ig1TjsQ9o0FhzE8NgnU4Wi4fencv7c4OqZ0utdSqkn8Cg07uK/VDufiVLXbdKf8LlMeFqtRLrpRupP/sK56SIy6i9YUJyF1Ey8uq/Ap23AR2mVkgYYr9F+t3nhCs3EL5WKx5QT7biG/d55YT/tfr8fw5ft9wLfi4oMIin25jv+ng8ex1R8yqe68N2FI5ZNfRvLeu35seRO39YvTTKUTLebMmdKVmRcce4eMnFYHmQ2qM4HR/9SlvKFTvUzhCooFUNtG4TqMrJCelFOSVgPQel76BIbYMilTY4PK/L8e4hJr9WY7+CG/6ALfED/jl1mS+l74bAp4kv5JzPOwoU4evhxD4TXL8FkkNnJe7EE441LsfitB8IKIvwPVwxhpREPAAA=";
87      private static final Log log = LogFactory.getLog(EditPmfmDialogUI.class);
88      private static final long serialVersionUID = 1L;
89  
90      /*-----------------------------------------------------------------------*/
91      /*--------------------------- Internal states ---------------------------*/
92      /*-----------------------------------------------------------------------*/
93  
94      protected List<Object> $activeBindings = new ArrayList<Object>();
95      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
96      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
97      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
98      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
99      private boolean allComponentsCreated;
100     protected final JAXXContext delegateContext = new DefaultJAXXContext();
101 
102     /*-----------------------------------------------------------------------*/
103     /*------------------------ Protected components  ------------------------*/
104     /*-----------------------------------------------------------------------*/
105 
106     protected JButton actionQuitter;
107     protected JButton actionValider;
108     protected ExtendedComboBox<DepartmentDTO> analysteCombo;
109     protected JLabel analysteLabel;
110     protected EditPmfmDialogUI editPmfmDialogUI = this;
111     protected final EditPmfmDialogUIHandler handler = createHandler();
112     protected EditPmfmDialogUIModel model;
113     protected JCheckBox passageCheckbox;
114     protected JLabel passageLabel;
115     protected JCheckBox prelevementCheckbox;
116     protected JLabel prelevementLabel;
117     protected JCheckBox regroupementCheckbox;
118     protected JLabel regroupementLabel;
119     protected JCheckBox uniciteCheckbox;
120     protected JLabel uniciteLabel;
121 
122     /*-----------------------------------------------------------------------*/
123     /*------------------------- Private components  -------------------------*/
124     /*-----------------------------------------------------------------------*/
125 
126     private JPanel $JPanel0;
127     private Table $Table0;
128 
129     /*-----------------------------------------------------------------------*/
130     /*---------------------------- Constructors  ----------------------------*/
131     /*-----------------------------------------------------------------------*/
132 
133     public EditPmfmDialogUI(ApplicationUI parentUI) {
134         ApplicationUIUtil.setParentUI(this, parentUI);
135             $initialize();
136     }
137 
138     public EditPmfmDialogUI(Frame param0, String param1, boolean param2) {
139         super(param0 ,param1 ,param2);
140         $initialize();
141     }
142 
143     public EditPmfmDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
144         super(param1 ,param2 ,param3);
145         JAXXUtil.initContext(this, parentContext);
146         $initialize();
147     }
148 
149     public EditPmfmDialogUI(Frame param0, String param1) {
150         super(param0 ,param1);
151         $initialize();
152     }
153 
154     public EditPmfmDialogUI(JAXXContext parentContext, Frame param1, String param2) {
155         super(param1 ,param2);
156         JAXXUtil.initContext(this, parentContext);
157         $initialize();
158     }
159 
160     public EditPmfmDialogUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
161         super(param0 ,param1 ,param2 ,param3);
162         $initialize();
163     }
164 
165     public EditPmfmDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
166         super(param1 ,param2 ,param3 ,param4);
167         JAXXUtil.initContext(this, parentContext);
168         $initialize();
169     }
170 
171     public EditPmfmDialogUI(Dialog param0) {
172         super(param0);
173         $initialize();
174     }
175 
176     public EditPmfmDialogUI(JAXXContext parentContext, Dialog param1) {
177         super(param1);
178         JAXXUtil.initContext(this, parentContext);
179         $initialize();
180     }
181 
182     public EditPmfmDialogUI(Frame param0, boolean param1) {
183         super(param0 ,param1);
184         $initialize();
185     }
186 
187     public EditPmfmDialogUI(JAXXContext parentContext, Frame param1, boolean param2) {
188         super(param1 ,param2);
189         JAXXUtil.initContext(this, parentContext);
190         $initialize();
191     }
192 
193     public EditPmfmDialogUI() {
194         $initialize();
195     }
196 
197     public EditPmfmDialogUI(JAXXContext parentContext) {
198         JAXXUtil.initContext(this, parentContext);
199         $initialize();
200     }
201 
202     public EditPmfmDialogUI(Frame param0) {
203         super(param0);
204         $initialize();
205     }
206 
207     public EditPmfmDialogUI(JAXXContext parentContext, Frame param1) {
208         super(param1);
209         JAXXUtil.initContext(this, parentContext);
210         $initialize();
211     }
212 
213     public EditPmfmDialogUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
214         super(param0 ,param1 ,param2 ,param3);
215         $initialize();
216     }
217 
218     public EditPmfmDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
219         super(param1 ,param2 ,param3 ,param4);
220         JAXXUtil.initContext(this, parentContext);
221         $initialize();
222     }
223 
224     public EditPmfmDialogUI(Window param0) {
225         super(param0);
226         $initialize();
227     }
228 
229     public EditPmfmDialogUI(JAXXContext parentContext, Window param1) {
230         super(param1);
231         JAXXUtil.initContext(this, parentContext);
232         $initialize();
233     }
234 
235     public EditPmfmDialogUI(Window param0, ModalityType param1) {
236         super(param0 ,param1);
237         $initialize();
238     }
239 
240     public EditPmfmDialogUI(JAXXContext parentContext, Window param1, ModalityType param2) {
241         super(param1 ,param2);
242         JAXXUtil.initContext(this, parentContext);
243         $initialize();
244     }
245 
246     public EditPmfmDialogUI(Window param0, String param1) {
247         super(param0 ,param1);
248         $initialize();
249     }
250 
251     public EditPmfmDialogUI(JAXXContext parentContext, Window param1, String param2) {
252         super(param1 ,param2);
253         JAXXUtil.initContext(this, parentContext);
254         $initialize();
255     }
256 
257     public EditPmfmDialogUI(Window param0, String param1, ModalityType param2) {
258         super(param0 ,param1 ,param2);
259         $initialize();
260     }
261 
262     public EditPmfmDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
263         super(param1 ,param2 ,param3);
264         JAXXUtil.initContext(this, parentContext);
265         $initialize();
266     }
267 
268     public EditPmfmDialogUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
269         super(param0 ,param1 ,param2 ,param3);
270         $initialize();
271     }
272 
273     public EditPmfmDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
274         super(param1 ,param2 ,param3 ,param4);
275         JAXXUtil.initContext(this, parentContext);
276         $initialize();
277     }
278 
279     public EditPmfmDialogUI(Dialog param0, boolean param1) {
280         super(param0 ,param1);
281         $initialize();
282     }
283 
284     public EditPmfmDialogUI(JAXXContext parentContext, Dialog param1, boolean param2) {
285         super(param1 ,param2);
286         JAXXUtil.initContext(this, parentContext);
287         $initialize();
288     }
289 
290     public EditPmfmDialogUI(Dialog param0, String param1) {
291         super(param0 ,param1);
292         $initialize();
293     }
294 
295     public EditPmfmDialogUI(JAXXContext parentContext, Dialog param1, String param2) {
296         super(param1 ,param2);
297         JAXXUtil.initContext(this, parentContext);
298         $initialize();
299     }
300 
301     public EditPmfmDialogUI(Dialog param0, String param1, boolean param2) {
302         super(param0 ,param1 ,param2);
303         $initialize();
304     }
305 
306     public EditPmfmDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
307         super(param1 ,param2 ,param3);
308         JAXXUtil.initContext(this, parentContext);
309         $initialize();
310     }
311 
312     /*-----------------------------------------------------------------------*/
313     /*--------------------------- Statics methods ---------------------------*/
314     /*-----------------------------------------------------------------------*/
315 
316     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
317         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
318     }
319 
320     /*-----------------------------------------------------------------------*/
321     /*---------------------- JAXXObject implementation ----------------------*/
322     /*-----------------------------------------------------------------------*/
323 
324     @Override
325     public void applyDataBinding(String $binding) {
326         if (allComponentsCreated && $bindings.containsKey($binding)) {
327             getDataBinding($binding).applyDataBinding();
328         }
329         processDataBinding($binding);
330     }
331 
332     @Override
333     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
334         super.firePropertyChange(propertyName, oldValue, newValue);
335     }
336 
337     @Override
338     public Map<String, Object> get$objectMap() {
339         return $objectMap;
340     }
341 
342     @Override
343     public JAXXBinding getDataBinding(String bindingId) {
344         return $bindings.get(bindingId);
345     }
346 
347     @Override
348     public JAXXBinding[] getDataBindings() {
349         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
350     }
351 
352     @Override
353     public Object getObjectById(String id) {
354         return $objectMap.get(id);
355     }
356 
357     @Override
358     public void processDataBinding(String $binding, boolean $force) {
359         if (!$force && $activeBindings.contains($binding)) { 
360             return;
361         }
362         $activeBindings.add($binding);
363         try {
364             if (allComponentsCreated && $bindings.containsKey($binding)) {
365                 getDataBinding($binding).processDataBinding();
366             }
367         } finally {
368             $activeBindings.remove($binding);
369         }
370     }
371 
372     @Override
373     public void processDataBinding(String $binding) {
374         processDataBinding($binding, false);
375     }
376 
377     @Override
378     public void registerDataBinding(JAXXBinding binding) {
379         $bindings.put(binding.getId(), binding);
380     }
381 
382     @Override
383     public void removeDataBinding(String $binding) {
384         if (allComponentsCreated && $bindings.containsKey($binding)) {
385             getDataBinding($binding).removeDataBinding();
386         }
387     }
388 
389     /*-----------------------------------------------------------------------*/
390     /*--------------------- JAXXContext implementation  ---------------------*/
391     /*-----------------------------------------------------------------------*/
392 
393     @Override
394     public <T> T getContextValue(Class<T> clazz) {
395         return delegateContext.getContextValue(clazz, null);
396     }
397 
398     @Override
399     public <T> T getContextValue(Class<T> clazz, String name) {
400         return delegateContext.getContextValue(clazz, name);
401     }
402 
403     @Override
404     public JAXXContext getDelegateContext() {
405         return delegateContext;
406     }
407 
408     @Override
409     public <O extends Container> O getParentContainer(Class<O> clazz) {
410         return SwingUtil.getParentContainer(this, clazz);
411     }
412 
413     @Override
414     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
415         return SwingUtil.getParentContainer(source, clazz);
416     }
417 
418     @Override
419     public <T> void removeContextValue(Class<T> clazz) {
420         delegateContext.removeContextValue(clazz, null);
421     }
422 
423     @Override
424     public <T> void removeContextValue(Class<T> clazz, String name) {
425         delegateContext.removeContextValue(clazz, name);
426     }
427 
428     @Override
429     public <T> void setContextValue(T o) {
430         delegateContext.setContextValue(o, null);
431     }
432 
433     @Override
434     public <T> void setContextValue(T o, String name) {
435         delegateContext.setContextValue(o, name);
436     }
437 
438     /*-----------------------------------------------------------------------*/
439     /*---------------------------- Event methods ----------------------------*/
440     /*-----------------------------------------------------------------------*/
441 
442     public void doActionPerformed__on__actionQuitter(ActionEvent event) {
443         if (log.isDebugEnabled()) {
444             log.debug(event);
445         }
446         handler.cancel();
447     }
448 
449     public void doActionPerformed__on__actionValider(ActionEvent event) {
450         if (log.isDebugEnabled()) {
451             log.debug(event);
452         }
453         handler.valid();
454     }
455 
456     public void doItemStateChanged__on__passageCheckbox(ItemEvent event) {
457         if (log.isDebugEnabled()) {
458             log.debug(event);
459         }
460         handler.setBoolean(event, PmfmStrategyDTO.PROPERTY_SURVEY);
461     }
462 
463     public void doItemStateChanged__on__prelevementCheckbox(ItemEvent event) {
464         if (log.isDebugEnabled()) {
465             log.debug(event);
466         }
467         handler.setBoolean(event, PmfmStrategyDTO.PROPERTY_SAMPLING);
468     }
469 
470     public void doItemStateChanged__on__regroupementCheckbox(ItemEvent event) {
471         if (log.isDebugEnabled()) {
472             log.debug(event);
473         }
474         handler.setBoolean(event, PmfmStrategyDTO.PROPERTY_GROUPING);
475     }
476 
477     public void doItemStateChanged__on__uniciteCheckbox(ItemEvent event) {
478         if (log.isDebugEnabled()) {
479             log.debug(event);
480         }
481         handler.setBoolean(event, PmfmStrategyDTO.PROPERTY_UNIQUE);
482     }
483 
484     /*-----------------------------------------------------------------------*/
485     /*----------------------- Public acessor methods  -----------------------*/
486     /*-----------------------------------------------------------------------*/
487 
488     public JButton getActionQuitter() {
489         return actionQuitter;
490     }
491 
492     public JButton getActionValider() {
493         return actionValider;
494     }
495 
496     public ExtendedComboBox<DepartmentDTO> getAnalysteCombo() {
497         return analysteCombo;
498     }
499 
500     public JLabel getAnalysteLabel() {
501         return analysteLabel;
502     }
503 
504     public EditPmfmDialogUIHandler getHandler() {
505         return handler;
506     }
507 
508     public EditPmfmDialogUIModel getModel() {
509         return model;
510     }
511 
512     public JCheckBox getPassageCheckbox() {
513         return passageCheckbox;
514     }
515 
516     public JLabel getPassageLabel() {
517         return passageLabel;
518     }
519 
520     public JCheckBox getPrelevementCheckbox() {
521         return prelevementCheckbox;
522     }
523 
524     public JLabel getPrelevementLabel() {
525         return prelevementLabel;
526     }
527 
528     public JCheckBox getRegroupementCheckbox() {
529         return regroupementCheckbox;
530     }
531 
532     public JLabel getRegroupementLabel() {
533         return regroupementLabel;
534     }
535 
536     public JCheckBox getUniciteCheckbox() {
537         return uniciteCheckbox;
538     }
539 
540     public JLabel getUniciteLabel() {
541         return uniciteLabel;
542     }
543 
544     /*-----------------------------------------------------------------------*/
545     /*--------------------- Protected acessors methods  ---------------------*/
546     /*-----------------------------------------------------------------------*/
547 
548     protected JPanel get$JPanel0() {
549         return $JPanel0;
550     }
551 
552     protected Table get$Table0() {
553         return $Table0;
554     }
555 
556     /*-----------------------------------------------------------------------*/
557     /*--------------------- Components creation methods ---------------------*/
558     /*-----------------------------------------------------------------------*/
559 
560     protected void addChildrenToEditPmfmDialogUI() {
561         if (!allComponentsCreated) {
562             return;
563         }
564         add($Table0);
565         add($JPanel0, BorderLayout.PAGE_END);
566     }
567 
568     protected void createActionQuitter() {
569         $objectMap.put("actionQuitter", actionQuitter = new JButton());
570         
571         actionQuitter.setName("actionQuitter");
572         actionQuitter.setText(t("reefdb.common.cancel"));
573         actionQuitter.setToolTipText(t("reefdb.common.cancel"));
574         actionQuitter.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionQuitter"));
575     }
576 
577     protected void createActionValider() {
578         $objectMap.put("actionValider", actionValider = new JButton());
579         
580         actionValider.setName("actionValider");
581         actionValider.setText(t("reefdb.common.validate"));
582         actionValider.setToolTipText(t("reefdb.common.validate"));
583         actionValider.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionValider"));
584     }
585 
586     protected void createAnalysteCombo() {
587         $objectMap.put("analysteCombo", analysteCombo = new ExtendedComboBox<DepartmentDTO>(this));
588         
589         analysteCombo.setName("analysteCombo");
590         analysteCombo.setFilterable(true);
591         analysteCombo.setShowDecorator(false);
592         analysteCombo.setProperty("analysisDepartment");
593         analysteCombo.setShowReset(true);
594     }
595 
596     protected void createAnalysteLabel() {
597         $objectMap.put("analysteLabel", analysteLabel = new JLabel());
598         
599         analysteLabel.setName("analysteLabel");
600         analysteLabel.setText(t("reefdb.property.analyst"));
601     }
602 
603     protected EditPmfmDialogUIHandler createHandler() {
604         return new EditPmfmDialogUIHandler();
605     }
606 
607     protected void createModel() {
608         $objectMap.put("model", model = getContextValue(EditPmfmDialogUIModel.class));
609     }
610 
611     protected void createPassageCheckbox() {
612         $objectMap.put("passageCheckbox", passageCheckbox = new JCheckBox());
613         
614         passageCheckbox.setName("passageCheckbox");
615         passageCheckbox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__passageCheckbox"));
616     }
617 
618     protected void createPassageLabel() {
619         $objectMap.put("passageLabel", passageLabel = new JLabel());
620         
621         passageLabel.setName("passageLabel");
622         passageLabel.setText(t("reefdb.property.survey"));
623     }
624 
625     protected void createPrelevementCheckbox() {
626         $objectMap.put("prelevementCheckbox", prelevementCheckbox = new JCheckBox());
627         
628         prelevementCheckbox.setName("prelevementCheckbox");
629         prelevementCheckbox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__prelevementCheckbox"));
630     }
631 
632     protected void createPrelevementLabel() {
633         $objectMap.put("prelevementLabel", prelevementLabel = new JLabel());
634         
635         prelevementLabel.setName("prelevementLabel");
636         prelevementLabel.setText(t("reefdb.property.samplingOperation"));
637     }
638 
639     protected void createRegroupementCheckbox() {
640         $objectMap.put("regroupementCheckbox", regroupementCheckbox = new JCheckBox());
641         
642         regroupementCheckbox.setName("regroupementCheckbox");
643         regroupementCheckbox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__regroupementCheckbox"));
644     }
645 
646     protected void createRegroupementLabel() {
647         $objectMap.put("regroupementLabel", regroupementLabel = new JLabel());
648         
649         regroupementLabel.setName("regroupementLabel");
650         regroupementLabel.setText(t("reefdb.program.pmfm.edit.grouping"));
651     }
652 
653     protected void createUniciteCheckbox() {
654         $objectMap.put("uniciteCheckbox", uniciteCheckbox = new JCheckBox());
655         
656         uniciteCheckbox.setName("uniciteCheckbox");
657         uniciteCheckbox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__uniciteCheckbox"));
658     }
659 
660     protected void createUniciteLabel() {
661         $objectMap.put("uniciteLabel", uniciteLabel = new JLabel());
662         
663         uniciteLabel.setName("uniciteLabel");
664         uniciteLabel.setText(t("reefdb.program.pmfm.edit.unique"));
665     }
666 
667     /*-----------------------------------------------------------------------*/
668     /*------------------------ Internal jaxx methods ------------------------*/
669     /*-----------------------------------------------------------------------*/
670 
671     private void $completeSetup() {
672         allComponentsCreated = true;
673         if (log.isDebugEnabled()) {
674             log.debug(this);
675         }
676         addChildrenToEditPmfmDialogUI();
677         // inline complete setup of $Table0
678         $Table0.add(analysteLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
679         $Table0.add(analysteCombo, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
680         $Table0.add(passageLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
681         $Table0.add(passageCheckbox, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
682         $Table0.add(prelevementLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
683         $Table0.add(prelevementCheckbox, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
684         $Table0.add(regroupementLabel, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
685         $Table0.add(regroupementCheckbox, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
686         $Table0.add(uniciteLabel, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
687         $Table0.add(uniciteCheckbox, new GridBagConstraints(1, 4, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
688         // inline complete setup of $JPanel0
689         $JPanel0.add(actionQuitter);
690         $JPanel0.add(actionValider);
691         
692         // apply 5 data bindings
693         JAXXUtil.applyDataBinding(this, $bindings.keySet());
694         
695         // apply 13 property setters
696         analysteCombo.setBeanType(DepartmentDTO.class);
697         analysteLabel.setLabelFor(analysteCombo);
698         analysteCombo.setBean(model);
699         passageLabel.setLabelFor(passageCheckbox);
700         prelevementLabel.setLabelFor(prelevementCheckbox);
701         regroupementLabel.setLabelFor(regroupementCheckbox);
702         uniciteLabel.setLabelFor(uniciteCheckbox);
703         actionQuitter.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.cancel.mnemonic"),'Z'));
704         actionQuitter.setIcon(SwingUtil.createActionIcon("cancel"));
705         actionValider.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.validate.mnemonic"),'Z'));
706         actionValider.setIcon(SwingUtil.createActionIcon("accept"));
707         // late initializer
708         editPmfmDialogUI.pack();
709     }
710 
711     private void $initialize() {
712         if (allComponentsCreated) {
713             return;
714         }
715         if (log.isDebugEnabled()) {
716             log.debug(this);
717         }
718         handler.beforeInit(this);
719         $objectMap.put("editPmfmDialogUI", editPmfmDialogUI);
720         createModel();
721         // inline creation of $Table0
722         $objectMap.put("$Table0", $Table0 = new Table());
723         
724         $Table0.setName("$Table0");
725         createAnalysteLabel();
726         createAnalysteCombo();
727         createPassageLabel();
728         createPassageCheckbox();
729         createPrelevementLabel();
730         createPrelevementCheckbox();
731         createRegroupementLabel();
732         createRegroupementCheckbox();
733         createUniciteLabel();
734         createUniciteCheckbox();
735         // inline creation of $JPanel0
736         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
737         
738         $JPanel0.setName("$JPanel0");
739         $JPanel0.setLayout(new GridLayout(1,0));
740         createActionQuitter();
741         createActionValider();
742         // inline creation of editPmfmDialogUI
743         setName("editPmfmDialogUI");
744         editPmfmDialogUI.getContentPane().setLayout(new BorderLayout());
745         setTitle(t("reefdb.program.pmfm.edit.titre"));
746         setModal(true);
747         
748         // registers 5 data bindings
749         $registerDefaultBindings();
750         $completeSetup();
751         handler.afterInit(this);
752     }
753 
754     private void $registerDefaultBindings() {
755         // register 5 data bindings
756         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ANALYSTE_COMBO_SELECTED_ITEM, true) {
757         
758             @Override
759             public void applyDataBinding() {
760                 if (model != null) {
761                     model.addPropertyChangeListener("analysisDepartment", this);
762                 }
763             }
764         
765             @Override
766             public void processDataBinding() {
767                 if (model != null) {
768                     analysteCombo.setSelectedItem(model.getAnalysisDepartment());
769                 }
770             }
771         
772             @Override
773             public void removeDataBinding() {
774                 if (model != null) {
775                     model.removePropertyChangeListener("analysisDepartment", this);
776                 }
777             }
778         });
779         registerDataBinding(new DefaultJAXXBinding(this, BINDING_PASSAGE_CHECKBOX_SELECTED, true) {
780         
781             @Override
782             public void applyDataBinding() {
783                 if (model != null) {
784                     model.addPropertyChangeListener("survey", this);
785                 }
786             }
787         
788             @Override
789             public void processDataBinding() {
790                 if (model != null) {
791                     passageCheckbox.setSelected(model.isSurvey());
792                 }
793             }
794         
795             @Override
796             public void removeDataBinding() {
797                 if (model != null) {
798                     model.removePropertyChangeListener("survey", this);
799                 }
800             }
801         });
802         registerDataBinding(new DefaultJAXXBinding(this, BINDING_PRELEVEMENT_CHECKBOX_SELECTED, true) {
803         
804             @Override
805             public void applyDataBinding() {
806                 if (model != null) {
807                     model.addPropertyChangeListener("sampling", this);
808                 }
809             }
810         
811             @Override
812             public void processDataBinding() {
813                 if (model != null) {
814                     prelevementCheckbox.setSelected(model.isSampling());
815                 }
816             }
817         
818             @Override
819             public void removeDataBinding() {
820                 if (model != null) {
821                     model.removePropertyChangeListener("sampling", this);
822                 }
823             }
824         });
825         registerDataBinding(new DefaultJAXXBinding(this, BINDING_REGROUPEMENT_CHECKBOX_SELECTED, true) {
826         
827             @Override
828             public void applyDataBinding() {
829                 if (model != null) {
830                     model.addPropertyChangeListener("grouping", this);
831                 }
832             }
833         
834             @Override
835             public void processDataBinding() {
836                 if (model != null) {
837                     regroupementCheckbox.setSelected(model.isGrouping());
838                 }
839             }
840         
841             @Override
842             public void removeDataBinding() {
843                 if (model != null) {
844                     model.removePropertyChangeListener("grouping", this);
845                 }
846             }
847         });
848         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UNICITE_CHECKBOX_SELECTED, true) {
849         
850             @Override
851             public void applyDataBinding() {
852                 if (model != null) {
853                     model.addPropertyChangeListener("unique", this);
854                 }
855             }
856         
857             @Override
858             public void processDataBinding() {
859                 if (model != null) {
860                     uniciteCheckbox.setSelected(model.isUnique());
861                 }
862             }
863         
864             @Override
865             public void removeDataBinding() {
866                 if (model != null) {
867                     model.removePropertyChangeListener("unique", this);
868                 }
869             }
870         });
871     }
872 
873 }