View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.operation;
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.referential.Gear;
28  import fr.ifremer.tutti.persistence.entities.referential.Person;
29  import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation;
30  import fr.ifremer.tutti.persistence.entities.referential.Vessel;
31  import fr.ifremer.tutti.type.CoordinateEditorType;
32  import fr.ifremer.tutti.ui.swing.TuttiHelpBroker;
33  import fr.ifremer.tutti.ui.swing.content.operation.fishing.GearUseFeatureTabUI;
34  import fr.ifremer.tutti.ui.swing.content.operation.fishing.VesselUseFeatureTabUI;
35  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
36  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
37  import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
38  import java.awt.BorderLayout;
39  import java.awt.Color;
40  import java.awt.Component;
41  import java.awt.Container;
42  import java.awt.GridBagConstraints;
43  import java.awt.GridLayout;
44  import java.awt.Insets;
45  import java.awt.LayoutManager;
46  import java.awt.event.ActionEvent;
47  import java.awt.event.ActionListener;
48  import java.awt.event.FocusEvent;
49  import java.awt.event.FocusListener;
50  import java.awt.event.ItemEvent;
51  import java.awt.event.ItemListener;
52  import java.awt.event.KeyEvent;
53  import java.awt.event.KeyListener;
54  import java.util.ArrayList;
55  import java.util.HashMap;
56  import java.util.List;
57  import java.util.Map;
58  import java.util.TreeMap;
59  import javax.swing.BorderFactory;
60  import javax.swing.ButtonGroup;
61  import javax.swing.JButton;
62  import javax.swing.JCheckBox;
63  import javax.swing.JLabel;
64  import javax.swing.JMenu;
65  import javax.swing.JMenuBar;
66  import javax.swing.JMenuItem;
67  import javax.swing.JPanel;
68  import javax.swing.JRadioButton;
69  import javax.swing.JScrollPane;
70  import javax.swing.JTabbedPane;
71  import javax.swing.JTextArea;
72  import javax.swing.JTextField;
73  import javax.swing.JToolBar;
74  import jaxx.runtime.JAXXBinding;
75  import jaxx.runtime.JAXXContext;
76  import jaxx.runtime.JAXXObject;
77  import jaxx.runtime.JAXXObjectDescriptor;
78  import jaxx.runtime.JAXXUtil;
79  import jaxx.runtime.JAXXValidator;
80  import jaxx.runtime.SwingUtil;
81  import jaxx.runtime.binding.DefaultJAXXBinding;
82  import jaxx.runtime.binding.SimpleJAXXObjectBinding;
83  import jaxx.runtime.context.DefaultJAXXContext;
84  import jaxx.runtime.swing.CardLayout2Ext;
85  import jaxx.runtime.swing.HBox;
86  import jaxx.runtime.swing.JAXXButtonGroup;
87  import jaxx.runtime.swing.TabInfo;
88  import jaxx.runtime.swing.TabInfoPropertyChangeListener;
89  import jaxx.runtime.swing.Table;
90  import jaxx.runtime.swing.editor.SimpleTimeEditor;
91  import jaxx.runtime.swing.editor.bean.BeanDoubleList;
92  import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
93  import jaxx.runtime.swing.editor.gis.DmdCoordinateEditor;
94  import jaxx.runtime.swing.editor.gis.DmsCoordinateEditor;
95  import jaxx.runtime.swing.help.JAXXHelpUI;
96  import jaxx.runtime.validator.swing.SwingValidator;
97  import jaxx.runtime.validator.swing.SwingValidatorUtil;
98  import jaxx.runtime.validator.swing.meta.Validator;
99  import jaxx.runtime.validator.swing.meta.ValidatorField;
100 import jaxx.runtime.validator.swing.ui.ImageValidationUI;
101 import org.apache.commons.logging.Log;
102 import org.apache.commons.logging.LogFactory;
103 import org.jdesktop.swingx.JXDatePicker;
104 import org.jdesktop.swingx.JXTitledPanel;
105 import org.nuiton.jaxx.widgets.number.NumberEditor;
106 import static org.nuiton.i18n.I18n.t;
107 
108 public class EditFishingOperationUI extends JPanel implements JAXXHelpUI<TuttiHelpBroker>, TuttiUI<EditFishingOperationUIModel, EditFishingOperationUIHandler>, JAXXObject, JAXXValidator {
109 
110     /*-----------------------------------------------------------------------*/
111     /*------------------ Constants for all public bindings ------------------*/
112     /*-----------------------------------------------------------------------*/
113 
114     public static final String BINDING_COMMENT_FIELD_TEXT = "commentField.text";
115     public static final String BINDING_DURATION_FIELD_TEXT = "durationField.text";
116     public static final String BINDING_FILTER_SECONDARY_VESSEL_ALL_BUTTON_SELECTED = "filterSecondaryVesselAllButton.selected";
117     public static final String BINDING_FILTER_SECONDARY_VESSEL_FISHING_BUTTON_SELECTED = "filterSecondaryVesselFishingButton.selected";
118     public static final String BINDING_FILTER_SECONDARY_VESSEL_ONLY_CRUISE_BUTTON_SELECTED = "filterSecondaryVesselOnlyCruiseButton.selected";
119     public static final String BINDING_FILTER_SECONDARY_VESSEL_SCIENTIFIC_BUTTON_SELECTED = "filterSecondaryVesselScientificButton.selected";
120     public static final String BINDING_FISHING_OPERATION_ATTACHMENTS_BUTTON_ENABLED = "fishingOperationAttachmentsButton.enabled";
121     public static final String BINDING_FISHING_OPERATION_INVALID_RADIO_SELECTED = "fishingOperationInvalidRadio.selected";
122     public static final String BINDING_FISHING_OPERATION_NUMBER_FIELD_NUMBER_PATTERN = "fishingOperationNumberField.numberPattern";
123     public static final String BINDING_FISHING_OPERATION_NUMBER_FIELD_NUMBER_VALUE = "fishingOperationNumberField.numberValue";
124     public static final String BINDING_FISHING_OPERATION_RECTILIGNE_CHECK_BOX_SELECTED = "fishingOperationRectiligneCheckBox.selected";
125     public static final String BINDING_FISHING_OPERATION_RESET_RADIO_SELECTED = "fishingOperationResetRadio.selected";
126     public static final String BINDING_FISHING_OPERATION_VALID_RADIO_SELECTED = "fishingOperationValidRadio.selected";
127     public static final String BINDING_GEAR_COMBO_BOX_SELECTED_ITEM = "gearComboBox.selectedItem";
128     public static final String BINDING_GEAR_SHOOTING_END_DATE_FIELD_DATE = "gearShootingEndDateField.date";
129     public static final String BINDING_GEAR_SHOOTING_END_LATITUDE_DDFIELD_NUMBER_PATTERN = "gearShootingEndLatitudeDDField.numberPattern";
130     public static final String BINDING_GEAR_SHOOTING_END_LATITUDE_DDFIELD_NUMBER_VALUE = "gearShootingEndLatitudeDDField.numberValue";
131     public static final String BINDING_GEAR_SHOOTING_END_LATITUDE_DMDFIELD_VALUE = "gearShootingEndLatitudeDMDField.value";
132     public static final String BINDING_GEAR_SHOOTING_END_LATITUDE_DMSFIELD_VALUE = "gearShootingEndLatitudeDMSField.value";
133     public static final String BINDING_GEAR_SHOOTING_END_LONGITUDE_DDFIELD_NUMBER_PATTERN = "gearShootingEndLongitudeDDField.numberPattern";
134     public static final String BINDING_GEAR_SHOOTING_END_LONGITUDE_DDFIELD_NUMBER_VALUE = "gearShootingEndLongitudeDDField.numberValue";
135     public static final String BINDING_GEAR_SHOOTING_END_LONGITUDE_DMDFIELD_VALUE = "gearShootingEndLongitudeDMDField.value";
136     public static final String BINDING_GEAR_SHOOTING_END_LONGITUDE_DMSFIELD_VALUE = "gearShootingEndLongitudeDMSField.value";
137     public static final String BINDING_GEAR_SHOOTING_END_TIME_FIELD_DATE = "gearShootingEndTimeField.date";
138     public static final String BINDING_GEAR_SHOOTING_START_DATE_FIELD_DATE = "gearShootingStartDateField.date";
139     public static final String BINDING_GEAR_SHOOTING_START_LATITUDE_DDFIELD_NUMBER_PATTERN = "gearShootingStartLatitudeDDField.numberPattern";
140     public static final String BINDING_GEAR_SHOOTING_START_LATITUDE_DDFIELD_NUMBER_VALUE = "gearShootingStartLatitudeDDField.numberValue";
141     public static final String BINDING_GEAR_SHOOTING_START_LATITUDE_DMDFIELD_VALUE = "gearShootingStartLatitudeDMDField.value";
142     public static final String BINDING_GEAR_SHOOTING_START_LATITUDE_DMSFIELD_VALUE = "gearShootingStartLatitudeDMSField.value";
143     public static final String BINDING_GEAR_SHOOTING_START_LONGITUDE_DDFIELD_NUMBER_PATTERN = "gearShootingStartLongitudeDDField.numberPattern";
144     public static final String BINDING_GEAR_SHOOTING_START_LONGITUDE_DDFIELD_NUMBER_VALUE = "gearShootingStartLongitudeDDField.numberValue";
145     public static final String BINDING_GEAR_SHOOTING_START_LONGITUDE_DMDFIELD_VALUE = "gearShootingStartLongitudeDMDField.value";
146     public static final String BINDING_GEAR_SHOOTING_START_LONGITUDE_DMSFIELD_VALUE = "gearShootingStartLongitudeDMSField.value";
147     public static final String BINDING_GEAR_SHOOTING_START_TIME_FIELD_DATE = "gearShootingStartTimeField.date";
148     public static final String BINDING_IMPORT_FROM_COLUMN_FILE_ENABLED = "importFromColumnFile.enabled";
149     public static final String BINDING_LOCATION_COMBO_BOX_SELECTED_ITEM = "locationComboBox.selectedItem";
150     public static final String BINDING_MULTIRIG_AGGREGATION_FIELD_TEXT = "multirigAggregationField.text";
151     public static final String BINDING_SAVE_BUTTON_ENABLED = "saveButton.enabled";
152     public static final String BINDING_STATION_NUMBER_FIELD_TEXT = "stationNumberField.text";
153     public static final String BINDING_STRATA_COMBO_BOX_SELECTED_ITEM = "strataComboBox.selectedItem";
154     public static final String BINDING_SUB_STRATA_COMBO_BOX_SELECTED_ITEM = "subStrataComboBox.selectedItem";
155     public static final String BINDING_TRAWL_DISTANCE_FIELD_ENABLED = "trawlDistanceField.enabled";
156     public static final String BINDING_TRAWL_DISTANCE_FIELD_NUMBER_PATTERN = "trawlDistanceField.numberPattern";
157     public static final String BINDING_TRAWL_DISTANCE_FIELD_NUMBER_VALUE = "trawlDistanceField.numberValue";
158     public static final String BINDING_TRAWL_DISTANCE_FIELD_TOOL_TIP_TEXT = "trawlDistanceField.toolTipText";
159     public static final String BINDING_VESSEL_FIELD_TEXT = "vesselField.text";
160 
161     /*-----------------------------------------------------------------------*/
162     /*------------------------- Other static fields -------------------------*/
163     /*-----------------------------------------------------------------------*/
164 
165     private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAN1dzW8cR3Zv0SRFSRQpi/peyR6NZZv0R5OSbNm7WtkiOaQ8AilpNSNZuwLCNGeaM231dI+7ayQSEy0SYK8L7H+wm0uSQxJkAecUIMFmgQQIEiA55LLJIZdckizyAewtCFJV/VFdn13dQwJxfCCs7vde1XvvV/Xq4/Wb3/+lMREGxuUvrN1dMxh4wOnZ5t3lJ0/ub39ht0DNDluB0wd+YET/HRozxp4ax9rp8xAYbzzdQOyLMfviqt/r+57tZbhvbhhHQ7Dn2mHXtgEwLtEcrTBcbKSvb+72B0EiNe2USOpP/vPfx37U/s3fHjOM3T7sXReqUsnjIpqMbxhjThsYJ2FLz61F1/I6sBuB43Vgf4+jZ6uuFYb3rJ79pfF94/CGMdm3AigMGFV9lbEMzL/bB8ZFu+2AdSfswlbu9+3AAo7vNf3+A8uzXWCs7ASmsxPYPTswwQAAxxw4ZvgCEpst3wOwBdNPuMw1gahH9X4ftzYJjIme30ZC74wudBNJIpKPPLdcp21BNYHxLmXw9EXcQAP9fZw8JBIqHdsKGl3fB/B9A1gB2PC9jgMGbXvD2vNhLxlQRuJWraAdvb+2tguIuNd5cbDnRBoiO0XIX8uSr3ltpm2G+hJLrRI9uR34z2xolwW51Zvon59Bg65gWsJ8AQSWA+7YHjS827S2ESqavu+uQIWMUwiRu7GIu/FjxHgk5R/v2d6ApdyEz2LK11LKo4hyuYW8C4xXOXpEdTklPuVAeAdgPfB7q7476HnrjmsD4zTHVgd2D/FcSVkv7zBYWgbAanVh6yBcgWZAzX9LbqkBcFzTSlnMiIXIoJU6xTaG7AfHN9VPPNJos51l+WLTwze0za3tbbuN3iDG91P+OYHboOp+0DG/gFPlM+D3IxG75t0nTQe4kRDciyUCM0EvGq3Ad11RX8gbxH49lXKsE3Vj3Q96wDgnGENQrIuZbqRMJ0OAW7w36G3bwYa1jaYN2mz4ISL/poRr3bFdOJmeoS1m7wL8gub8BqtqpmFE8okWedziu8jO3sCBwDCxui+cdscGIXyGqMyIGM1rfkDLPdcbuMAJnM5ypxPYHSxa1gcRbarZMk17LISAAJZM1Ez0GgaNbX/F3wXGhwIv2bi/5rZteeYK/AOHHIDaQ9clfKzQwXZD2eyrKUVWwn2a6Ljrt5R2OJEQKIRMXYlG2RL69yL97iyaTOE0brWgOk4InFaYAvIm+vOEE3M1FfM9ogwSQybibF8J0UlMROZ2MdVxRFWzgJqgCV0jIzgjiD5iytekcSqdEBhFBYEy5qjVUvytoz9dYEy3bQjOmt1yepabTsFyCZuNeAxdlSOw44RmrReu+n7QdjxoJjKSun2dNmq6bbTVbQhifOJamfEE3UpYWOuFEutVFSJi8yFKH8voa3GRlgOa6wLHhWAZm68iDieI4oHTgssIWnVeFkJwLOsduSsaMNa7NqIlPiBST3FLITHOL0qWTDJHcQsyCcZ/IPHS6zJ+1kU/EMOJYmH8Q1i4hWAe/rg2ZOj7oUSvilQAq9gPxTMGzcNoRnjOMTwp7tD779NKsbQprtD736Jp4RSOIbIkwEiVjeoP4Y7TcZ2OZ6927dYzHBrpNWbynGsEO+CawAMnYcB74dZgoLG8FjOB/1hCRbvmx5wyVwXKJH24LujD8fYgEMTU3+UJ6AUFIbjAmgrvqFLUVej2Tgd2aANMAgc+sJN19hxly+gpYvkDeTsPkaSHVtvx8Voyw44fimRMXvkMemgJr1e5SeYzznli1bB0RPEV+vPHZF5hqevecxV94pYPBG5J3n0oWKWcDOwWjEV28MAOQug4iAxgvK+xTKv5A7iYQfRI0p+SZRPeIjy2w9B2U7/dpGmOPcevaZT8nH2dYoR5fSRaEYl5p/Gqi12xkffnQ6iv17aCvcdxI2i1mewuFmli6DL0tkGz0E3/DZnahdTLrkvA8xXN8aaQo9Fy4IbP2XFaUsaqkDE+zSjY3H3P3VsNBk5oSxnnGKMlXv9zxm8tv4f2qok1P6ahNh2/jkPzaW7/tBzYFqL9BzLAkTcfhfa6bYFBYMc7TvQSY5lsKc9xhKvRgU/BQ6F41Jl3WHGP6qilfyKr+wijOn27ICBNe1cv07vHvMCof//MjfkbKazJLv5SCxoahT3mwAIfkoQpw79Aj25jSGBJxI0odGRA/VP059/IgUtoPbelb2eZEwRoHvHOve7t+OS86FXOv+jFrwjBnMDIDMlp4QQMB5OgA+hkONLhTuAP+kTIeeEYau71sef/GxIGxjcoga0wNMmZLzmUPfTUmAgG8DFE71P+mPghfBUdEJ9jDoiRQPz2f87M/f2f/ONX68mp8Jew7dNC0syh9oZxtB8gSAEHNT0bHQmj46fFTat/86lxBOoD1yf4xPuioGON+DXsHGwPn6hFp1efWWEXipg4/Iuf/fzMr//dK8bYunHU9a32uoXo68YR0IUBu+u77d3+p7dxj6ZfTMG/J1Df4MS+A6kB2iMDY2IHrg3tXaj+RYH6aR+2j/zlr+YaP72dmOAQ7NJ5KTkxw8T3jEnHcx3PxkfjyHeHJUfhx/qhPWj75HRbdN5t9OGQS44qI7QcGsd/pzhNx6Cm0Aov8JIDGOMgGECFx1FkBcbhIT7LfrmLTiYPTWOV0P/NoBbOiM9HDqy9GTrQ57eTHMSfG3r2i0rN3rEGLkCs+Fh9fuElXAJG8ILDDz0DxtIQvW9kH7rm5qONZv3BxtpW/V5z7eHj5Y2txtrG2mqzfv+euKcTdzU6OAENYQ2A/8DvDyDP4rBreW0XTrwdG8AJecfpzC+YTrickGTP03DfZ5EZ8atkpbkkkQF3DS+y7BE9FjKzFVngvrfutwZwkE0OkUdelvbSdLahA8PCnOBo5CAb485I8huTW1anzRPsgUBOg4fkDYrdlD3CyJc9FYm2YYBqDivz86w5UMhZEIEP/z9PO7+wYAI/uvWbX6hIBrzo2knay3EY7KOjZ9QAHNrDdTSBmy00MaKhHr18YAE4YUHznx826nfurdW2amur9c3ljQ+2Hiw34fi+B2kPD0K7AXfEKUyyyEmCAdfjfl9wnKD2mNVuf247nS545DlQ9NkIEshq5DEcp5LGjrto8f+5A7qILq+1yS4WCYyxD5ckAtkVlkrcsa3wmdNP7rKwnXipsl1xPx9yE1td24V9emNYjZaioitcE9FUBfbJufLNa/8VaNztaCdqOR7GfeR2aEa/b32Jp44YGoJ1At8bxRVjXl/G0O0m7gsa0t7AdSFCj25brWcduBr0YNduDLO7l0f1TcuzOslAdGG4qMaXkSbhqopQFV9l5vUIDrVp5+rH3qZn93zPacFVa+QiADXahs0gIaaFoWH2UiLWcuMAbrPgQJTyQpChp02n38SUl+StAKcvUidz36oBubNbPtx+Pkar0ZblRld9kWOl8FbfHua1eZgz5KcKrMeqim6FM1Y+uWX1+67TyuyigPEbwzI7u6jB0KxHLTL9oW+T6P5E7aZz79FIUh01BZe6WFzq/xvlVCYzxKfKGUJltWj2YGH2rZLSIAZh6LA9BBk4Kt+OJ3MnrAuo1yIy4eQuufrXGJaJSW7omIRc8IepJUj3M7GoDrtZuXyrEs89tLWuFmsIG2l6B61QmKlVZIf8PAaNYT0boLhXQ0eLVjQcLg7l07HQH6JUAw13TOEAvY7ydU4N+Wv7l+kYMBVG3EGkJsVNHP2R0tECVgnmrxWUIplvBRkNGmaa3Urzl+IkiA+HYL6gYlX1diY29AWC6kaWG2+GRjVqvkWw24sB59JQkYZBFPsot8diMUTr2xpai2VIMHWzrDgJuFTpK3k2nWR2B7PDOpx70CJJtj84M4Tb/a0bW7X6nXqzkdkcTMUnVnuQRmZTHtGfaCFaLA9D+1jUP7iSRmunNwiOWVECQI/s2gLuKAHxE0M6NYeg+m2NcYg4iapLWmMX8UhQ+64uuwSl2SwknYV0srNGSXww0GTnJyQH+zEDuclEYR5ipuakifirWXgUtplIbya9qhgC5oZclhQBwTv5nUuYiU7XdXRK2CRQ0IjKqQQJGpj8sOKAOJMBRCKKxcSRjP48LK7qwSIRQSGjjBVFZuCT4Irh4+SQzX8j8FjI7WHCS/S6pqFXwiUBx/v6AiTYoJP+ikPjNIHGRiyJRcYUUZ0HxpIWMBIJFC5K2E9kAS6rUcMI1F7yWCs9XAxTQDzMHoPf4XIRkfvmi51VFlwbUvmPpRfctBTZgpvPtdwXG36Hs2E26XM0E6o3pxnl4yYlFlRtPAVCJAbkM1qL2m+qZbk2un4tMCMlua/FRlTCVXpGSgXIZiQqJ7eoIcbRFWdBIzQxS1EjIK6RjIAFqIyQ5h1rnBTHCuuNaCo3lGh+U1Nzil1iAtWBmkySxBaSFGt9oywV6ssaOs1OTPLNgiaBzBKDfFBYjsQcwjxcjROo9Pz+3nAF/1+UhLBnRrkv0bcp0Zt5dUzuW55t+qCLNoXio0Mu5S2vfxPUSuv4MJPvxh3dRu8KbM8ShiJbjYin9PYsZpdtzzLZfvowfjcNh+3oGNGODDyfrsDify8U3Vcxyk5vwW2Uj8banvLeIZuVWMzBM8NsUiLr4XH0MlX7Ta2BQxQ2NYesxLd6IUPmWZKJWXwp/SpZSqPFDruMjq3CL6Hf01pCI25q+VzQTiJtqdTSYpupC0PZR1VkU5U/ZQpkEAVvaSgoECDBxcelZElgIv36TGM24AFwUwsAgiYxHmJjVwj6NnlK6iRvNMPq2kNrWjmk3ytJkqKiV/LM6KKr0smoeU1kS3paDJEydaO7L80ZXpHurTHhx5kcOF9UlSeamqWcRpaLYvvz6Ez6Ffwv2lDfLis2MlYm76iaXqcKOJZdV3KTmpMHfxCmVN3hy3UO00R7YtGj2Ye0YVdHbISz74LKvuQrAImZ9T4eOAhrl0NYfHdBTH04fULb+fYo4jkjv6UycixfYmGNryz+74DZTz/jyIA5+3A/wEzkFQMz+cakEJjZT1M0knvSfd93R933xUftdI+qC8w6dZYhgBt4lLgY5TPjVOG1JL0jSWfjlzQf6d0XsF15WWznzvCnK7+ZQWjjRVDUadLRolt6tgHJclD0NZHGSnDSTcqlDHNqoGTsslrmkCfnFPSTESRKTJLztbzOZoNA8rxUmAh7y9r7KaFIwUX5W/TOTsiGV9gHbtbckgI62YKJYaPsZIXIXhiRzCQcm443QAfOgm/kCU9ClHJFc2AOV0J0MP6cTnOvm2iWz1xnkouLJNMMJxubbsYTUVpQok4NZWfnGSEhSgLXggaEIJskmOTXgdDw+yxRAGeWA+MNhQbtlKoAXtol8NJOiP5/eL5dzvOyJM786hxFAk1VEGjo+lmZSFMrFWlyrizVS8EckZJJMa+6SLFgw1ffSKWJMLpSEqOJTEG4eVuFmIRPEG8Owrb5ZVjyrDsFjBNbbsIU3edmciqZ2UXVnjQcCeaxDJM0HqnZ5AFpX1zOzEvXNOalrK/EE5NaI3ZmekcHZ/KgpFFeRwMbfFS6olKChKX9ApUsZiltqQhaX1N0cHFLEx2ywKVRRqlI5HqdilxcJcdM2FoufuWbsz1Snw6p5EkmVWWJpWLR6qxElAiZnxZGZkagIE5dESMkwyQIUvtuzJz6U8U3RFKB0vjDlW3S2AwpeOSRZ3QPHsRyWKEKO6lIljY0k2RGySsUVmoLdFnad+kGSI4PWSiRG0gRR75uvuYCiI6vZdEjr8JbkdBR4UKHdMuzUiJ25Gx4bpUXKJnw1KXsioUPtiCccqtzuxQiFRudN+UIUWxz9t+iebX+9neLI29NGmC4WUpne6NikoeYfXDygSxeVdqwM898Pq7kYSa3bmOpTU1V3v1SWxoFiGRRSGFBRRj6GuKBi0RaeJCFotyanDoZgG2cp11VbKlQxnRUkodzwa1yO0okkbpSU3/jrpCiyLFR1L3dZ7tkotZprlE6BbyUopl8cD1F0+Kp+opWpEBUuF8vPazDy6sWTfoSyFAlfQnI998eGbfPMQ3STi+hYI7LpdVyNT4Uzq38Ir8715tx2Q9ncXUcB+xhp/P1ZIoNDqHwEpUuVNIkazFFvVyNpS2dmiKrj6hRNETR8/00ZSbd5Jr8a2zMM79QuXWrsgJNjwrWNh8+WhPPU8IGcZHd/bZffkotyx+X/D0gC14vZMH15Y2G2ITKSsUak5ueEQ/EBO9omQDXYNECDykirQGeGBbFSzaQ6uHFbh/lckS2IXlzrDjCV+pWTdENySSnUT+9aGUYvgx6kcowFHexD1Up1tIfqtJSZB+q8hXhNTZjB1Cz4zhjr7LFZygxggOSTKWZZpa0cKUZsZOydaYulxsc2U98qS6iSkggIpuXKSHecAkq+hcbDLNDqih/ka/8E8Zin5MmXKU/J00FyD4npX6GoFQ1JL0P9ZN2sl+WfJ71cS0mmM/bsb1XUS/ti1YC4GxMwCsv/UX/OoNGanOabPtkf5Jt6d8i4HJtZ+j3Ir/d0PIb207GuB9rGJdml8D4elExslmc/4EGneP8xDPf2R/PxKX7qxQQr2rYKmaUGOk9bX7Zt6WZnxzQqOrJA2ZRCzCp+mScnyLBZjV6KzkRo372QGNQMeUp7yo6lz0FFC5gcf3XTKVK6jOtiSCpy4wVWh65IYKMuzrFEPO6LYbM2uiCJVgqVzeXLyiq+rQi7iH6iYQ10fucoqK/NlJR0QZslW1RVTZ0HHWzSNHQUNCAbi5+nmWK5+LnSWSKh76ZbniSvd9bb1WSR5t+29nZk4zwzC9eaJx1MWjRwHP0gxtl8NIeCS+r0naVxWaj7mp9LZarIEHPmg56FJYS40f1rVm+TMlEQv1Cik6tiuTufebbMDRZlW3Ha8N2PuFkH4J/jaO5EuHjiQ760xVLMDX6NIUq5sc/ayKTc0+rJ18qJDRGlvD5yNb47sgSfjKyhN8bWcIfjizhz0b2xc9GlvDXI0v4xch2+NeRJfxSY3yNOy38+0gyGfNavfgdhYStkSVYI0tojSwhd1WfK+GPRpbwFyNL+KuRJfztyBL+Y2QJ/wUl/C+3kjfKSIEAAA==";
166     private static final Log log = LogFactory.getLog(EditFishingOperationUI.class);
167     private static final long serialVersionUID = 1L;
168 
169     /*-----------------------------------------------------------------------*/
170     /*--------------------------- Internal states ---------------------------*/
171     /*-----------------------------------------------------------------------*/
172 
173     protected List<Object> $activeBindings = new ArrayList<Object>();
174     protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
175     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
176     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
177     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
178     private boolean allComponentsCreated;
179     protected final JAXXContext delegateContext = new DefaultJAXXContext();
180 
181     /*-----------------------------------------------------------------------*/
182     /*------------------------ Protected components  ------------------------*/
183     /*-----------------------------------------------------------------------*/
184 
185     protected TuttiHelpBroker broker;
186     protected JButton cancelButton;
187     protected JTextArea commentField;
188     @ValidatorField( validatorId = "validator",  propertyName = "comment",  editorName = "commentPane")
189     protected JScrollPane commentPane;
190     protected JPanel createFishingOperationActions;
191     protected JTextField durationField;
192     protected JLabel durationLabel;
193     protected EditFishingOperationUI editFishingOperationTopPanel = this;
194     protected JRadioButton filterSecondaryVesselAllButton;
195     protected JRadioButton filterSecondaryVesselFishingButton;
196     protected JLabel filterSecondaryVesselLabel;
197     protected JRadioButton filterSecondaryVesselOnlyCruiseButton;
198     protected JRadioButton filterSecondaryVesselScientificButton;
199     protected JAXXButtonGroup filterSecondaryVesselType;
200     protected ButtonAttachment fishingOperationAttachmentsButton;
201     protected JRadioButton fishingOperationInvalidRadio;
202     @ValidatorField( validatorId = "validator",  propertyName = "fishingOperationNumber",  editorName = "fishingOperationNumberField")
203     protected NumberEditor fishingOperationNumberField;
204     protected JLabel fishingOperationNumberLabel;
205     protected JPanel fishingOperationPane;
206     protected JCheckBox fishingOperationRectiligneCheckBox;
207     protected JRadioButton fishingOperationResetRadio;
208     protected JTabbedPane fishingOperationTabPane;
209     protected JScrollPane fishingOperationTabScrollPane;
210     protected JAXXButtonGroup fishingOperationValid;
211     @ValidatorField( validatorId = "validator",  propertyName = "fishingOperationValid",  editorName = "fishingOperationValidPanel")
212     protected JToolBar fishingOperationValidPanel;
213     protected JRadioButton fishingOperationValidRadio;
214     protected Table gearCaracteristicsTable;
215     @ValidatorField( validatorId = "validator",  propertyName = "gear",  editorName = "gearComboBox")
216     protected BeanFilterableComboBox<Gear> gearComboBox;
217     protected JLabel gearDateLabel;
218     protected JLabel gearLabel;
219     protected JLabel gearLatitudeLabel;
220     protected JLabel gearLongitudeLabel;
221     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingEndDate",  editorName = "gearShootingEndDateField")
222     protected JXDatePicker gearShootingEndDateField;
223     protected JLabel gearShootingEndLabel;
224     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingEndLatitude",  editorName = "gearShootingEndLatitudeDDField")
225     protected NumberEditor gearShootingEndLatitudeDDField;
226     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingEndLatitudeDmdDegree", "gearShootingEndLatitudeDmdMinute", "gearShootingEndLatitudeDmdDecimal" },  editorName = "gearShootingEndLatitudeDMDField")
227     protected DmdCoordinateEditor gearShootingEndLatitudeDMDField;
228     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingEndLatitudeDmsDegree", "gearShootingEndLatitudeDmsMinute", "gearShootingEndLatitudeDmsSecond" },  editorName = "gearShootingEndLatitudeDMSField")
229     protected DmsCoordinateEditor gearShootingEndLatitudeDMSField;
230     protected CardLayout2Ext gearShootingEndLatitudeLayout;
231     protected JPanel gearShootingEndLatitudePanel;
232     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingEndLongitude",  editorName = "gearShootingEndLongitudeDDField")
233     protected NumberEditor gearShootingEndLongitudeDDField;
234     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingEndLongitudeDmdDegree", "gearShootingEndLongitudeDmdMinute", "gearShootingEndLongitudeDmdDecimal" },  editorName = "gearShootingEndLongitudeDMDField")
235     protected DmdCoordinateEditor gearShootingEndLongitudeDMDField;
236     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingEndLongitudeDmsDegree", "gearShootingEndLongitudeDmsMinute", "gearShootingEndLongitudeDmsSecond" },  editorName = "gearShootingEndLongitudeDMSField")
237     protected DmsCoordinateEditor gearShootingEndLongitudeDMSField;
238     protected CardLayout2Ext gearShootingEndLongitudeLayout;
239     protected JPanel gearShootingEndLongitudePanel;
240     protected SimpleTimeEditor gearShootingEndTimeField;
241     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingStartDate",  editorName = "gearShootingStartDateField")
242     protected JXDatePicker gearShootingStartDateField;
243     protected JLabel gearShootingStartLabel;
244     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingStartLatitude",  editorName = "gearShootingStartLatitudeDDField")
245     protected NumberEditor gearShootingStartLatitudeDDField;
246     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingStartLatitudeDmdDegree", "gearShootingStartLatitudeDmdMinute", "gearShootingStartLatitudeDmdDecimal" },  editorName = "gearShootingStartLatitudeDMDField")
247     protected DmdCoordinateEditor gearShootingStartLatitudeDMDField;
248     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingStartLatitudeDmsDegree", "gearShootingStartLatitudeDmsMinute", "gearShootingStartLatitudeDmsSecond" },  editorName = "gearShootingStartLatitudeDMSField")
249     protected DmsCoordinateEditor gearShootingStartLatitudeDMSField;
250     protected CardLayout2Ext gearShootingStartLatitudeLayout;
251     protected JPanel gearShootingStartLatitudePanel;
252     @ValidatorField( validatorId = "validator",  propertyName = "gearShootingStartLongitude",  editorName = "gearShootingStartLongitudeDDField")
253     protected NumberEditor gearShootingStartLongitudeDDField;
254     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingStartLongitudeDmdDegree", "gearShootingStartLongitudeDmdMinute", "gearShootingStartLongitudeDmdDecimal" },  editorName = "gearShootingStartLongitudeDMDField")
255     protected DmdCoordinateEditor gearShootingStartLongitudeDMDField;
256     @ValidatorField( validatorId = "validator",  propertyName = { "gearShootingStartLongitudeDmsDegree", "gearShootingStartLongitudeDmsMinute", "gearShootingStartLongitudeDmsSecond" },  editorName = "gearShootingStartLongitudeDMSField")
257     protected DmsCoordinateEditor gearShootingStartLongitudeDMSField;
258     protected CardLayout2Ext gearShootingStartLongitudeLayout;
259     protected JPanel gearShootingStartLongitudePanel;
260     protected SimpleTimeEditor gearShootingStartTimeField;
261     protected JLabel gearTimeLabel;
262     protected TabInfo gearUseFeatureTab;
263     protected GearUseFeatureTabUI gearUseFeatureTabContent;
264     protected JXTitledPanel gearUseFeatureTabPane;
265     protected Table generalForm;
266     protected final EditFishingOperationUIHandler handler = createHandler();
267     protected JMenuItem importFromColumnFile;
268     @ValidatorField( validatorId = "validator",  propertyName = "location",  editorName = "locationComboBox")
269     protected BeanFilterableComboBox<TuttiLocation> locationComboBox;
270     protected JLabel locationLabel;
271     protected JMenuBar menu;
272     protected JMenu menuAction;
273     protected EditFishingOperationUIModel model;
274     @ValidatorField( validatorId = "validator",  propertyName = "multirigAggregation",  editorName = "multirigAggregationField")
275     protected JTextField multirigAggregationField;
276     protected JLabel multirigAggregationLabel;
277     @ValidatorField( validatorId = "validator",  propertyName = "recorderPerson",  editorName = "recorderPersonList")
278     protected BeanDoubleList<Person> recorderPersonList;
279     protected JButton resetValidStateButton;
280     protected JButton saveButton;
281     protected JPanel secondaryVesselFilterPane;
282     protected BeanDoubleList<Vessel> secondaryVesselList;
283     @ValidatorField( validatorId = "validator",  propertyName = "stationNumber",  editorName = "stationNumberField")
284     protected JTextField stationNumberField;
285     protected JLabel stationNumberLabel;
286     @ValidatorField( validatorId = "validator",  propertyName = "strata",  editorName = "strataComboBox")
287     protected BeanFilterableComboBox<TuttiLocation> strataComboBox;
288     protected JLabel strataLabel;
289     @ValidatorField( validatorId = "validator",  propertyName = "subStrata",  editorName = "subStrataComboBox")
290     protected BeanFilterableComboBox<TuttiLocation> subStrataComboBox;
291     protected JLabel subStrataLabel;
292     protected TabInfo traitGeneralTab;
293     protected JXTitledPanel traitGeneralTabPane;
294     protected JToolBar traitGeneralTabPaneToolBar;
295     protected Table traitVesselPanel;
296     @ValidatorField( validatorId = "validator",  propertyName = "trawlDistance",  editorName = "trawlDistanceField")
297     protected NumberEditor trawlDistanceField;
298     protected JLabel trawlDistanceLabel;
299     @Validator( validatorId = "validator")
300     protected SwingValidator<EditFishingOperationUIModel> validator;
301     protected List<String> validatorIds = new ArrayList<String>();
302     protected JLabel vesselField;
303     protected JLabel vesselLabel;
304     protected TabInfo vesselUseFeatureTab;
305     protected VesselUseFeatureTabUI vesselUseFeatureTabContent;
306     protected JXTitledPanel vesselUseFeatureTabPane;
307 
308     /*-----------------------------------------------------------------------*/
309     /*------------------------- Private components  -------------------------*/
310     /*-----------------------------------------------------------------------*/
311 
312     private HBox $HBox0;
313     private JLabel $JLabel0;
314     private JLabel $JLabel1;
315     private JPanel $JPanel0;
316     private JPanel $JPanel1;
317     private JPanel $JPanel2;
318     private JPanel $JPanel3;
319     private JPanel $JPanel4;
320     private JPanel $JPanel5;
321     private JPanel $JPanel6;
322 
323     /*-----------------------------------------------------------------------*/
324     /*---------------------------- Constructors  ----------------------------*/
325     /*-----------------------------------------------------------------------*/
326 
327     public EditFishingOperationUI(FishingOperationsUI parentUI) {
328         TuttiUIUtil.setParentUI(this, parentUI);
329             $initialize();
330     }
331 
332     public EditFishingOperationUI(LayoutManager param0, boolean param1) {
333         super(param0 ,param1);
334         $initialize();
335     }
336 
337     public EditFishingOperationUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
338         super(param1 ,param2);
339         JAXXUtil.initContext(this, parentContext);
340         $initialize();
341     }
342 
343     public EditFishingOperationUI(LayoutManager param0) {
344         super(param0);
345         $initialize();
346     }
347 
348     public EditFishingOperationUI(JAXXContext parentContext, LayoutManager param1) {
349         super(param1);
350         JAXXUtil.initContext(this, parentContext);
351         $initialize();
352     }
353 
354     public EditFishingOperationUI() {
355         $initialize();
356     }
357 
358     public EditFishingOperationUI(JAXXContext parentContext) {
359         JAXXUtil.initContext(this, parentContext);
360         $initialize();
361     }
362 
363     public EditFishingOperationUI(boolean param0) {
364         super(param0);
365         $initialize();
366     }
367 
368     public EditFishingOperationUI(JAXXContext parentContext, boolean param1) {
369         super(param1);
370         JAXXUtil.initContext(this, parentContext);
371         $initialize();
372     }
373 
374     /*-----------------------------------------------------------------------*/
375     /*--------------------------- Statics methods ---------------------------*/
376     /*-----------------------------------------------------------------------*/
377 
378     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
379         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
380     }
381 
382     /*-----------------------------------------------------------------------*/
383     /*---------------------- JAXXObject implementation ----------------------*/
384     /*-----------------------------------------------------------------------*/
385 
386     @Override
387     public void applyDataBinding(String $binding) {
388         if (allComponentsCreated && $bindings.containsKey($binding)) {
389             getDataBinding($binding).applyDataBinding();
390         }
391         processDataBinding($binding);
392     }
393 
394     @Override
395     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
396         super.firePropertyChange(propertyName, oldValue, newValue);
397     }
398 
399     @Override
400     public Map<String, Object> get$objectMap() {
401         return $objectMap;
402     }
403 
404     @Override
405     public JAXXBinding getDataBinding(String bindingId) {
406         return $bindings.get(bindingId);
407     }
408 
409     @Override
410     public JAXXBinding[] getDataBindings() {
411         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
412     }
413 
414     @Override
415     public Object getObjectById(String id) {
416         return $objectMap.get(id);
417     }
418 
419     @Override
420     public void processDataBinding(String $binding, boolean $force) {
421         if (!$force && $activeBindings.contains($binding)) { 
422             return;
423         }
424         $activeBindings.add($binding);
425         try {
426             if (allComponentsCreated && $bindings.containsKey($binding)) {
427                 getDataBinding($binding).processDataBinding();
428             }
429         } finally {
430             $activeBindings.remove($binding);
431         }
432     }
433 
434     @Override
435     public void processDataBinding(String $binding) {
436         processDataBinding($binding, false);
437     }
438 
439     @Override
440     public void registerDataBinding(JAXXBinding binding) {
441         $bindings.put(binding.getId(), binding);
442     }
443 
444     @Override
445     public void removeDataBinding(String $binding) {
446         if (allComponentsCreated && $bindings.containsKey($binding)) {
447             getDataBinding($binding).removeDataBinding();
448         }
449     }
450 
451     /*-----------------------------------------------------------------------*/
452     /*--------------------- JAXXContext implementation  ---------------------*/
453     /*-----------------------------------------------------------------------*/
454 
455     @Override
456     public <T> T getContextValue(Class<T> clazz) {
457         return delegateContext.getContextValue(clazz, null);
458     }
459 
460     @Override
461     public <T> T getContextValue(Class<T> clazz, String name) {
462         return delegateContext.getContextValue(clazz, name);
463     }
464 
465     @Override
466     public JAXXContext getDelegateContext() {
467         return delegateContext;
468     }
469 
470     @Override
471     public <O extends Container> O getParentContainer(Class<O> clazz) {
472         return SwingUtil.getParentContainer(this, clazz);
473     }
474 
475     @Override
476     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
477         return SwingUtil.getParentContainer(source, clazz);
478     }
479 
480     @Override
481     public <T> void removeContextValue(Class<T> clazz) {
482         delegateContext.removeContextValue(clazz, null);
483     }
484 
485     @Override
486     public <T> void removeContextValue(Class<T> clazz, String name) {
487         delegateContext.removeContextValue(clazz, name);
488     }
489 
490     @Override
491     public <T> void setContextValue(T o) {
492         delegateContext.setContextValue(o, null);
493     }
494 
495     @Override
496     public <T> void setContextValue(T o, String name) {
497         delegateContext.setContextValue(o, name);
498     }
499 
500     /*-----------------------------------------------------------------------*/
501     /*-------------------- JAXXValidator implementation  --------------------*/
502     /*-----------------------------------------------------------------------*/
503 
504     @Override
505     public SwingValidator<?> getValidator(String validatorId) {
506         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
507     }
508 
509     @Override
510     public List<String> getValidatorIds() {
511         return validatorIds;
512     }
513 
514     @Override
515     public void registerValidatorFields() {
516         SwingValidatorUtil.detectValidatorFields(this);
517     }
518 
519     /*-----------------------------------------------------------------------*/
520     /*---------------------------- Event methods ----------------------------*/
521     /*-----------------------------------------------------------------------*/
522 
523     public void doActionPerformed__on__filterSecondaryVesselAllButton(ActionEvent event) {
524         if (log.isDebugEnabled()) {
525             log.debug(event);
526         }
527         model.setSecondaryVesselType(SecondaryVesselTypeEnum.ALL);
528     }
529 
530     public void doActionPerformed__on__filterSecondaryVesselFishingButton(ActionEvent event) {
531         if (log.isDebugEnabled()) {
532             log.debug(event);
533         }
534         model.setSecondaryVesselType(SecondaryVesselTypeEnum.FISHING);
535     }
536 
537     public void doActionPerformed__on__filterSecondaryVesselOnlyCruiseButton(ActionEvent event) {
538         if (log.isDebugEnabled()) {
539             log.debug(event);
540         }
541         model.setSecondaryVesselType(SecondaryVesselTypeEnum.ONLY_CRUISE);
542     }
543 
544     public void doActionPerformed__on__filterSecondaryVesselScientificButton(ActionEvent event) {
545         if (log.isDebugEnabled()) {
546             log.debug(event);
547         }
548         model.setSecondaryVesselType(SecondaryVesselTypeEnum.SCIENTIFIC);
549     }
550 
551     public void doActionPerformed__on__fishingOperationInvalidRadio(ActionEvent event) {
552         if (log.isDebugEnabled()) {
553             log.debug(event);
554         }
555         model.setFishingOperationValid(Boolean.FALSE);
556     }
557 
558     public void doActionPerformed__on__fishingOperationValidRadio(ActionEvent event) {
559         if (log.isDebugEnabled()) {
560             log.debug(event);
561         }
562         model.setFishingOperationValid(Boolean.TRUE);
563     }
564 
565     public void doActionPerformed__on__gearShootingEndDateField(ActionEvent event) {
566         if (log.isDebugEnabled()) {
567             log.debug(event);
568         }
569         handler.setDate(event, "gearShootingEndDate");
570     }
571 
572     public void doActionPerformed__on__gearShootingStartDateField(ActionEvent event) {
573         if (log.isDebugEnabled()) {
574             log.debug(event);
575         }
576         handler.setDate(event, "gearShootingStartDate");
577     }
578 
579     public void doActionPerformed__on__resetValidStateButton(ActionEvent event) {
580         if (log.isDebugEnabled()) {
581             log.debug(event);
582         }
583         model.setFishingOperationValid(null);
584     }
585 
586     public void doFocusGained__on__commentPane(FocusEvent event) {
587         if (log.isDebugEnabled()) {
588             log.debug(event);
589         }
590         commentField.requestFocus();
591     }
592 
593     public void doItemStateChanged__on__fishingOperationRectiligneCheckBox(ItemEvent event) {
594         if (log.isDebugEnabled()) {
595             log.debug(event);
596         }
597         handler.setBoolean(event, "fishingOperationRectiligne");
598     }
599 
600     public void doKeyReleased__on__commentField(KeyEvent event) {
601         if (log.isDebugEnabled()) {
602             log.debug(event);
603         }
604         handler.setText(event, "comment");
605     }
606 
607     public void doKeyReleased__on__multirigAggregationField(KeyEvent event) {
608         if (log.isDebugEnabled()) {
609             log.debug(event);
610         }
611         handler.setText(event, "multirigAggregation");
612     }
613 
614     public void doKeyReleased__on__stationNumberField(KeyEvent event) {
615         if (log.isDebugEnabled()) {
616             log.debug(event);
617         }
618         handler.setText(event, "stationNumber");
619     }
620 
621     /*-----------------------------------------------------------------------*/
622     /*----------------------- Public acessor methods  -----------------------*/
623     /*-----------------------------------------------------------------------*/
624 
625     public TuttiHelpBroker getBroker() {
626         return broker;
627     }
628 
629     public JButton getCancelButton() {
630         return cancelButton;
631     }
632 
633     public JTextArea getCommentField() {
634         return commentField;
635     }
636 
637     public JScrollPane getCommentPane() {
638         return commentPane;
639     }
640 
641     public JPanel getCreateFishingOperationActions() {
642         return createFishingOperationActions;
643     }
644 
645     public JTextField getDurationField() {
646         return durationField;
647     }
648 
649     public JLabel getDurationLabel() {
650         return durationLabel;
651     }
652 
653     public JRadioButton getFilterSecondaryVesselAllButton() {
654         return filterSecondaryVesselAllButton;
655     }
656 
657     public JRadioButton getFilterSecondaryVesselFishingButton() {
658         return filterSecondaryVesselFishingButton;
659     }
660 
661     public JLabel getFilterSecondaryVesselLabel() {
662         return filterSecondaryVesselLabel;
663     }
664 
665     public JRadioButton getFilterSecondaryVesselOnlyCruiseButton() {
666         return filterSecondaryVesselOnlyCruiseButton;
667     }
668 
669     public JRadioButton getFilterSecondaryVesselScientificButton() {
670         return filterSecondaryVesselScientificButton;
671     }
672 
673     public JAXXButtonGroup getFilterSecondaryVesselType() {
674         return filterSecondaryVesselType;
675     }
676 
677     public ButtonAttachment getFishingOperationAttachmentsButton() {
678         return fishingOperationAttachmentsButton;
679     }
680 
681     public JRadioButton getFishingOperationInvalidRadio() {
682         return fishingOperationInvalidRadio;
683     }
684 
685     public NumberEditor getFishingOperationNumberField() {
686         return fishingOperationNumberField;
687     }
688 
689     public JLabel getFishingOperationNumberLabel() {
690         return fishingOperationNumberLabel;
691     }
692 
693     public JPanel getFishingOperationPane() {
694         return fishingOperationPane;
695     }
696 
697     public JCheckBox getFishingOperationRectiligneCheckBox() {
698         return fishingOperationRectiligneCheckBox;
699     }
700 
701     public JRadioButton getFishingOperationResetRadio() {
702         return fishingOperationResetRadio;
703     }
704 
705     public JTabbedPane getFishingOperationTabPane() {
706         return fishingOperationTabPane;
707     }
708 
709     public JScrollPane getFishingOperationTabScrollPane() {
710         return fishingOperationTabScrollPane;
711     }
712 
713     public JAXXButtonGroup getFishingOperationValid() {
714         return fishingOperationValid;
715     }
716 
717     public JToolBar getFishingOperationValidPanel() {
718         return fishingOperationValidPanel;
719     }
720 
721     public JRadioButton getFishingOperationValidRadio() {
722         return fishingOperationValidRadio;
723     }
724 
725     public Table getGearCaracteristicsTable() {
726         return gearCaracteristicsTable;
727     }
728 
729     public BeanFilterableComboBox<Gear> getGearComboBox() {
730         return gearComboBox;
731     }
732 
733     public JLabel getGearDateLabel() {
734         return gearDateLabel;
735     }
736 
737     public JLabel getGearLabel() {
738         return gearLabel;
739     }
740 
741     public JLabel getGearLatitudeLabel() {
742         return gearLatitudeLabel;
743     }
744 
745     public JLabel getGearLongitudeLabel() {
746         return gearLongitudeLabel;
747     }
748 
749     public JXDatePicker getGearShootingEndDateField() {
750         return gearShootingEndDateField;
751     }
752 
753     public JLabel getGearShootingEndLabel() {
754         return gearShootingEndLabel;
755     }
756 
757     public NumberEditor getGearShootingEndLatitudeDDField() {
758         return gearShootingEndLatitudeDDField;
759     }
760 
761     public DmdCoordinateEditor getGearShootingEndLatitudeDMDField() {
762         return gearShootingEndLatitudeDMDField;
763     }
764 
765     public DmsCoordinateEditor getGearShootingEndLatitudeDMSField() {
766         return gearShootingEndLatitudeDMSField;
767     }
768 
769     public CardLayout2Ext getGearShootingEndLatitudeLayout() {
770         return gearShootingEndLatitudeLayout;
771     }
772 
773     public JPanel getGearShootingEndLatitudePanel() {
774         return gearShootingEndLatitudePanel;
775     }
776 
777     public NumberEditor getGearShootingEndLongitudeDDField() {
778         return gearShootingEndLongitudeDDField;
779     }
780 
781     public DmdCoordinateEditor getGearShootingEndLongitudeDMDField() {
782         return gearShootingEndLongitudeDMDField;
783     }
784 
785     public DmsCoordinateEditor getGearShootingEndLongitudeDMSField() {
786         return gearShootingEndLongitudeDMSField;
787     }
788 
789     public CardLayout2Ext getGearShootingEndLongitudeLayout() {
790         return gearShootingEndLongitudeLayout;
791     }
792 
793     public JPanel getGearShootingEndLongitudePanel() {
794         return gearShootingEndLongitudePanel;
795     }
796 
797     public SimpleTimeEditor getGearShootingEndTimeField() {
798         return gearShootingEndTimeField;
799     }
800 
801     public JXDatePicker getGearShootingStartDateField() {
802         return gearShootingStartDateField;
803     }
804 
805     public JLabel getGearShootingStartLabel() {
806         return gearShootingStartLabel;
807     }
808 
809     public NumberEditor getGearShootingStartLatitudeDDField() {
810         return gearShootingStartLatitudeDDField;
811     }
812 
813     public DmdCoordinateEditor getGearShootingStartLatitudeDMDField() {
814         return gearShootingStartLatitudeDMDField;
815     }
816 
817     public DmsCoordinateEditor getGearShootingStartLatitudeDMSField() {
818         return gearShootingStartLatitudeDMSField;
819     }
820 
821     public CardLayout2Ext getGearShootingStartLatitudeLayout() {
822         return gearShootingStartLatitudeLayout;
823     }
824 
825     public JPanel getGearShootingStartLatitudePanel() {
826         return gearShootingStartLatitudePanel;
827     }
828 
829     public NumberEditor getGearShootingStartLongitudeDDField() {
830         return gearShootingStartLongitudeDDField;
831     }
832 
833     public DmdCoordinateEditor getGearShootingStartLongitudeDMDField() {
834         return gearShootingStartLongitudeDMDField;
835     }
836 
837     public DmsCoordinateEditor getGearShootingStartLongitudeDMSField() {
838         return gearShootingStartLongitudeDMSField;
839     }
840 
841     public CardLayout2Ext getGearShootingStartLongitudeLayout() {
842         return gearShootingStartLongitudeLayout;
843     }
844 
845     public JPanel getGearShootingStartLongitudePanel() {
846         return gearShootingStartLongitudePanel;
847     }
848 
849     public SimpleTimeEditor getGearShootingStartTimeField() {
850         return gearShootingStartTimeField;
851     }
852 
853     public JLabel getGearTimeLabel() {
854         return gearTimeLabel;
855     }
856 
857     public TabInfo getGearUseFeatureTab() {
858         return gearUseFeatureTab;
859     }
860 
861     public GearUseFeatureTabUI getGearUseFeatureTabContent() {
862         return gearUseFeatureTabContent;
863     }
864 
865     public JXTitledPanel getGearUseFeatureTabPane() {
866         return gearUseFeatureTabPane;
867     }
868 
869     public Table getGeneralForm() {
870         return generalForm;
871     }
872 
873     public EditFishingOperationUIHandler getHandler() {
874         return handler;
875     }
876 
877     public JMenuItem getImportFromColumnFile() {
878         return importFromColumnFile;
879     }
880 
881     public BeanFilterableComboBox<TuttiLocation> getLocationComboBox() {
882         return locationComboBox;
883     }
884 
885     public JLabel getLocationLabel() {
886         return locationLabel;
887     }
888 
889     public JMenuBar getMenu() {
890         return menu;
891     }
892 
893     public JMenu getMenuAction() {
894         return menuAction;
895     }
896 
897     public EditFishingOperationUIModel getModel() {
898         return model;
899     }
900 
901     public JTextField getMultirigAggregationField() {
902         return multirigAggregationField;
903     }
904 
905     public JLabel getMultirigAggregationLabel() {
906         return multirigAggregationLabel;
907     }
908 
909     public BeanDoubleList<Person> getRecorderPersonList() {
910         return recorderPersonList;
911     }
912 
913     public JButton getResetValidStateButton() {
914         return resetValidStateButton;
915     }
916 
917     public JButton getSaveButton() {
918         return saveButton;
919     }
920 
921     public JPanel getSecondaryVesselFilterPane() {
922         return secondaryVesselFilterPane;
923     }
924 
925     public BeanDoubleList<Vessel> getSecondaryVesselList() {
926         return secondaryVesselList;
927     }
928 
929     public JTextField getStationNumberField() {
930         return stationNumberField;
931     }
932 
933     public JLabel getStationNumberLabel() {
934         return stationNumberLabel;
935     }
936 
937     public BeanFilterableComboBox<TuttiLocation> getStrataComboBox() {
938         return strataComboBox;
939     }
940 
941     public JLabel getStrataLabel() {
942         return strataLabel;
943     }
944 
945     public BeanFilterableComboBox<TuttiLocation> getSubStrataComboBox() {
946         return subStrataComboBox;
947     }
948 
949     public JLabel getSubStrataLabel() {
950         return subStrataLabel;
951     }
952 
953     public TabInfo getTraitGeneralTab() {
954         return traitGeneralTab;
955     }
956 
957     public JXTitledPanel getTraitGeneralTabPane() {
958         return traitGeneralTabPane;
959     }
960 
961     public JToolBar getTraitGeneralTabPaneToolBar() {
962         return traitGeneralTabPaneToolBar;
963     }
964 
965     public Table getTraitVesselPanel() {
966         return traitVesselPanel;
967     }
968 
969     public NumberEditor getTrawlDistanceField() {
970         return trawlDistanceField;
971     }
972 
973     public JLabel getTrawlDistanceLabel() {
974         return trawlDistanceLabel;
975     }
976 
977     public SwingValidator<EditFishingOperationUIModel> getValidator() {
978         return validator;
979     }
980 
981     public JLabel getVesselField() {
982         return vesselField;
983     }
984 
985     public JLabel getVesselLabel() {
986         return vesselLabel;
987     }
988 
989     public TabInfo getVesselUseFeatureTab() {
990         return vesselUseFeatureTab;
991     }
992 
993     public VesselUseFeatureTabUI getVesselUseFeatureTabContent() {
994         return vesselUseFeatureTabContent;
995     }
996 
997     public JXTitledPanel getVesselUseFeatureTabPane() {
998         return vesselUseFeatureTabPane;
999     }
1000 
1001     /*-----------------------------------------------------------------------*/
1002     /*---------------------------- Other methods ----------------------------*/
1003     /*-----------------------------------------------------------------------*/
1004 
1005     @Override
1006     public void registerHelpId(TuttiHelpBroker broker, Component component, String helpId) {
1007         broker.installUI(component, helpId);
1008     }
1009 
1010     @Override
1011     public void showHelp(String helpId) {
1012         getBroker().showHelp(this, helpId);
1013     }
1014 
1015     /*-----------------------------------------------------------------------*/
1016     /*--------------------- Protected acessors methods  ---------------------*/
1017     /*-----------------------------------------------------------------------*/
1018 
1019     protected HBox get$HBox0() {
1020         return $HBox0;
1021     }
1022 
1023     protected JLabel get$JLabel0() {
1024         return $JLabel0;
1025     }
1026 
1027     protected JLabel get$JLabel1() {
1028         return $JLabel1;
1029     }
1030 
1031     protected JPanel get$JPanel0() {
1032         return $JPanel0;
1033     }
1034 
1035     protected JPanel get$JPanel1() {
1036         return $JPanel1;
1037     }
1038 
1039     protected JPanel get$JPanel2() {
1040         return $JPanel2;
1041     }
1042 
1043     protected JPanel get$JPanel3() {
1044         return $JPanel3;
1045     }
1046 
1047     protected JPanel get$JPanel4() {
1048         return $JPanel4;
1049     }
1050 
1051     protected JPanel get$JPanel5() {
1052         return $JPanel5;
1053     }
1054 
1055     protected JPanel get$JPanel6() {
1056         return $JPanel6;
1057     }
1058 
1059     /*-----------------------------------------------------------------------*/
1060     /*--------------------- Components creation methods ---------------------*/
1061     /*-----------------------------------------------------------------------*/
1062 
1063     protected void addChildrenToCommentPane() {
1064         if (!allComponentsCreated) {
1065             return;
1066         }
1067         commentPane.getViewport().add(commentField);
1068     }
1069 
1070     protected void addChildrenToCreateFishingOperationActions() {
1071         if (!allComponentsCreated) {
1072             return;
1073         }
1074         createFishingOperationActions.add(cancelButton);
1075         createFishingOperationActions.add(saveButton);
1076     }
1077 
1078     protected void addChildrenToEditFishingOperationTopPanel() {
1079         if (!allComponentsCreated) {
1080             return;
1081         }
1082         add(traitGeneralTabPaneToolBar);
1083         add(fishingOperationPane, BorderLayout.CENTER);
1084     }
1085 
1086     protected void addChildrenToFilterSecondaryVesselAllButton() {
1087         if (!allComponentsCreated) {
1088             return;
1089         }
1090         { ButtonGroup $buttonGroup = filterSecondaryVesselType; filterSecondaryVesselAllButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSecondaryVesselAllButton); }
1091     }
1092 
1093     protected void addChildrenToFilterSecondaryVesselFishingButton() {
1094         if (!allComponentsCreated) {
1095             return;
1096         }
1097         { ButtonGroup $buttonGroup = filterSecondaryVesselType; filterSecondaryVesselFishingButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSecondaryVesselFishingButton); }
1098     }
1099 
1100     protected void addChildrenToFilterSecondaryVesselOnlyCruiseButton() {
1101         if (!allComponentsCreated) {
1102             return;
1103         }
1104         { ButtonGroup $buttonGroup = filterSecondaryVesselType; filterSecondaryVesselOnlyCruiseButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSecondaryVesselOnlyCruiseButton); }
1105     }
1106 
1107     protected void addChildrenToFilterSecondaryVesselScientificButton() {
1108         if (!allComponentsCreated) {
1109             return;
1110         }
1111         { ButtonGroup $buttonGroup = filterSecondaryVesselType; filterSecondaryVesselScientificButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSecondaryVesselScientificButton); }
1112     }
1113 
1114     protected void addChildrenToFishingOperationInvalidRadio() {
1115         if (!allComponentsCreated) {
1116             return;
1117         }
1118         { ButtonGroup $buttonGroup = fishingOperationValid; fishingOperationInvalidRadio.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(fishingOperationInvalidRadio); }
1119     }
1120 
1121     protected void addChildrenToFishingOperationPane() {
1122         if (!allComponentsCreated) {
1123             return;
1124         }
1125         fishingOperationPane.add(fishingOperationTabPane, BorderLayout.CENTER);
1126         fishingOperationPane.add($JPanel6, BorderLayout.SOUTH);
1127     }
1128 
1129     protected void addChildrenToFishingOperationResetRadio() {
1130         if (!allComponentsCreated) {
1131             return;
1132         }
1133         { ButtonGroup $buttonGroup = fishingOperationValid; fishingOperationResetRadio.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(fishingOperationResetRadio); }
1134     }
1135 
1136     protected void addChildrenToFishingOperationTabPane() {
1137         if (!allComponentsCreated) {
1138             return;
1139         }
1140         fishingOperationTabPane.add(traitGeneralTabPane);
1141         fishingOperationTabPane.add(gearUseFeatureTabPane);
1142         fishingOperationTabPane.add(vesselUseFeatureTabPane);
1143         traitGeneralTab.addPropertyChangeListener(new TabInfoPropertyChangeListener(fishingOperationTabPane, 0));
1144         gearUseFeatureTab.addPropertyChangeListener(new TabInfoPropertyChangeListener(fishingOperationTabPane, 1));
1145         vesselUseFeatureTab.addPropertyChangeListener(new TabInfoPropertyChangeListener(fishingOperationTabPane, 2));
1146     }
1147 
1148     protected void addChildrenToFishingOperationTabScrollPane() {
1149         if (!allComponentsCreated) {
1150             return;
1151         }
1152         fishingOperationTabScrollPane.getViewport().add(generalForm);
1153     }
1154 
1155     protected void addChildrenToFishingOperationValidPanel() {
1156         if (!allComponentsCreated) {
1157             return;
1158         }
1159         fishingOperationValidPanel.add(resetValidStateButton, BorderLayout.WEST);
1160         fishingOperationValidPanel.add(fishingOperationResetRadio, BorderLayout.EAST);
1161     }
1162 
1163     protected void addChildrenToFishingOperationValidRadio() {
1164         if (!allComponentsCreated) {
1165             return;
1166         }
1167         { ButtonGroup $buttonGroup = fishingOperationValid; fishingOperationValidRadio.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(fishingOperationValidRadio); }
1168     }
1169 
1170     protected void addChildrenToGearCaracteristicsTable() {
1171         if (!allComponentsCreated) {
1172             return;
1173         }
1174         gearCaracteristicsTable.add($JPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1175         gearCaracteristicsTable.add(gearLatitudeLabel, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1176         gearCaracteristicsTable.add(gearLongitudeLabel, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1177         gearCaracteristicsTable.add(gearDateLabel, new GridBagConstraints(3, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1178         gearCaracteristicsTable.add(gearTimeLabel, new GridBagConstraints(4, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1179         gearCaracteristicsTable.add(gearShootingStartLabel, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1180         gearCaracteristicsTable.add(gearShootingStartLatitudePanel, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1181         gearCaracteristicsTable.add(gearShootingStartLongitudePanel, new GridBagConstraints(2, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1182         gearCaracteristicsTable.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartDateField), new GridBagConstraints(3, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1183         gearCaracteristicsTable.add(gearShootingStartTimeField, new GridBagConstraints(4, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1184         gearCaracteristicsTable.add(gearShootingEndLabel, new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1185         gearCaracteristicsTable.add(gearShootingEndLatitudePanel, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1186         gearCaracteristicsTable.add(gearShootingEndLongitudePanel, new GridBagConstraints(2, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1187         gearCaracteristicsTable.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndDateField), new GridBagConstraints(3, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1188         gearCaracteristicsTable.add(gearShootingEndTimeField, new GridBagConstraints(4, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1189         gearCaracteristicsTable.add($JLabel0, new GridBagConstraints(0, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1190         gearCaracteristicsTable.add(fishingOperationRectiligneCheckBox, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1191         gearCaracteristicsTable.add($JPanel2, new GridBagConstraints(2, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1192         gearCaracteristicsTable.add($JLabel1, new GridBagConstraints(3, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1193         gearCaracteristicsTable.add($JPanel3, new GridBagConstraints(4, 3, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1194         gearCaracteristicsTable.add(SwingUtil.boxComponentWithJxLayer(fishingOperationValidPanel), new GridBagConstraints(0, 4, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1195         gearCaracteristicsTable.add($HBox0, new GridBagConstraints(1, 4, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1196         gearCaracteristicsTable.add($JPanel4, new GridBagConstraints(2, 4, 4, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1197     }
1198 
1199     protected void addChildrenToGearShootingEndLatitudePanel() {
1200         if (!allComponentsCreated) {
1201             return;
1202         }
1203         gearShootingEndLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLatitudeDDField), "DD");
1204         gearShootingEndLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLatitudeDMSField), "DMS");
1205         gearShootingEndLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLatitudeDMDField), "DMD");
1206     }
1207 
1208     protected void addChildrenToGearShootingEndLongitudePanel() {
1209         if (!allComponentsCreated) {
1210             return;
1211         }
1212         gearShootingEndLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLongitudeDDField), "DD");
1213         gearShootingEndLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLongitudeDMSField), "DMS");
1214         gearShootingEndLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingEndLongitudeDMDField), "DMD");
1215     }
1216 
1217     protected void addChildrenToGearShootingStartLatitudePanel() {
1218         if (!allComponentsCreated) {
1219             return;
1220         }
1221         gearShootingStartLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLatitudeDDField), "DD");
1222         gearShootingStartLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLatitudeDMSField), "DMS");
1223         gearShootingStartLatitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLatitudeDMDField), "DMD");
1224     }
1225 
1226     protected void addChildrenToGearShootingStartLongitudePanel() {
1227         if (!allComponentsCreated) {
1228             return;
1229         }
1230         gearShootingStartLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLongitudeDDField), "DD");
1231         gearShootingStartLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLongitudeDMSField), "DMS");
1232         gearShootingStartLongitudePanel.add(SwingUtil.boxComponentWithJxLayer(gearShootingStartLongitudeDMDField), "DMD");
1233     }
1234 
1235     protected void addChildrenToGearUseFeatureTabPane() {
1236         if (!allComponentsCreated) {
1237             return;
1238         }
1239         gearUseFeatureTabPane.add(gearUseFeatureTabContent);
1240     }
1241 
1242     protected void addChildrenToGeneralForm() {
1243         if (!allComponentsCreated) {
1244             return;
1245         }
1246         generalForm.add(stationNumberLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1247         generalForm.add(SwingUtil.boxComponentWithJxLayer(stationNumberField), new GridBagConstraints(1, 0, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1248         generalForm.add(fishingOperationNumberLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1249         generalForm.add(SwingUtil.boxComponentWithJxLayer(fishingOperationNumberField), new GridBagConstraints(3, 0, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1250         generalForm.add(multirigAggregationLabel, new GridBagConstraints(4, 0, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1251         generalForm.add(SwingUtil.boxComponentWithJxLayer(multirigAggregationField), new GridBagConstraints(5, 0, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1252         generalForm.add(strataLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1253         generalForm.add(SwingUtil.boxComponentWithJxLayer(strataComboBox), new GridBagConstraints(1, 1, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1254         generalForm.add(subStrataLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1255         generalForm.add(SwingUtil.boxComponentWithJxLayer(subStrataComboBox), new GridBagConstraints(3, 1, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1256         generalForm.add(locationLabel, new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1257         generalForm.add(SwingUtil.boxComponentWithJxLayer(locationComboBox), new GridBagConstraints(5, 1, 1, 1, 0.3, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1258         generalForm.add($JPanel0, new GridBagConstraints(0, 2, 6, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1259         generalForm.add($JPanel5, new GridBagConstraints(0, 3, 6, 1, 0.0, 0.2, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1260         generalForm.add(SwingUtil.boxComponentWithJxLayer(commentPane), new GridBagConstraints(0, 4, 6, 1, 0.0, 0.8, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1261     }
1262 
1263     protected void addChildrenToMenu() {
1264         if (!allComponentsCreated) {
1265             return;
1266         }
1267         menu.add(menuAction);
1268     }
1269 
1270     protected void addChildrenToMenuAction() {
1271         if (!allComponentsCreated) {
1272             return;
1273         }
1274         menuAction.add(importFromColumnFile);
1275     }
1276 
1277     protected void addChildrenToSecondaryVesselFilterPane() {
1278         if (!allComponentsCreated) {
1279             return;
1280         }
1281         secondaryVesselFilterPane.add(filterSecondaryVesselLabel);
1282         secondaryVesselFilterPane.add(filterSecondaryVesselAllButton);
1283         secondaryVesselFilterPane.add(filterSecondaryVesselScientificButton);
1284         secondaryVesselFilterPane.add(filterSecondaryVesselFishingButton);
1285         secondaryVesselFilterPane.add(filterSecondaryVesselOnlyCruiseButton);
1286     }
1287 
1288     protected void addChildrenToTraitGeneralTabPane() {
1289         if (!allComponentsCreated) {
1290             return;
1291         }
1292         traitGeneralTabPane.add(fishingOperationTabScrollPane);
1293     }
1294 
1295     protected void addChildrenToTraitGeneralTabPaneToolBar() {
1296         if (!allComponentsCreated) {
1297             return;
1298         }
1299         traitGeneralTabPaneToolBar.add(menu);
1300         traitGeneralTabPaneToolBar.add(fishingOperationAttachmentsButton);
1301     }
1302 
1303     protected void addChildrenToTraitVesselPanel() {
1304         if (!allComponentsCreated) {
1305             return;
1306         }
1307         traitVesselPanel.add(vesselLabel, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1308         traitVesselPanel.add(vesselField, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1309         traitVesselPanel.add(gearLabel, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1310         traitVesselPanel.add(SwingUtil.boxComponentWithJxLayer(gearComboBox), new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1311         traitVesselPanel.add(secondaryVesselFilterPane, new GridBagConstraints(0, 2, 2, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1312         traitVesselPanel.add(secondaryVesselList, new GridBagConstraints(0, 3, 4, 1, 1.0, 0.3, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1313     }
1314 
1315     protected void addChildrenToValidator() {
1316         if (!allComponentsCreated) {
1317             return;
1318         }
1319         validator.setUiClass(ImageValidationUI.class);
1320         validator.setBean(model);
1321     }
1322 
1323     protected void addChildrenToVesselUseFeatureTabPane() {
1324         if (!allComponentsCreated) {
1325             return;
1326         }
1327         vesselUseFeatureTabPane.add(vesselUseFeatureTabContent);
1328     }
1329 
1330     protected void createBroker() {
1331         $objectMap.put("broker", broker = new TuttiHelpBroker("tuttihelp.editeditFishingOperation.help"));
1332     }
1333 
1334     protected void createCancelButton() {
1335         $objectMap.put("cancelButton", cancelButton = new JButton());
1336         
1337         cancelButton.setName("cancelButton");
1338         cancelButton.setText(t("tutti.editFishingOperation.action.cancelEditFishingOperation"));
1339         cancelButton.setToolTipText(t("tutti.editFishingOperation.action.cancelEditFishingOperation.tip"));
1340         cancelButton.putClientProperty("help", "tutti.editFishingOperation.action.cancelEditFishingOperation.help");
1341         cancelButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.CancelEditFishingOperationAction.class);
1342     }
1343 
1344     protected void createCommentField() {
1345         $objectMap.put("commentField", commentField = new JTextArea());
1346         
1347         commentField.setName("commentField");
1348         commentField.setColumns(15);
1349         commentField.setLineWrap(true);
1350         commentField.setWrapStyleWord(true);
1351         commentField.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyReleased", this, "doKeyReleased__on__commentField"));
1352         commentField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.comment"));
1353     }
1354 
1355     protected void createCommentPane() {
1356         $objectMap.put("commentPane", commentPane = new JScrollPane());
1357         
1358         commentPane.setName("commentPane");
1359         commentPane.setToolTipText(t("tutti.editFishingOperation.field.comment.tip"));
1360         commentPane.addFocusListener(JAXXUtil.getEventListener(FocusListener.class, "focusGained", this, "doFocusGained__on__commentPane"));
1361         commentPane.putClientProperty("help", "tutti.editFishingOperation.field.comment.help");
1362     }
1363 
1364     protected void createCreateFishingOperationActions() {
1365         $objectMap.put("createFishingOperationActions", createFishingOperationActions = new JPanel());
1366         
1367         createFishingOperationActions.setName("createFishingOperationActions");
1368         createFishingOperationActions.setLayout(new GridLayout(1,0));
1369         SwingUtil.setComponentHeight(createFishingOperationActions,50);
1370     }
1371 
1372     protected void createDurationField() {
1373         $objectMap.put("durationField", durationField = new JTextField());
1374         
1375         durationField.setName("durationField");
1376         durationField.setColumns(15);
1377         durationField.setEnabled(false);
1378         durationField.putClientProperty("help", "tutti.editFishingOperation.field.duration.help");
1379         durationField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.duration"));
1380     }
1381 
1382     protected void createDurationLabel() {
1383         $objectMap.put("durationLabel", durationLabel = new JLabel());
1384         
1385         durationLabel.setName("durationLabel");
1386         durationLabel.setText(t("tutti.editFishingOperation.field.duration"));
1387         durationLabel.setToolTipText(t("tutti.editFishingOperation.field.duration.tip"));
1388         durationLabel.putClientProperty("help", "tutti.editFishingOperation.field.duration.help");
1389     }
1390 
1391     protected void createFilterSecondaryVesselAllButton() {
1392         $objectMap.put("filterSecondaryVesselAllButton", filterSecondaryVesselAllButton = new JRadioButton());
1393         
1394         filterSecondaryVesselAllButton.setName("filterSecondaryVesselAllButton");
1395         filterSecondaryVesselAllButton.setText(t("tutti.editFishingOperation.filterSecondaryVesselType.all"));
1396         { filterSecondaryVesselAllButton.putClientProperty("$value", "all");  Object $buttonGroup = filterSecondaryVesselAllButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1397         
1398         filterSecondaryVesselAllButton.setToolTipText(t("tutti.editFishingOperation.filterSecondaryVesselType.all.tip"));
1399         filterSecondaryVesselAllButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSecondaryVesselAllButton"));
1400     }
1401 
1402     protected void createFilterSecondaryVesselFishingButton() {
1403         $objectMap.put("filterSecondaryVesselFishingButton", filterSecondaryVesselFishingButton = new JRadioButton());
1404         
1405         filterSecondaryVesselFishingButton.setName("filterSecondaryVesselFishingButton");
1406         filterSecondaryVesselFishingButton.setText(t("tutti.editFishingOperation.filterSecondaryVesselType.fishing"));
1407         { filterSecondaryVesselFishingButton.putClientProperty("$value", "fishing");  Object $buttonGroup = filterSecondaryVesselFishingButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1408         
1409         filterSecondaryVesselFishingButton.setToolTipText(t("tutti.editFishingOperation.filterSecondaryVesselType.fishing.tip"));
1410         filterSecondaryVesselFishingButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSecondaryVesselFishingButton"));
1411     }
1412 
1413     protected void createFilterSecondaryVesselLabel() {
1414         $objectMap.put("filterSecondaryVesselLabel", filterSecondaryVesselLabel = new JLabel());
1415         
1416         filterSecondaryVesselLabel.setName("filterSecondaryVesselLabel");
1417         filterSecondaryVesselLabel.setText(t("tutti.editFishingOperation.filterSecondaryVesselType"));
1418         filterSecondaryVesselLabel.setToolTipText(t("tutti.editFishingOperation.filterSecondaryVesselType.tip"));
1419         filterSecondaryVesselLabel.putClientProperty("strongStyle", true);
1420     }
1421 
1422     protected void createFilterSecondaryVesselOnlyCruiseButton() {
1423         $objectMap.put("filterSecondaryVesselOnlyCruiseButton", filterSecondaryVesselOnlyCruiseButton = new JRadioButton());
1424         
1425         filterSecondaryVesselOnlyCruiseButton.setName("filterSecondaryVesselOnlyCruiseButton");
1426         filterSecondaryVesselOnlyCruiseButton.setText(t("tutti.editFishingOperation.filterSecondaryVesselType.onlyCruise"));
1427         { filterSecondaryVesselOnlyCruiseButton.putClientProperty("$value", "onlyCruise");  Object $buttonGroup = filterSecondaryVesselOnlyCruiseButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1428         
1429         filterSecondaryVesselOnlyCruiseButton.setToolTipText(t("tutti.editFishingOperation.filterSecondaryVesselType.onlyCruise.tip"));
1430         filterSecondaryVesselOnlyCruiseButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSecondaryVesselOnlyCruiseButton"));
1431     }
1432 
1433     protected void createFilterSecondaryVesselScientificButton() {
1434         $objectMap.put("filterSecondaryVesselScientificButton", filterSecondaryVesselScientificButton = new JRadioButton());
1435         
1436         filterSecondaryVesselScientificButton.setName("filterSecondaryVesselScientificButton");
1437         filterSecondaryVesselScientificButton.setText(t("tutti.editFishingOperation.filterSecondaryVesselType.scientific"));
1438         { filterSecondaryVesselScientificButton.putClientProperty("$value", "scientific");  Object $buttonGroup = filterSecondaryVesselScientificButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1439         
1440         filterSecondaryVesselScientificButton.setToolTipText(t("tutti.editFishingOperation.filterSecondaryVesselType.scientific.tip"));
1441         filterSecondaryVesselScientificButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSecondaryVesselScientificButton"));
1442     }
1443 
1444     protected void createFilterSecondaryVesselType() {
1445         $objectMap.put("filterSecondaryVesselType", filterSecondaryVesselType = new JAXXButtonGroup());
1446     }
1447 
1448     protected void createFishingOperationAttachmentsButton() {
1449         $objectMap.put("fishingOperationAttachmentsButton", fishingOperationAttachmentsButton = new ButtonAttachment(getHandler().getContext(), getModel()));
1450         
1451         fishingOperationAttachmentsButton.setName("fishingOperationAttachmentsButton");
1452         fishingOperationAttachmentsButton.setToolTipText(t("tutti.editFishingOperation.action.attachments.tip"));
1453         fishingOperationAttachmentsButton.setFocusPainted(false);
1454         fishingOperationAttachmentsButton.putClientProperty("help", "tutti.editFishingOperation.action.attachments.help");
1455     }
1456 
1457     protected void createFishingOperationInvalidRadio() {
1458         $objectMap.put("fishingOperationInvalidRadio", fishingOperationInvalidRadio = new JRadioButton());
1459         
1460         fishingOperationInvalidRadio.setName("fishingOperationInvalidRadio");
1461         fishingOperationInvalidRadio.setText(t("tutti.editFishingOperation.field.fishingOperationInvalid"));
1462         fishingOperationInvalidRadio.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__fishingOperationInvalidRadio"));
1463         fishingOperationInvalidRadio.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationValid.help");
1464     }
1465 
1466     protected void createFishingOperationNumberField() {
1467         $objectMap.put("fishingOperationNumberField", fishingOperationNumberField = new NumberEditor(this));
1468         
1469         fishingOperationNumberField.setName("fishingOperationNumberField");
1470         fishingOperationNumberField.setProperty("fishingOperationNumber");
1471         fishingOperationNumberField.setShowReset(true);
1472         fishingOperationNumberField.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationNumber.help");
1473         fishingOperationNumberField.putClientProperty("selectOnFocus", true);
1474         fishingOperationNumberField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.fishingOperationNumber"));
1475     }
1476 
1477     protected void createFishingOperationNumberLabel() {
1478         $objectMap.put("fishingOperationNumberLabel", fishingOperationNumberLabel = new JLabel());
1479         
1480         fishingOperationNumberLabel.setName("fishingOperationNumberLabel");
1481         fishingOperationNumberLabel.setText(t("tutti.editFishingOperation.field.fishingOperationNumber"));
1482         fishingOperationNumberLabel.setToolTipText(t("tutti.editFishingOperation.field.fishingOperationNumber.tip"));
1483         fishingOperationNumberLabel.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationNumber.help");
1484     }
1485 
1486     protected void createFishingOperationPane() {
1487         $objectMap.put("fishingOperationPane", fishingOperationPane = new JPanel());
1488         
1489         fishingOperationPane.setName("fishingOperationPane");
1490         fishingOperationPane.setLayout(new BorderLayout());
1491     }
1492 
1493     protected void createFishingOperationRectiligneCheckBox() {
1494         $objectMap.put("fishingOperationRectiligneCheckBox", fishingOperationRectiligneCheckBox = new JCheckBox());
1495         
1496         fishingOperationRectiligneCheckBox.setName("fishingOperationRectiligneCheckBox");
1497         fishingOperationRectiligneCheckBox.setText(t("tutti.editFishingOperation.field.fishingOperationRectiligne"));
1498         fishingOperationRectiligneCheckBox.setToolTipText(t("tutti.editFishingOperation.field.fishingOperationRectiligne.tip"));
1499         fishingOperationRectiligneCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__fishingOperationRectiligneCheckBox"));
1500         fishingOperationRectiligneCheckBox.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationRectiligne.help");
1501     }
1502 
1503     protected void createFishingOperationResetRadio() {
1504         $objectMap.put("fishingOperationResetRadio", fishingOperationResetRadio = new JRadioButton());
1505         
1506         fishingOperationResetRadio.setName("fishingOperationResetRadio");
1507         fishingOperationResetRadio.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationValid.help");
1508     }
1509 
1510     protected void createFishingOperationTabPane() {
1511         $objectMap.put("fishingOperationTabPane", fishingOperationTabPane = new JTabbedPane());
1512         
1513         fishingOperationTabPane.setName("fishingOperationTabPane");
1514     }
1515 
1516     protected void createFishingOperationTabScrollPane() {
1517         $objectMap.put("fishingOperationTabScrollPane", fishingOperationTabScrollPane = new JScrollPane());
1518         
1519         fishingOperationTabScrollPane.setName("fishingOperationTabScrollPane");
1520         fishingOperationTabScrollPane.putClientProperty("onlyVerticalScrollable", true);
1521     }
1522 
1523     protected void createFishingOperationValid() {
1524         $objectMap.put("fishingOperationValid", fishingOperationValid = new JAXXButtonGroup());
1525     }
1526 
1527     protected void createFishingOperationValidPanel() {
1528         $objectMap.put("fishingOperationValidPanel", fishingOperationValidPanel = new JToolBar());
1529         
1530         fishingOperationValidPanel.setName("fishingOperationValidPanel");
1531         fishingOperationValidPanel.setLayout(new BorderLayout());
1532         fishingOperationValidPanel.setBorderPainted(false);
1533         fishingOperationValidPanel.setOpaque(false);
1534         fishingOperationValidPanel.setFloatable(false);
1535         fishingOperationValidPanel.setToolTipText(t("tutti.editFishingOperation.field.fishingOperationValid.tip"));
1536         fishingOperationValidPanel.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationValid.help");
1537         fishingOperationValidPanel.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.fishingOperationValidity"));
1538     }
1539 
1540     protected void createFishingOperationValidRadio() {
1541         $objectMap.put("fishingOperationValidRadio", fishingOperationValidRadio = new JRadioButton());
1542         
1543         fishingOperationValidRadio.setName("fishingOperationValidRadio");
1544         fishingOperationValidRadio.setText(t("tutti.editFishingOperation.field.fishingOperationValid"));
1545         fishingOperationValidRadio.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__fishingOperationValidRadio"));
1546         fishingOperationValidRadio.putClientProperty("help", "tutti.editFishingOperation.field.fishingOperationValid.help");
1547     }
1548 
1549     protected void createGearCaracteristicsTable() {
1550         $objectMap.put("gearCaracteristicsTable", gearCaracteristicsTable = new Table());
1551         
1552         gearCaracteristicsTable.setName("gearCaracteristicsTable");
1553     }
1554 
1555     protected void createGearComboBox() {
1556         $objectMap.put("gearComboBox", gearComboBox = new BeanFilterableComboBox<Gear>(this));
1557         
1558         gearComboBox.setName("gearComboBox");
1559         gearComboBox.setProperty("gear");
1560         gearComboBox.setShowReset(true);
1561         gearComboBox.putClientProperty("help", "tutti.editFishingOperation.field.gear.help");
1562         gearComboBox.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gear"));
1563     }
1564 
1565     protected void createGearDateLabel() {
1566         $objectMap.put("gearDateLabel", gearDateLabel = new JLabel());
1567         
1568         gearDateLabel.setName("gearDateLabel");
1569         gearDateLabel.setText(t("tutti.editFishingOperation.field.gearDate"));
1570         gearDateLabel.setToolTipText(t("tutti.editFishingOperation.field.gearDate.tip"));
1571         gearDateLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearDate.help");
1572     }
1573 
1574     protected void createGearLabel() {
1575         $objectMap.put("gearLabel", gearLabel = new JLabel());
1576         
1577         gearLabel.setName("gearLabel");
1578         gearLabel.setText(t("tutti.editFishingOperation.field.gear"));
1579         gearLabel.setToolTipText(t("tutti.editFishingOperation.field.gear.tip"));
1580         gearLabel.putClientProperty("help", "tutti.editFishingOperation.field.gear.help");
1581     }
1582 
1583     protected void createGearLatitudeLabel() {
1584         $objectMap.put("gearLatitudeLabel", gearLatitudeLabel = new JLabel());
1585         
1586         gearLatitudeLabel.setName("gearLatitudeLabel");
1587         gearLatitudeLabel.setToolTipText(t("tutti.editFishingOperation.field.gearLatitude.tip"));
1588         gearLatitudeLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearLatitude.help");
1589     }
1590 
1591     protected void createGearLongitudeLabel() {
1592         $objectMap.put("gearLongitudeLabel", gearLongitudeLabel = new JLabel());
1593         
1594         gearLongitudeLabel.setName("gearLongitudeLabel");
1595         gearLongitudeLabel.setToolTipText(t("tutti.editFishingOperation.field.gearLongitude.tip"));
1596         gearLongitudeLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearLongitude.help");
1597     }
1598 
1599     protected void createGearShootingEndDateField() {
1600         $objectMap.put("gearShootingEndDateField", gearShootingEndDateField = new JXDatePicker());
1601         
1602         gearShootingEndDateField.setName("gearShootingEndDateField");
1603         gearShootingEndDateField.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__gearShootingEndDateField"));
1604         gearShootingEndDateField.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingEndDate.help");
1605         gearShootingEndDateField.putClientProperty("selectOnFocus", true);
1606         gearShootingEndDateField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndDate"));
1607     }
1608 
1609     protected void createGearShootingEndLabel() {
1610         $objectMap.put("gearShootingEndLabel", gearShootingEndLabel = new JLabel());
1611         
1612         gearShootingEndLabel.setName("gearShootingEndLabel");
1613         gearShootingEndLabel.setText(t("tutti.editFishingOperation.field.gearShootingEnd"));
1614         gearShootingEndLabel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingEnd.tip"));
1615         gearShootingEndLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingEnd.help");
1616     }
1617 
1618     protected void createGearShootingEndLatitudeDDField() {
1619         $objectMap.put("gearShootingEndLatitudeDDField", gearShootingEndLatitudeDDField = new NumberEditor(this));
1620         
1621         gearShootingEndLatitudeDDField.setName("gearShootingEndLatitudeDDField");
1622         gearShootingEndLatitudeDDField.setUseSign(true);
1623         gearShootingEndLatitudeDDField.setProperty("gearShootingEndLatitude");
1624         gearShootingEndLatitudeDDField.setShowReset(false);
1625         gearShootingEndLatitudeDDField.setToolTipText(t("tutti.editFishingOperation.field.gearShootingEndLatitude.tip"));
1626         gearShootingEndLatitudeDDField.putClientProperty("selectOnFocus", true);
1627         gearShootingEndLatitudeDDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLatitude"));
1628     }
1629 
1630     protected void createGearShootingEndLatitudeDMDField() {
1631         $objectMap.put("gearShootingEndLatitudeDMDField", gearShootingEndLatitudeDMDField = new DmdCoordinateEditor());
1632         
1633         gearShootingEndLatitudeDMDField.setName("gearShootingEndLatitudeDMDField");
1634         gearShootingEndLatitudeDMDField.setPropertyDecimal("gearShootingEndLatitudeDmdDecimal");
1635         gearShootingEndLatitudeDMDField.setPropertySign("gearShootingEndLatitudeDmdSign");
1636         gearShootingEndLatitudeDMDField.setPropertyMinute("gearShootingEndLatitudeDmdMinute");
1637         gearShootingEndLatitudeDMDField.setShowReset(true);
1638         gearShootingEndLatitudeDMDField.setPropertyDegree("gearShootingEndLatitudeDmdDegree");
1639         gearShootingEndLatitudeDMDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLatitude"));
1640     }
1641 
1642     protected void createGearShootingEndLatitudeDMSField() {
1643         $objectMap.put("gearShootingEndLatitudeDMSField", gearShootingEndLatitudeDMSField = new DmsCoordinateEditor());
1644         
1645         gearShootingEndLatitudeDMSField.setName("gearShootingEndLatitudeDMSField");
1646         gearShootingEndLatitudeDMSField.setPropertySign("gearShootingEndLatitudeDmsSign");
1647         gearShootingEndLatitudeDMSField.setPropertyMinute("gearShootingEndLatitudeDmsMinute");
1648         gearShootingEndLatitudeDMSField.setPropertySecond("gearShootingEndLatitudeDmsSecond");
1649         gearShootingEndLatitudeDMSField.setShowReset(true);
1650         gearShootingEndLatitudeDMSField.setPropertyDegree("gearShootingEndLatitudeDmsDegree");
1651         gearShootingEndLatitudeDMSField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLatitude"));
1652     }
1653 
1654     protected void createGearShootingEndLatitudeLayout() {
1655         $objectMap.put("gearShootingEndLatitudeLayout", gearShootingEndLatitudeLayout = new CardLayout2Ext(this, "gearShootingEndLatitudePanel"));
1656     }
1657 
1658     protected void createGearShootingEndLatitudePanel() {
1659         $objectMap.put("gearShootingEndLatitudePanel", gearShootingEndLatitudePanel = new JPanel());
1660         
1661         gearShootingEndLatitudePanel.setName("gearShootingEndLatitudePanel");
1662         gearShootingEndLatitudePanel.setLayout(gearShootingEndLatitudeLayout);
1663         gearShootingEndLatitudePanel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingEndLatitude.tip"));
1664         gearShootingEndLatitudePanel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingEndLatitude.help");
1665     }
1666 
1667     protected void createGearShootingEndLongitudeDDField() {
1668         $objectMap.put("gearShootingEndLongitudeDDField", gearShootingEndLongitudeDDField = new NumberEditor(this));
1669         
1670         gearShootingEndLongitudeDDField.setName("gearShootingEndLongitudeDDField");
1671         gearShootingEndLongitudeDDField.setUseSign(true);
1672         gearShootingEndLongitudeDDField.setProperty("gearShootingEndLongitude");
1673         gearShootingEndLongitudeDDField.setShowReset(false);
1674         gearShootingEndLongitudeDDField.setToolTipText(t("tutti.editFishingOperation.field.gearShootingEndLongitude.tip"));
1675         gearShootingEndLongitudeDDField.putClientProperty("selectOnFocus", true);
1676         gearShootingEndLongitudeDDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLongitude"));
1677     }
1678 
1679     protected void createGearShootingEndLongitudeDMDField() {
1680         $objectMap.put("gearShootingEndLongitudeDMDField", gearShootingEndLongitudeDMDField = new DmdCoordinateEditor());
1681         
1682         gearShootingEndLongitudeDMDField.setName("gearShootingEndLongitudeDMDField");
1683         gearShootingEndLongitudeDMDField.setPropertyDecimal("gearShootingEndLongitudeDmdDecimal");
1684         gearShootingEndLongitudeDMDField.setPropertySign("gearShootingEndLongitudeDmdSign");
1685         gearShootingEndLongitudeDMDField.setPropertyMinute("gearShootingEndLongitudeDmdMinute");
1686         gearShootingEndLongitudeDMDField.setShowReset(true);
1687         gearShootingEndLongitudeDMDField.setPropertyDegree("gearShootingEndLongitudeDmdDegree");
1688         gearShootingEndLongitudeDMDField.putClientProperty("longitudeEditor", true);
1689         gearShootingEndLongitudeDMDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLongitude"));
1690     }
1691 
1692     protected void createGearShootingEndLongitudeDMSField() {
1693         $objectMap.put("gearShootingEndLongitudeDMSField", gearShootingEndLongitudeDMSField = new DmsCoordinateEditor());
1694         
1695         gearShootingEndLongitudeDMSField.setName("gearShootingEndLongitudeDMSField");
1696         gearShootingEndLongitudeDMSField.setPropertySign("gearShootingEndLongitudeDmsSign");
1697         gearShootingEndLongitudeDMSField.setPropertyMinute("gearShootingEndLongitudeDmsMinute");
1698         gearShootingEndLongitudeDMSField.setPropertySecond("gearShootingEndLongitudeDmsSecond");
1699         gearShootingEndLongitudeDMSField.setShowReset(true);
1700         gearShootingEndLongitudeDMSField.setPropertyDegree("gearShootingEndLongitudeDmsDegree");
1701         gearShootingEndLongitudeDMSField.putClientProperty("longitudeEditor", true);
1702         gearShootingEndLongitudeDMSField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingEndLongitude"));
1703     }
1704 
1705     protected void createGearShootingEndLongitudeLayout() {
1706         $objectMap.put("gearShootingEndLongitudeLayout", gearShootingEndLongitudeLayout = new CardLayout2Ext(this, "gearShootingEndLongitudePanel"));
1707     }
1708 
1709     protected void createGearShootingEndLongitudePanel() {
1710         $objectMap.put("gearShootingEndLongitudePanel", gearShootingEndLongitudePanel = new JPanel());
1711         
1712         gearShootingEndLongitudePanel.setName("gearShootingEndLongitudePanel");
1713         gearShootingEndLongitudePanel.setLayout(gearShootingEndLongitudeLayout);
1714         gearShootingEndLongitudePanel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingEndLongitude.tip"));
1715         gearShootingEndLongitudePanel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingEndLongitude.help");
1716     }
1717 
1718     protected void createGearShootingEndTimeField() {
1719         $objectMap.put("gearShootingEndTimeField", gearShootingEndTimeField = new SimpleTimeEditor(this));
1720         
1721         gearShootingEndTimeField.setName("gearShootingEndTimeField");
1722         gearShootingEndTimeField.setProperty("gearShootingEndTime");
1723         gearShootingEndTimeField.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingEndTime.help");
1724         gearShootingEndTimeField.putClientProperty("selectOnFocus", true);
1725     }
1726 
1727     protected void createGearShootingStartDateField() {
1728         $objectMap.put("gearShootingStartDateField", gearShootingStartDateField = new JXDatePicker());
1729         
1730         gearShootingStartDateField.setName("gearShootingStartDateField");
1731         gearShootingStartDateField.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__gearShootingStartDateField"));
1732         gearShootingStartDateField.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingStartDate.help");
1733         gearShootingStartDateField.putClientProperty("selectOnFocus", true);
1734         gearShootingStartDateField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartDate"));
1735     }
1736 
1737     protected void createGearShootingStartLabel() {
1738         $objectMap.put("gearShootingStartLabel", gearShootingStartLabel = new JLabel());
1739         
1740         gearShootingStartLabel.setName("gearShootingStartLabel");
1741         gearShootingStartLabel.setText(t("tutti.editFishingOperation.field.gearShootingStart"));
1742         gearShootingStartLabel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingStart.tip"));
1743         gearShootingStartLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingStart.help");
1744     }
1745 
1746     protected void createGearShootingStartLatitudeDDField() {
1747         $objectMap.put("gearShootingStartLatitudeDDField", gearShootingStartLatitudeDDField = new NumberEditor(this));
1748         
1749         gearShootingStartLatitudeDDField.setName("gearShootingStartLatitudeDDField");
1750         gearShootingStartLatitudeDDField.setUseSign(true);
1751         gearShootingStartLatitudeDDField.setProperty("gearShootingStartLatitude");
1752         gearShootingStartLatitudeDDField.setShowReset(false);
1753         gearShootingStartLatitudeDDField.setToolTipText(t("tutti.editFishingOperation.field.gearShootingStartLatitude.tip"));
1754         gearShootingStartLatitudeDDField.putClientProperty("selectOnFocus", true);
1755         gearShootingStartLatitudeDDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLatitude"));
1756     }
1757 
1758     protected void createGearShootingStartLatitudeDMDField() {
1759         $objectMap.put("gearShootingStartLatitudeDMDField", gearShootingStartLatitudeDMDField = new DmdCoordinateEditor());
1760         
1761         gearShootingStartLatitudeDMDField.setName("gearShootingStartLatitudeDMDField");
1762         gearShootingStartLatitudeDMDField.setPropertyDecimal("gearShootingStartLatitudeDmdDecimal");
1763         gearShootingStartLatitudeDMDField.setPropertySign("gearShootingStartLatitudeDmdSign");
1764         gearShootingStartLatitudeDMDField.setPropertyMinute("gearShootingStartLatitudeDmdMinute");
1765         gearShootingStartLatitudeDMDField.setShowReset(true);
1766         gearShootingStartLatitudeDMDField.setPropertyDegree("gearShootingStartLatitudeDmdDegree");
1767         gearShootingStartLatitudeDMDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLatitude"));
1768     }
1769 
1770     protected void createGearShootingStartLatitudeDMSField() {
1771         $objectMap.put("gearShootingStartLatitudeDMSField", gearShootingStartLatitudeDMSField = new DmsCoordinateEditor());
1772         
1773         gearShootingStartLatitudeDMSField.setName("gearShootingStartLatitudeDMSField");
1774         gearShootingStartLatitudeDMSField.setPropertySign("gearShootingStartLatitudeDmsSign");
1775         gearShootingStartLatitudeDMSField.setPropertyMinute("gearShootingStartLatitudeDmsMinute");
1776         gearShootingStartLatitudeDMSField.setPropertySecond("gearShootingStartLatitudeDmsSecond");
1777         gearShootingStartLatitudeDMSField.setShowReset(true);
1778         gearShootingStartLatitudeDMSField.setPropertyDegree("gearShootingStartLatitudeDmsDegree");
1779         gearShootingStartLatitudeDMSField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLatitude"));
1780     }
1781 
1782     protected void createGearShootingStartLatitudeLayout() {
1783         $objectMap.put("gearShootingStartLatitudeLayout", gearShootingStartLatitudeLayout = new CardLayout2Ext(this, "gearShootingStartLatitudePanel"));
1784     }
1785 
1786     protected void createGearShootingStartLatitudePanel() {
1787         $objectMap.put("gearShootingStartLatitudePanel", gearShootingStartLatitudePanel = new JPanel());
1788         
1789         gearShootingStartLatitudePanel.setName("gearShootingStartLatitudePanel");
1790         gearShootingStartLatitudePanel.setLayout(gearShootingStartLatitudeLayout);
1791         gearShootingStartLatitudePanel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingStartLatitude.tip"));
1792         gearShootingStartLatitudePanel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingStartLatitude.help");
1793     }
1794 
1795     protected void createGearShootingStartLongitudeDDField() {
1796         $objectMap.put("gearShootingStartLongitudeDDField", gearShootingStartLongitudeDDField = new NumberEditor(this));
1797         
1798         gearShootingStartLongitudeDDField.setName("gearShootingStartLongitudeDDField");
1799         gearShootingStartLongitudeDDField.setUseSign(true);
1800         gearShootingStartLongitudeDDField.setProperty("gearShootingStartLongitude");
1801         gearShootingStartLongitudeDDField.setShowReset(false);
1802         gearShootingStartLongitudeDDField.setToolTipText(t("tutti.editFishingOperation.field.gearShootingStartLongitude.tip"));
1803         gearShootingStartLongitudeDDField.putClientProperty("selectOnFocus", true);
1804         gearShootingStartLongitudeDDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLongitude"));
1805     }
1806 
1807     protected void createGearShootingStartLongitudeDMDField() {
1808         $objectMap.put("gearShootingStartLongitudeDMDField", gearShootingStartLongitudeDMDField = new DmdCoordinateEditor());
1809         
1810         gearShootingStartLongitudeDMDField.setName("gearShootingStartLongitudeDMDField");
1811         gearShootingStartLongitudeDMDField.setPropertyDecimal("gearShootingStartLongitudeDmdDecimal");
1812         gearShootingStartLongitudeDMDField.setPropertySign("gearShootingStartLongitudeDmdSign");
1813         gearShootingStartLongitudeDMDField.setPropertyMinute("gearShootingStartLongitudeDmdMinute");
1814         gearShootingStartLongitudeDMDField.setShowReset(true);
1815         gearShootingStartLongitudeDMDField.setPropertyDegree("gearShootingStartLongitudeDmdDegree");
1816         gearShootingStartLongitudeDMDField.putClientProperty("longitudeEditor", true);
1817         gearShootingStartLongitudeDMDField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLongitude"));
1818     }
1819 
1820     protected void createGearShootingStartLongitudeDMSField() {
1821         $objectMap.put("gearShootingStartLongitudeDMSField", gearShootingStartLongitudeDMSField = new DmsCoordinateEditor());
1822         
1823         gearShootingStartLongitudeDMSField.setName("gearShootingStartLongitudeDMSField");
1824         gearShootingStartLongitudeDMSField.setPropertySign("gearShootingStartLongitudeDmsSign");
1825         gearShootingStartLongitudeDMSField.setPropertyMinute("gearShootingStartLongitudeDmsMinute");
1826         gearShootingStartLongitudeDMSField.setPropertySecond("gearShootingStartLongitudeDmsSecond");
1827         gearShootingStartLongitudeDMSField.setShowReset(true);
1828         gearShootingStartLongitudeDMSField.setPropertyDegree("gearShootingStartLongitudeDmsDegree");
1829         gearShootingStartLongitudeDMSField.putClientProperty("longitudeEditor", true);
1830         gearShootingStartLongitudeDMSField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.gearShootingStartLongitude"));
1831     }
1832 
1833     protected void createGearShootingStartLongitudeLayout() {
1834         $objectMap.put("gearShootingStartLongitudeLayout", gearShootingStartLongitudeLayout = new CardLayout2Ext(this, "gearShootingStartLongitudePanel"));
1835     }
1836 
1837     protected void createGearShootingStartLongitudePanel() {
1838         $objectMap.put("gearShootingStartLongitudePanel", gearShootingStartLongitudePanel = new JPanel());
1839         
1840         gearShootingStartLongitudePanel.setName("gearShootingStartLongitudePanel");
1841         gearShootingStartLongitudePanel.setLayout(gearShootingStartLongitudeLayout);
1842         gearShootingStartLongitudePanel.setToolTipText(t("tutti.editFishingOperation.field.gearShootingStartLongitude.tip"));
1843         gearShootingStartLongitudePanel.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingStartLongitude.help");
1844     }
1845 
1846     protected void createGearShootingStartTimeField() {
1847         $objectMap.put("gearShootingStartTimeField", gearShootingStartTimeField = new SimpleTimeEditor(this));
1848         
1849         gearShootingStartTimeField.setName("gearShootingStartTimeField");
1850         gearShootingStartTimeField.setProperty("gearShootingStartTime");
1851         gearShootingStartTimeField.putClientProperty("help", "tutti.editFishingOperation.field.gearShootingStartTime.help");
1852         gearShootingStartTimeField.putClientProperty("selectOnFocus", true);
1853     }
1854 
1855     protected void createGearTimeLabel() {
1856         $objectMap.put("gearTimeLabel", gearTimeLabel = new JLabel());
1857         
1858         gearTimeLabel.setName("gearTimeLabel");
1859         gearTimeLabel.setText(t("tutti.editFishingOperation.field.gearTime"));
1860         gearTimeLabel.setToolTipText(t("tutti.editFishingOperation.field.gearTime.tip"));
1861         gearTimeLabel.putClientProperty("help", "tutti.editFishingOperation.field.gearTime.help");
1862     }
1863 
1864     protected void createGearUseFeatureTab() {
1865         $objectMap.put("gearUseFeatureTab", gearUseFeatureTab = new TabInfo());
1866     }
1867 
1868     protected void createGearUseFeatureTabContent() {
1869         $objectMap.put("gearUseFeatureTabContent", gearUseFeatureTabContent = new GearUseFeatureTabUI(this));
1870         
1871         gearUseFeatureTabContent.setName("gearUseFeatureTabContent");
1872     }
1873 
1874     protected void createGearUseFeatureTabPane() {
1875         $objectMap.put("gearUseFeatureTabPane", gearUseFeatureTabPane = new JXTitledPanel());
1876         
1877         gearUseFeatureTabPane.setName("gearUseFeatureTabPane");
1878     }
1879 
1880     protected void createGeneralForm() {
1881         $objectMap.put("generalForm", generalForm = new Table());
1882         
1883         generalForm.setName("generalForm");
1884     }
1885 
1886     protected EditFishingOperationUIHandler createHandler() {
1887         return new EditFishingOperationUIHandler();
1888     }
1889 
1890     protected void createImportFromColumnFile() {
1891         $objectMap.put("importFromColumnFile", importFromColumnFile = new JMenuItem());
1892         
1893         importFromColumnFile.setName("importFromColumnFile");
1894         importFromColumnFile.setText(t("tutti.editFishingOperation.action.importFromColumnFile"));
1895         importFromColumnFile.setToolTipText(t("tutti.editFishingOperation.action.importFromColumnFile.tip"));
1896         importFromColumnFile.putClientProperty("help", "tutti.editFishingOperation.action.importFromColumnFile.help");
1897         importFromColumnFile.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.ImportFishingOperationCaracteristicsFromColumnFileAction.class);
1898     }
1899 
1900     protected void createLocationComboBox() {
1901         $objectMap.put("locationComboBox", locationComboBox = new BeanFilterableComboBox<TuttiLocation>(this));
1902         
1903         locationComboBox.setName("locationComboBox");
1904         locationComboBox.setProperty("location");
1905         locationComboBox.setShowReset(true);
1906         locationComboBox.putClientProperty("help", "tutti.editFishingOperation.field.location.help");
1907         locationComboBox.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.location"));
1908     }
1909 
1910     protected void createLocationLabel() {
1911         $objectMap.put("locationLabel", locationLabel = new JLabel());
1912         
1913         locationLabel.setName("locationLabel");
1914         locationLabel.setText(t("tutti.editFishingOperation.field.location"));
1915         locationLabel.setToolTipText(t("tutti.editFishingOperation.field.location.tip"));
1916         locationLabel.putClientProperty("help", "tutti.editFishingOperation.field.location.help");
1917     }
1918 
1919     protected void createMenu() {
1920         $objectMap.put("menu", menu = new JMenuBar());
1921         
1922         menu.setName("menu");
1923     }
1924 
1925     protected void createMenuAction() {
1926         $objectMap.put("menuAction", menuAction = new JMenu());
1927         
1928         menuAction.setName("menuAction");
1929         menuAction.setOpaque(true);
1930         menuAction.setText(t("tutti.toolbar.menu.action"));
1931         menuAction.setToolTipText(t("tutti.toolbar.menu.action.tip"));
1932     }
1933 
1934     protected void createModel() {
1935         $objectMap.put("model", model = getContextValue(EditFishingOperationUIModel.class));
1936     }
1937 
1938     protected void createMultirigAggregationField() {
1939         $objectMap.put("multirigAggregationField", multirigAggregationField = new JTextField());
1940         
1941         multirigAggregationField.setName("multirigAggregationField");
1942         multirigAggregationField.setColumns(15);
1943         multirigAggregationField.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyReleased", this, "doKeyReleased__on__multirigAggregationField"));
1944         multirigAggregationField.putClientProperty("help", "tutti.editFishingOperation.field.multirigAggregation.help");
1945         multirigAggregationField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.multirigAggregation"));
1946     }
1947 
1948     protected void createMultirigAggregationLabel() {
1949         $objectMap.put("multirigAggregationLabel", multirigAggregationLabel = new JLabel());
1950         
1951         multirigAggregationLabel.setName("multirigAggregationLabel");
1952         multirigAggregationLabel.setText(t("tutti.editFishingOperation.field.multirigAggregation"));
1953         multirigAggregationLabel.setToolTipText(t("tutti.editFishingOperation.field.multirigAggregation.tip"));
1954         multirigAggregationLabel.putClientProperty("help", "tutti.editFishingOperation.field.multirigAggregation.help");
1955     }
1956 
1957     protected void createRecorderPersonList() {
1958         $objectMap.put("recorderPersonList", recorderPersonList = new BeanDoubleList<Person>());
1959         
1960         recorderPersonList.setName("recorderPersonList");
1961         recorderPersonList.setProperty("recorderPerson");
1962         recorderPersonList.setShowReset(true);
1963         recorderPersonList.setToolTipText(t("tutti.editFishingOperation.field.recorderPerson.tip"));
1964         recorderPersonList.putClientProperty("help", "tutti.editFishingOperation.field.recorderPerson.help");
1965         recorderPersonList.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.recorderPerson"));
1966     }
1967 
1968     protected void createResetValidStateButton() {
1969         $objectMap.put("resetValidStateButton", resetValidStateButton = new JButton());
1970         
1971         resetValidStateButton.setName("resetValidStateButton");
1972         resetValidStateButton.setText(t("tutti.editFishingOperation.action.resetFishingOperationValidState"));
1973         resetValidStateButton.setToolTipText(t("tutti.editFishingOperation.action.resetFishingOperationValidState.tip"));
1974         resetValidStateButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__resetValidStateButton"));
1975         resetValidStateButton.putClientProperty("help", "tutti.editFishingOperation.action.resetFishingOperationValidState.help");
1976         resetValidStateButton.putClientProperty("skipAction", true);
1977     }
1978 
1979     protected void createSaveButton() {
1980         $objectMap.put("saveButton", saveButton = new JButton());
1981         
1982         saveButton.setName("saveButton");
1983         saveButton.setText(t("tutti.editFishingOperation.action.saveFishingOperation"));
1984         saveButton.setToolTipText(t("tutti.editFishingOperation.action.saveEditFishingOperation.tip"));
1985         saveButton.putClientProperty("help", "tutti.editFishingOperation.action.saveEditFishingOperation.help");
1986         saveButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.fishing.actions.SaveFishingOperationAction.class);
1987     }
1988 
1989     protected void createSecondaryVesselFilterPane() {
1990         $objectMap.put("secondaryVesselFilterPane", secondaryVesselFilterPane = new JPanel());
1991         
1992         secondaryVesselFilterPane.setName("secondaryVesselFilterPane");
1993         secondaryVesselFilterPane.putClientProperty("help", "tutti.editFishingOperation.filterSecondaryVesselType.help");
1994     }
1995 
1996     protected void createSecondaryVesselList() {
1997         $objectMap.put("secondaryVesselList", secondaryVesselList = new BeanDoubleList<Vessel>());
1998         
1999         secondaryVesselList.setName("secondaryVesselList");
2000         secondaryVesselList.setProperty("secondaryVessel");
2001         secondaryVesselList.setShowSelectPopupEnabled(false);
2002         secondaryVesselList.setShowReset(true);
2003         secondaryVesselList.setUseMultiSelect(false);
2004         secondaryVesselList.setToolTipText(t("tutti.editFishingOperation.field.secondaryVessel.tip"));
2005         secondaryVesselList.putClientProperty("help", "tutti.editFishingOperation.field.secondaryVessel.help");
2006         secondaryVesselList.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.secondaryVessel"));
2007     }
2008 
2009     protected void createStationNumberField() {
2010         $objectMap.put("stationNumberField", stationNumberField = new JTextField());
2011         
2012         stationNumberField.setName("stationNumberField");
2013         stationNumberField.setColumns(15);
2014         stationNumberField.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyReleased", this, "doKeyReleased__on__stationNumberField"));
2015         stationNumberField.putClientProperty("help", "tutti.editFishingOperation.field.stationNumber.help");
2016         stationNumberField.putClientProperty("selectOnFocus", true);
2017         stationNumberField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.stationNumber"));
2018     }
2019 
2020     protected void createStationNumberLabel() {
2021         $objectMap.put("stationNumberLabel", stationNumberLabel = new JLabel());
2022         
2023         stationNumberLabel.setName("stationNumberLabel");
2024         stationNumberLabel.setText(t("tutti.editFishingOperation.field.stationNumber"));
2025         stationNumberLabel.setToolTipText(t("tutti.editFishingOperation.field.stationNumber.tip"));
2026         stationNumberLabel.putClientProperty("help", "tutti.editFishingOperation.field.stationNumber.help");
2027     }
2028 
2029     protected void createStrataComboBox() {
2030         $objectMap.put("strataComboBox", strataComboBox = new BeanFilterableComboBox<TuttiLocation>(this));
2031         
2032         strataComboBox.setName("strataComboBox");
2033         strataComboBox.setProperty("strata");
2034         strataComboBox.setShowReset(true);
2035         strataComboBox.putClientProperty("help", "tutti.editFishingOperation.field.strata.help");
2036         strataComboBox.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.strata"));
2037     }
2038 
2039     protected void createStrataLabel() {
2040         $objectMap.put("strataLabel", strataLabel = new JLabel());
2041         
2042         strataLabel.setName("strataLabel");
2043         strataLabel.setText(t("tutti.editFishingOperation.field.strata"));
2044         strataLabel.setToolTipText(t("tutti.editFishingOperation.field.strata.tip"));
2045         strataLabel.putClientProperty("help", "tutti.editFishingOperation.field.strata.help");
2046     }
2047 
2048     protected void createSubStrataComboBox() {
2049         $objectMap.put("subStrataComboBox", subStrataComboBox = new BeanFilterableComboBox<TuttiLocation>(this));
2050         
2051         subStrataComboBox.setName("subStrataComboBox");
2052         subStrataComboBox.setProperty("subStrata");
2053         subStrataComboBox.setShowReset(true);
2054         subStrataComboBox.putClientProperty("help", "tutti.editFishingOperation.field.subStrata.help");
2055         subStrataComboBox.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.subStrata"));
2056     }
2057 
2058     protected void createSubStrataLabel() {
2059         $objectMap.put("subStrataLabel", subStrataLabel = new JLabel());
2060         
2061         subStrataLabel.setName("subStrataLabel");
2062         subStrataLabel.setText(t("tutti.editFishingOperation.field.subStrata"));
2063         subStrataLabel.setToolTipText(t("tutti.editFishingOperation.field.subStrata.tip"));
2064         subStrataLabel.putClientProperty("help", "tutti.editFishingOperation.field.subStrata.help");
2065     }
2066 
2067     protected void createTraitGeneralTab() {
2068         $objectMap.put("traitGeneralTab", traitGeneralTab = new TabInfo());
2069     }
2070 
2071     protected void createTraitGeneralTabPane() {
2072         $objectMap.put("traitGeneralTabPane", traitGeneralTabPane = new JXTitledPanel());
2073         
2074         traitGeneralTabPane.setName("traitGeneralTabPane");
2075     }
2076 
2077     protected void createTraitGeneralTabPaneToolBar() {
2078         $objectMap.put("traitGeneralTabPaneToolBar", traitGeneralTabPaneToolBar = new JToolBar());
2079         
2080         traitGeneralTabPaneToolBar.setName("traitGeneralTabPaneToolBar");
2081         traitGeneralTabPaneToolBar.setBorderPainted(false);
2082         traitGeneralTabPaneToolBar.setOpaque(true);
2083         traitGeneralTabPaneToolBar.setFloatable(false);
2084     }
2085 
2086     protected void createTraitVesselPanel() {
2087         $objectMap.put("traitVesselPanel", traitVesselPanel = new Table());
2088         
2089         traitVesselPanel.setName("traitVesselPanel");
2090     }
2091 
2092     protected void createTrawlDistanceField() {
2093         $objectMap.put("trawlDistanceField", trawlDistanceField = new NumberEditor(this));
2094         
2095         trawlDistanceField.setName("trawlDistanceField");
2096         trawlDistanceField.setProperty("trawlDistance");
2097         trawlDistanceField.setShowReset(true);
2098         trawlDistanceField.putClientProperty("help", "tutti.editFishingOperation.field.trawlDistance.help");
2099         trawlDistanceField.putClientProperty("selectOnFocus", true);
2100         trawlDistanceField.putClientProperty("validatorLabel", t("tutti.editFishingOperation.field.trawlDistance"));
2101     }
2102 
2103     protected void createTrawlDistanceLabel() {
2104         $objectMap.put("trawlDistanceLabel", trawlDistanceLabel = new JLabel());
2105         
2106         trawlDistanceLabel.setName("trawlDistanceLabel");
2107         trawlDistanceLabel.setText(t("tutti.editFishingOperation.field.trawlDistance"));
2108         trawlDistanceLabel.setToolTipText(t("tutti.editFishingOperation.field.trawlDistance.tip"));
2109         trawlDistanceLabel.putClientProperty("help", "tutti.editFishingOperation.field.trawlDistance.help");
2110     }
2111 
2112     protected void createValidator() {
2113         $objectMap.put("validator", validator = SwingValidator.newValidator(EditFishingOperationUIModel.class, "validate"));
2114     }
2115 
2116     protected void createVesselField() {
2117         $objectMap.put("vesselField", vesselField = new JLabel());
2118         
2119         vesselField.setName("vesselField");
2120         vesselField.putClientProperty("help", "tutti.editFishingOperation.field.vessel.help");
2121         vesselField.putClientProperty("strongStyle", true);
2122     }
2123 
2124     protected void createVesselLabel() {
2125         $objectMap.put("vesselLabel", vesselLabel = new JLabel());
2126         
2127         vesselLabel.setName("vesselLabel");
2128         vesselLabel.setText(t("tutti.editFishingOperation.field.vessel"));
2129         vesselLabel.setToolTipText(t("tutti.editFishingOperation.field.vessel.tip"));
2130         vesselLabel.putClientProperty("help", "tutti.editFishingOperation.field.vessel.help");
2131     }
2132 
2133     protected void createVesselUseFeatureTab() {
2134         $objectMap.put("vesselUseFeatureTab", vesselUseFeatureTab = new TabInfo());
2135     }
2136 
2137     protected void createVesselUseFeatureTabContent() {
2138         $objectMap.put("vesselUseFeatureTabContent", vesselUseFeatureTabContent = new VesselUseFeatureTabUI(this));
2139         
2140         vesselUseFeatureTabContent.setName("vesselUseFeatureTabContent");
2141     }
2142 
2143     protected void createVesselUseFeatureTabPane() {
2144         $objectMap.put("vesselUseFeatureTabPane", vesselUseFeatureTabPane = new JXTitledPanel());
2145         
2146         vesselUseFeatureTabPane.setName("vesselUseFeatureTabPane");
2147     }
2148 
2149     /*-----------------------------------------------------------------------*/
2150     /*------------------------ Internal jaxx methods ------------------------*/
2151     /*-----------------------------------------------------------------------*/
2152 
2153     private void $completeSetup() {
2154         allComponentsCreated = true;
2155         if (log.isDebugEnabled()) {
2156             log.debug(this);
2157         }
2158         addChildrenToEditFishingOperationTopPanel();
2159         addChildrenToValidator();
2160         addChildrenToTraitGeneralTabPaneToolBar();
2161         addChildrenToMenu();
2162         addChildrenToMenuAction();
2163         addChildrenToFishingOperationPane();
2164         addChildrenToFishingOperationTabPane();
2165         addChildrenToTraitGeneralTabPane();
2166         addChildrenToFishingOperationTabScrollPane();
2167         addChildrenToGeneralForm();
2168         // inline complete setup of $JPanel0
2169         $JPanel0.add(gearCaracteristicsTable, BorderLayout.CENTER);
2170         addChildrenToGearCaracteristicsTable();
2171         addChildrenToGearShootingStartLatitudePanel();
2172         addChildrenToGearShootingStartLongitudePanel();
2173         addChildrenToGearShootingEndLatitudePanel();
2174         addChildrenToGearShootingEndLongitudePanel();
2175         // inline complete setup of $JPanel2
2176         $JPanel2.add(trawlDistanceLabel, BorderLayout.WEST);
2177         $JPanel2.add(SwingUtil.boxComponentWithJxLayer(trawlDistanceField), BorderLayout.CENTER);
2178         // inline complete setup of $JPanel3
2179         $JPanel3.add(durationLabel, BorderLayout.WEST);
2180         $JPanel3.add(durationField, BorderLayout.CENTER);
2181         addChildrenToFishingOperationValidPanel();
2182         addChildrenToFishingOperationResetRadio();
2183         // inline complete setup of $HBox0
2184         $HBox0.add(fishingOperationValidRadio);
2185         $HBox0.add(fishingOperationInvalidRadio);
2186         addChildrenToFishingOperationValidRadio();
2187         addChildrenToFishingOperationInvalidRadio();
2188         // inline complete setup of $JPanel5
2189         $JPanel5.add(SwingUtil.boxComponentWithJxLayer(recorderPersonList));
2190         $JPanel5.add(traitVesselPanel);
2191         addChildrenToTraitVesselPanel();
2192         addChildrenToSecondaryVesselFilterPane();
2193         addChildrenToFilterSecondaryVesselAllButton();
2194         addChildrenToFilterSecondaryVesselScientificButton();
2195         addChildrenToFilterSecondaryVesselFishingButton();
2196         addChildrenToFilterSecondaryVesselOnlyCruiseButton();
2197         addChildrenToCommentPane();
2198         addChildrenToGearUseFeatureTabPane();
2199         addChildrenToVesselUseFeatureTabPane();
2200         // inline complete setup of $JPanel6
2201         $JPanel6.add(createFishingOperationActions, BorderLayout.CENTER);
2202         addChildrenToCreateFishingOperationActions();
2203         
2204         // apply 46 data bindings
2205         JAXXUtil.applyDataBinding(this, $bindings.keySet());
2206         
2207         // apply 106 property setters
2208         strataComboBox.setBeanType(TuttiLocation.class);
2209         subStrataComboBox.setBeanType(TuttiLocation.class);
2210         locationComboBox.setBeanType(TuttiLocation.class);
2211         recorderPersonList.setBeanType(Person.class);
2212         gearComboBox.setBeanType(Gear.class);
2213         secondaryVesselList.setBeanType(Vessel.class);
2214         gearShootingStartLongitudeLayout.setSelected( ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString() );
2215         gearShootingStartLatitudeLayout.setSelected( ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString() );
2216         gearShootingEndLongitudeLayout.setSelected( ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString() );
2217         gearShootingEndLatitudeLayout.setSelected( ((CoordinateEditorType)handler.getConfig().getCoordinateEditorType()).toString() );
2218         menu.setBorder(null);
2219         menu.setBackground(javax.swing.UIManager.getColor("MenuBar.background"));
2220         menuAction.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menu.action.mnemonic"),'Z'));
2221         importFromColumnFile.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editFishingOperation.action.importFromColumnFile.mnemonic"),'Z'));
2222         importFromColumnFile.setIcon(SwingUtil.createActionIcon("import"));
2223         traitGeneralTabPane.setRightDecoration(traitGeneralTabPaneToolBar);
2224         stationNumberLabel.setLabelFor(stationNumberField);
2225         fishingOperationNumberLabel.setLabelFor(fishingOperationNumberField);
2226         fishingOperationNumberField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2227         fishingOperationNumberField.setNumberType(Integer.class);
2228         fishingOperationNumberField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2229         fishingOperationNumberField.setBean(model);
2230         multirigAggregationLabel.setLabelFor(multirigAggregationField);
2231         strataLabel.setLabelFor(strataComboBox);
2232         strataComboBox.setBean(model);
2233         subStrataLabel.setLabelFor(subStrataComboBox);
2234         subStrataComboBox.setBean(model);
2235         locationLabel.setLabelFor(locationComboBox);
2236         locationComboBox.setBean(model);
2237         gearLatitudeLabel.setIcon(SwingUtil.createActionIcon("coordinates"));
2238         gearLatitudeLabel.setText(t(handler.getGearLatitudeLabelText(handler.getConfig().getCoordinateEditorType())));
2239         gearLongitudeLabel.setIcon(SwingUtil.createActionIcon("coordinates"));
2240         gearLongitudeLabel.setText(t(handler.getGearLongitudeLabelText(handler.getConfig().getCoordinateEditorType())));
2241         gearDateLabel.setIcon(SwingUtil.createActionIcon("calendar"));
2242         gearTimeLabel.setIcon(SwingUtil.createActionIcon("time"));
2243         gearShootingStartLatitudeDDField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2244         gearShootingStartLatitudeDDField.setNumberType(Float.class);
2245         gearShootingStartLatitudeDDField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2246         gearShootingStartLatitudeDDField.setBean(model);
2247         gearShootingStartLatitudeDMSField.setShowResetTip(t("tutti.coordinate.action.reset.latitude.tip"));
2248         gearShootingStartLatitudeDMSField.setBean(model);
2249         gearShootingStartLatitudeDMDField.setShowResetTip(t("tutti.coordinate.action.reset.latitude.tip"));
2250         gearShootingStartLatitudeDMDField.setBean(model);
2251         gearShootingStartLongitudeDDField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2252         gearShootingStartLongitudeDDField.setNumberType(Float.class);
2253         gearShootingStartLongitudeDDField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2254         gearShootingStartLongitudeDDField.setBean(model);
2255         gearShootingStartLongitudeDMSField.setShowResetTip(t("tutti.coordinate.action.reset.longitude.tip"));
2256         gearShootingStartLongitudeDMSField.setBean(model);
2257         gearShootingStartLongitudeDMDField.setShowResetTip(t("tutti.coordinate.action.reset.longitude.tip"));
2258         gearShootingStartLongitudeDMDField.setBean(model);
2259         gearShootingStartTimeField.setBean(model);
2260         gearShootingEndLatitudeDDField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2261         gearShootingEndLatitudeDDField.setNumberType(Float.class);
2262         gearShootingEndLatitudeDDField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2263         gearShootingEndLatitudeDDField.setBean(model);
2264         gearShootingEndLatitudeDMSField.setShowResetTip(t("tutti.coordinate.action.reset.latitude.tip"));
2265         gearShootingEndLatitudeDMSField.setBean(model);
2266         gearShootingEndLatitudeDMDField.setShowResetTip(t("tutti.coordinate.action.reset.latitude.tip"));
2267         gearShootingEndLatitudeDMDField.setBean(model);
2268         gearShootingEndLongitudeDDField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2269         gearShootingEndLongitudeDDField.setNumberType(Float.class);
2270         gearShootingEndLongitudeDDField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2271         gearShootingEndLongitudeDDField.setBean(model);
2272         gearShootingEndLongitudeDMSField.setShowResetTip(t("tutti.coordinate.action.reset.longitude.tip"));
2273         gearShootingEndLongitudeDMSField.setBean(model);
2274         gearShootingEndLongitudeDMDField.setShowResetTip(t("tutti.coordinate.action.reset.longitude.tip"));
2275         gearShootingEndLongitudeDMDField.setBean(model);
2276         gearShootingEndTimeField.setBean(model);
2277         trawlDistanceLabel.setLabelFor(trawlDistanceField);
2278         trawlDistanceField.setNumberType(Integer.class);
2279         trawlDistanceField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2280         trawlDistanceField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2281         trawlDistanceField.setBean(model);
2282         durationLabel.setLabelFor(durationField);
2283         resetValidStateButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editFishingOperation.action.resetFishingOperationValidState.mnemonic"),'Z'));
2284         resetValidStateButton.setIcon(SwingUtil.createActionIcon("reset"));
2285         recorderPersonList.setBorder(BorderFactory.createTitledBorder(t("tutti.editFishingOperation.field.recorderPerson")));
2286         recorderPersonList.setBean(model);
2287         traitVesselPanel.setBorder(BorderFactory.createTitledBorder(t("tutti.editFishingOperation.pane.other")));
2288         vesselLabel.setLabelFor(vesselField);
2289         vesselLabel.setIcon(SwingUtil.createActionIcon("vessel"));
2290         gearLabel.setLabelFor(gearComboBox);
2291         gearLabel.setIcon(SwingUtil.createActionIcon("gear"));
2292         gearComboBox.setBean(model);
2293         filterSecondaryVesselLabel.setIcon(SwingUtil.createActionIcon("filter"));
2294         secondaryVesselList.setBorder(BorderFactory.createTitledBorder(t("tutti.editFishingOperation.field.secondaryVessel")));
2295         secondaryVesselList.setBean(model);
2296         commentPane.setBorder(BorderFactory.createTitledBorder(t("tutti.editFishingOperation.field.comment")));
2297         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editFishingOperation.action.cancelEditFishingOperation.mnemonic"),'Z'));
2298         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
2299         saveButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editFishingOperation.action.saveEditFishingOperation.mnemonic"),'Z'));
2300         saveButton.setIcon(SwingUtil.createActionIcon("save"));
2301         // late initializer
2302         // help broker setup
2303         TuttiHelpBroker _broker = getBroker();
2304         registerHelpId(_broker, editFishingOperationTopPanel, "tutti.editFishingOperation.help");
2305         registerHelpId(_broker, importFromColumnFile, "tutti.editFishingOperation.action.importFromColumnFile.help");
2306         registerHelpId(_broker, fishingOperationAttachmentsButton, "tutti.editFishingOperation.action.attachments.help");
2307         registerHelpId(_broker, stationNumberLabel, "tutti.editFishingOperation.field.stationNumber.help");
2308         registerHelpId(_broker, stationNumberField, "tutti.editFishingOperation.field.stationNumber.help");
2309         registerHelpId(_broker, fishingOperationNumberLabel, "tutti.editFishingOperation.field.fishingOperationNumber.help");
2310         registerHelpId(_broker, fishingOperationNumberField, "tutti.editFishingOperation.field.fishingOperationNumber.help");
2311         registerHelpId(_broker, multirigAggregationLabel, "tutti.editFishingOperation.field.multirigAggregation.help");
2312         registerHelpId(_broker, multirigAggregationField, "tutti.editFishingOperation.field.multirigAggregation.help");
2313         registerHelpId(_broker, strataLabel, "tutti.editFishingOperation.field.strata.help");
2314         registerHelpId(_broker, strataComboBox, "tutti.editFishingOperation.field.strata.help");
2315         registerHelpId(_broker, subStrataLabel, "tutti.editFishingOperation.field.subStrata.help");
2316         registerHelpId(_broker, subStrataComboBox, "tutti.editFishingOperation.field.subStrata.help");
2317         registerHelpId(_broker, locationLabel, "tutti.editFishingOperation.field.location.help");
2318         registerHelpId(_broker, locationComboBox, "tutti.editFishingOperation.field.location.help");
2319         registerHelpId(_broker, gearLatitudeLabel, "tutti.editFishingOperation.field.gearLatitude.help");
2320         registerHelpId(_broker, gearLongitudeLabel, "tutti.editFishingOperation.field.gearLongitude.help");
2321         registerHelpId(_broker, gearDateLabel, "tutti.editFishingOperation.field.gearDate.help");
2322         registerHelpId(_broker, gearTimeLabel, "tutti.editFishingOperation.field.gearTime.help");
2323         registerHelpId(_broker, gearShootingStartLabel, "tutti.editFishingOperation.field.gearShootingStart.help");
2324         registerHelpId(_broker, gearShootingStartLatitudePanel, "tutti.editFishingOperation.field.gearShootingStartLatitude.help");
2325         registerHelpId(_broker, gearShootingStartLongitudePanel, "tutti.editFishingOperation.field.gearShootingStartLongitude.help");
2326         registerHelpId(_broker, gearShootingStartDateField, "tutti.editFishingOperation.field.gearShootingStartDate.help");
2327         registerHelpId(_broker, gearShootingStartTimeField, "tutti.editFishingOperation.field.gearShootingStartTime.help");
2328         registerHelpId(_broker, gearShootingEndLabel, "tutti.editFishingOperation.field.gearShootingEnd.help");
2329         registerHelpId(_broker, gearShootingEndLatitudePanel, "tutti.editFishingOperation.field.gearShootingEndLatitude.help");
2330         registerHelpId(_broker, gearShootingEndLongitudePanel, "tutti.editFishingOperation.field.gearShootingEndLongitude.help");
2331         registerHelpId(_broker, gearShootingEndDateField, "tutti.editFishingOperation.field.gearShootingEndDate.help");
2332         registerHelpId(_broker, gearShootingEndTimeField, "tutti.editFishingOperation.field.gearShootingEndTime.help");
2333         registerHelpId(_broker, fishingOperationRectiligneCheckBox, "tutti.editFishingOperation.field.fishingOperationRectiligne.help");
2334         registerHelpId(_broker, trawlDistanceLabel, "tutti.editFishingOperation.field.trawlDistance.help");
2335         registerHelpId(_broker, trawlDistanceField, "tutti.editFishingOperation.field.trawlDistance.help");
2336         registerHelpId(_broker, durationLabel, "tutti.editFishingOperation.field.duration.help");
2337         registerHelpId(_broker, durationField, "tutti.editFishingOperation.field.duration.help");
2338         registerHelpId(_broker, fishingOperationValidPanel, "tutti.editFishingOperation.field.fishingOperationValid.help");
2339         registerHelpId(_broker, resetValidStateButton, "tutti.editFishingOperation.action.resetFishingOperationValidState.help");
2340         registerHelpId(_broker, fishingOperationResetRadio, "tutti.editFishingOperation.field.fishingOperationValid.help");
2341         registerHelpId(_broker, fishingOperationValidRadio, "tutti.editFishingOperation.field.fishingOperationValid.help");
2342         registerHelpId(_broker, fishingOperationInvalidRadio, "tutti.editFishingOperation.field.fishingOperationValid.help");
2343         registerHelpId(_broker, recorderPersonList, "tutti.editFishingOperation.field.recorderPerson.help");
2344         registerHelpId(_broker, vesselLabel, "tutti.editFishingOperation.field.vessel.help");
2345         registerHelpId(_broker, vesselField, "tutti.editFishingOperation.field.vessel.help");
2346         registerHelpId(_broker, gearLabel, "tutti.editFishingOperation.field.gear.help");
2347         registerHelpId(_broker, gearComboBox, "tutti.editFishingOperation.field.gear.help");
2348         registerHelpId(_broker, secondaryVesselFilterPane, "tutti.editFishingOperation.filterSecondaryVesselType.help");
2349         registerHelpId(_broker, secondaryVesselList, "tutti.editFishingOperation.field.secondaryVessel.help");
2350         registerHelpId(_broker, commentPane, "tutti.editFishingOperation.field.comment.help");
2351         registerHelpId(_broker, cancelButton, "tutti.editFishingOperation.action.cancelEditFishingOperation.help");
2352         registerHelpId(_broker, saveButton, "tutti.editFishingOperation.action.saveEditFishingOperation.help");
2353         _broker.prepareUI(this);
2354         // register 1 validator(s)
2355         validatorIds = SwingValidatorUtil.detectValidators(this);
2356         SwingValidatorUtil.installUI(this);
2357     }
2358 
2359     private void $initialize() {
2360         if (allComponentsCreated) {
2361             return;
2362         }
2363         if (log.isDebugEnabled()) {
2364             log.debug(this);
2365         }
2366         handler.beforeInit(this);
2367         $objectMap.put("editFishingOperationTopPanel", editFishingOperationTopPanel);
2368         createModel();
2369         createValidator();
2370         createGearShootingStartLongitudeLayout();
2371         createGearShootingStartLatitudeLayout();
2372         createGearShootingEndLongitudeLayout();
2373         createGearShootingEndLatitudeLayout();
2374         createBroker();
2375         createTraitGeneralTabPaneToolBar();
2376         createMenu();
2377         createMenuAction();
2378         createImportFromColumnFile();
2379         createFishingOperationAttachmentsButton();
2380         createFishingOperationPane();
2381         createFishingOperationTabPane();
2382         createTraitGeneralTabPane();
2383         createFishingOperationTabScrollPane();
2384         createGeneralForm();
2385         createStationNumberLabel();
2386         createStationNumberField();
2387         createFishingOperationNumberLabel();
2388         createFishingOperationNumberField();
2389         createMultirigAggregationLabel();
2390         createMultirigAggregationField();
2391         createStrataLabel();
2392         createStrataComboBox();
2393         createSubStrataLabel();
2394         createSubStrataComboBox();
2395         createLocationLabel();
2396         createLocationComboBox();
2397         // inline creation of $JPanel0
2398         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
2399         
2400         $JPanel0.setName("$JPanel0");
2401         $JPanel0.setLayout(new BorderLayout());
2402         createGearCaracteristicsTable();
2403         // inline creation of $JPanel1
2404         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
2405         
2406         $JPanel1.setName("$JPanel1");
2407         createGearLatitudeLabel();
2408         createGearLongitudeLabel();
2409         createGearDateLabel();
2410         createGearTimeLabel();
2411         createGearShootingStartLabel();
2412         createGearShootingStartLatitudePanel();
2413         createGearShootingStartLatitudeDDField();
2414         createGearShootingStartLatitudeDMSField();
2415         createGearShootingStartLatitudeDMDField();
2416         createGearShootingStartLongitudePanel();
2417         createGearShootingStartLongitudeDDField();
2418         createGearShootingStartLongitudeDMSField();
2419         createGearShootingStartLongitudeDMDField();
2420         createGearShootingStartDateField();
2421         createGearShootingStartTimeField();
2422         createGearShootingEndLabel();
2423         createGearShootingEndLatitudePanel();
2424         createGearShootingEndLatitudeDDField();
2425         createGearShootingEndLatitudeDMSField();
2426         createGearShootingEndLatitudeDMDField();
2427         createGearShootingEndLongitudePanel();
2428         createGearShootingEndLongitudeDDField();
2429         createGearShootingEndLongitudeDMSField();
2430         createGearShootingEndLongitudeDMDField();
2431         createGearShootingEndDateField();
2432         createGearShootingEndTimeField();
2433         // inline creation of $JLabel0
2434         $objectMap.put("$JLabel0", $JLabel0 = new JLabel());
2435         
2436         $JLabel0.setName("$JLabel0");
2437         createFishingOperationRectiligneCheckBox();
2438         // inline creation of $JPanel2
2439         $objectMap.put("$JPanel2", $JPanel2 = new JPanel());
2440         
2441         $JPanel2.setName("$JPanel2");
2442         $JPanel2.setLayout(new BorderLayout());
2443         createTrawlDistanceLabel();
2444         createTrawlDistanceField();
2445         // inline creation of $JLabel1
2446         $objectMap.put("$JLabel1", $JLabel1 = new JLabel());
2447         
2448         $JLabel1.setName("$JLabel1");
2449         // inline creation of $JPanel3
2450         $objectMap.put("$JPanel3", $JPanel3 = new JPanel());
2451         
2452         $JPanel3.setName("$JPanel3");
2453         $JPanel3.setLayout(new BorderLayout());
2454         createDurationLabel();
2455         createDurationField();
2456         createFishingOperationValidPanel();
2457         createResetValidStateButton();
2458         createFishingOperationResetRadio();
2459         // inline creation of $HBox0
2460         $objectMap.put("$HBox0", $HBox0 = new HBox());
2461         
2462         $HBox0.setName("$HBox0");
2463         createFishingOperationValidRadio();
2464         createFishingOperationInvalidRadio();
2465         // inline creation of $JPanel4
2466         $objectMap.put("$JPanel4", $JPanel4 = new JPanel());
2467         
2468         $JPanel4.setName("$JPanel4");
2469         // inline creation of $JPanel5
2470         $objectMap.put("$JPanel5", $JPanel5 = new JPanel());
2471         
2472         $JPanel5.setName("$JPanel5");
2473         $JPanel5.setLayout(new GridLayout(1,0));
2474         createRecorderPersonList();
2475         createTraitVesselPanel();
2476         createVesselLabel();
2477         createVesselField();
2478         createGearLabel();
2479         createGearComboBox();
2480         createSecondaryVesselFilterPane();
2481         createFilterSecondaryVesselLabel();
2482         createFilterSecondaryVesselAllButton();
2483         createFilterSecondaryVesselScientificButton();
2484         createFilterSecondaryVesselFishingButton();
2485         createFilterSecondaryVesselOnlyCruiseButton();
2486         createSecondaryVesselList();
2487         createCommentPane();
2488         createCommentField();
2489         createGearUseFeatureTabPane();
2490         createGearUseFeatureTabContent();
2491         createVesselUseFeatureTabPane();
2492         createVesselUseFeatureTabContent();
2493         // inline creation of $JPanel6
2494         $objectMap.put("$JPanel6", $JPanel6 = new JPanel());
2495         
2496         $JPanel6.setName("$JPanel6");
2497         $JPanel6.setLayout(new BorderLayout());
2498         createCreateFishingOperationActions();
2499         createCancelButton();
2500         createSaveButton();
2501         createTraitGeneralTab();
2502         createGearUseFeatureTab();
2503         createVesselUseFeatureTab();
2504         createFishingOperationValid();
2505         createFilterSecondaryVesselType();
2506         // inline creation of editFishingOperationTopPanel
2507         setName("editFishingOperationTopPanel");
2508         setLayout(new BorderLayout());
2509         editFishingOperationTopPanel.putClientProperty("help", "tutti.editFishingOperation.help");
2510         
2511         // registers 46 data bindings
2512         $registerDefaultBindings();
2513         $completeSetup();
2514         handler.afterInit(this);
2515     }
2516 
2517     private void $registerDefaultBindings() {
2518         // register 46 data bindings
2519         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_FROM_COLUMN_FILE_ENABLED, true) {
2520         
2521             @Override
2522             public void applyDataBinding() {
2523                 if (model != null) {
2524                     model.addPropertyChangeListener("importFromColumnFileEnabled", this);
2525                 }
2526             }
2527         
2528             @Override
2529             public void processDataBinding() {
2530                 if (model != null) {
2531                     importFromColumnFile.setEnabled(model.isImportFromColumnFileEnabled());
2532                 }
2533             }
2534         
2535             @Override
2536             public void removeDataBinding() {
2537                 if (model != null) {
2538                     model.removePropertyChangeListener("importFromColumnFileEnabled", this);
2539                 }
2540             }
2541         });
2542         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_ATTACHMENTS_BUTTON_ENABLED, true) {
2543         
2544             @Override
2545             public void applyDataBinding() {
2546                 if (model != null) {
2547                     model.addPropertyChangeListener("id", this);
2548                 }
2549             }
2550         
2551             @Override
2552             public void processDataBinding() {
2553                 if (model != null) {
2554                     fishingOperationAttachmentsButton.setEnabled(model.getId() != null);
2555                 }
2556             }
2557         
2558             @Override
2559             public void removeDataBinding() {
2560                 if (model != null) {
2561                     model.removePropertyChangeListener("id", this);
2562                 }
2563             }
2564         });
2565         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STATION_NUMBER_FIELD_TEXT, true) {
2566         
2567             @Override
2568             public void applyDataBinding() {
2569                 if (model != null) {
2570                     model.addPropertyChangeListener("stationNumber", this);
2571                 }
2572             }
2573         
2574             @Override
2575             public void processDataBinding() {
2576                 if (model != null) {
2577                     SwingUtil.setText(stationNumberField, model.getStationNumber());
2578                 }
2579             }
2580         
2581             @Override
2582             public void removeDataBinding() {
2583                 if (model != null) {
2584                     model.removePropertyChangeListener("stationNumber", this);
2585                 }
2586             }
2587         });
2588         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_FISHING_OPERATION_NUMBER_FIELD_NUMBER_PATTERN, true ,"INT_6_DIGITS_PATTERN") {
2589         
2590             @Override
2591             public void processDataBinding() {
2592                 fishingOperationNumberField.setNumberPattern(INT_6_DIGITS_PATTERN);
2593             }
2594         });
2595         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_NUMBER_FIELD_NUMBER_VALUE, true) {
2596         
2597             @Override
2598             public void applyDataBinding() {
2599                 if (model != null) {
2600                     model.addPropertyChangeListener("fishingOperationNumber", this);
2601                 }
2602             }
2603         
2604             @Override
2605             public void processDataBinding() {
2606                 if (model != null) {
2607                     fishingOperationNumberField.setNumberValue(model.getFishingOperationNumber());
2608                 }
2609             }
2610         
2611             @Override
2612             public void removeDataBinding() {
2613                 if (model != null) {
2614                     model.removePropertyChangeListener("fishingOperationNumber", this);
2615                 }
2616             }
2617         });
2618         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MULTIRIG_AGGREGATION_FIELD_TEXT, true) {
2619         
2620             @Override
2621             public void applyDataBinding() {
2622                 if (model != null) {
2623                     model.addPropertyChangeListener("multirigAggregation", this);
2624                 }
2625             }
2626         
2627             @Override
2628             public void processDataBinding() {
2629                 if (model != null) {
2630                     SwingUtil.setText(multirigAggregationField, model.getMultirigAggregation());
2631                 }
2632             }
2633         
2634             @Override
2635             public void removeDataBinding() {
2636                 if (model != null) {
2637                     model.removePropertyChangeListener("multirigAggregation", this);
2638                 }
2639             }
2640         });
2641         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STRATA_COMBO_BOX_SELECTED_ITEM, true) {
2642         
2643             @Override
2644             public void applyDataBinding() {
2645                 if (model != null) {
2646                     model.addPropertyChangeListener("strata", this);
2647                 }
2648             }
2649         
2650             @Override
2651             public void processDataBinding() {
2652                 if (model != null) {
2653                     strataComboBox.setSelectedItem(model.getStrata());
2654                 }
2655             }
2656         
2657             @Override
2658             public void removeDataBinding() {
2659                 if (model != null) {
2660                     model.removePropertyChangeListener("strata", this);
2661                 }
2662             }
2663         });
2664         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SUB_STRATA_COMBO_BOX_SELECTED_ITEM, true) {
2665         
2666             @Override
2667             public void applyDataBinding() {
2668                 if (model != null) {
2669                     model.addPropertyChangeListener("subStrata", this);
2670                 }
2671             }
2672         
2673             @Override
2674             public void processDataBinding() {
2675                 if (model != null) {
2676                     subStrataComboBox.setSelectedItem(model.getSubStrata());
2677                 }
2678             }
2679         
2680             @Override
2681             public void removeDataBinding() {
2682                 if (model != null) {
2683                     model.removePropertyChangeListener("subStrata", this);
2684                 }
2685             }
2686         });
2687         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LOCATION_COMBO_BOX_SELECTED_ITEM, true) {
2688         
2689             @Override
2690             public void applyDataBinding() {
2691                 if (model != null) {
2692                     model.addPropertyChangeListener("location", this);
2693                 }
2694             }
2695         
2696             @Override
2697             public void processDataBinding() {
2698                 if (model != null) {
2699                     locationComboBox.setSelectedItem(model.getLocation());
2700                 }
2701             }
2702         
2703             @Override
2704             public void removeDataBinding() {
2705                 if (model != null) {
2706                     model.removePropertyChangeListener("location", this);
2707                 }
2708             }
2709         });
2710         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_GEAR_SHOOTING_START_LATITUDE_DDFIELD_NUMBER_PATTERN, true ,"SIGNED_DECIMAL4_PATTERN") {
2711         
2712             @Override
2713             public void processDataBinding() {
2714                 gearShootingStartLatitudeDDField.setNumberPattern(SIGNED_DECIMAL4_PATTERN);
2715             }
2716         });
2717         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LATITUDE_DDFIELD_NUMBER_VALUE, true) {
2718         
2719             @Override
2720             public void applyDataBinding() {
2721                 if (model != null) {
2722                     model.addPropertyChangeListener("gearShootingStartLatitude", this);
2723                 }
2724             }
2725         
2726             @Override
2727             public void processDataBinding() {
2728                 if (model != null) {
2729                     gearShootingStartLatitudeDDField.setNumberValue(model.getGearShootingStartLatitude());
2730                 }
2731             }
2732         
2733             @Override
2734             public void removeDataBinding() {
2735                 if (model != null) {
2736                     model.removePropertyChangeListener("gearShootingStartLatitude", this);
2737                 }
2738             }
2739         });
2740         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LATITUDE_DMSFIELD_VALUE, true) {
2741         
2742             @Override
2743             public void applyDataBinding() {
2744                 if (model != null) {
2745                     model.addPropertyChangeListener("gearShootingStartLatitudeDms", this);
2746                 }
2747             }
2748         
2749             @Override
2750             public void processDataBinding() {
2751                 if (model != null) {
2752                     gearShootingStartLatitudeDMSField.setValue(model.getGearShootingStartLatitudeDms());
2753                 }
2754             }
2755         
2756             @Override
2757             public void removeDataBinding() {
2758                 if (model != null) {
2759                     model.removePropertyChangeListener("gearShootingStartLatitudeDms", this);
2760                 }
2761             }
2762         });
2763         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LATITUDE_DMDFIELD_VALUE, true) {
2764         
2765             @Override
2766             public void applyDataBinding() {
2767                 if (model != null) {
2768                     model.addPropertyChangeListener("gearShootingStartLatitudeDmd", this);
2769                 }
2770             }
2771         
2772             @Override
2773             public void processDataBinding() {
2774                 if (model != null) {
2775                     gearShootingStartLatitudeDMDField.setValue(model.getGearShootingStartLatitudeDmd());
2776                 }
2777             }
2778         
2779             @Override
2780             public void removeDataBinding() {
2781                 if (model != null) {
2782                     model.removePropertyChangeListener("gearShootingStartLatitudeDmd", this);
2783                 }
2784             }
2785         });
2786         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_GEAR_SHOOTING_START_LONGITUDE_DDFIELD_NUMBER_PATTERN, true ,"SIGNED_DECIMAL4_PATTERN") {
2787         
2788             @Override
2789             public void processDataBinding() {
2790                 gearShootingStartLongitudeDDField.setNumberPattern(SIGNED_DECIMAL4_PATTERN);
2791             }
2792         });
2793         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LONGITUDE_DDFIELD_NUMBER_VALUE, true) {
2794         
2795             @Override
2796             public void applyDataBinding() {
2797                 if (model != null) {
2798                     model.addPropertyChangeListener("gearShootingStartLongitude", this);
2799                 }
2800             }
2801         
2802             @Override
2803             public void processDataBinding() {
2804                 if (model != null) {
2805                     gearShootingStartLongitudeDDField.setNumberValue(model.getGearShootingStartLongitude());
2806                 }
2807             }
2808         
2809             @Override
2810             public void removeDataBinding() {
2811                 if (model != null) {
2812                     model.removePropertyChangeListener("gearShootingStartLongitude", this);
2813                 }
2814             }
2815         });
2816         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LONGITUDE_DMSFIELD_VALUE, true) {
2817         
2818             @Override
2819             public void applyDataBinding() {
2820                 if (model != null) {
2821                     model.addPropertyChangeListener("gearShootingStartLongitudeDms", this);
2822                 }
2823             }
2824         
2825             @Override
2826             public void processDataBinding() {
2827                 if (model != null) {
2828                     gearShootingStartLongitudeDMSField.setValue(model.getGearShootingStartLongitudeDms());
2829                 }
2830             }
2831         
2832             @Override
2833             public void removeDataBinding() {
2834                 if (model != null) {
2835                     model.removePropertyChangeListener("gearShootingStartLongitudeDms", this);
2836                 }
2837             }
2838         });
2839         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_LONGITUDE_DMDFIELD_VALUE, true) {
2840         
2841             @Override
2842             public void applyDataBinding() {
2843                 if (model != null) {
2844                     model.addPropertyChangeListener("gearShootingStartLongitudeDmd", this);
2845                 }
2846             }
2847         
2848             @Override
2849             public void processDataBinding() {
2850                 if (model != null) {
2851                     gearShootingStartLongitudeDMDField.setValue(model.getGearShootingStartLongitudeDmd());
2852                 }
2853             }
2854         
2855             @Override
2856             public void removeDataBinding() {
2857                 if (model != null) {
2858                     model.removePropertyChangeListener("gearShootingStartLongitudeDmd", this);
2859                 }
2860             }
2861         });
2862         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_DATE_FIELD_DATE, true) {
2863         
2864             @Override
2865             public void applyDataBinding() {
2866                 if (model != null) {
2867                     model.addPropertyChangeListener("gearShootingStartDate", this);
2868                 }
2869             }
2870         
2871             @Override
2872             public void processDataBinding() {
2873                 if (model != null) {
2874                     gearShootingStartDateField.setDate(model.getGearShootingStartDate());
2875                 }
2876             }
2877         
2878             @Override
2879             public void removeDataBinding() {
2880                 if (model != null) {
2881                     model.removePropertyChangeListener("gearShootingStartDate", this);
2882                 }
2883             }
2884         });
2885         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_START_TIME_FIELD_DATE, true) {
2886         
2887             @Override
2888             public void applyDataBinding() {
2889                 if (model != null) {
2890                     model.addPropertyChangeListener("gearShootingStartDate", this);
2891                 }
2892             }
2893         
2894             @Override
2895             public void processDataBinding() {
2896                 if (model != null) {
2897                     gearShootingStartTimeField.setDate(model.getGearShootingStartDate());
2898                 }
2899             }
2900         
2901             @Override
2902             public void removeDataBinding() {
2903                 if (model != null) {
2904                     model.removePropertyChangeListener("gearShootingStartDate", this);
2905                 }
2906             }
2907         });
2908         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_GEAR_SHOOTING_END_LATITUDE_DDFIELD_NUMBER_PATTERN, true ,"SIGNED_DECIMAL4_PATTERN") {
2909         
2910             @Override
2911             public void processDataBinding() {
2912                 gearShootingEndLatitudeDDField.setNumberPattern(SIGNED_DECIMAL4_PATTERN);
2913             }
2914         });
2915         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LATITUDE_DDFIELD_NUMBER_VALUE, true) {
2916         
2917             @Override
2918             public void applyDataBinding() {
2919                 if (model != null) {
2920                     model.addPropertyChangeListener("gearShootingEndLatitude", this);
2921                 }
2922             }
2923         
2924             @Override
2925             public void processDataBinding() {
2926                 if (model != null) {
2927                     gearShootingEndLatitudeDDField.setNumberValue(model.getGearShootingEndLatitude());
2928                 }
2929             }
2930         
2931             @Override
2932             public void removeDataBinding() {
2933                 if (model != null) {
2934                     model.removePropertyChangeListener("gearShootingEndLatitude", this);
2935                 }
2936             }
2937         });
2938         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LATITUDE_DMSFIELD_VALUE, true) {
2939         
2940             @Override
2941             public void applyDataBinding() {
2942                 if (model != null) {
2943                     model.addPropertyChangeListener("gearShootingEndLatitudeDms", this);
2944                 }
2945             }
2946         
2947             @Override
2948             public void processDataBinding() {
2949                 if (model != null) {
2950                     gearShootingEndLatitudeDMSField.setValue(model.getGearShootingEndLatitudeDms());
2951                 }
2952             }
2953         
2954             @Override
2955             public void removeDataBinding() {
2956                 if (model != null) {
2957                     model.removePropertyChangeListener("gearShootingEndLatitudeDms", this);
2958                 }
2959             }
2960         });
2961         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LATITUDE_DMDFIELD_VALUE, true) {
2962         
2963             @Override
2964             public void applyDataBinding() {
2965                 if (model != null) {
2966                     model.addPropertyChangeListener("gearShootingEndLatitudeDmd", this);
2967                 }
2968             }
2969         
2970             @Override
2971             public void processDataBinding() {
2972                 if (model != null) {
2973                     gearShootingEndLatitudeDMDField.setValue(model.getGearShootingEndLatitudeDmd());
2974                 }
2975             }
2976         
2977             @Override
2978             public void removeDataBinding() {
2979                 if (model != null) {
2980                     model.removePropertyChangeListener("gearShootingEndLatitudeDmd", this);
2981                 }
2982             }
2983         });
2984         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_GEAR_SHOOTING_END_LONGITUDE_DDFIELD_NUMBER_PATTERN, true ,"SIGNED_DECIMAL4_PATTERN") {
2985         
2986             @Override
2987             public void processDataBinding() {
2988                 gearShootingEndLongitudeDDField.setNumberPattern(SIGNED_DECIMAL4_PATTERN);
2989             }
2990         });
2991         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LONGITUDE_DDFIELD_NUMBER_VALUE, true) {
2992         
2993             @Override
2994             public void applyDataBinding() {
2995                 if (model != null) {
2996                     model.addPropertyChangeListener("gearShootingEndLongitude", this);
2997                 }
2998             }
2999         
3000             @Override
3001             public void processDataBinding() {
3002                 if (model != null) {
3003                     gearShootingEndLongitudeDDField.setNumberValue(model.getGearShootingEndLongitude());
3004                 }
3005             }
3006         
3007             @Override
3008             public void removeDataBinding() {
3009                 if (model != null) {
3010                     model.removePropertyChangeListener("gearShootingEndLongitude", this);
3011                 }
3012             }
3013         });
3014         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LONGITUDE_DMSFIELD_VALUE, true) {
3015         
3016             @Override
3017             public void applyDataBinding() {
3018                 if (model != null) {
3019                     model.addPropertyChangeListener("gearShootingEndLongitudeDms", this);
3020                 }
3021             }
3022         
3023             @Override
3024             public void processDataBinding() {
3025                 if (model != null) {
3026                     gearShootingEndLongitudeDMSField.setValue(model.getGearShootingEndLongitudeDms());
3027                 }
3028             }
3029         
3030             @Override
3031             public void removeDataBinding() {
3032                 if (model != null) {
3033                     model.removePropertyChangeListener("gearShootingEndLongitudeDms", this);
3034                 }
3035             }
3036         });
3037         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_LONGITUDE_DMDFIELD_VALUE, true) {
3038         
3039             @Override
3040             public void applyDataBinding() {
3041                 if (model != null) {
3042                     model.addPropertyChangeListener("gearShootingEndLongitudeDmd", this);
3043                 }
3044             }
3045         
3046             @Override
3047             public void processDataBinding() {
3048                 if (model != null) {
3049                     gearShootingEndLongitudeDMDField.setValue(model.getGearShootingEndLongitudeDmd());
3050                 }
3051             }
3052         
3053             @Override
3054             public void removeDataBinding() {
3055                 if (model != null) {
3056                     model.removePropertyChangeListener("gearShootingEndLongitudeDmd", this);
3057                 }
3058             }
3059         });
3060         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_DATE_FIELD_DATE, true) {
3061         
3062             @Override
3063             public void applyDataBinding() {
3064                 if (model != null) {
3065                     model.addPropertyChangeListener("gearShootingEndDate", this);
3066                 }
3067             }
3068         
3069             @Override
3070             public void processDataBinding() {
3071                 if (model != null) {
3072                     gearShootingEndDateField.setDate(model.getGearShootingEndDate());
3073                 }
3074             }
3075         
3076             @Override
3077             public void removeDataBinding() {
3078                 if (model != null) {
3079                     model.removePropertyChangeListener("gearShootingEndDate", this);
3080                 }
3081             }
3082         });
3083         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_SHOOTING_END_TIME_FIELD_DATE, true) {
3084         
3085             @Override
3086             public void applyDataBinding() {
3087                 if (model != null) {
3088                     model.addPropertyChangeListener("gearShootingEndDate", this);
3089                 }
3090             }
3091         
3092             @Override
3093             public void processDataBinding() {
3094                 if (model != null) {
3095                     gearShootingEndTimeField.setDate(model.getGearShootingEndDate());
3096                 }
3097             }
3098         
3099             @Override
3100             public void removeDataBinding() {
3101                 if (model != null) {
3102                     model.removePropertyChangeListener("gearShootingEndDate", this);
3103                 }
3104             }
3105         });
3106         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_RECTILIGNE_CHECK_BOX_SELECTED, true) {
3107         
3108             @Override
3109             public void applyDataBinding() {
3110                 if (model != null) {
3111                     model.addPropertyChangeListener("fishingOperationRectiligne", this);
3112                 }
3113             }
3114         
3115             @Override
3116             public void processDataBinding() {
3117                 if (model != null) {
3118                     fishingOperationRectiligneCheckBox.setSelected(model.isFishingOperationRectiligne());
3119                 }
3120             }
3121         
3122             @Override
3123             public void removeDataBinding() {
3124                 if (model != null) {
3125                     model.removePropertyChangeListener("fishingOperationRectiligne", this);
3126                 }
3127             }
3128         });
3129         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TRAWL_DISTANCE_FIELD_ENABLED, true) {
3130         
3131             @Override
3132             public void applyDataBinding() {
3133                 if (model != null) {
3134                     model.addPropertyChangeListener("fishingOperationRectiligne", this);
3135                 }
3136             }
3137         
3138             @Override
3139             public void processDataBinding() {
3140                 if (model != null) {
3141                     trawlDistanceField.setEnabled(!model.isFishingOperationRectiligne());
3142                 }
3143             }
3144         
3145             @Override
3146             public void removeDataBinding() {
3147                 if (model != null) {
3148                     model.removePropertyChangeListener("fishingOperationRectiligne", this);
3149                 }
3150             }
3151         });
3152         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_TRAWL_DISTANCE_FIELD_NUMBER_PATTERN, true ,"INT_6_DIGITS_PATTERN") {
3153         
3154             @Override
3155             public void processDataBinding() {
3156                 trawlDistanceField.setNumberPattern(INT_6_DIGITS_PATTERN);
3157             }
3158         });
3159         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TRAWL_DISTANCE_FIELD_NUMBER_VALUE, true) {
3160         
3161             @Override
3162             public void applyDataBinding() {
3163                 if (model != null) {
3164                     model.addPropertyChangeListener("trawlDistance", this);
3165                 }
3166             }
3167         
3168             @Override
3169             public void processDataBinding() {
3170                 if (model != null) {
3171                     trawlDistanceField.setNumberValue(model.getTrawlDistance());
3172                 }
3173             }
3174         
3175             @Override
3176             public void removeDataBinding() {
3177                 if (model != null) {
3178                     model.removePropertyChangeListener("trawlDistance", this);
3179                 }
3180             }
3181         });
3182         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TRAWL_DISTANCE_FIELD_TOOL_TIP_TEXT, true) {
3183         
3184             @Override
3185             public void applyDataBinding() {
3186                 if (model != null) {
3187                     model.addPropertyChangeListener("trawlDistance", this);
3188                 }
3189             }
3190         
3191             @Override
3192             public void processDataBinding() {
3193                 if (model != null) {
3194                     trawlDistanceField.setToolTipText(t(handler.getTrawlDistanceTooltipText(model.getTrawlDistance())));
3195                 }
3196             }
3197         
3198             @Override
3199             public void removeDataBinding() {
3200                 if (model != null) {
3201                     model.removePropertyChangeListener("trawlDistance", this);
3202                 }
3203             }
3204         });
3205         registerDataBinding(new DefaultJAXXBinding(this, BINDING_DURATION_FIELD_TEXT, true, true) {
3206         
3207             @Override
3208             public void applyDataBinding() {
3209                 if (model != null) {
3210                     model.addPropertyChangeListener("gearShootingStartDate", this);
3211                 }
3212                 if (model != null) {
3213                     model.addPropertyChangeListener("gearShootingEndDate", this);
3214                 }
3215             }
3216         
3217             @Override
3218             public void processDataBinding() {
3219                 if (model != null) {
3220                     SwingUtil.setText(durationField, handler.getDuration(model.getGearShootingStartDate(), model.getGearShootingEndDate()));
3221                 }
3222             }
3223         
3224             @Override
3225             public void removeDataBinding() {
3226                 if (model != null) {
3227                     model.removePropertyChangeListener("gearShootingStartDate", this);
3228                 }
3229                 if (model != null) {
3230                     model.removePropertyChangeListener("gearShootingEndDate", this);
3231                 }
3232             }
3233         });
3234         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_RESET_RADIO_SELECTED, true) {
3235         
3236             @Override
3237             public void applyDataBinding() {
3238                 if (model != null) {
3239                     model.addPropertyChangeListener("fishingOperationValid", this);
3240                 }
3241             }
3242         
3243             @Override
3244             public void processDataBinding() {
3245                 if (model != null) {
3246                     fishingOperationResetRadio.setSelected(model.getFishingOperationValid() == null);
3247                 }
3248             }
3249         
3250             @Override
3251             public void removeDataBinding() {
3252                 if (model != null) {
3253                     model.removePropertyChangeListener("fishingOperationValid", this);
3254                 }
3255             }
3256         });
3257         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_VALID_RADIO_SELECTED, true) {
3258         
3259             @Override
3260             public void applyDataBinding() {
3261                 if (model != null) {
3262                     model.addPropertyChangeListener("fishingOperationValid", this);
3263                 }
3264             }
3265         
3266             @Override
3267             public void processDataBinding() {
3268                 if (model != null) {
3269                     fishingOperationValidRadio.setSelected(model.getFishingOperationValid() == Boolean.TRUE);
3270                 }
3271             }
3272         
3273             @Override
3274             public void removeDataBinding() {
3275                 if (model != null) {
3276                     model.removePropertyChangeListener("fishingOperationValid", this);
3277                 }
3278             }
3279         });
3280         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FISHING_OPERATION_INVALID_RADIO_SELECTED, true) {
3281         
3282             @Override
3283             public void applyDataBinding() {
3284                 if (model != null) {
3285                     model.addPropertyChangeListener("fishingOperationValid", this);
3286                 }
3287             }
3288         
3289             @Override
3290             public void processDataBinding() {
3291                 if (model != null) {
3292                     fishingOperationInvalidRadio.setSelected(model.getFishingOperationValid() == Boolean.FALSE);
3293                 }
3294             }
3295         
3296             @Override
3297             public void removeDataBinding() {
3298                 if (model != null) {
3299                     model.removePropertyChangeListener("fishingOperationValid", this);
3300                 }
3301             }
3302         });
3303         registerDataBinding(new DefaultJAXXBinding(this, BINDING_VESSEL_FIELD_TEXT, true) {
3304         
3305             @Override
3306             public void applyDataBinding() {
3307                 if (model != null) {
3308                     model.addPropertyChangeListener("vessel", this);
3309                 }
3310             }
3311         
3312             @Override
3313             public void processDataBinding() {
3314                 if (model != null) {
3315                     vesselField.setText(t(handler.decorateVessel(model.getVessel())));
3316                 }
3317             }
3318         
3319             @Override
3320             public void removeDataBinding() {
3321                 if (model != null) {
3322                     model.removePropertyChangeListener("vessel", this);
3323                 }
3324             }
3325         });
3326         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GEAR_COMBO_BOX_SELECTED_ITEM, true) {
3327         
3328             @Override
3329             public void applyDataBinding() {
3330                 if (model != null) {
3331                     model.addPropertyChangeListener("gear", this);
3332                 }
3333             }
3334         
3335             @Override
3336             public void processDataBinding() {
3337                 if (model != null) {
3338                     gearComboBox.setSelectedItem(model.getGear());
3339                 }
3340             }
3341         
3342             @Override
3343             public void removeDataBinding() {
3344                 if (model != null) {
3345                     model.removePropertyChangeListener("gear", this);
3346                 }
3347             }
3348         });
3349         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SECONDARY_VESSEL_ALL_BUTTON_SELECTED, true) {
3350         
3351             @Override
3352             public void applyDataBinding() {
3353                 if (model != null) {
3354                     model.addPropertyChangeListener("secondaryVesselTypeAll", this);
3355                 }
3356             }
3357         
3358             @Override
3359             public void processDataBinding() {
3360                 if (model != null) {
3361                     filterSecondaryVesselAllButton.setSelected(model.isSecondaryVesselTypeAll());
3362                 }
3363             }
3364         
3365             @Override
3366             public void removeDataBinding() {
3367                 if (model != null) {
3368                     model.removePropertyChangeListener("secondaryVesselTypeAll", this);
3369                 }
3370             }
3371         });
3372         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SECONDARY_VESSEL_SCIENTIFIC_BUTTON_SELECTED, true) {
3373         
3374             @Override
3375             public void applyDataBinding() {
3376                 if (model != null) {
3377                     model.addPropertyChangeListener("secondaryVesselTypeScientific", this);
3378                 }
3379             }
3380         
3381             @Override
3382             public void processDataBinding() {
3383                 if (model != null) {
3384                     filterSecondaryVesselScientificButton.setSelected(model.isSecondaryVesselTypeScientific());
3385                 }
3386             }
3387         
3388             @Override
3389             public void removeDataBinding() {
3390                 if (model != null) {
3391                     model.removePropertyChangeListener("secondaryVesselTypeScientific", this);
3392                 }
3393             }
3394         });
3395         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SECONDARY_VESSEL_FISHING_BUTTON_SELECTED, true) {
3396         
3397             @Override
3398             public void applyDataBinding() {
3399                 if (model != null) {
3400                     model.addPropertyChangeListener("secondaryVesselTypeFishing", this);
3401                 }
3402             }
3403         
3404             @Override
3405             public void processDataBinding() {
3406                 if (model != null) {
3407                     filterSecondaryVesselFishingButton.setSelected(model.isSecondaryVesselTypeFishing());
3408                 }
3409             }
3410         
3411             @Override
3412             public void removeDataBinding() {
3413                 if (model != null) {
3414                     model.removePropertyChangeListener("secondaryVesselTypeFishing", this);
3415                 }
3416             }
3417         });
3418         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SECONDARY_VESSEL_ONLY_CRUISE_BUTTON_SELECTED, true) {
3419         
3420             @Override
3421             public void applyDataBinding() {
3422                 if (model != null) {
3423                     model.addPropertyChangeListener("secondaryVesselTypeOnlyCruise", this);
3424                 }
3425             }
3426         
3427             @Override
3428             public void processDataBinding() {
3429                 if (model != null) {
3430                     filterSecondaryVesselOnlyCruiseButton.setSelected(model.isSecondaryVesselTypeOnlyCruise());
3431                 }
3432             }
3433         
3434             @Override
3435             public void removeDataBinding() {
3436                 if (model != null) {
3437                     model.removePropertyChangeListener("secondaryVesselTypeOnlyCruise", this);
3438                 }
3439             }
3440         });
3441         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COMMENT_FIELD_TEXT, true) {
3442         
3443             @Override
3444             public void applyDataBinding() {
3445                 if (model != null) {
3446                     model.addPropertyChangeListener("comment", this);
3447                 }
3448             }
3449         
3450             @Override
3451             public void processDataBinding() {
3452                 if (model != null) {
3453                     SwingUtil.setText(commentField, model.getComment());
3454                 }
3455             }
3456         
3457             @Override
3458             public void removeDataBinding() {
3459                 if (model != null) {
3460                     model.removePropertyChangeListener("comment", this);
3461                 }
3462             }
3463         });
3464         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_BUTTON_ENABLED, true, true) {
3465         
3466             @Override
3467             public void applyDataBinding() {
3468                 if (model != null) {
3469                     model.addPropertyChangeListener("valid", this);
3470                 }
3471                 if (model != null) {
3472                     model.addPropertyChangeListener("modify", this);
3473                 }
3474             }
3475         
3476             @Override
3477             public void processDataBinding() {
3478                 if (model != null) {
3479                     saveButton.setEnabled(model.isValid() && model.isModify());
3480                 }
3481             }
3482         
3483             @Override
3484             public void removeDataBinding() {
3485                 if (model != null) {
3486                     model.removePropertyChangeListener("valid", this);
3487                 }
3488                 if (model != null) {
3489                     model.removePropertyChangeListener("modify", this);
3490                 }
3491             }
3492         });
3493     }
3494 
3495 }