View Javadoc
1   package fr.ifremer.reefdb.ui.swing.content.manage.program.programs.departments;
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.reefdb.dto.referential.DepartmentDTO;
30  import fr.ifremer.reefdb.ui.swing.ReefDbHelpBroker;
31  import fr.ifremer.reefdb.ui.swing.ReefDbUIContext;
32  import fr.ifremer.reefdb.ui.swing.content.manage.filter.department.element.FilterElementDepartmentUI;
33  import fr.ifremer.reefdb.ui.swing.util.ReefDbUI;
34  import java.awt.BorderLayout;
35  import java.awt.Container;
36  import java.awt.Dialog;
37  import java.awt.Dialog.ModalityType;
38  import java.awt.FlowLayout;
39  import java.awt.Frame;
40  import java.awt.GraphicsConfiguration;
41  import java.awt.GridLayout;
42  import java.awt.Window;
43  import java.awt.event.ActionEvent;
44  import java.awt.event.ActionListener;
45  import java.util.ArrayList;
46  import java.util.HashMap;
47  import java.util.List;
48  import java.util.Map;
49  import java.util.TreeMap;
50  import javax.swing.BorderFactory;
51  import javax.swing.JButton;
52  import javax.swing.JDialog;
53  import javax.swing.JList;
54  import javax.swing.JPanel;
55  import javax.swing.SwingConstants;
56  import jaxx.runtime.JAXXBinding;
57  import jaxx.runtime.JAXXContext;
58  import jaxx.runtime.JAXXObject;
59  import jaxx.runtime.JAXXObjectDescriptor;
60  import jaxx.runtime.JAXXUtil;
61  import jaxx.runtime.SwingUtil;
62  import jaxx.runtime.binding.DefaultJAXXBinding;
63  import jaxx.runtime.context.DefaultJAXXContext;
64  import jaxx.runtime.swing.CardLayout2Ext;
65  import org.apache.commons.logging.Log;
66  import org.apache.commons.logging.LogFactory;
67  import static org.nuiton.i18n.I18n.t;
68  
69  public class DepartmentsDialogUI extends JDialog implements ReefDbUI<DepartmentsDialogUIModel, DepartmentsDialogUIHandler>, JAXXObject {
70  
71      /*-----------------------------------------------------------------------*/
72      /*------------------ Constants for all public bindings ------------------*/
73      /*-----------------------------------------------------------------------*/
74  
75      public static final String BINDING_ACTION_VALIDATE_ENABLED = "actionValidate.enabled";
76  
77      /*-----------------------------------------------------------------------*/
78      /*------------------------- Other static fields -------------------------*/
79      /*-----------------------------------------------------------------------*/
80  
81      private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVVS28cRRCu3XjtrB1iiImVkKA4CUiJkHqTXAAZQcAP4WgNUZxEkVco6Z1przvq6R66a5IJCMRP4CfAnQsSN06IA2cOXBB/ASEOXBHVM+PZ12y8ksVK27Nbj6/qq66q+e5PaDgLFx/zNGU20SgjwW69/+DBx93HIsB14QIrYzQW8k+tDvUOLISl3CFc7rS9e6twb62ZKDZa6AHv1TbMO3ymhNsXAhFeHfYInGvtlOrVNE7sAWqZVBXqN3//Vf86/OrbOkAaU3YLRGXlMK8+k5k21GWIcIoiPeEtxXWP0rBS9yjfF7xsTXHnPuKR+BS+hLk2zMbcEhjCpekpZxiZfxojvBQKwsCIbN265Mr0EHb3LJN7VkTCMivEXthliWTuKSXCAqORbFnENe8JFlvTszw6eDo2AMfWR6HvbcVxFnoWoRGZUCiEh/9fsG0foR9xUUmHt7kWqs2fmYSqNtxmecw1bsNcf2Mjxb738dduZb7X6H78VaSFfS71Rs3StllG8oKX/XGqVJ7dkwqF3VAiyi7oIO17WwifTF+MHGWgBEzkiGxzEr5P4PQYoetljn3d4kBl28SF+mSIs5d501fG0G5UMJ7nAUqjN1JJQEtDQB/QNRjt7S6U5idz8/tcyZBj1uqXCwsL54aujAaV9Qe1P0m1DjRsQmKEM53x2b5Dqnyqz4xMtQfMtP8uL/324x8/bA6O8ulK04FNRCNGvRkLi9KHXsznOEGpWts8Xu1A09ElBfmaOl+R2E6hpuQoXlZz5t3Zh9ztE0Rj7veffl5+9OsxqG/CvDI83OTefguauG+pCkaFafzezSyjE0+P0/kifY9RS5JWfsa7iso0gzahRwMl+r/Xik4bGS9qwMDYUNiByWKFix9ergqklOp4vqKOJZlu85d/lna+v3lQyxpxOzvRvF/Pxi7MSq2kFtliLHZe5SJciJ1IQtPfbVXbDqrWXVyM+BvZ2Rqr3QzCCXn9Lb2tRWS0DOhlUdQrMBFJWMB1IBSLSn3R7lt+YGE2V/tSidS3/4izMo7quYDGqLsyvjvRJk18em9m1fO/3oahuTqMRWOMxYXhIE+KaZvIgweBiLHksVztPkplotmc0L4Z6W138fPsTcB6Am/nnXflKpNuI5ToLa5c/aKK+8iSOIx/jRioYuuffIc8+EpX6pB20Ltj6DV/zh+K6MW7/uhUIywdGWF5GlbdbEafg3LuyHkcHWFlCiYzMsjfBBMwLk2VRfIchNcJ4T+SKEzWYQoAAA==";
82      private static final Log log = LogFactory.getLog(DepartmentsDialogUI.class);
83      private static final long serialVersionUID = 1L;
84  
85      /*-----------------------------------------------------------------------*/
86      /*--------------------------- Internal states ---------------------------*/
87      /*-----------------------------------------------------------------------*/
88  
89      protected List<Object> $activeBindings = new ArrayList<Object>();
90      protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
91      protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
92      protected Map<String, Object> $objectMap = new HashMap<String, Object>();
93      protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
94      private boolean allComponentsCreated;
95      protected final JAXXContext delegateContext = new DefaultJAXXContext();
96  
97      /*-----------------------------------------------------------------------*/
98      /*------------------------ Protected components  ------------------------*/
99      /*-----------------------------------------------------------------------*/
100 
101     protected JButton actionExit;
102     protected JButton actionValidate;
103     protected DepartmentsDialogUI departmentsDialog = this;
104     protected JList<DepartmentDTO> departmentsList;
105     protected FilterElementDepartmentUI filterElementDepartmentUI;
106     protected final DepartmentsDialogUIHandler handler = createHandler();
107     protected JPanel listPanel;
108     protected CardLayout2Ext listPanelLayout;
109     protected DepartmentsDialogUIModel model;
110 
111     /*-----------------------------------------------------------------------*/
112     /*------------------------- Private components  -------------------------*/
113     /*-----------------------------------------------------------------------*/
114 
115     private JPanel $JPanel0;
116     private JPanel $JPanel1;
117     private JPanel $JPanel2;
118 
119     /*-----------------------------------------------------------------------*/
120     /*---------------------------- Constructors  ----------------------------*/
121     /*-----------------------------------------------------------------------*/
122 
123     public DepartmentsDialogUI(ApplicationUI parentUI) {
124         ApplicationUIUtil.setParentUI(this, parentUI);
125             $initialize();
126     }
127 
128     public DepartmentsDialogUI(Frame param0, String param1, boolean param2) {
129         super(param0 ,param1 ,param2);
130         $initialize();
131     }
132 
133     public DepartmentsDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3) {
134         super(param1 ,param2 ,param3);
135         JAXXUtil.initContext(this, parentContext);
136         $initialize();
137     }
138 
139     public DepartmentsDialogUI(Frame param0, String param1) {
140         super(param0 ,param1);
141         $initialize();
142     }
143 
144     public DepartmentsDialogUI(JAXXContext parentContext, Frame param1, String param2) {
145         super(param1 ,param2);
146         JAXXUtil.initContext(this, parentContext);
147         $initialize();
148     }
149 
150     public DepartmentsDialogUI(Frame param0, String param1, boolean param2, GraphicsConfiguration param3) {
151         super(param0 ,param1 ,param2 ,param3);
152         $initialize();
153     }
154 
155     public DepartmentsDialogUI(JAXXContext parentContext, Frame param1, String param2, boolean param3, GraphicsConfiguration param4) {
156         super(param1 ,param2 ,param3 ,param4);
157         JAXXUtil.initContext(this, parentContext);
158         $initialize();
159     }
160 
161     public DepartmentsDialogUI(Dialog param0) {
162         super(param0);
163         $initialize();
164     }
165 
166     public DepartmentsDialogUI(JAXXContext parentContext, Dialog param1) {
167         super(param1);
168         JAXXUtil.initContext(this, parentContext);
169         $initialize();
170     }
171 
172     public DepartmentsDialogUI(Frame param0, boolean param1) {
173         super(param0 ,param1);
174         $initialize();
175     }
176 
177     public DepartmentsDialogUI(JAXXContext parentContext, Frame param1, boolean param2) {
178         super(param1 ,param2);
179         JAXXUtil.initContext(this, parentContext);
180         $initialize();
181     }
182 
183     public DepartmentsDialogUI() {
184         $initialize();
185     }
186 
187     public DepartmentsDialogUI(JAXXContext parentContext) {
188         JAXXUtil.initContext(this, parentContext);
189         $initialize();
190     }
191 
192     public DepartmentsDialogUI(Frame param0) {
193         super(param0);
194         $initialize();
195     }
196 
197     public DepartmentsDialogUI(JAXXContext parentContext, Frame param1) {
198         super(param1);
199         JAXXUtil.initContext(this, parentContext);
200         $initialize();
201     }
202 
203     public DepartmentsDialogUI(Dialog param0, String param1, boolean param2, GraphicsConfiguration param3) {
204         super(param0 ,param1 ,param2 ,param3);
205         $initialize();
206     }
207 
208     public DepartmentsDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3, GraphicsConfiguration param4) {
209         super(param1 ,param2 ,param3 ,param4);
210         JAXXUtil.initContext(this, parentContext);
211         $initialize();
212     }
213 
214     public DepartmentsDialogUI(Window param0) {
215         super(param0);
216         $initialize();
217     }
218 
219     public DepartmentsDialogUI(JAXXContext parentContext, Window param1) {
220         super(param1);
221         JAXXUtil.initContext(this, parentContext);
222         $initialize();
223     }
224 
225     public DepartmentsDialogUI(Window param0, ModalityType param1) {
226         super(param0 ,param1);
227         $initialize();
228     }
229 
230     public DepartmentsDialogUI(JAXXContext parentContext, Window param1, ModalityType param2) {
231         super(param1 ,param2);
232         JAXXUtil.initContext(this, parentContext);
233         $initialize();
234     }
235 
236     public DepartmentsDialogUI(Window param0, String param1) {
237         super(param0 ,param1);
238         $initialize();
239     }
240 
241     public DepartmentsDialogUI(JAXXContext parentContext, Window param1, String param2) {
242         super(param1 ,param2);
243         JAXXUtil.initContext(this, parentContext);
244         $initialize();
245     }
246 
247     public DepartmentsDialogUI(Window param0, String param1, ModalityType param2) {
248         super(param0 ,param1 ,param2);
249         $initialize();
250     }
251 
252     public DepartmentsDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3) {
253         super(param1 ,param2 ,param3);
254         JAXXUtil.initContext(this, parentContext);
255         $initialize();
256     }
257 
258     public DepartmentsDialogUI(Window param0, String param1, ModalityType param2, GraphicsConfiguration param3) {
259         super(param0 ,param1 ,param2 ,param3);
260         $initialize();
261     }
262 
263     public DepartmentsDialogUI(JAXXContext parentContext, Window param1, String param2, ModalityType param3, GraphicsConfiguration param4) {
264         super(param1 ,param2 ,param3 ,param4);
265         JAXXUtil.initContext(this, parentContext);
266         $initialize();
267     }
268 
269     public DepartmentsDialogUI(Dialog param0, boolean param1) {
270         super(param0 ,param1);
271         $initialize();
272     }
273 
274     public DepartmentsDialogUI(JAXXContext parentContext, Dialog param1, boolean param2) {
275         super(param1 ,param2);
276         JAXXUtil.initContext(this, parentContext);
277         $initialize();
278     }
279 
280     public DepartmentsDialogUI(Dialog param0, String param1) {
281         super(param0 ,param1);
282         $initialize();
283     }
284 
285     public DepartmentsDialogUI(JAXXContext parentContext, Dialog param1, String param2) {
286         super(param1 ,param2);
287         JAXXUtil.initContext(this, parentContext);
288         $initialize();
289     }
290 
291     public DepartmentsDialogUI(Dialog param0, String param1, boolean param2) {
292         super(param0 ,param1 ,param2);
293         $initialize();
294     }
295 
296     public DepartmentsDialogUI(JAXXContext parentContext, Dialog param1, String param2, boolean param3) {
297         super(param1 ,param2 ,param3);
298         JAXXUtil.initContext(this, parentContext);
299         $initialize();
300     }
301 
302     /*-----------------------------------------------------------------------*/
303     /*--------------------------- Statics methods ---------------------------*/
304     /*-----------------------------------------------------------------------*/
305 
306     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
307         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
308     }
309 
310     /*-----------------------------------------------------------------------*/
311     /*---------------------- JAXXObject implementation ----------------------*/
312     /*-----------------------------------------------------------------------*/
313 
314     @Override
315     public void applyDataBinding(String $binding) {
316         if (allComponentsCreated && $bindings.containsKey($binding)) {
317             getDataBinding($binding).applyDataBinding();
318         }
319         processDataBinding($binding);
320     }
321 
322     @Override
323     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
324         super.firePropertyChange(propertyName, oldValue, newValue);
325     }
326 
327     @Override
328     public Map<String, Object> get$objectMap() {
329         return $objectMap;
330     }
331 
332     @Override
333     public JAXXBinding getDataBinding(String bindingId) {
334         return $bindings.get(bindingId);
335     }
336 
337     @Override
338     public JAXXBinding[] getDataBindings() {
339         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
340     }
341 
342     @Override
343     public Object getObjectById(String id) {
344         return $objectMap.get(id);
345     }
346 
347     @Override
348     public void processDataBinding(String $binding, boolean $force) {
349         if (!$force && $activeBindings.contains($binding)) { 
350             return;
351         }
352         $activeBindings.add($binding);
353         try {
354             if (allComponentsCreated && $bindings.containsKey($binding)) {
355                 getDataBinding($binding).processDataBinding();
356             }
357         } finally {
358             $activeBindings.remove($binding);
359         }
360     }
361 
362     @Override
363     public void processDataBinding(String $binding) {
364         processDataBinding($binding, false);
365     }
366 
367     @Override
368     public void registerDataBinding(JAXXBinding binding) {
369         $bindings.put(binding.getId(), binding);
370     }
371 
372     @Override
373     public void removeDataBinding(String $binding) {
374         if (allComponentsCreated && $bindings.containsKey($binding)) {
375             getDataBinding($binding).removeDataBinding();
376         }
377     }
378 
379     /*-----------------------------------------------------------------------*/
380     /*--------------------- JAXXContext implementation  ---------------------*/
381     /*-----------------------------------------------------------------------*/
382 
383     @Override
384     public <T> T getContextValue(Class<T> clazz) {
385         return delegateContext.getContextValue(clazz, null);
386     }
387 
388     @Override
389     public <T> T getContextValue(Class<T> clazz, String name) {
390         return delegateContext.getContextValue(clazz, name);
391     }
392 
393     @Override
394     public JAXXContext getDelegateContext() {
395         return delegateContext;
396     }
397 
398     @Override
399     public <O extends Container> O getParentContainer(Class<O> clazz) {
400         return SwingUtil.getParentContainer(this, clazz);
401     }
402 
403     @Override
404     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
405         return SwingUtil.getParentContainer(source, clazz);
406     }
407 
408     @Override
409     public <T> void removeContextValue(Class<T> clazz) {
410         delegateContext.removeContextValue(clazz, null);
411     }
412 
413     @Override
414     public <T> void removeContextValue(Class<T> clazz, String name) {
415         delegateContext.removeContextValue(clazz, name);
416     }
417 
418     @Override
419     public <T> void setContextValue(T o) {
420         delegateContext.setContextValue(o, null);
421     }
422 
423     @Override
424     public <T> void setContextValue(T o, String name) {
425         delegateContext.setContextValue(o, name);
426     }
427 
428     /*-----------------------------------------------------------------------*/
429     /*---------------------------- Event methods ----------------------------*/
430     /*-----------------------------------------------------------------------*/
431 
432     public void doActionPerformed__on__actionExit(ActionEvent event) {
433         if (log.isDebugEnabled()) {
434             log.debug(event);
435         }
436         handler.cancel();
437     }
438 
439     public void doActionPerformed__on__actionValidate(ActionEvent event) {
440         if (log.isDebugEnabled()) {
441             log.debug(event);
442         }
443         handler.valid();
444     }
445 
446     /*-----------------------------------------------------------------------*/
447     /*----------------------- Public acessor methods  -----------------------*/
448     /*-----------------------------------------------------------------------*/
449 
450     public JButton getActionExit() {
451         return actionExit;
452     }
453 
454     public JButton getActionValidate() {
455         return actionValidate;
456     }
457 
458     public JList<DepartmentDTO> getDepartmentsList() {
459         return departmentsList;
460     }
461 
462     public FilterElementDepartmentUI getFilterElementDepartmentUI() {
463         return filterElementDepartmentUI;
464     }
465 
466     public DepartmentsDialogUIHandler getHandler() {
467         return handler;
468     }
469 
470     public JPanel getListPanel() {
471         return listPanel;
472     }
473 
474     public CardLayout2Ext getListPanelLayout() {
475         return listPanelLayout;
476     }
477 
478     public DepartmentsDialogUIModel getModel() {
479         return model;
480     }
481 
482     /*-----------------------------------------------------------------------*/
483     /*--------------------- Protected acessors methods  ---------------------*/
484     /*-----------------------------------------------------------------------*/
485 
486     protected JPanel get$JPanel0() {
487         return $JPanel0;
488     }
489 
490     protected JPanel get$JPanel1() {
491         return $JPanel1;
492     }
493 
494     protected JPanel get$JPanel2() {
495         return $JPanel2;
496     }
497 
498     /*-----------------------------------------------------------------------*/
499     /*--------------------- Components creation methods ---------------------*/
500     /*-----------------------------------------------------------------------*/
501 
502     protected void addChildrenToDepartmentsDialog() {
503         if (!allComponentsCreated) {
504             return;
505         }
506         add($JPanel0);
507     }
508 
509     protected void addChildrenToListPanel() {
510         if (!allComponentsCreated) {
511             return;
512         }
513         listPanel.add(filterElementDepartmentUI, DepartmentsDialogUIHandler.DOUBLE_LIST);
514         listPanel.add($JPanel1, DepartmentsDialogUIHandler.LIST);
515     }
516 
517     protected void createActionExit() {
518         $objectMap.put("actionExit", actionExit = new JButton());
519         
520         actionExit.setName("actionExit");
521         actionExit.setText(t("reefdb.common.close"));
522         actionExit.setToolTipText(t("reefdb.common.close"));
523         actionExit.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionExit"));
524     }
525 
526     protected void createActionValidate() {
527         $objectMap.put("actionValidate", actionValidate = new JButton());
528         
529         actionValidate.setName("actionValidate");
530         actionValidate.setText(t("reefdb.common.validate"));
531         actionValidate.setToolTipText(t("reefdb.common.validate"));
532         actionValidate.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__actionValidate"));
533     }
534 
535     protected void createDepartmentsList() {
536         $objectMap.put("departmentsList", departmentsList = new JList<DepartmentDTO>());
537         
538         departmentsList.setName("departmentsList");
539     }
540 
541     protected void createFilterElementDepartmentUI() {
542         $objectMap.put("filterElementDepartmentUI", filterElementDepartmentUI = new FilterElementDepartmentUI(this));
543         
544         filterElementDepartmentUI.setName("filterElementDepartmentUI");
545     }
546 
547     protected DepartmentsDialogUIHandler createHandler() {
548         return new DepartmentsDialogUIHandler();
549     }
550 
551     protected void createListPanel() {
552         $objectMap.put("listPanel", listPanel = new JPanel());
553         
554         listPanel.setName("listPanel");
555         listPanel.setLayout(listPanelLayout);
556     }
557 
558     protected void createListPanelLayout() {
559         $objectMap.put("listPanelLayout", listPanelLayout = new CardLayout2Ext(this, "listPanel"));
560     }
561 
562     protected void createModel() {
563         $objectMap.put("model", model = getContextValue(DepartmentsDialogUIModel.class));
564     }
565 
566     /*-----------------------------------------------------------------------*/
567     /*------------------------ Internal jaxx methods ------------------------*/
568     /*-----------------------------------------------------------------------*/
569 
570     private void $completeSetup() {
571         allComponentsCreated = true;
572         if (log.isDebugEnabled()) {
573             log.debug(this);
574         }
575         addChildrenToDepartmentsDialog();
576         // inline complete setup of $JPanel0
577         $JPanel0.add(listPanel);
578         $JPanel0.add($JPanel2, BorderLayout.PAGE_END);
579         addChildrenToListPanel();
580         // inline complete setup of $JPanel1
581         $JPanel1.add(departmentsList);
582         // inline complete setup of $JPanel2
583         $JPanel2.add(actionExit);
584         $JPanel2.add(actionValidate);
585         
586         // apply 1 data bindings
587         JAXXUtil.applyDataBinding(this, $bindings.keySet());
588         
589         // apply 10 property setters
590         $JPanel1.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
591         actionExit.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.cancel.mnemonic"),'Z'));
592         actionExit.setIcon(SwingUtil.createActionIcon("cancel"));
593         actionValidate.setMnemonic(SwingUtil.getFirstCharAt(t("reefdb.common.validate.mnemonic"),'Z'));
594         actionValidate.setIcon(SwingUtil.createActionIcon("accept"));
595         // late initializer
596         departmentsDialog.pack();
597     }
598 
599     private void $initialize() {
600         if (allComponentsCreated) {
601             return;
602         }
603         if (log.isDebugEnabled()) {
604             log.debug(this);
605         }
606         handler.beforeInit(this);
607         $objectMap.put("departmentsDialog", departmentsDialog);
608         createModel();
609         createListPanelLayout();
610         // inline creation of $JPanel0
611         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
612         
613         $JPanel0.setName("$JPanel0");
614         $JPanel0.setLayout(new BorderLayout());
615         createListPanel();
616         createFilterElementDepartmentUI();
617         // inline creation of $JPanel1
618         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
619         
620         $JPanel1.setName("$JPanel1");
621         $JPanel1.setLayout(new BorderLayout());
622         createDepartmentsList();
623         // inline creation of $JPanel2
624         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
625         
626         $JPanel2.setName("$JPanel2");
627         $JPanel2.setLayout(new GridLayout(1,0));
628         createActionExit();
629         createActionValidate();
630         // inline creation of departmentsDialog
631         setName("departmentsDialog");
632         departmentsDialog.getContentPane().setLayout(new BorderLayout());
633         setResizable(true);
634         setTitle(t("reefdb.program.program.recorderDepartments.title"));
635         setModal(true);
636         
637         // registers 1 data bindings
638         $registerDefaultBindings();
639         $completeSetup();
640         handler.afterInit(this);
641     }
642 
643     private void $registerDefaultBindings() {
644         // register 1 data bindings
645         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ACTION_VALIDATE_ENABLED, true) {
646         
647             @Override
648             public void applyDataBinding() {
649                 if (model != null) {
650                     model.addPropertyChangeListener("program", this);
651                 }
652             }
653         
654             @Override
655             public void processDataBinding() {
656                 if (model != null && model.getProgram() != null) {
657                     actionValidate.setEnabled(model.getProgram().isEditable());
658                 }
659             }
660         
661             @Override
662             public void removeDataBinding() {
663                 if (model != null) {
664                     model.removePropertyChangeListener("program", this);
665                 }
666             }
667         });
668     }
669 
670 }