View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.genericformat;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2017 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (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 General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import fr.ifremer.tutti.persistence.entities.data.Program;
28  import fr.ifremer.tutti.ui.swing.TuttiHelpBroker;
29  import fr.ifremer.tutti.ui.swing.content.genericformat.tree.DataSelectTreeModel;
30  import fr.ifremer.tutti.ui.swing.content.genericformat.tree.ImportDataSelectTreeCellRenderer;
31  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
32  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
33  import java.awt.BorderLayout;
34  import java.awt.Component;
35  import java.awt.Container;
36  import java.awt.GridBagConstraints;
37  import java.awt.GridLayout;
38  import java.awt.Insets;
39  import java.awt.LayoutManager;
40  import java.awt.event.ActionEvent;
41  import java.awt.event.ActionListener;
42  import java.awt.event.ItemEvent;
43  import java.awt.event.ItemListener;
44  import java.util.ArrayList;
45  import java.util.HashMap;
46  import java.util.List;
47  import java.util.Map;
48  import java.util.TreeMap;
49  import javax.swing.BorderFactory;
50  import javax.swing.JButton;
51  import javax.swing.JCheckBox;
52  import javax.swing.JLabel;
53  import javax.swing.JPanel;
54  import javax.swing.JScrollPane;
55  import javax.swing.JToolBar;
56  import javax.swing.JTree;
57  import javax.swing.tree.DefaultTreeModel;
58  import jaxx.runtime.JAXXBinding;
59  import jaxx.runtime.JAXXContext;
60  import jaxx.runtime.JAXXObject;
61  import jaxx.runtime.JAXXObjectDescriptor;
62  import jaxx.runtime.JAXXUtil;
63  import jaxx.runtime.JAXXValidator;
64  import jaxx.runtime.SwingUtil;
65  import jaxx.runtime.binding.DefaultJAXXBinding;
66  import jaxx.runtime.context.DefaultJAXXContext;
67  import jaxx.runtime.swing.Table;
68  import jaxx.runtime.swing.editor.FileEditor;
69  import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
70  import jaxx.runtime.swing.help.JAXXHelpUI;
71  import jaxx.runtime.validator.swing.SwingValidator;
72  import jaxx.runtime.validator.swing.SwingValidatorUtil;
73  import jaxx.runtime.validator.swing.meta.Validator;
74  import jaxx.runtime.validator.swing.meta.ValidatorField;
75  import jaxx.runtime.validator.swing.ui.ImageValidationUI;
76  import org.apache.commons.logging.Log;
77  import org.apache.commons.logging.LogFactory;
78  import static jaxx.runtime.SwingUtil.getStringValue;
79  import static org.nuiton.i18n.I18n.t;
80  
81  public class GenericFormatImportUI extends JPanel implements JAXXHelpUI<TuttiHelpBroker>, TuttiUI<GenericFormatImportUIModel, GenericFormatImportUIHandler>, JAXXObject, JAXXValidator {
82  
83      /*-----------------------------------------------------------------------*/
84      /*------------------ Constants for all public bindings ------------------*/
85      /*-----------------------------------------------------------------------*/
86  
87      public static final String BINDING_AUTHORIZE_OBSOLETE_REFERENTIALS_CHECK_BOX_SELECTED = "authorizeObsoleteReferentialsCheckBox.selected";
88      public static final String BINDING_CHECK_WEIGHTS_CHECK_BOX_ENABLED = "checkWeightsCheckBox.enabled";
89      public static final String BINDING_CHECK_WEIGHTS_CHECK_BOX_SELECTED = "checkWeightsCheckBox.selected";
90      public static final String BINDING_CLEAN_WEIGHTS_CHECK_BOX_ENABLED = "cleanWeightsCheckBox.enabled";
91      public static final String BINDING_CLEAN_WEIGHTS_CHECK_BOX_SELECTED = "cleanWeightsCheckBox.selected";
92      public static final String BINDING_DATA_SELECTION_TREE_ENABLED = "dataSelectionTree.enabled";
93      public static final String BINDING_FOLD_ALL_BUTTON_ENABLED = "foldAllButton.enabled";
94      public static final String BINDING_IMPORT_ACCIDENTAL_CATCH_CHECK_BOX_ENABLED = "importAccidentalCatchCheckBox.enabled";
95      public static final String BINDING_IMPORT_ACCIDENTAL_CATCH_CHECK_BOX_SELECTED = "importAccidentalCatchCheckBox.selected";
96      public static final String BINDING_IMPORT_ATTACHMENTS_CHECK_BOX_ENABLED = "importAttachmentsCheckBox.enabled";
97      public static final String BINDING_IMPORT_ATTACHMENTS_CHECK_BOX_SELECTED = "importAttachmentsCheckBox.selected";
98      public static final String BINDING_IMPORT_BENTHOS_CHECK_BOX_ENABLED = "importBenthosCheckBox.enabled";
99      public static final String BINDING_IMPORT_BENTHOS_CHECK_BOX_SELECTED = "importBenthosCheckBox.selected";
100     public static final String BINDING_IMPORT_BUTTON_ENABLED = "importButton.enabled";
101     public static final String BINDING_IMPORT_FILE_SELECTED_FILE = "importFile.selectedFile";
102     public static final String BINDING_IMPORT_INDIVIDUAL_OBSERVATION_CHECK_BOX_ENABLED = "importIndividualObservationCheckBox.enabled";
103     public static final String BINDING_IMPORT_INDIVIDUAL_OBSERVATION_CHECK_BOX_SELECTED = "importIndividualObservationCheckBox.selected";
104     public static final String BINDING_IMPORT_MARINE_LITTER_CHECK_BOX_ENABLED = "importMarineLitterCheckBox.enabled";
105     public static final String BINDING_IMPORT_MARINE_LITTER_CHECK_BOX_SELECTED = "importMarineLitterCheckBox.selected";
106     public static final String BINDING_IMPORT_PANEL_VISIBLE = "importPanel.visible";
107     public static final String BINDING_IMPORT_RESULT_PANEL_VISIBLE = "importResultPanel.visible";
108     public static final String BINDING_IMPORT_SPECIES_CHECK_BOX_ENABLED = "importSpeciesCheckBox.enabled";
109     public static final String BINDING_IMPORT_SPECIES_CHECK_BOX_SELECTED = "importSpeciesCheckBox.selected";
110     public static final String BINDING_PROGRAM_COMBO_BOX_SELECTED_ITEM = "programComboBox.selectedItem";
111     public static final String BINDING_SELECT_ALL_BUTTON_ENABLED = "selectAllButton.enabled";
112     public static final String BINDING_UNFOLD_ALL_BUTTON_ENABLED = "unfoldAllButton.enabled";
113     public static final String BINDING_UNSELECT_ALL_BUTTON_ENABLED = "unselectAllButton.enabled";
114     public static final String BINDING_UPDATE_CRUISES_CHECK_BOX_ENABLED = "updateCruisesCheckBox.enabled";
115     public static final String BINDING_UPDATE_CRUISES_CHECK_BOX_SELECTED = "updateCruisesCheckBox.selected";
116     public static final String BINDING_UPDATE_OPERATIONS_CHECK_BOX_ENABLED = "updateOperationsCheckBox.enabled";
117     public static final String BINDING_UPDATE_OPERATIONS_CHECK_BOX_SELECTED = "updateOperationsCheckBox.selected";
118     public static final String BINDING_VALIDATE_BUTTON_ENABLED = "validateButton.enabled";
119     public static final String BINDING_VALIDATE_RESULT_PANEL_VISIBLE = "validateResultPanel.visible";
120 
121     /*-----------------------------------------------------------------------*/
122     /*------------------------- Other static fields -------------------------*/
123     /*-----------------------------------------------------------------------*/
124 
125     private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAALVbzXPcSBWXHX87Wec73t0EHCfs2htWthO82ZCPje1kiI2DU7GdBHwIGqnt0UYjaaUee7xTWaiiiiqKYoETBy5QFDcuVHGhOFEcOHPgQvEvUBQHrhSvWx8tabqllsa7VTublfr93uvfe/30+nXnd/9SBn1Pufyx1m6rXsvGZhOpa0svXmzUP0Y6foB83TNd7HhK8E9fv9K/o4wb8XMfK1d21on4XCg+t+I0XcdGdkL69roy5uNDC/kNhDBWLqUldN+f24xf3267LS9CjY3iof7qP//u/5nx/V/3K0rbBesWYCpTRVJsJgPrSr9pYOU0aNrX5izN3gMzPNPeA3tPkGcrlub739Ka6BPlM2V4XRlyNQ/AsDItP2WKQeXbLlbe3kM28ky95nhNDa+CmIe3HPeJZiMLKw93PdXc9VATeSpuYWyqLVP1D8AiVXdsDArUUH6Xyqvf6EbbXnVdqm8IK4NNxyC4a0eC+5iAMfBR7CH0OFDwqKwCIqs+0LC2iSwItK0IisEP1T3nFfKwMivG3iL/+wiklunYhG37mmUaGvgBK9dSERG/CCE2ye+z6CFDOBUORDXTQqF7JlNIoQla3aLhMRqLHnc9Z8/TmutanUidJpHUDoev0Ydk4GQ8fiIcD1FUd5adNlYWOYqQYRKr60iz1WX4Absw8oj2SC6DalK3EfNjnZfSQ8bYEKxcFeskAx7SP6blv6K1cMPxzE/RRt13AAQ9RbuIrBBTs/yVBtJf0emcSzEQPU9jjVxdoyzPZwmjT+lYrIzXweGOTR9Fgm9Ejlqm77ByJiUePCVjZ2NdZyKRp8hvWTjWcC1Hzem0zBZq45jRecbo1bUtx7GWNQ/mcTZlSPg8PX7ScZH9LEYm3mAGz5GfRb45k762j6oIjgc+j+f8Vjp2zwSvVxx719xreRo2A0hKzT22Oox46ZqBAqxcSE13U/ccyyJviMh9gSRZ9/AsTRQ8I4OXgXRdsyNTUJCGIpwTgaEbLoHxYxPvdwXUQvxuNX53ruUS3la8lukjPxmQM+Tnm7maJwPhDRcF9JSVPxdYvuki3SytPBRehjXWcMoKvxUIP9bgG4fWTQz5oyTCpQBhSddNA0zQrBUN642SIFcCkFXbMPdNo6VZkD2Qt0/JLAn1ZmgPxpreaIJFZSk5q1uQS58jc69RQZaMryZ7oWsZPEKagWh6uJkO5ImWvetYxpJlZVb4q/wFUkVowqcmlRU71bKrCUaL9DrLMfy0dTyM+zT4IUsrwXteQhcgnkxKpNL5Z5x0vhA7hr09T5L3aojCse4HfMXnSeouLzZ8lZYa85ykHbF4I57zjwXJX7ccH2X0/cSFsvnt1NcfCnKVFeSsYu7bUQa9FjyGLLjTXcM/hVdB9T6Zqd4JIH37v/Nn/v6nf/6hFpXs90H3Oe7QxI4DSmkokSDfYpOongjq9RY2rbnHmnt7RxkNoo9uRy5yDNsMX4NxoI9+blQirj7S/AZADA7/489/Of/dvx1T+mvKmOVoRk0j41ehyG14wAIspbb70X1q0fGDEfg9Cf8eg3Ws6TpySdyTIimoybZ9BLuKwV2ogYC8UZA+gCgj+54B7LXg0UnD9Kg9hw9t4tN4dBuou8ihLra/PvrX/57Z/P39iL4+mM6bwuGMwsHvKEOmbZG0T/Y84XaGu8cZd33UMhy2beFtZBTYyoyxsjAsm39Bf3/ZxVM/l4UBUspCXHfoJuV1u0WEf0MnRf70W6LjPL/SLdZ3ou54kE6faCbsPpLe2AXvYoLFOOfoHYnWfYGmPqg/XwbBt2HXHL0FATjUIfPjz2dsjWSamoksoxh5GEXRcTngCPZQeDWRtWZmp+7enbJbFpc91xWn3tz5aIYRfNS2bagRlAtMOXs8MytSecIiu43nJm6QcUXahhoUEiv9i/MCwK5ElgM3+LIBu0HYn3emg60iZ7utkiHTHPPzd+duscOGgqDDyovOMv1TkEUOVd1DUDFumRi8GbyZwTM5FkZ7jfB/LQSDjOlZHue8nWqRqQMQ4NRLNbI/PtXJ7D9fkyUKYYqVd8Um7pIYVkNJRvx8HvEpmdAN4F8MS23LdLeoymuy4th0eWykNt8SRBwPVi8yVjGCeZxlwf4kAIJIB7rC788hrMp4zhMv42ZCuNVXO7luTU1gmuBWpo039WwfoWj2x1JhcLzDugEsAt4rMivZQkh7UpUXFTkz28OQmFHsz8CkC9nMSR5Tl06AkX7UrzNJ42Ap33sJc0EU2T4IqQYDoA4dIKhYWSwPNc1f3YkeTZkM9LzHDJTaXRckoPRWvMjK/oSVWz1aGfiatBETJkJ9pTtWq2kHO6pnJjqAjWJHsOHip9Su9kbRrEgVTrplycoCglFHlvUU7EIeme5Mx0YHU4Ht6d7nSmIcjc6T2NnbIzWXqb9acVqk59x3nTV0xztx85WEsk+bLf6G/bDtarYRl1jjnuPgZ6Zv5tY7vKZM0XyHyZZs4UP7sY2ajm3qWLkudpNGYeOvmtqMhU6/1FwX5kj3/kt6sA53OmW7yYECP922jrpjAayqk/IVyBoLBq8SJGUksilOeLPS02DZ+3pe9s5Onv/Ze18eAHJlsjaMMpzpr2hxK5FbnnX1SiWW6vB+FD1XWCZ9lmqFQhV6OaxCGSU3iz9o6YZqzneN166VyIVfhCmcLrBEjZEKuVHSNXh/l36dIhPvSARQd6dYEEo3q0DRoDrx0odUbqFoIaLKC3EDNHAXY6AutSR5PAv74hJsc3NK9alsavtIdioZVw+QTg/z8j2ulyO4yDndjf3KfuZACQot4XFCma/5kyOpOVJfcpZ+bsRpLjLzgWNDnpt6552p7Bv6X0EKTJ5/SART+FXISc9BBkkdKDCXf1Cce1KSsatHojKWlC7R/LaTQ2mZkI6IhXK6BLHAPxyR52pezgp2fsLouiVLFxPmMXYxwxgbzSHta6U1itaQ6FzoCMMsdXRUKsxSkvlhtpocWiXM0rpEYcY9BjtyrsKTsgpchZIyXIVDq3MV6crnKnPqJ89VTm2etCJ5MMgIuy1LWFKcx9qXMqwlx3Oo+6CCVgF/OQef8iQuytmTORst+vwXI/CovJyhMiPCYfNWNd0CQvPPgeU5vS1nFfeomDH7QJZZLg6P33cz/HIFOSx/1IsdAq5ljsvlGZdMSIkTdcbz16UjmEnz2L2UjV42nMOp7LpL6BQwKb4tIM/fV4usSV4oYNQtFlOXFOSxNsk2+omRHMIKC7CUJgFX3IsRR0lT4u5EOZoSggU0JUZWoimpSUgT5w6IPE13i2zIvWHHeKsV85aLxCNyNiZyKU+Uw+xSb7YIqJa7bVi+cZkTB+E+OtyYFrQtv300bcvogy5uKwwF9sic0qUmIHnclJ506VO6tHimWflhslkZCCS38GXOtzN3gkr1MsXn6d2dTImUlLxJlNM87L6jVKKLeXRmdF18OooOZm5pkGg7Ju89CWIr53svAuJ2L/Wj614mlRX2LgXXwqp2LqtPo6tzKZxGft9SxrfZO22VfdsFJPgaCG7RSZzTZdL/cqFJ9NIch8iiD0JNwnPJkHvkNNGm7iFk52Z/XbN1cgYYZv+cjV2B/czDyxIeFrLA93ROZVMEKPB48vJi2ZQ1FJQ1bMY3ZGI6utIqmGLOBYcuBG6Gql4xhC26CJ4cJhfmpezd3rIcjkSXfCU/SiEHiavBAh6LC7AkBpfJ6kfGgaJtpkCKy+4Lz6XZ1B3L0lw/kWcXJNgML3ULmMzZdWXkuSw+75HFWgAuxWD6enrp9YzCiw5l1nN8j77yemYIX8h63o7g5dZz5u8FyFwPsrRDBwYrb9whNz6m6qZtgHH3uuD7yO+YBOIIucS7deiS28P9P+XjfLkQhwh/noPwXs8ICz0jLPWMsNYzwnrPCJ/2jPC9nhE+l4irAVOnf0VBhKFKWfHHHIRbPSPc6RmheM0WIXzSM0Lh9q8Q4aBnhNc9I/ywZ4Qf9Yzwc0D4P7v0SwhRPwAA";
126     private static final Log log = LogFactory.getLog(GenericFormatImportUI.class);
127     private static final long serialVersionUID = 1L;
128 
129     /*-----------------------------------------------------------------------*/
130     /*--------------------------- Internal states ---------------------------*/
131     /*-----------------------------------------------------------------------*/
132 
133     protected List<Object> $activeBindings = new ArrayList<Object>();
134     protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
135     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
136     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
137     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
138     private boolean allComponentsCreated;
139     protected final JAXXContext delegateContext = new DefaultJAXXContext();
140 
141     /*-----------------------------------------------------------------------*/
142     /*------------------------ Protected components  ------------------------*/
143     /*-----------------------------------------------------------------------*/
144 
145     protected JCheckBox authorizeObsoleteReferentialsCheckBox;
146     protected TuttiHelpBroker broker;
147     protected JCheckBox checkWeightsCheckBox;
148     protected JCheckBox cleanWeightsCheckBox;
149     protected JButton closeButton;
150     protected JScrollPane dataSelectionPane;
151     protected JTree dataSelectionTree;
152     protected JToolBar dataSelectionTreeHeader;
153     protected JButton foldAllButton;
154     protected GenericFormatImportUI genericFormatImportTopPanel = this;
155     protected final GenericFormatImportUIHandler handler = createHandler();
156     protected JCheckBox importAccidentalCatchCheckBox;
157     protected JCheckBox importAttachmentsCheckBox;
158     protected JCheckBox importBenthosCheckBox;
159     protected JButton importButton;
160     protected JPanel importConfiguration;
161     @ValidatorField( validatorId = "validator",  propertyName = "importFile",  editorName = "importFile")
162     protected FileEditor importFile;
163     protected JLabel importFileLabel;
164     protected JCheckBox importIndividualObservationCheckBox;
165     protected JCheckBox importMarineLitterCheckBox;
166     protected JPanel importOptions;
167     protected Table importPanel;
168     protected JPanel importResultPanel;
169     protected JLabel importResultText;
170     protected JCheckBox importSpeciesCheckBox;
171     protected GenericFormatImportUIModel model;
172     protected JButton openImportReportButton;
173     protected JButton openValidateReportButton;
174     @ValidatorField( validatorId = "validator",  propertyName = "program",  editorName = "programComboBox")
175     protected BeanFilterableComboBox<Program> programComboBox;
176     protected JLabel programLabel;
177     protected JButton saveImportReportButton;
178     protected JButton saveValidateReportButton;
179     protected JButton selectAllButton;
180     protected DataSelectTreeModel treeModel;
181     protected JButton unfoldAllButton;
182     protected JButton unselectAllButton;
183     protected JCheckBox updateCruisesCheckBox;
184     protected JCheckBox updateOperationsCheckBox;
185     protected JButton validateButton;
186     protected Table validateFilePanel;
187     protected JPanel validateResultPanel;
188     protected JLabel validateResultText;
189     @Validator( validatorId = "validator")
190     protected SwingValidator<GenericFormatImportUIModel> validator;
191     protected List<String> validatorIds = new ArrayList<String>();
192 
193     /*-----------------------------------------------------------------------*/
194     /*------------------------- Private components  -------------------------*/
195     /*-----------------------------------------------------------------------*/
196 
197     private JPanel $JPanel0;
198     private JPanel $JPanel1;
199     private JPanel $JPanel2;
200     private JPanel $JPanel3;
201     private JToolBar $JToolBar0;
202     private JToolBar $JToolBar1;
203     private Table $Table0;
204 
205     /*-----------------------------------------------------------------------*/
206     /*---------------------------- Constructors  ----------------------------*/
207     /*-----------------------------------------------------------------------*/
208 
209     public GenericFormatImportUI(TuttiUI parentUI) {
210         TuttiUIUtil.setParentUI(this, parentUI);
211             $initialize();
212     }
213 
214     public GenericFormatImportUI(LayoutManager param0, boolean param1) {
215         super(param0 ,param1);
216         $initialize();
217     }
218 
219     public GenericFormatImportUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
220         super(param1 ,param2);
221         JAXXUtil.initContext(this, parentContext);
222         $initialize();
223     }
224 
225     public GenericFormatImportUI(LayoutManager param0) {
226         super(param0);
227         $initialize();
228     }
229 
230     public GenericFormatImportUI(JAXXContext parentContext, LayoutManager param1) {
231         super(param1);
232         JAXXUtil.initContext(this, parentContext);
233         $initialize();
234     }
235 
236     public GenericFormatImportUI() {
237         $initialize();
238     }
239 
240     public GenericFormatImportUI(JAXXContext parentContext) {
241         JAXXUtil.initContext(this, parentContext);
242         $initialize();
243     }
244 
245     public GenericFormatImportUI(boolean param0) {
246         super(param0);
247         $initialize();
248     }
249 
250     public GenericFormatImportUI(JAXXContext parentContext, boolean param1) {
251         super(param1);
252         JAXXUtil.initContext(this, parentContext);
253         $initialize();
254     }
255 
256     /*-----------------------------------------------------------------------*/
257     /*--------------------------- Statics methods ---------------------------*/
258     /*-----------------------------------------------------------------------*/
259 
260     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
261         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
262     }
263 
264     /*-----------------------------------------------------------------------*/
265     /*---------------------- JAXXObject implementation ----------------------*/
266     /*-----------------------------------------------------------------------*/
267 
268     @Override
269     public void applyDataBinding(String $binding) {
270         if (allComponentsCreated && $bindings.containsKey($binding)) {
271             getDataBinding($binding).applyDataBinding();
272         }
273         processDataBinding($binding);
274     }
275 
276     @Override
277     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
278         super.firePropertyChange(propertyName, oldValue, newValue);
279     }
280 
281     @Override
282     public Map<String, Object> get$objectMap() {
283         return $objectMap;
284     }
285 
286     @Override
287     public JAXXBinding getDataBinding(String bindingId) {
288         return $bindings.get(bindingId);
289     }
290 
291     @Override
292     public JAXXBinding[] getDataBindings() {
293         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
294     }
295 
296     @Override
297     public Object getObjectById(String id) {
298         return $objectMap.get(id);
299     }
300 
301     @Override
302     public void processDataBinding(String $binding, boolean $force) {
303         if (!$force && $activeBindings.contains($binding)) { 
304             return;
305         }
306         $activeBindings.add($binding);
307         try {
308             if (allComponentsCreated && $bindings.containsKey($binding)) {
309                 getDataBinding($binding).processDataBinding();
310             }
311         } finally {
312             $activeBindings.remove($binding);
313         }
314     }
315 
316     @Override
317     public void processDataBinding(String $binding) {
318         processDataBinding($binding, false);
319     }
320 
321     @Override
322     public void registerDataBinding(JAXXBinding binding) {
323         $bindings.put(binding.getId(), binding);
324     }
325 
326     @Override
327     public void removeDataBinding(String $binding) {
328         if (allComponentsCreated && $bindings.containsKey($binding)) {
329             getDataBinding($binding).removeDataBinding();
330         }
331     }
332 
333     /*-----------------------------------------------------------------------*/
334     /*--------------------- JAXXContext implementation  ---------------------*/
335     /*-----------------------------------------------------------------------*/
336 
337     @Override
338     public <T> T getContextValue(Class<T> clazz) {
339         return delegateContext.getContextValue(clazz, null);
340     }
341 
342     @Override
343     public <T> T getContextValue(Class<T> clazz, String name) {
344         return delegateContext.getContextValue(clazz, name);
345     }
346 
347     @Override
348     public JAXXContext getDelegateContext() {
349         return delegateContext;
350     }
351 
352     @Override
353     public <O extends Container> O getParentContainer(Class<O> clazz) {
354         return SwingUtil.getParentContainer(this, clazz);
355     }
356 
357     @Override
358     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
359         return SwingUtil.getParentContainer(source, clazz);
360     }
361 
362     @Override
363     public <T> void removeContextValue(Class<T> clazz) {
364         delegateContext.removeContextValue(clazz, null);
365     }
366 
367     @Override
368     public <T> void removeContextValue(Class<T> clazz, String name) {
369         delegateContext.removeContextValue(clazz, name);
370     }
371 
372     @Override
373     public <T> void setContextValue(T o) {
374         delegateContext.setContextValue(o, null);
375     }
376 
377     @Override
378     public <T> void setContextValue(T o, String name) {
379         delegateContext.setContextValue(o, name);
380     }
381 
382     /*-----------------------------------------------------------------------*/
383     /*-------------------- JAXXValidator implementation  --------------------*/
384     /*-----------------------------------------------------------------------*/
385 
386     @Override
387     public SwingValidator<?> getValidator(String validatorId) {
388         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
389     }
390 
391     @Override
392     public List<String> getValidatorIds() {
393         return validatorIds;
394     }
395 
396     @Override
397     public void registerValidatorFields() {
398         SwingValidatorUtil.detectValidatorFields(this);
399     }
400 
401     /*-----------------------------------------------------------------------*/
402     /*---------------------------- Event methods ----------------------------*/
403     /*-----------------------------------------------------------------------*/
404 
405     public void doActionPerformed__on__importFile(ActionEvent event) {
406         if (log.isDebugEnabled()) {
407             log.debug(event);
408         }
409         handler.setFile(event, "importFile");
410     }
411 
412     public void doItemStateChanged__on__authorizeObsoleteReferentialsCheckBox(ItemEvent event) {
413         if (log.isDebugEnabled()) {
414             log.debug(event);
415         }
416         handler.setBoolean(event, "authorizeObsoleteReferentials");
417     }
418 
419     public void doItemStateChanged__on__checkWeightsCheckBox(ItemEvent event) {
420         if (log.isDebugEnabled()) {
421             log.debug(event);
422         }
423         handler.setBoolean(event, "checkWeights");
424     }
425 
426     public void doItemStateChanged__on__cleanWeightsCheckBox(ItemEvent event) {
427         if (log.isDebugEnabled()) {
428             log.debug(event);
429         }
430         handler.setBoolean(event, "cleanWeights");
431     }
432 
433     public void doItemStateChanged__on__importAccidentalCatchCheckBox(ItemEvent event) {
434         if (log.isDebugEnabled()) {
435             log.debug(event);
436         }
437         handler.setBoolean(event, "importAccidentalCatch");
438     }
439 
440     public void doItemStateChanged__on__importAttachmentsCheckBox(ItemEvent event) {
441         if (log.isDebugEnabled()) {
442             log.debug(event);
443         }
444         handler.setBoolean(event, "importAttachments");
445     }
446 
447     public void doItemStateChanged__on__importBenthosCheckBox(ItemEvent event) {
448         if (log.isDebugEnabled()) {
449             log.debug(event);
450         }
451         handler.setBoolean(event, "importBenthos");
452     }
453 
454     public void doItemStateChanged__on__importIndividualObservationCheckBox(ItemEvent event) {
455         if (log.isDebugEnabled()) {
456             log.debug(event);
457         }
458         handler.setBoolean(event, "importIndividualObservation");
459     }
460 
461     public void doItemStateChanged__on__importMarineLitterCheckBox(ItemEvent event) {
462         if (log.isDebugEnabled()) {
463             log.debug(event);
464         }
465         handler.setBoolean(event, "importMarineLitter");
466     }
467 
468     public void doItemStateChanged__on__importSpeciesCheckBox(ItemEvent event) {
469         if (log.isDebugEnabled()) {
470             log.debug(event);
471         }
472         handler.setBoolean(event, "importSpecies");
473     }
474 
475     public void doItemStateChanged__on__updateCruisesCheckBox(ItemEvent event) {
476         if (log.isDebugEnabled()) {
477             log.debug(event);
478         }
479         handler.setBoolean(event, "updateCruises");
480     }
481 
482     public void doItemStateChanged__on__updateOperationsCheckBox(ItemEvent event) {
483         if (log.isDebugEnabled()) {
484             log.debug(event);
485         }
486         handler.setBoolean(event, "updateOperations");
487     }
488 
489     /*-----------------------------------------------------------------------*/
490     /*----------------------- Public acessor methods  -----------------------*/
491     /*-----------------------------------------------------------------------*/
492 
493     public JCheckBox getAuthorizeObsoleteReferentialsCheckBox() {
494         return authorizeObsoleteReferentialsCheckBox;
495     }
496 
497     public TuttiHelpBroker getBroker() {
498         return broker;
499     }
500 
501     public JCheckBox getCheckWeightsCheckBox() {
502         return checkWeightsCheckBox;
503     }
504 
505     public JCheckBox getCleanWeightsCheckBox() {
506         return cleanWeightsCheckBox;
507     }
508 
509     public JButton getCloseButton() {
510         return closeButton;
511     }
512 
513     public JScrollPane getDataSelectionPane() {
514         return dataSelectionPane;
515     }
516 
517     public JTree getDataSelectionTree() {
518         return dataSelectionTree;
519     }
520 
521     public JToolBar getDataSelectionTreeHeader() {
522         return dataSelectionTreeHeader;
523     }
524 
525     public JButton getFoldAllButton() {
526         return foldAllButton;
527     }
528 
529     public GenericFormatImportUIHandler getHandler() {
530         return handler;
531     }
532 
533     public JCheckBox getImportAccidentalCatchCheckBox() {
534         return importAccidentalCatchCheckBox;
535     }
536 
537     public JCheckBox getImportAttachmentsCheckBox() {
538         return importAttachmentsCheckBox;
539     }
540 
541     public JCheckBox getImportBenthosCheckBox() {
542         return importBenthosCheckBox;
543     }
544 
545     public JButton getImportButton() {
546         return importButton;
547     }
548 
549     public JPanel getImportConfiguration() {
550         return importConfiguration;
551     }
552 
553     public FileEditor getImportFile() {
554         return importFile;
555     }
556 
557     public JLabel getImportFileLabel() {
558         return importFileLabel;
559     }
560 
561     public JCheckBox getImportIndividualObservationCheckBox() {
562         return importIndividualObservationCheckBox;
563     }
564 
565     public JCheckBox getImportMarineLitterCheckBox() {
566         return importMarineLitterCheckBox;
567     }
568 
569     public JPanel getImportOptions() {
570         return importOptions;
571     }
572 
573     public Table getImportPanel() {
574         return importPanel;
575     }
576 
577     public JPanel getImportResultPanel() {
578         return importResultPanel;
579     }
580 
581     public JLabel getImportResultText() {
582         return importResultText;
583     }
584 
585     public JCheckBox getImportSpeciesCheckBox() {
586         return importSpeciesCheckBox;
587     }
588 
589     public GenericFormatImportUIModel getModel() {
590         return model;
591     }
592 
593     public JButton getOpenImportReportButton() {
594         return openImportReportButton;
595     }
596 
597     public JButton getOpenValidateReportButton() {
598         return openValidateReportButton;
599     }
600 
601     public BeanFilterableComboBox<Program> getProgramComboBox() {
602         return programComboBox;
603     }
604 
605     public JLabel getProgramLabel() {
606         return programLabel;
607     }
608 
609     public JButton getSaveImportReportButton() {
610         return saveImportReportButton;
611     }
612 
613     public JButton getSaveValidateReportButton() {
614         return saveValidateReportButton;
615     }
616 
617     public JButton getSelectAllButton() {
618         return selectAllButton;
619     }
620 
621     public DataSelectTreeModel getTreeModel() {
622         return treeModel;
623     }
624 
625     public JButton getUnfoldAllButton() {
626         return unfoldAllButton;
627     }
628 
629     public JButton getUnselectAllButton() {
630         return unselectAllButton;
631     }
632 
633     public JCheckBox getUpdateCruisesCheckBox() {
634         return updateCruisesCheckBox;
635     }
636 
637     public JCheckBox getUpdateOperationsCheckBox() {
638         return updateOperationsCheckBox;
639     }
640 
641     public JButton getValidateButton() {
642         return validateButton;
643     }
644 
645     public Table getValidateFilePanel() {
646         return validateFilePanel;
647     }
648 
649     public JPanel getValidateResultPanel() {
650         return validateResultPanel;
651     }
652 
653     public JLabel getValidateResultText() {
654         return validateResultText;
655     }
656 
657     public SwingValidator<GenericFormatImportUIModel> getValidator() {
658         return validator;
659     }
660 
661     /*-----------------------------------------------------------------------*/
662     /*---------------------------- Other methods ----------------------------*/
663     /*-----------------------------------------------------------------------*/
664 
665     @Override
666     public void registerHelpId(TuttiHelpBroker broker, Component component, String helpId) {
667         broker.installUI(component, helpId);
668     }
669 
670     @Override
671     public void showHelp(String helpId) {
672         getBroker().showHelp(this, helpId);
673     }
674 
675     /*-----------------------------------------------------------------------*/
676     /*--------------------- Protected acessors methods  ---------------------*/
677     /*-----------------------------------------------------------------------*/
678 
679     protected JPanel get$JPanel0() {
680         return $JPanel0;
681     }
682 
683     protected JPanel get$JPanel1() {
684         return $JPanel1;
685     }
686 
687     protected JPanel get$JPanel2() {
688         return $JPanel2;
689     }
690 
691     protected JPanel get$JPanel3() {
692         return $JPanel3;
693     }
694 
695     protected JToolBar get$JToolBar0() {
696         return $JToolBar0;
697     }
698 
699     protected JToolBar get$JToolBar1() {
700         return $JToolBar1;
701     }
702 
703     protected Table get$Table0() {
704         return $Table0;
705     }
706 
707     /*-----------------------------------------------------------------------*/
708     /*--------------------- Components creation methods ---------------------*/
709     /*-----------------------------------------------------------------------*/
710 
711     protected void addChildrenToDataSelectionPane() {
712         if (!allComponentsCreated) {
713             return;
714         }
715         dataSelectionPane.getViewport().add(dataSelectionTree);
716     }
717 
718     protected void addChildrenToDataSelectionTreeHeader() {
719         if (!allComponentsCreated) {
720             return;
721         }
722         dataSelectionTreeHeader.add(unfoldAllButton);
723         dataSelectionTreeHeader.add(foldAllButton);
724         dataSelectionTreeHeader.add(selectAllButton);
725         dataSelectionTreeHeader.add(unselectAllButton);
726     }
727 
728     protected void addChildrenToGenericFormatImportTopPanel() {
729         if (!allComponentsCreated) {
730             return;
731         }
732         add(validateFilePanel, BorderLayout.NORTH);
733         add(importPanel, BorderLayout.CENTER);
734         add($Table0, BorderLayout.SOUTH);
735     }
736 
737     protected void addChildrenToImportConfiguration() {
738         if (!allComponentsCreated) {
739             return;
740         }
741         importConfiguration.add(dataSelectionPane, BorderLayout.CENTER);
742         importConfiguration.add(importOptions, BorderLayout.EAST);
743         importConfiguration.add(dataSelectionTreeHeader, BorderLayout.SOUTH);
744     }
745 
746     protected void addChildrenToImportOptions() {
747         if (!allComponentsCreated) {
748             return;
749         }
750         importOptions.add($JPanel1, BorderLayout.NORTH);
751     }
752 
753     protected void addChildrenToImportPanel() {
754         if (!allComponentsCreated) {
755             return;
756         }
757         importPanel.add(importConfiguration, new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
758         importPanel.add($JPanel2, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 15, 1, new Insets(3, 3, 3, 3), 0, 0));
759         importPanel.add(importResultPanel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
760     }
761 
762     protected void addChildrenToImportResultPanel() {
763         if (!allComponentsCreated) {
764             return;
765         }
766         importResultPanel.add(importResultText, BorderLayout.WEST);
767         importResultPanel.add($JToolBar1, BorderLayout.EAST);
768     }
769 
770     protected void addChildrenToValidateFilePanel() {
771         if (!allComponentsCreated) {
772             return;
773         }
774         validateFilePanel.add(programLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
775         validateFilePanel.add(SwingUtil.boxComponentWithJxLayer(programComboBox), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
776         validateFilePanel.add(importFileLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
777         validateFilePanel.add(SwingUtil.boxComponentWithJxLayer(importFile), new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
778         validateFilePanel.add(authorizeObsoleteReferentialsCheckBox, new GridBagConstraints(0, 2, 2, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
779         validateFilePanel.add($JPanel0, new GridBagConstraints(0, 3, 2, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
780         validateFilePanel.add(validateResultPanel, new GridBagConstraints(0, 4, 2, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
781     }
782 
783     protected void addChildrenToValidateResultPanel() {
784         if (!allComponentsCreated) {
785             return;
786         }
787         validateResultPanel.add(validateResultText, BorderLayout.WEST);
788         validateResultPanel.add($JToolBar0, BorderLayout.EAST);
789     }
790 
791     protected void addChildrenToValidator() {
792         if (!allComponentsCreated) {
793             return;
794         }
795         validator.setUiClass(ImageValidationUI.class);
796         validator.setBean(model);
797     }
798 
799     protected void createAuthorizeObsoleteReferentialsCheckBox() {
800         $objectMap.put("authorizeObsoleteReferentialsCheckBox", authorizeObsoleteReferentialsCheckBox = new JCheckBox());
801         
802         authorizeObsoleteReferentialsCheckBox.setName("authorizeObsoleteReferentialsCheckBox");
803         authorizeObsoleteReferentialsCheckBox.setText(t("tutti.genericFormatImport.field.authorizeObsoleteReferentials"));
804         authorizeObsoleteReferentialsCheckBox.setToolTipText(t("tutti.genericFormatImport.field.authorizeObsoleteReferentials.tip"));
805         authorizeObsoleteReferentialsCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__authorizeObsoleteReferentialsCheckBox"));
806         authorizeObsoleteReferentialsCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.authorizeObsoleteReferentials.help");
807     }
808 
809     protected void createBroker() {
810         $objectMap.put("broker", broker = new TuttiHelpBroker("tutti.genericFormatimport.help"));
811     }
812 
813     protected void createCheckWeightsCheckBox() {
814         $objectMap.put("checkWeightsCheckBox", checkWeightsCheckBox = new JCheckBox());
815         
816         checkWeightsCheckBox.setName("checkWeightsCheckBox");
817         checkWeightsCheckBox.setText(t("tutti.genericFormatImport.field.checkWeights"));
818         checkWeightsCheckBox.setToolTipText(t("tutti.genericFormatImport.field.checkWeights.tip"));
819         checkWeightsCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__checkWeightsCheckBox"));
820         checkWeightsCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.checkWeights.help");
821     }
822 
823     protected void createCleanWeightsCheckBox() {
824         $objectMap.put("cleanWeightsCheckBox", cleanWeightsCheckBox = new JCheckBox());
825         
826         cleanWeightsCheckBox.setName("cleanWeightsCheckBox");
827         cleanWeightsCheckBox.setText(t("tutti.genericFormatImport.field.cleanWeights"));
828         cleanWeightsCheckBox.setToolTipText(t("tutti.genericFormatImport.field.cleanWeights.tip"));
829         cleanWeightsCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__cleanWeightsCheckBox"));
830         cleanWeightsCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.cleanWeights.help");
831     }
832 
833     protected void createCloseButton() {
834         $objectMap.put("closeButton", closeButton = new JButton());
835         
836         closeButton.setName("closeButton");
837         closeButton.setText(t("tutti.genericFormatImport.action.closeGenericFormatImport"));
838         closeButton.setToolTipText(t("tutti.genericFormatImport.action.closeGenericFormatImport.tip"));
839         closeButton.putClientProperty("help", "tutti.genericFormatImport.action.closeGenericFormatImport.help");
840         closeButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.actions.OpenHomeScreenAction.class);
841     }
842 
843     protected void createDataSelectionPane() {
844         $objectMap.put("dataSelectionPane", dataSelectionPane = new JScrollPane());
845         
846         dataSelectionPane.setName("dataSelectionPane");
847     }
848 
849     protected void createDataSelectionTree() {
850         $objectMap.put("dataSelectionTree", dataSelectionTree = new JTree());
851         
852         dataSelectionTree.setName("dataSelectionTree");
853         dataSelectionTree.setEditable(false);
854         dataSelectionTree.setToggleClickCount(2);
855         dataSelectionTree.setScrollsOnExpand(true);
856         dataSelectionTree.setRootVisible(false);
857     }
858 
859     protected void createDataSelectionTreeHeader() {
860         $objectMap.put("dataSelectionTreeHeader", dataSelectionTreeHeader = new JToolBar());
861         
862         dataSelectionTreeHeader.setName("dataSelectionTreeHeader");
863         dataSelectionTreeHeader.setBorderPainted(false);
864         dataSelectionTreeHeader.setFloatable(false);
865     }
866 
867     protected void createFoldAllButton() {
868         $objectMap.put("foldAllButton", foldAllButton = new JButton());
869         
870         foldAllButton.setName("foldAllButton");
871         foldAllButton.setToolTipText(t("tutti.genericFormatImport.action.foldAll.tip"));
872         foldAllButton.putClientProperty("help", "tutti.genericFormatImport.action.foldAll.help");
873         foldAllButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.ImportFoldAllDataAction.class);
874     }
875 
876     protected GenericFormatImportUIHandler createHandler() {
877         return new GenericFormatImportUIHandler();
878     }
879 
880     protected void createImportAccidentalCatchCheckBox() {
881         $objectMap.put("importAccidentalCatchCheckBox", importAccidentalCatchCheckBox = new JCheckBox());
882         
883         importAccidentalCatchCheckBox.setName("importAccidentalCatchCheckBox");
884         importAccidentalCatchCheckBox.setText(t("tutti.genericFormatImport.field.importAccidentalCatch"));
885         importAccidentalCatchCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importAccidentalCatch.tip"));
886         importAccidentalCatchCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importAccidentalCatchCheckBox"));
887         importAccidentalCatchCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importAccidentalCatch.help");
888     }
889 
890     protected void createImportAttachmentsCheckBox() {
891         $objectMap.put("importAttachmentsCheckBox", importAttachmentsCheckBox = new JCheckBox());
892         
893         importAttachmentsCheckBox.setName("importAttachmentsCheckBox");
894         importAttachmentsCheckBox.setText(t("tutti.genericFormatImport.field.importAttachments"));
895         importAttachmentsCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importAttachments.tip"));
896         importAttachmentsCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importAttachmentsCheckBox"));
897         importAttachmentsCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importAttachments.help");
898     }
899 
900     protected void createImportBenthosCheckBox() {
901         $objectMap.put("importBenthosCheckBox", importBenthosCheckBox = new JCheckBox());
902         
903         importBenthosCheckBox.setName("importBenthosCheckBox");
904         importBenthosCheckBox.setText(t("tutti.genericFormatImport.field.importBenthos"));
905         importBenthosCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importBenthos.tip"));
906         importBenthosCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importBenthosCheckBox"));
907         importBenthosCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importBenthos.help");
908     }
909 
910     protected void createImportButton() {
911         $objectMap.put("importButton", importButton = new JButton());
912         
913         importButton.setName("importButton");
914         importButton.setText(t("tutti.genericFormatImport.action.import"));
915         importButton.setToolTipText(t("tutti.genericFormatImport.action.import.tip"));
916         importButton.putClientProperty("help", "tutti.genericFormatImport.action.import.help");
917         importButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.GenericFormatImportAction.class);
918     }
919 
920     protected void createImportConfiguration() {
921         $objectMap.put("importConfiguration", importConfiguration = new JPanel());
922         
923         importConfiguration.setName("importConfiguration");
924         importConfiguration.setLayout(new BorderLayout());
925     }
926 
927     protected void createImportFile() {
928         $objectMap.put("importFile", importFile = new FileEditor());
929         
930         importFile.setName("importFile");
931         importFile.setAcceptAllFileFilterUsed(false);
932         importFile.setShowReset(true);
933         importFile.setDirectoryEnabled(false);
934         importFile.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__importFile"));
935     }
936 
937     protected void createImportFileLabel() {
938         $objectMap.put("importFileLabel", importFileLabel = new JLabel());
939         
940         importFileLabel.setName("importFileLabel");
941         importFileLabel.setText(t("tutti.genericFormatImport.field.importFile"));
942         importFileLabel.setToolTipText(t("tutti.genericFormatImport.field.importFile.tip"));
943     }
944 
945     protected void createImportIndividualObservationCheckBox() {
946         $objectMap.put("importIndividualObservationCheckBox", importIndividualObservationCheckBox = new JCheckBox());
947         
948         importIndividualObservationCheckBox.setName("importIndividualObservationCheckBox");
949         importIndividualObservationCheckBox.setText(t("tutti.genericFormatImport.field.importIndividualObservation"));
950         importIndividualObservationCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importIndividualObservation.tip"));
951         importIndividualObservationCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importIndividualObservationCheckBox"));
952         importIndividualObservationCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importIndividualObservation.help");
953     }
954 
955     protected void createImportMarineLitterCheckBox() {
956         $objectMap.put("importMarineLitterCheckBox", importMarineLitterCheckBox = new JCheckBox());
957         
958         importMarineLitterCheckBox.setName("importMarineLitterCheckBox");
959         importMarineLitterCheckBox.setText(t("tutti.genericFormatImport.field.importMarineLitter"));
960         importMarineLitterCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importMarineLitter.tip"));
961         importMarineLitterCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importMarineLitterCheckBox"));
962         importMarineLitterCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importMarineLitter.help");
963     }
964 
965     protected void createImportOptions() {
966         $objectMap.put("importOptions", importOptions = new JPanel());
967         
968         importOptions.setName("importOptions");
969         importOptions.setLayout(new BorderLayout());
970     }
971 
972     protected void createImportPanel() {
973         $objectMap.put("importPanel", importPanel = new Table());
974         
975         importPanel.setName("importPanel");
976     }
977 
978     protected void createImportResultPanel() {
979         $objectMap.put("importResultPanel", importResultPanel = new JPanel());
980         
981         importResultPanel.setName("importResultPanel");
982         importResultPanel.setLayout(new BorderLayout());
983         SwingUtil.setComponentHeight(importResultPanel,50);
984         importResultPanel.putClientProperty("help", "tutti.genericFormatImport.field.importResult.help");
985     }
986 
987     protected void createImportResultText() {
988         $objectMap.put("importResultText", importResultText = new JLabel());
989         
990         importResultText.setName("importResultText");
991         importResultText.putClientProperty("help", "tutti.genericFormatImport.field.importResult.help");
992     }
993 
994     protected void createImportSpeciesCheckBox() {
995         $objectMap.put("importSpeciesCheckBox", importSpeciesCheckBox = new JCheckBox());
996         
997         importSpeciesCheckBox.setName("importSpeciesCheckBox");
998         importSpeciesCheckBox.setText(t("tutti.genericFormatImport.field.importSpecies"));
999         importSpeciesCheckBox.setToolTipText(t("tutti.genericFormatImport.field.importSpecies.tip"));
1000         importSpeciesCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__importSpeciesCheckBox"));
1001         importSpeciesCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.importSpecies.help");
1002     }
1003 
1004     protected void createModel() {
1005         $objectMap.put("model", model = getContextValue(GenericFormatImportUIModel.class));
1006     }
1007 
1008     protected void createOpenImportReportButton() {
1009         $objectMap.put("openImportReportButton", openImportReportButton = new JButton());
1010         
1011         openImportReportButton.setName("openImportReportButton");
1012         openImportReportButton.setToolTipText(t("tutti.genericFormatImport.action.openImportReport.tip"));
1013         SwingUtil.setComponentHeight(openImportReportButton,50);
1014         openImportReportButton.putClientProperty("help", "tutti.genericFormatImport.action.openImportReport.help");
1015         openImportReportButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.OpenGenericFormatImportReportAction.class);
1016     }
1017 
1018     protected void createOpenValidateReportButton() {
1019         $objectMap.put("openValidateReportButton", openValidateReportButton = new JButton());
1020         
1021         openValidateReportButton.setName("openValidateReportButton");
1022         openValidateReportButton.setToolTipText(t("tutti.genericFormatImport.action.openValidateReport.tip"));
1023         SwingUtil.setComponentHeight(openValidateReportButton,50);
1024         openValidateReportButton.putClientProperty("help", "tutti.genericFormatImport.action.openValidateReport.help");
1025         openValidateReportButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.OpenGenericFormatValidateReportAction.class);
1026     }
1027 
1028     protected void createProgramComboBox() {
1029         $objectMap.put("programComboBox", programComboBox = new BeanFilterableComboBox<Program>(this));
1030         
1031         programComboBox.setName("programComboBox");
1032         programComboBox.setProperty("program");
1033         programComboBox.setShowReset(true);
1034         programComboBox.putClientProperty("help", "tutti.genericFormatImport.field.program.help");
1035         programComboBox.putClientProperty("validatorLabel", t("tutti.genericFormatImport.field.program"));
1036     }
1037 
1038     protected void createProgramLabel() {
1039         $objectMap.put("programLabel", programLabel = new JLabel());
1040         
1041         programLabel.setName("programLabel");
1042         programLabel.setText(t("tutti.genericFormatImport.field.program"));
1043         programLabel.setToolTipText(t("tutti.genericFormatImport.field.program.tip"));
1044         programLabel.putClientProperty("help", "tutti.genericFormatImport.field.program.help");
1045     }
1046 
1047     protected void createSaveImportReportButton() {
1048         $objectMap.put("saveImportReportButton", saveImportReportButton = new JButton());
1049         
1050         saveImportReportButton.setName("saveImportReportButton");
1051         saveImportReportButton.setToolTipText(t("tutti.genericFormatImport.action.saveImportReport.tip"));
1052         SwingUtil.setComponentHeight(saveImportReportButton,50);
1053         saveImportReportButton.putClientProperty("help", "tutti.genericFormatImport.action.saveImportReport.help");
1054         saveImportReportButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.SaveGenericFormatImportReportAction.class);
1055     }
1056 
1057     protected void createSaveValidateReportButton() {
1058         $objectMap.put("saveValidateReportButton", saveValidateReportButton = new JButton());
1059         
1060         saveValidateReportButton.setName("saveValidateReportButton");
1061         saveValidateReportButton.setToolTipText(t("tutti.genericFormatImport.action.saveValidateReport.tip"));
1062         SwingUtil.setComponentHeight(saveValidateReportButton,50);
1063         saveValidateReportButton.putClientProperty("help", "tutti.genericFormatValidate.action.saveValidateReport.help");
1064         saveValidateReportButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.SaveGenericFormatValidateReportAction.class);
1065     }
1066 
1067     protected void createSelectAllButton() {
1068         $objectMap.put("selectAllButton", selectAllButton = new JButton());
1069         
1070         selectAllButton.setName("selectAllButton");
1071         selectAllButton.setToolTipText(t("tutti.genericFormatImport.action.selectAll.tip"));
1072         selectAllButton.putClientProperty("help", "tutti.genericFormatImport.action.selectAll.help");
1073         selectAllButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.ImportSelectAllDataAction.class);
1074     }
1075 
1076     protected void createTreeModel() {
1077         $objectMap.put("treeModel", treeModel = new DataSelectTreeModel());
1078     }
1079 
1080     protected void createUnfoldAllButton() {
1081         $objectMap.put("unfoldAllButton", unfoldAllButton = new JButton());
1082         
1083         unfoldAllButton.setName("unfoldAllButton");
1084         unfoldAllButton.setToolTipText(t("tutti.genericFormatImport.action.unfoldAll.tip"));
1085         unfoldAllButton.putClientProperty("help", "tutti.genericFormatImport.action.unfoldAll.help");
1086         unfoldAllButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.ImportUnfoldAllDataAction.class);
1087     }
1088 
1089     protected void createUnselectAllButton() {
1090         $objectMap.put("unselectAllButton", unselectAllButton = new JButton());
1091         
1092         unselectAllButton.setName("unselectAllButton");
1093         unselectAllButton.setToolTipText(t("tutti.genericFormatImport.action.unselectAll.tip"));
1094         unselectAllButton.putClientProperty("help", "tutti.genericFormatImport.action.unselectAll.help");
1095         unselectAllButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.ImportUnselectAllDataAction.class);
1096     }
1097 
1098     protected void createUpdateCruisesCheckBox() {
1099         $objectMap.put("updateCruisesCheckBox", updateCruisesCheckBox = new JCheckBox());
1100         
1101         updateCruisesCheckBox.setName("updateCruisesCheckBox");
1102         updateCruisesCheckBox.setText(t("tutti.genericFormatImport.field.updateCruises"));
1103         updateCruisesCheckBox.setToolTipText(t("tutti.genericFormatImport.field.updateCruises.tip"));
1104         updateCruisesCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__updateCruisesCheckBox"));
1105         updateCruisesCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.updateCruises.help");
1106     }
1107 
1108     protected void createUpdateOperationsCheckBox() {
1109         $objectMap.put("updateOperationsCheckBox", updateOperationsCheckBox = new JCheckBox());
1110         
1111         updateOperationsCheckBox.setName("updateOperationsCheckBox");
1112         updateOperationsCheckBox.setText(t("tutti.genericFormatImport.field.updateOperations"));
1113         updateOperationsCheckBox.setToolTipText(t("tutti.genericFormatImport.field.updateOperations.tip"));
1114         updateOperationsCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__updateOperationsCheckBox"));
1115         updateOperationsCheckBox.putClientProperty("help", "tutti.genericFormatImport.field.updateOperations.help");
1116     }
1117 
1118     protected void createValidateButton() {
1119         $objectMap.put("validateButton", validateButton = new JButton());
1120         
1121         validateButton.setName("validateButton");
1122         validateButton.setText(t("tutti.genericFormatImport.action.validate"));
1123         validateButton.setToolTipText(t("tutti.genericFormatImport.action.validate.tip"));
1124         validateButton.putClientProperty("help", "tutti.genericFormatImport.action.validate.help");
1125         validateButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.genericformat.actions.GenericFormatValidateAction.class);
1126     }
1127 
1128     protected void createValidateFilePanel() {
1129         $objectMap.put("validateFilePanel", validateFilePanel = new Table());
1130         
1131         validateFilePanel.setName("validateFilePanel");
1132     }
1133 
1134     protected void createValidateResultPanel() {
1135         $objectMap.put("validateResultPanel", validateResultPanel = new JPanel());
1136         
1137         validateResultPanel.setName("validateResultPanel");
1138         validateResultPanel.setLayout(new BorderLayout());
1139         SwingUtil.setComponentHeight(validateResultPanel,50);
1140         validateResultPanel.putClientProperty("help", "tutti.genericFormatImport.field.validateResult.help");
1141     }
1142 
1143     protected void createValidateResultText() {
1144         $objectMap.put("validateResultText", validateResultText = new JLabel());
1145         
1146         validateResultText.setName("validateResultText");
1147         validateResultText.putClientProperty("help", "tutti.genericFormatImport.field.validateResult.help");
1148     }
1149 
1150     protected void createValidator() {
1151         $objectMap.put("validator", validator = SwingValidator.newValidator(GenericFormatImportUIModel.class, "edit"));
1152     }
1153 
1154     /*-----------------------------------------------------------------------*/
1155     /*------------------------ Internal jaxx methods ------------------------*/
1156     /*-----------------------------------------------------------------------*/
1157 
1158     private void $completeSetup() {
1159         allComponentsCreated = true;
1160         if (log.isDebugEnabled()) {
1161             log.debug(this);
1162         }
1163         addChildrenToGenericFormatImportTopPanel();
1164         addChildrenToValidator();
1165         addChildrenToValidateFilePanel();
1166         // inline complete setup of $JPanel0
1167         $JPanel0.add(validateButton);
1168         addChildrenToValidateResultPanel();
1169         // inline complete setup of $JToolBar0
1170         $JToolBar0.add(openValidateReportButton);
1171         $JToolBar0.add(saveValidateReportButton);
1172         addChildrenToImportPanel();
1173         addChildrenToImportConfiguration();
1174         addChildrenToDataSelectionPane();
1175         addChildrenToImportOptions();
1176         // inline complete setup of $JPanel1
1177         $JPanel1.add(updateCruisesCheckBox);
1178         $JPanel1.add(updateOperationsCheckBox);
1179         $JPanel1.add(importSpeciesCheckBox);
1180         $JPanel1.add(importBenthosCheckBox);
1181         $JPanel1.add(importMarineLitterCheckBox);
1182         $JPanel1.add(importAccidentalCatchCheckBox);
1183         $JPanel1.add(importIndividualObservationCheckBox);
1184         $JPanel1.add(importAttachmentsCheckBox);
1185         $JPanel1.add(cleanWeightsCheckBox);
1186         $JPanel1.add(checkWeightsCheckBox);
1187         addChildrenToDataSelectionTreeHeader();
1188         // inline complete setup of $JPanel2
1189         $JPanel2.add(importButton);
1190         addChildrenToImportResultPanel();
1191         // inline complete setup of $JToolBar1
1192         $JToolBar1.add(openImportReportButton);
1193         $JToolBar1.add(saveImportReportButton);
1194         // inline complete setup of $Table0
1195         $Table0.add($JPanel3, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1196         // inline complete setup of $JPanel3
1197         $JPanel3.add(closeButton);
1198         
1199         // apply 33 data bindings
1200         JAXXUtil.applyDataBinding(this, $bindings.keySet());
1201         
1202         // apply 36 property setters
1203         programComboBox.setBeanType(Program.class);
1204         validateFilePanel.setBorder(BorderFactory.createTitledBorder(t("tutti.genericFormatImport.validateImport.legend")));
1205         programLabel.setLabelFor(programComboBox);
1206         programComboBox.setBean(model);
1207         importFileLabel.setLabelFor(importFile);
1208         importFile.setExtsDescription(t("tutti.genericFormatImport.importFile.extension.description"));
1209         importFile.setExts(t("tutti.genericFormatImport.importFile.extension"));
1210         validateButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.genericFormatImport.action.validate.mnemonic"),'Z'));
1211         validateButton.setIcon(SwingUtil.createActionIcon("validate"));
1212         openValidateReportButton.setIcon(SwingUtil.createActionIcon("open-file"));
1213         saveValidateReportButton.setIcon(SwingUtil.createActionIcon("save"));
1214         importPanel.setBorder(BorderFactory.createTitledBorder(t("tutti.genericFormatImport.import.legend")));
1215         dataSelectionPane.setBorder(BorderFactory.createTitledBorder(t("tutti.genericFormatImport.selectData.legend")));
1216         dataSelectionPane.setColumnHeaderView(dataSelectionTreeHeader);
1217         dataSelectionTree.setCellRenderer(new ImportDataSelectTreeCellRenderer());
1218         dataSelectionTree.setModel(treeModel);
1219         importOptions.setBorder(BorderFactory.createTitledBorder(t("tutti.genericFormatImport.importOptions.legend")));
1220         unfoldAllButton.setIcon(SwingUtil.createActionIcon("expand"));
1221         foldAllButton.setIcon(SwingUtil.createActionIcon("collapse"));
1222         selectAllButton.setIcon(SwingUtil.createActionIcon("select"));
1223         unselectAllButton.setIcon(SwingUtil.createActionIcon("unselect"));
1224         importButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.genericFormatImport.action.import.mnemonic"),'Z'));
1225         importButton.setIcon(SwingUtil.createActionIcon("import"));
1226         openImportReportButton.setIcon(SwingUtil.createActionIcon("open-file"));
1227         saveImportReportButton.setIcon(SwingUtil.createActionIcon("save"));
1228         closeButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.genericFormatImport.action.closeGenericFormatImport.mnemonic"),'Z'));
1229         closeButton.setIcon(SwingUtil.createActionIcon("cancel"));
1230         // late initializer
1231         // help broker setup
1232         TuttiHelpBroker _broker = getBroker();
1233         registerHelpId(_broker, genericFormatImportTopPanel, "tutti.genericFormatImport.help");
1234         registerHelpId(_broker, programLabel, "tutti.genericFormatImport.field.program.help");
1235         registerHelpId(_broker, programComboBox, "tutti.genericFormatImport.field.program.help");
1236         registerHelpId(_broker, authorizeObsoleteReferentialsCheckBox, "tutti.genericFormatImport.field.authorizeObsoleteReferentials.help");
1237         registerHelpId(_broker, validateButton, "tutti.genericFormatImport.action.validate.help");
1238         registerHelpId(_broker, validateResultPanel, "tutti.genericFormatImport.field.validateResult.help");
1239         registerHelpId(_broker, validateResultText, "tutti.genericFormatImport.field.validateResult.help");
1240         registerHelpId(_broker, openValidateReportButton, "tutti.genericFormatImport.action.openValidateReport.help");
1241         registerHelpId(_broker, saveValidateReportButton, "tutti.genericFormatValidate.action.saveValidateReport.help");
1242         registerHelpId(_broker, updateCruisesCheckBox, "tutti.genericFormatImport.field.updateCruises.help");
1243         registerHelpId(_broker, updateOperationsCheckBox, "tutti.genericFormatImport.field.updateOperations.help");
1244         registerHelpId(_broker, importSpeciesCheckBox, "tutti.genericFormatImport.field.importSpecies.help");
1245         registerHelpId(_broker, importBenthosCheckBox, "tutti.genericFormatImport.field.importBenthos.help");
1246         registerHelpId(_broker, importMarineLitterCheckBox, "tutti.genericFormatImport.field.importMarineLitter.help");
1247         registerHelpId(_broker, importAccidentalCatchCheckBox, "tutti.genericFormatImport.field.importAccidentalCatch.help");
1248         registerHelpId(_broker, importIndividualObservationCheckBox, "tutti.genericFormatImport.field.importIndividualObservation.help");
1249         registerHelpId(_broker, importAttachmentsCheckBox, "tutti.genericFormatImport.field.importAttachments.help");
1250         registerHelpId(_broker, cleanWeightsCheckBox, "tutti.genericFormatImport.field.cleanWeights.help");
1251         registerHelpId(_broker, checkWeightsCheckBox, "tutti.genericFormatImport.field.checkWeights.help");
1252         registerHelpId(_broker, unfoldAllButton, "tutti.genericFormatImport.action.unfoldAll.help");
1253         registerHelpId(_broker, foldAllButton, "tutti.genericFormatImport.action.foldAll.help");
1254         registerHelpId(_broker, selectAllButton, "tutti.genericFormatImport.action.selectAll.help");
1255         registerHelpId(_broker, unselectAllButton, "tutti.genericFormatImport.action.unselectAll.help");
1256         registerHelpId(_broker, importButton, "tutti.genericFormatImport.action.import.help");
1257         registerHelpId(_broker, importResultPanel, "tutti.genericFormatImport.field.importResult.help");
1258         registerHelpId(_broker, importResultText, "tutti.genericFormatImport.field.importResult.help");
1259         registerHelpId(_broker, openImportReportButton, "tutti.genericFormatImport.action.openImportReport.help");
1260         registerHelpId(_broker, saveImportReportButton, "tutti.genericFormatImport.action.saveImportReport.help");
1261         registerHelpId(_broker, closeButton, "tutti.genericFormatImport.action.closeGenericFormatImport.help");
1262         _broker.prepareUI(this);
1263         // register 1 validator(s)
1264         validatorIds = SwingValidatorUtil.detectValidators(this);
1265         SwingValidatorUtil.installUI(this);
1266     }
1267 
1268     private void $initialize() {
1269         if (allComponentsCreated) {
1270             return;
1271         }
1272         if (log.isDebugEnabled()) {
1273             log.debug(this);
1274         }
1275         handler.beforeInit(this);
1276         $objectMap.put("genericFormatImportTopPanel", genericFormatImportTopPanel);
1277         createModel();
1278         createTreeModel();
1279         createBroker();
1280         createValidator();
1281         createValidateFilePanel();
1282         createProgramLabel();
1283         createProgramComboBox();
1284         createImportFileLabel();
1285         createImportFile();
1286         createAuthorizeObsoleteReferentialsCheckBox();
1287         // inline creation of $JPanel0
1288         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
1289         
1290         $JPanel0.setName("$JPanel0");
1291         $JPanel0.setLayout(new GridLayout(1, 0));
1292         SwingUtil.setComponentHeight($JPanel0,50);
1293         createValidateButton();
1294         createValidateResultPanel();
1295         createValidateResultText();
1296         // inline creation of $JToolBar0
1297         $objectMap.put("$JToolBar0", $JToolBar0 = new JToolBar());
1298         
1299         $JToolBar0.setName("$JToolBar0");
1300         $JToolBar0.setBorderPainted(false);
1301         $JToolBar0.setFloatable(false);
1302         createOpenValidateReportButton();
1303         createSaveValidateReportButton();
1304         createImportPanel();
1305         createImportConfiguration();
1306         createDataSelectionPane();
1307         createDataSelectionTree();
1308         createImportOptions();
1309         // inline creation of $JPanel1
1310         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
1311         
1312         $JPanel1.setName("$JPanel1");
1313         $JPanel1.setLayout(new GridLayout(0, 1));
1314         createUpdateCruisesCheckBox();
1315         createUpdateOperationsCheckBox();
1316         createImportSpeciesCheckBox();
1317         createImportBenthosCheckBox();
1318         createImportMarineLitterCheckBox();
1319         createImportAccidentalCatchCheckBox();
1320         createImportIndividualObservationCheckBox();
1321         createImportAttachmentsCheckBox();
1322         createCleanWeightsCheckBox();
1323         createCheckWeightsCheckBox();
1324         createDataSelectionTreeHeader();
1325         createUnfoldAllButton();
1326         createFoldAllButton();
1327         createSelectAllButton();
1328         createUnselectAllButton();
1329         // inline creation of $JPanel2
1330         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
1331         
1332         $JPanel2.setName("$JPanel2");
1333         $JPanel2.setLayout(new GridLayout(1, 0));
1334         SwingUtil.setComponentHeight($JPanel2,50);
1335         createImportButton();
1336         createImportResultPanel();
1337         createImportResultText();
1338         // inline creation of $JToolBar1
1339         $objectMap.put("$JToolBar1", $JToolBar1 = new JToolBar());
1340         
1341         $JToolBar1.setName("$JToolBar1");
1342         $JToolBar1.setBorderPainted(false);
1343         $JToolBar1.setFloatable(false);
1344         createOpenImportReportButton();
1345         createSaveImportReportButton();
1346         // inline creation of $Table0
1347         $objectMap.put("$Table0", $Table0 = new Table());
1348         
1349         $Table0.setName("$Table0");
1350         // inline creation of $JPanel3
1351         $objectMap.put("$JPanel3", $JPanel3 = new JPanel());
1352         
1353         $JPanel3.setName("$JPanel3");
1354         $JPanel3.setLayout(new GridLayout(1, 0));
1355         SwingUtil.setComponentHeight($JPanel3,50);
1356         createCloseButton();
1357         // inline creation of genericFormatImportTopPanel
1358         setName("genericFormatImportTopPanel");
1359         setLayout(new BorderLayout());
1360         genericFormatImportTopPanel.putClientProperty("help", "tutti.genericFormatImport.help");
1361         
1362         // registers 33 data bindings
1363         $registerDefaultBindings();
1364         $completeSetup();
1365         handler.afterInit(this);
1366     }
1367 
1368     private void $registerDefaultBindings() {
1369         // register 33 data bindings
1370         registerDataBinding(new DefaultJAXXBinding(this, BINDING_PROGRAM_COMBO_BOX_SELECTED_ITEM, true) {
1371         
1372             @Override
1373             public void applyDataBinding() {
1374                 if (model != null) {
1375                     model.addPropertyChangeListener("program", this);
1376                 }
1377             }
1378         
1379             @Override
1380             public void processDataBinding() {
1381                 if (model != null) {
1382                     programComboBox.setSelectedItem(model.getProgram());
1383                 }
1384             }
1385         
1386             @Override
1387             public void removeDataBinding() {
1388                 if (model != null) {
1389                     model.removePropertyChangeListener("program", this);
1390                 }
1391             }
1392         });
1393         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_FILE_SELECTED_FILE, true) {
1394         
1395             @Override
1396             public void applyDataBinding() {
1397                 if (model != null) {
1398                     model.addPropertyChangeListener("importFile", this);
1399                 }
1400             }
1401         
1402             @Override
1403             public void processDataBinding() {
1404                 if (model != null) {
1405                     importFile.setSelectedFile(model.getImportFile());
1406                 }
1407             }
1408         
1409             @Override
1410             public void removeDataBinding() {
1411                 if (model != null) {
1412                     model.removePropertyChangeListener("importFile", this);
1413                 }
1414             }
1415         });
1416         registerDataBinding(new DefaultJAXXBinding(this, BINDING_AUTHORIZE_OBSOLETE_REFERENTIALS_CHECK_BOX_SELECTED, true) {
1417         
1418             @Override
1419             public void applyDataBinding() {
1420                 if (model != null) {
1421                     model.addPropertyChangeListener("authorizeObsoleteReferentials", this);
1422                 }
1423             }
1424         
1425             @Override
1426             public void processDataBinding() {
1427                 if (model != null) {
1428                     authorizeObsoleteReferentialsCheckBox.setSelected(model.isAuthorizeObsoleteReferentials());
1429                 }
1430             }
1431         
1432             @Override
1433             public void removeDataBinding() {
1434                 if (model != null) {
1435                     model.removePropertyChangeListener("authorizeObsoleteReferentials", this);
1436                 }
1437             }
1438         });
1439         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_BUTTON_ENABLED, true) {
1440         
1441             @Override
1442             public void applyDataBinding() {
1443                 if (model != null) {
1444                     model.addPropertyChangeListener("canValidate", this);
1445                 }
1446             }
1447         
1448             @Override
1449             public void processDataBinding() {
1450                 if (model != null) {
1451                     validateButton.setEnabled(model.isCanValidate());
1452                 }
1453             }
1454         
1455             @Override
1456             public void removeDataBinding() {
1457                 if (model != null) {
1458                     model.removePropertyChangeListener("canValidate", this);
1459                 }
1460             }
1461         });
1462         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VALIDATE_RESULT_PANEL_VISIBLE, true) {
1463         
1464             @Override
1465             public void applyDataBinding() {
1466                 if (model != null) {
1467                     model.addPropertyChangeListener("validateResult", this);
1468                 }
1469             }
1470         
1471             @Override
1472             public void processDataBinding() {
1473                 if (model != null) {
1474                     validateResultPanel.setVisible(model.getValidateResult() != null);
1475                 }
1476             }
1477         
1478             @Override
1479             public void removeDataBinding() {
1480                 if (model != null) {
1481                     model.removePropertyChangeListener("validateResult", this);
1482                 }
1483             }
1484         });
1485         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_PANEL_VISIBLE, true, true) {
1486         
1487             @Override
1488             public void applyDataBinding() {
1489                 if (model != null) {
1490                     model.addPropertyChangeListener("validateDone", this);
1491                 }
1492                 if (model != null) {
1493                     model.addPropertyChangeListener("validateValid", this);
1494                 }
1495             }
1496         
1497             @Override
1498             public void processDataBinding() {
1499                 if (model != null) {
1500                     importPanel.setVisible(model.isValidateDone() && model.isValidateValid());
1501                 }
1502             }
1503         
1504             @Override
1505             public void removeDataBinding() {
1506                 if (model != null) {
1507                     model.removePropertyChangeListener("validateDone", this);
1508                 }
1509                 if (model != null) {
1510                     model.removePropertyChangeListener("validateValid", this);
1511                 }
1512             }
1513         });
1514         registerDataBinding(new DefaultJAXXBinding(this, BINDING_DATA_SELECTION_TREE_ENABLED, true) {
1515         
1516             @Override
1517             public void applyDataBinding() {
1518                 if (model != null) {
1519                     model.addPropertyChangeListener("importResult", this);
1520                 }
1521             }
1522         
1523             @Override
1524             public void processDataBinding() {
1525                 if (model != null) {
1526                     dataSelectionTree.setEnabled(model.getImportResult() == null);
1527                 }
1528             }
1529         
1530             @Override
1531             public void removeDataBinding() {
1532                 if (model != null) {
1533                     model.removePropertyChangeListener("importResult", this);
1534                 }
1535             }
1536         });
1537         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UPDATE_CRUISES_CHECK_BOX_ENABLED, true) {
1538         
1539             @Override
1540             public void applyDataBinding() {
1541                 if (model != null) {
1542                     model.addPropertyChangeListener("importResult", this);
1543                 }
1544             }
1545         
1546             @Override
1547             public void processDataBinding() {
1548                 if (model != null) {
1549                     updateCruisesCheckBox.setEnabled(model.getImportResult() == null);
1550                 }
1551             }
1552         
1553             @Override
1554             public void removeDataBinding() {
1555                 if (model != null) {
1556                     model.removePropertyChangeListener("importResult", this);
1557                 }
1558             }
1559         });
1560         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UPDATE_CRUISES_CHECK_BOX_SELECTED, true) {
1561         
1562             @Override
1563             public void applyDataBinding() {
1564                 if (model != null) {
1565                     model.addPropertyChangeListener("updateCruises", this);
1566                 }
1567             }
1568         
1569             @Override
1570             public void processDataBinding() {
1571                 if (model != null) {
1572                     updateCruisesCheckBox.setSelected(model.isUpdateCruises());
1573                 }
1574             }
1575         
1576             @Override
1577             public void removeDataBinding() {
1578                 if (model != null) {
1579                     model.removePropertyChangeListener("updateCruises", this);
1580                 }
1581             }
1582         });
1583         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UPDATE_OPERATIONS_CHECK_BOX_ENABLED, true) {
1584         
1585             @Override
1586             public void applyDataBinding() {
1587                 if (model != null) {
1588                     model.addPropertyChangeListener("importResult", this);
1589                 }
1590             }
1591         
1592             @Override
1593             public void processDataBinding() {
1594                 if (model != null) {
1595                     updateOperationsCheckBox.setEnabled(model.getImportResult() == null);
1596                 }
1597             }
1598         
1599             @Override
1600             public void removeDataBinding() {
1601                 if (model != null) {
1602                     model.removePropertyChangeListener("importResult", this);
1603                 }
1604             }
1605         });
1606         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UPDATE_OPERATIONS_CHECK_BOX_SELECTED, true) {
1607         
1608             @Override
1609             public void applyDataBinding() {
1610                 if (model != null) {
1611                     model.addPropertyChangeListener("updateOperations", this);
1612                 }
1613             }
1614         
1615             @Override
1616             public void processDataBinding() {
1617                 if (model != null) {
1618                     updateOperationsCheckBox.setSelected(model.isUpdateOperations());
1619                 }
1620             }
1621         
1622             @Override
1623             public void removeDataBinding() {
1624                 if (model != null) {
1625                     model.removePropertyChangeListener("updateOperations", this);
1626                 }
1627             }
1628         });
1629         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_SPECIES_CHECK_BOX_ENABLED, true) {
1630         
1631             @Override
1632             public void applyDataBinding() {
1633                 if (model != null) {
1634                     model.addPropertyChangeListener("importResult", this);
1635                 }
1636             }
1637         
1638             @Override
1639             public void processDataBinding() {
1640                 if (model != null) {
1641                     importSpeciesCheckBox.setEnabled(model.getImportResult() == null);
1642                 }
1643             }
1644         
1645             @Override
1646             public void removeDataBinding() {
1647                 if (model != null) {
1648                     model.removePropertyChangeListener("importResult", this);
1649                 }
1650             }
1651         });
1652         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_SPECIES_CHECK_BOX_SELECTED, true) {
1653         
1654             @Override
1655             public void applyDataBinding() {
1656                 if (model != null) {
1657                     model.addPropertyChangeListener("importSpecies", this);
1658                 }
1659             }
1660         
1661             @Override
1662             public void processDataBinding() {
1663                 if (model != null) {
1664                     importSpeciesCheckBox.setSelected(model.isImportSpecies());
1665                 }
1666             }
1667         
1668             @Override
1669             public void removeDataBinding() {
1670                 if (model != null) {
1671                     model.removePropertyChangeListener("importSpecies", this);
1672                 }
1673             }
1674         });
1675         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_BENTHOS_CHECK_BOX_ENABLED, true) {
1676         
1677             @Override
1678             public void applyDataBinding() {
1679                 if (model != null) {
1680                     model.addPropertyChangeListener("importResult", this);
1681                 }
1682             }
1683         
1684             @Override
1685             public void processDataBinding() {
1686                 if (model != null) {
1687                     importBenthosCheckBox.setEnabled(model.getImportResult() == null);
1688                 }
1689             }
1690         
1691             @Override
1692             public void removeDataBinding() {
1693                 if (model != null) {
1694                     model.removePropertyChangeListener("importResult", this);
1695                 }
1696             }
1697         });
1698         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_BENTHOS_CHECK_BOX_SELECTED, true) {
1699         
1700             @Override
1701             public void applyDataBinding() {
1702                 if (model != null) {
1703                     model.addPropertyChangeListener("importBenthos", this);
1704                 }
1705             }
1706         
1707             @Override
1708             public void processDataBinding() {
1709                 if (model != null) {
1710                     importBenthosCheckBox.setSelected(model.isImportBenthos());
1711                 }
1712             }
1713         
1714             @Override
1715             public void removeDataBinding() {
1716                 if (model != null) {
1717                     model.removePropertyChangeListener("importBenthos", this);
1718                 }
1719             }
1720         });
1721         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_MARINE_LITTER_CHECK_BOX_ENABLED, true) {
1722         
1723             @Override
1724             public void applyDataBinding() {
1725                 if (model != null) {
1726                     model.addPropertyChangeListener("importResult", this);
1727                 }
1728             }
1729         
1730             @Override
1731             public void processDataBinding() {
1732                 if (model != null) {
1733                     importMarineLitterCheckBox.setEnabled(model.getImportResult() == null);
1734                 }
1735             }
1736         
1737             @Override
1738             public void removeDataBinding() {
1739                 if (model != null) {
1740                     model.removePropertyChangeListener("importResult", this);
1741                 }
1742             }
1743         });
1744         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_MARINE_LITTER_CHECK_BOX_SELECTED, true) {
1745         
1746             @Override
1747             public void applyDataBinding() {
1748                 if (model != null) {
1749                     model.addPropertyChangeListener("importMarineLitter", this);
1750                 }
1751             }
1752         
1753             @Override
1754             public void processDataBinding() {
1755                 if (model != null) {
1756                     importMarineLitterCheckBox.setSelected(model.isImportMarineLitter());
1757                 }
1758             }
1759         
1760             @Override
1761             public void removeDataBinding() {
1762                 if (model != null) {
1763                     model.removePropertyChangeListener("importMarineLitter", this);
1764                 }
1765             }
1766         });
1767         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_ACCIDENTAL_CATCH_CHECK_BOX_ENABLED, true) {
1768         
1769             @Override
1770             public void applyDataBinding() {
1771                 if (model != null) {
1772                     model.addPropertyChangeListener("importResult", this);
1773                 }
1774             }
1775         
1776             @Override
1777             public void processDataBinding() {
1778                 if (model != null) {
1779                     importAccidentalCatchCheckBox.setEnabled(model.getImportResult() == null);
1780                 }
1781             }
1782         
1783             @Override
1784             public void removeDataBinding() {
1785                 if (model != null) {
1786                     model.removePropertyChangeListener("importResult", this);
1787                 }
1788             }
1789         });
1790         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_ACCIDENTAL_CATCH_CHECK_BOX_SELECTED, true) {
1791         
1792             @Override
1793             public void applyDataBinding() {
1794                 if (model != null) {
1795                     model.addPropertyChangeListener("importAccidentalCatch", this);
1796                 }
1797             }
1798         
1799             @Override
1800             public void processDataBinding() {
1801                 if (model != null) {
1802                     importAccidentalCatchCheckBox.setSelected(model.isImportAccidentalCatch());
1803                 }
1804             }
1805         
1806             @Override
1807             public void removeDataBinding() {
1808                 if (model != null) {
1809                     model.removePropertyChangeListener("importAccidentalCatch", this);
1810                 }
1811             }
1812         });
1813         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_INDIVIDUAL_OBSERVATION_CHECK_BOX_ENABLED, true) {
1814         
1815             @Override
1816             public void applyDataBinding() {
1817                 if (model != null) {
1818                     model.addPropertyChangeListener("importResult", this);
1819                 }
1820             }
1821         
1822             @Override
1823             public void processDataBinding() {
1824                 if (model != null) {
1825                     importIndividualObservationCheckBox.setEnabled(model.getImportResult() == null);
1826                 }
1827             }
1828         
1829             @Override
1830             public void removeDataBinding() {
1831                 if (model != null) {
1832                     model.removePropertyChangeListener("importResult", this);
1833                 }
1834             }
1835         });
1836         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_INDIVIDUAL_OBSERVATION_CHECK_BOX_SELECTED, true) {
1837         
1838             @Override
1839             public void applyDataBinding() {
1840                 if (model != null) {
1841                     model.addPropertyChangeListener("importIndividualObservation", this);
1842                 }
1843             }
1844         
1845             @Override
1846             public void processDataBinding() {
1847                 if (model != null) {
1848                     importIndividualObservationCheckBox.setSelected(model.isImportIndividualObservation());
1849                 }
1850             }
1851         
1852             @Override
1853             public void removeDataBinding() {
1854                 if (model != null) {
1855                     model.removePropertyChangeListener("importIndividualObservation", this);
1856                 }
1857             }
1858         });
1859         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_ATTACHMENTS_CHECK_BOX_ENABLED, true) {
1860         
1861             @Override
1862             public void applyDataBinding() {
1863                 if (model != null) {
1864                     model.addPropertyChangeListener("importResult", this);
1865                 }
1866             }
1867         
1868             @Override
1869             public void processDataBinding() {
1870                 if (model != null) {
1871                     importAttachmentsCheckBox.setEnabled(model.getImportResult() == null);
1872                 }
1873             }
1874         
1875             @Override
1876             public void removeDataBinding() {
1877                 if (model != null) {
1878                     model.removePropertyChangeListener("importResult", this);
1879                 }
1880             }
1881         });
1882         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_ATTACHMENTS_CHECK_BOX_SELECTED, true) {
1883         
1884             @Override
1885             public void applyDataBinding() {
1886                 if (model != null) {
1887                     model.addPropertyChangeListener("importAttachments", this);
1888                 }
1889             }
1890         
1891             @Override
1892             public void processDataBinding() {
1893                 if (model != null) {
1894                     importAttachmentsCheckBox.setSelected(model.isImportAttachments());
1895                 }
1896             }
1897         
1898             @Override
1899             public void removeDataBinding() {
1900                 if (model != null) {
1901                     model.removePropertyChangeListener("importAttachments", this);
1902                 }
1903             }
1904         });
1905         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CLEAN_WEIGHTS_CHECK_BOX_ENABLED, true) {
1906         
1907             @Override
1908             public void applyDataBinding() {
1909                 if (model != null) {
1910                     model.addPropertyChangeListener("importResult", this);
1911                 }
1912             }
1913         
1914             @Override
1915             public void processDataBinding() {
1916                 if (model != null) {
1917                     cleanWeightsCheckBox.setEnabled(model.getImportResult() == null);
1918                 }
1919             }
1920         
1921             @Override
1922             public void removeDataBinding() {
1923                 if (model != null) {
1924                     model.removePropertyChangeListener("importResult", this);
1925                 }
1926             }
1927         });
1928         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CLEAN_WEIGHTS_CHECK_BOX_SELECTED, true) {
1929         
1930             @Override
1931             public void applyDataBinding() {
1932                 if (model != null) {
1933                     model.addPropertyChangeListener("cleanWeights", this);
1934                 }
1935             }
1936         
1937             @Override
1938             public void processDataBinding() {
1939                 if (model != null) {
1940                     cleanWeightsCheckBox.setSelected(model.isCleanWeights());
1941                 }
1942             }
1943         
1944             @Override
1945             public void removeDataBinding() {
1946                 if (model != null) {
1947                     model.removePropertyChangeListener("cleanWeights", this);
1948                 }
1949             }
1950         });
1951         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CHECK_WEIGHTS_CHECK_BOX_ENABLED, true) {
1952         
1953             @Override
1954             public void applyDataBinding() {
1955                 if (model != null) {
1956                     model.addPropertyChangeListener("importResult", this);
1957                 }
1958             }
1959         
1960             @Override
1961             public void processDataBinding() {
1962                 if (model != null) {
1963                     checkWeightsCheckBox.setEnabled(model.getImportResult() == null);
1964                 }
1965             }
1966         
1967             @Override
1968             public void removeDataBinding() {
1969                 if (model != null) {
1970                     model.removePropertyChangeListener("importResult", this);
1971                 }
1972             }
1973         });
1974         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CHECK_WEIGHTS_CHECK_BOX_SELECTED, true) {
1975         
1976             @Override
1977             public void applyDataBinding() {
1978                 if (model != null) {
1979                     model.addPropertyChangeListener("checkWeights", this);
1980                 }
1981             }
1982         
1983             @Override
1984             public void processDataBinding() {
1985                 if (model != null) {
1986                     checkWeightsCheckBox.setSelected(model.isCheckWeights());
1987                 }
1988             }
1989         
1990             @Override
1991             public void removeDataBinding() {
1992                 if (model != null) {
1993                     model.removePropertyChangeListener("checkWeights", this);
1994                 }
1995             }
1996         });
1997         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UNFOLD_ALL_BUTTON_ENABLED, true) {
1998         
1999             @Override
2000             public void applyDataBinding() {
2001                 if (model != null) {
2002                     model.addPropertyChangeListener("importResult", this);
2003                 }
2004             }
2005         
2006             @Override
2007             public void processDataBinding() {
2008                 if (model != null) {
2009                     unfoldAllButton.setEnabled(model.getImportResult() == null);
2010                 }
2011             }
2012         
2013             @Override
2014             public void removeDataBinding() {
2015                 if (model != null) {
2016                     model.removePropertyChangeListener("importResult", this);
2017                 }
2018             }
2019         });
2020         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FOLD_ALL_BUTTON_ENABLED, true) {
2021         
2022             @Override
2023             public void applyDataBinding() {
2024                 if (model != null) {
2025                     model.addPropertyChangeListener("importResult", this);
2026                 }
2027             }
2028         
2029             @Override
2030             public void processDataBinding() {
2031                 if (model != null) {
2032                     foldAllButton.setEnabled(model.getImportResult() == null);
2033                 }
2034             }
2035         
2036             @Override
2037             public void removeDataBinding() {
2038                 if (model != null) {
2039                     model.removePropertyChangeListener("importResult", this);
2040                 }
2041             }
2042         });
2043         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SELECT_ALL_BUTTON_ENABLED, true) {
2044         
2045             @Override
2046             public void applyDataBinding() {
2047                 if (model != null) {
2048                     model.addPropertyChangeListener("importResult", this);
2049                 }
2050             }
2051         
2052             @Override
2053             public void processDataBinding() {
2054                 if (model != null) {
2055                     selectAllButton.setEnabled(model.getImportResult() == null);
2056                 }
2057             }
2058         
2059             @Override
2060             public void removeDataBinding() {
2061                 if (model != null) {
2062                     model.removePropertyChangeListener("importResult", this);
2063                 }
2064             }
2065         });
2066         registerDataBinding(new DefaultJAXXBinding(this, BINDING_UNSELECT_ALL_BUTTON_ENABLED, true) {
2067         
2068             @Override
2069             public void applyDataBinding() {
2070                 if (model != null) {
2071                     model.addPropertyChangeListener("importResult", this);
2072                 }
2073             }
2074         
2075             @Override
2076             public void processDataBinding() {
2077                 if (model != null) {
2078                     unselectAllButton.setEnabled(model.getImportResult() == null);
2079                 }
2080             }
2081         
2082             @Override
2083             public void removeDataBinding() {
2084                 if (model != null) {
2085                     model.removePropertyChangeListener("importResult", this);
2086                 }
2087             }
2088         });
2089         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_BUTTON_ENABLED, true, true) {
2090         
2091             @Override
2092             public void applyDataBinding() {
2093                 if (model != null) {
2094                     model.addPropertyChangeListener("canImport", this);
2095                 }
2096                 if (model != null) {
2097                     model.addPropertyChangeListener("importResult", this);
2098                 }
2099             }
2100         
2101             @Override
2102             public void processDataBinding() {
2103                 if (model != null) {
2104                     importButton.setEnabled(model.isCanImport() && model.getImportResult() == null);
2105                 }
2106             }
2107         
2108             @Override
2109             public void removeDataBinding() {
2110                 if (model != null) {
2111                     model.removePropertyChangeListener("canImport", this);
2112                 }
2113                 if (model != null) {
2114                     model.removePropertyChangeListener("importResult", this);
2115                 }
2116             }
2117         });
2118         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_RESULT_PANEL_VISIBLE, true) {
2119         
2120             @Override
2121             public void applyDataBinding() {
2122                 if (model != null) {
2123                     model.addPropertyChangeListener("importResult", this);
2124                 }
2125             }
2126         
2127             @Override
2128             public void processDataBinding() {
2129                 if (model != null) {
2130                     importResultPanel.setVisible(model.getImportResult() != null);
2131                 }
2132             }
2133         
2134             @Override
2135             public void removeDataBinding() {
2136                 if (model != null) {
2137                     model.removePropertyChangeListener("importResult", this);
2138                 }
2139             }
2140         });
2141     }
2142 
2143 }