View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit;
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.ui.swing.TuttiHelpBroker;
28  import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
29  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
30  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
31  import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
32  import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
33  import java.awt.BorderLayout;
34  import java.awt.Color;
35  import java.awt.Component;
36  import java.awt.Container;
37  import java.awt.GridBagConstraints;
38  import java.awt.GridLayout;
39  import java.awt.Insets;
40  import java.awt.LayoutManager;
41  import java.awt.event.ActionEvent;
42  import java.awt.event.ActionListener;
43  import java.awt.event.KeyEvent;
44  import java.awt.event.KeyListener;
45  import java.awt.event.MouseEvent;
46  import java.awt.event.MouseListener;
47  import java.util.ArrayList;
48  import java.util.HashMap;
49  import java.util.List;
50  import java.util.Map;
51  import java.util.TreeMap;
52  import javax.swing.ButtonGroup;
53  import javax.swing.JButton;
54  import javax.swing.JLabel;
55  import javax.swing.JMenu;
56  import javax.swing.JMenuBar;
57  import javax.swing.JMenuItem;
58  import javax.swing.JPanel;
59  import javax.swing.JPopupMenu;
60  import javax.swing.JRadioButton;
61  import javax.swing.JScrollPane;
62  import javax.swing.JTextField;
63  import javax.swing.JToolBar;
64  import javax.swing.ListSelectionModel;
65  import javax.swing.border.TitledBorder;
66  import jaxx.runtime.JAXXBinding;
67  import jaxx.runtime.JAXXContext;
68  import jaxx.runtime.JAXXObject;
69  import jaxx.runtime.JAXXObjectDescriptor;
70  import jaxx.runtime.JAXXUtil;
71  import jaxx.runtime.JAXXValidator;
72  import jaxx.runtime.SwingUtil;
73  import jaxx.runtime.binding.DefaultJAXXBinding;
74  import jaxx.runtime.context.DefaultJAXXContext;
75  import jaxx.runtime.swing.JAXXButtonGroup;
76  import jaxx.runtime.swing.Table;
77  import jaxx.runtime.swing.help.JAXXHelpUI;
78  import jaxx.runtime.validator.swing.SwingValidator;
79  import jaxx.runtime.validator.swing.SwingValidatorUtil;
80  import jaxx.runtime.validator.swing.meta.Validator;
81  import jaxx.runtime.validator.swing.meta.ValidatorField;
82  import jaxx.runtime.validator.swing.ui.ImageValidationUI;
83  import org.apache.commons.logging.Log;
84  import org.apache.commons.logging.LogFactory;
85  import org.jdesktop.swingx.JXTable;
86  import static org.nuiton.i18n.I18n.t;
87  
88  public class SpeciesBatchUI extends JPanel implements JAXXHelpUI<TuttiHelpBroker>, TuttiUI<SpeciesBatchUIModel, SpeciesBatchUIHandler>, JAXXObject, JAXXValidator {
89  
90      /*-----------------------------------------------------------------------*/
91      /*------------------ Constants for all public bindings ------------------*/
92      /*-----------------------------------------------------------------------*/
93  
94      public static final String BINDING_ADD_SAMPLE_CATEGORY_MENU_ENABLED = "addSampleCategoryMenu.enabled";
95      public static final String BINDING_CHANGE_SAMPLE_CATEGORY_MENU_ENABLED = "changeSampleCategoryMenu.enabled";
96      public static final String BINDING_CREATE_SPECIES_MELAG_MENU_ENABLED = "createSpeciesMelagMenu.enabled";
97      public static final String BINDING_EDIT_FREQUENCIES_MENU_ENABLED = "editFrequenciesMenu.enabled";
98      public static final String BINDING_FILTER_SPECIES_BATCH_ALL_BUTTON_SELECTED = "filterSpeciesBatchAllButton.selected";
99      public static final String BINDING_FILTER_SPECIES_BATCH_LEAF_BUTTON_SELECTED = "filterSpeciesBatchLeafButton.selected";
100     public static final String BINDING_FILTER_SPECIES_BATCH_ROOT_BUTTON_SELECTED = "filterSpeciesBatchRootButton.selected";
101     public static final String BINDING_FILTER_SPECIES_BATCH_ROOT_BUTTON_TEXT = "filterSpeciesBatchRootButton.text";
102     public static final String BINDING_REMOVE_SPECIES_BATCH_MENU_ENABLED = "removeSpeciesBatchMenu.enabled";
103     public static final String BINDING_REMOVE_SPECIES_SUB_BATCH_MENU_ENABLED = "removeSpeciesSubBatchMenu.enabled";
104     public static final String BINDING_RENAME_SPECIES_BATCH_MENU_ENABLED = "renameSpeciesBatchMenu.enabled";
105     public static final String BINDING_SPECIES_SORT_MODE_ASC_BUTTON_SELECTED = "speciesSortModeAscButton.selected";
106     public static final String BINDING_SPECIES_SORT_MODE_DESC_BUTTON_SELECTED = "speciesSortModeDescButton.selected";
107     public static final String BINDING_SPECIES_SORT_MODE_NONE_BUTTON_SELECTED = "speciesSortModeNoneButton.selected";
108     public static final String BINDING_SPLIT_SPECIES_BATCH_MENU_ENABLED = "splitSpeciesBatchMenu.enabled";
109     public static final String BINDING_TOTAL_INERT_WEIGHT_FIELD_BEAN = "totalInertWeightField.bean";
110     public static final String BINDING_TOTAL_INERT_WEIGHT_FIELD_NUMBER_VALUE = "totalInertWeightField.numberValue";
111     public static final String BINDING_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_FIELD_BEAN = "totalLivingNotItemizedWeightField.bean";
112     public static final String BINDING_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_FIELD_NUMBER_VALUE = "totalLivingNotItemizedWeightField.numberValue";
113     public static final String BINDING_TOTAL_SAMPLE_SORTED_WEIGHT_FIELD_TEXT = "totalSampleSortedWeightField.text";
114     public static final String BINDING_TOTAL_SORTED_WEIGHT_FIELD_BEAN = "totalSortedWeightField.bean";
115     public static final String BINDING_TOTAL_SORTED_WEIGHT_FIELD_NUMBER_VALUE = "totalSortedWeightField.numberValue";
116     public static final String BINDING_TOTAL_UNSORTED_WEIGHT_FIELD_TEXT = "totalUnsortedWeightField.text";
117     public static final String BINDING_TOTAL_WEIGHT_FIELD_TEXT = "totalWeightField.text";
118 
119     /*-----------------------------------------------------------------------*/
120     /*------------------------- Other static fields -------------------------*/
121     /*-----------------------------------------------------------------------*/
122 
123     private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAM1cSXPcxhWGKC6iVls0ZcqWbJp2HNKWQMqLIpuKLC5De2RuxaFkl3WgMTPNIWwQgIAeLh47ySFVvqVyiY+pJJdcckhSueWUyiHnHHJJ5S+kUjnkmkovGDTQ6EY3BmNWXGWKBF5//fq9r99Dv27gN/80hsLAeOkz6+jIDNoutPeB+WDh44836p+BBlwGYSOwfegFBv3v1IAx8Ng414yvh9B4+fEqbj4bNZ9d8vZ9zwVuovX8qnE2hMcOCPcAgNC4nm7RCMPZWnx7/shvB13UWCkR6i/+/a+BnzZ/9MsBwzjykXbzaCiTqlZsJIOrxoDdhMZl1NOBNetYbgupEdhuC+l7AV9bcqwwXLf2wRPjB8bIqjHsWwECg8aU/pAJBml/5ENjAjRtWPNBwwbhogUbe9uev2m5wIHGxm5g2rsB2AeBCdsQ2mbbNsNDpI7Z8FyI0E3PB4EFbc81G7gtCM2QQpkY1kziPqz6Pul2GBpD+14T97Dd5x7WMCzrZvTAcuymhQYPjddTbohvRL3V8M9H3YsMYbgeeJ8D1HxGruk2/vMD1O8ikWWNr4RJs1r1bc9zFi0E9gx25VHU/EF0GTcajdsO7gO3zUuuoWuR5HgseRZLLjSwiaDxdEYeS03EwmM24kUAN9u+jXi1iDTHrcYzraoQ7OMmz8ctn45ahqgf2g7fmEwLXaZCi3Zr15ZLjWGNq0Ryre1Ae9MLIb51PS121U6LrLQdh8P8Tiz8Cie84TrHKwF40gYucYGs3aygXdVt2gd2s205G/UQBAeEfnIIMpzKkXI44Eg1nJtsOJxw/nBYu1lBO63hMIjrSdYuQGg19tAAYdgly7vymdCGtmNacROTNmEYHHGhVXfApue3URi6kqIguYh5yCbTeOg76UDVZTfR/04sONHYQ3ET1Kx9H8U6C4KWFxxLZMetZlNL8Aoar3cANLq/mpKstet5wgjWRcFcA/ZKIwBIxUhyDThWSyI5huNigisSscFdL9hH1kqFxSigYb+kw9FT0IOW8xGwW3tw1arj2H055TFyEQt/CI0LDv7jIxvuPXRtKIJYsYHT5J2+DY7oDQLDRk7a1RCrQTOhAL67mdthtmHU7T0FgxsoebYJOUm6pr8uW9CqIMt6QVq9a7QXQqIelJQ1jw2xne5ugsg/dMPiXYmayroZJ7JVF6W+Qn1k2sUdfJLu4CUiuIoCk9ta9yDON/YXBQeUiyHr+DzxJs65dZyK0ywmDz5p+TOv0Ktz+O8n+IeXCDXJSUmmbzdKjqVwWbANMsC3BMCXdm0HgoBMRCwUixzGIs9SkWTfabMdx6LPZ0UXurmHRICEpltW0/aYugzkmqA/YO0y0R8q5bc8D0rln4nSDp4EeeMeT8gJRv1jFogTgvi5cB09D3O9M+EJTnghbEhleWD8iC0VvkToVmsEnuPgESHHpezN7qQD7hBph3znBS3zM7S8+Rx6Pm10ZD74OA7RP2FxMmtwrB1aGghCPF5RUZ3fDzyUZWOUc4nB4UvfoFuB8XwKAq2OTLY6YsuXU4+NoaCNLiN7Ps4uqLbQLbqUmuCWUhiQ3P3vlbG//fEff1jprp82UN/jQtHE8g+ta/wALxOgjbu+RBdPOJLPrln+/GNjNAQOWjuSteE1gWK16DZSDvVHHqFpIvjACvcQxNDI3//05yuf/vW0MbBinHU8q7liYfmqMQr3AmQFz2ke+e/dJxqdPzyDfj6F/scLEKsNvegJZ7aDnkuaDso5LQCXPHfXbk3PmHa40BVZb+/XQUBzzPTMV+gBySVXto99ZOULnRXUMzQbePWGbl5C3R6Sdt2JPCfpoIYEk9hUnvRwcYeaZsNd8RptZJ7hDgzaAN0ZxfBbIMSL40F8Df1TBxbqZqRDFm9fHSFHXhM4MrZmffQv/xmr/e5+15mnkHGvSsWZQ4c+MYZt17FdQJbDmIUjkuXvOT8E7abHVrSiNa6BjH8+aYCI7T8nP3+V8dsQWuzQRwDQxFl/yXPwAlLsP/I7ur8UNaDJJyTW/X/3fsbHR+RB8bfEV/i332PTPSN6BlKY8BSmFnq2ptbAORvFPcobrB67jPQQdOr7wpSf09vwHoGExsDbcxLAc3UycpJzVXBDO3toPQ+NFztT9AGRL5KY+P6UQPecgoqvMNppNOi6FzRBsGnZLuIS0mPXcpB7jGHPt56QOUin4uguZgPNEFRGpImk/qDSYwCXPYgeOB64aJmK2Vi3Gp+3UK5wkVq3O8kc9rC6ZrlWq8s8NBmmp6JKhclaTYk8HdU5VBoNogls37rjrrlobeXaDZTTqFsgfYwzMYhpkRqIuR8L8VYbhGiFgfK3tC0iCb66bfvbRPK6vBdo+6LhJIoxqkENZQZ1K9sdVyVRj/Eslaji8hkKo6R5PPJp3Q54Q9zQ1kxiF1HJpy8G4uouRQ1EyyV5BhJ3oGEgiWZ5BuKaaEzUtBY3JcEq6ppVZkKsBjLvLs76XLQRaZdfE9KYvmdINF/BefRyhy8EfBXbf1YygF0s1i38brPmLFLfkUZqWdsohPM2fLMojMShmYqJRvgf3ek+d/AxazOZ3Sko3Rh4ZDltMM33dWMyzrVE1fTTyfQMzv6lLacaNfFtMW5MdMQ1G8aQt7V1TYKw0d4rMNokgoQt7/QGJuGMpNSlwZxz9GGRsAEaL3TS7k8iTid9X9oa0ZrgdWGHXdZtBOsejHvXG3gP5Hmhk1dLYxSa1x9yBoqZbrmI6TI4Ejq9VwZSQqrcAmWpoLSnEZQk/fIBKimWF6z6YvUiVuqBh891ZIVWxsHvaY8iDcMscb+AJdIYEu7pTwsOTsI7aaW6FOc+1eCcoE+eb12RPK6VtrCuVXrg2LMdYaGdEewtbdUTGGzs3y8w9gSAhFp3esKS8Eq8NVE4R17nUlYCMJUiy1oiypCvibrTT5DifZVinHm5o9wvYfy5rz1oCR6zYLWABSVgEl4tl8aVcEy9O1WYbzMcASTgKe7103IRD2+r1NDnpHr7TWUkXGlz6G7yjGSg0IYOMOtk3UlWsaGw7MKOEmg4ZowWvREYmhegW9S60CG1K3NxdWHpQ2SwMzhEJ0tsSCRuSHdW5jqrdghryYuOufZwdbu6uVrZqa5vV7YeLazu1CqrlaXt6sa60Ix0p0fDVHFR7lrHBYeT29gyzUVybRpX6W5MTkmKbPx24rfamXAjT6PWky7MUI3jcCSfB1iM/M6mzRs504bfIpNEFlklRQBAKyk7IQw8t0W2xaTVdPmubVH7DIbJstV3JdpioeQFZqI5qYn4NhIDva7bvJB5xJu7KuOMyAqFskIYOUpEr7BCYcq+50jEuUkE+eqgGpXZ+ZbUzllVxIa+od2eWHoEuHjOoXg2H0V6OySz8JENDsnOtuNMz0y++upk924tRqjQpiQFXdgJbbwW6h4sdDulj2pSjUNzwwdujT/M9bBKe4p2uCTkEJwAK04O2UInsqjo+FghmrxRHJ8RZl5FGKF6Yurc7gGJI1FFk0RLAqw8Oh32j05R14kBptVQ8kp6YLA4tWQLnW4Bnj9tWIhXsuK4DFynxCtVrFhxXArD0WlRk04LPFAel77ob2jCfUvJpBOmhGdKi292KcIIPWbKJ7HLO5aPSNMgY+0ayO6fgbYyx2BT9uBofJ7SGPkUQKDzfCYYW5eIjER3NUm0xVAYfYTVZ/Hh3uLTX7Y5kRpW90iwymvOt+S1bv8FHBcFIMWjSHp4zN1v67k7tos49MwVwuDiznuFKNNFyWeN/KB3ceIo5zo+JX7yc50/m65BGapqTBnZsj47sELhgZmj2PJNAMAxRT+4xBDK4CI64t93jtCjyOTFgBPkyFLmrYS+cyQxsAIcSZqjJ44kATiO3Ou8JCQJPg/NPRYzEAVLxK93FGeJ4pmfezdE9vx5EZ8MvLkbCR7HrlLYjENn7rqtchevl9hlimU9D8K57b7m1K6kYfIePQ/6++hZ4QbW1ULnsVP02k9x+si2jSILp94eVIWZZv+MU032mxdhLvpU5mb35NvIgR3apIj7XOT+huVGQBSVODbit6yqJRo+Y/dbKnanzSbmtmJ1l4aQHSITvN3Z90STeA9UxYB63xkQxuiSDONjCYH3JxLexyJZ3yvSUGLYBdJQ0lg9paEkgMTr2Tdzi/tcsbBPvtarcnqj306n3eZ5/UKdiAjcfpW5ncJk/f6a/tCZ49/Uc3xkMbHnzQIIEtcL3rdW+X444/t3dfRIvbasosCTflMg7j1SECuRRwj+4LPiwUEwRObqd/VcnTaQ2OOK+oAISOJ4+bvxxf1fKaQV9ya6igpffttU4PQpwoq7ZQbOCFIpSBDegmKuyA5g6GFKaKP1lYTiDNosrKv4mwQqMn19EmQSq1aEV+/3yRyMYps9UExiYjHbPuwXvIR4RT+z0fcsJvj4xglmMe7FDt0sxr2dolr+ZodYIIuJDNRTFhMBybKY9JMofc9i+d9TOcEsJqZCkSzGsUKRxfIHXiCLKSzYUxZTYMqymM7HcfqexbS/rHOCWUxOph6yGMcrRRbTNkeBLKZv4p6ymD68LIsV/LqSxqZv9FYy+QpDzjccFPWpxDE4Ey94TYvE/gN69PQ0+Uuv3CRCooXUM/TwI66kXsuppAqLk3lfIOm7kWTblJmhOcDaZVYapH/q7ToKsTJ2ui62E90nEL+GkveVlb5bajn5MsVKzvdasDGm44PD+Dr9pED0wkTXggG60bMFcWNdC2IN9C3IxlE8KWjtuuUeJYw2vahksU2vohujSW1KbHolNkb5DQ+vvxseS5nvJ2nsdEi/uqTh3fT8SH7sRhljE7KYgqbruUDn+Tp1VD/VOvZRPIHWN9YrupFaiMjPnxfj+VNLi+OvIckONoRZ0X4aWFZw5QdkhQ1m33cK2hc1zpj39EJtSbcIK8LjjfuCzLgLYUNiW+l3pk6Wu/hzub1zF7fOcne5krWuLncJojZ38Qe3NLnLvs2l886DYx17SNi4eLdpQWuybqNnO7d1L9PRKfzzrBIRXT79M/zjGzGC8l0VJUJYGuFIwy6DdoN820yG8aKWFr/OQZgqjfBKaYRXSyNMl0Z4rTTCjdIIZmmEudIIb5RGeKs0wt3SCPdKI9wvjbBYGmG5NMJKaYQPSiM8KI2gPE2jRPiyNMLXCOF/ZI7oliJfAAA=";
124     private static final Log log = LogFactory.getLog(SpeciesBatchUI.class);
125     private static final long serialVersionUID = 1L;
126 
127     /*-----------------------------------------------------------------------*/
128     /*--------------------------- Internal states ---------------------------*/
129     /*-----------------------------------------------------------------------*/
130 
131     protected List<Object> $activeBindings = new ArrayList<Object>();
132     protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
133     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
134     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
135     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
136     private boolean allComponentsCreated;
137     protected final JAXXContext delegateContext = new DefaultJAXXContext();
138 
139     /*-----------------------------------------------------------------------*/
140     /*------------------------ Protected components  ------------------------*/
141     /*-----------------------------------------------------------------------*/
142 
143     protected JMenuItem addSampleCategoryMenu;
144     protected TuttiHelpBroker broker;
145     protected JMenuItem changeSampleCategoryMenu;
146     protected JButton createSpeciesBatchButton;
147     protected JMenuItem createSpeciesMelagMenu;
148     protected JMenuItem editFrequenciesMenu;
149     protected SpeciesBatchUI editSpeciesBatchTopPanel = this;
150     protected JMenuItem exportMultiPostFullButton;
151     protected JMenuItem exportMultiPostOnlyFrequenciesButton;
152     protected JMenuItem exportMultiPostOnlyIndividualObservationsButton;
153     protected JRadioButton filterSpeciesBatchAllButton;
154     protected JLabel filterSpeciesBatchLabel;
155     protected JRadioButton filterSpeciesBatchLeafButton;
156     protected JAXXButtonGroup filterSpeciesBatchMode;
157     protected JRadioButton filterSpeciesBatchRootButton;
158     protected JPanel filterTablePane;
159     protected Table form;
160     protected final SpeciesBatchUIHandler handler = createHandler();
161     protected JMenuItem importBigfinButton;
162     protected JMenuItem importMultiPostFullButton;
163     protected JMenuItem importMultiPostOnlyFrequenciesButton;
164     protected JMenuItem importMultiPostOnlyIndividualObservationsButton;
165     protected JMenuItem importPsionButton;
166     protected JMenuItem importPupitriButton;
167     protected JMenuBar menu;
168     protected JMenu menuAction;
169     protected JMenu menuExportMultiPost;
170     protected JMenu menuImportMultiPost;
171     protected SpeciesBatchUIModel model;
172     protected JMenuItem removeSpeciesBatchMenu;
173     protected JMenuItem removeSpeciesSubBatchMenu;
174     protected JMenuItem renameSpeciesBatchMenu;
175     protected ButtonAttachment speciesBatchAttachmentsButton;
176     protected JToolBar speciesBatchTabToolBar;
177     protected JAXXButtonGroup speciesSort;
178     protected JLabel speciesSortBatchLabel;
179     protected JRadioButton speciesSortModeAscButton;
180     protected JRadioButton speciesSortModeDescButton;
181     protected JRadioButton speciesSortModeNoneButton;
182     protected JPanel speciesSortTablePane;
183     protected JMenuItem splitSpeciesBatchMenu;
184     protected JXTable table;
185     protected JPopupMenu tablePopup;
186     protected JScrollPane tableScrollPane;
187     protected JPanel tableToolbar;
188     protected ComputableDataEditor<Float> totalInertWeightField;
189     protected JLabel totalInertWeightLabel;
190     protected ComputableDataEditor<Float> totalLivingNotItemizedWeightField;
191     protected JLabel totalLivingNotItemizedWeightLabel;
192     protected JTextField totalSampleSortedWeightField;
193     protected JLabel totalSampleSortedWeightLabel;
194     @ValidatorField( validatorId = "validator",  propertyName = "totalSortedWeight",  editorName = "totalSortedWeightField")
195     protected ComputableDataEditor<Float> totalSortedWeightField;
196     protected JLabel totalSortedWeightLabel;
197     protected JTextField totalUnsortedWeightField;
198     protected JLabel totalUnsortedWeightLabel;
199     protected JTextField totalWeightField;
200     protected JLabel totalWeightLabel;
201     @Validator( validatorId = "validator")
202     protected SwingValidator<SpeciesBatchUIModel> validator;
203     protected List<String> validatorIds = new ArrayList<String>();
204 
205     /*-----------------------------------------------------------------------*/
206     /*------------------------- Private components  -------------------------*/
207     /*-----------------------------------------------------------------------*/
208 
209     private JPanel $JPanel0;
210     private JPanel $JPanel1;
211 
212     /*-----------------------------------------------------------------------*/
213     /*---------------------- Raw body code from script ----------------------*/
214     /*-----------------------------------------------------------------------*/
215 
216     // Pour savoir sur quel modèle on est (espèce ou benthos)
217     private String speciesOrBenthosContext;
218     
219     
220     public String getSpeciesOrBenthosContext() { return speciesOrBenthosContext; }
221 
222     /*-----------------------------------------------------------------------*/
223     /*---------------------------- Constructors  ----------------------------*/
224     /*-----------------------------------------------------------------------*/
225 
226     public SpeciesBatchUI(TuttiUI parentUI, String speciesOrBenthosContext) {
227         TuttiUIUtil.setParentUI(this, parentUI);
228             this.speciesOrBenthosContext = speciesOrBenthosContext;
229             $initialize();
230     }
231 
232     public SpeciesBatchUI(LayoutManager param0, boolean param1) {
233         super(param0 ,param1);
234         $initialize();
235     }
236 
237     public SpeciesBatchUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
238         super(param1 ,param2);
239         JAXXUtil.initContext(this, parentContext);
240         $initialize();
241     }
242 
243     public SpeciesBatchUI(LayoutManager param0) {
244         super(param0);
245         $initialize();
246     }
247 
248     public SpeciesBatchUI(JAXXContext parentContext, LayoutManager param1) {
249         super(param1);
250         JAXXUtil.initContext(this, parentContext);
251         $initialize();
252     }
253 
254     public SpeciesBatchUI() {
255         $initialize();
256     }
257 
258     public SpeciesBatchUI(JAXXContext parentContext) {
259         JAXXUtil.initContext(this, parentContext);
260         $initialize();
261     }
262 
263     public SpeciesBatchUI(boolean param0) {
264         super(param0);
265         $initialize();
266     }
267 
268     public SpeciesBatchUI(JAXXContext parentContext, boolean param1) {
269         super(param1);
270         JAXXUtil.initContext(this, parentContext);
271         $initialize();
272     }
273 
274     /*-----------------------------------------------------------------------*/
275     /*--------------------------- Statics methods ---------------------------*/
276     /*-----------------------------------------------------------------------*/
277 
278     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
279         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
280     }
281 
282     /*-----------------------------------------------------------------------*/
283     /*---------------------- JAXXObject implementation ----------------------*/
284     /*-----------------------------------------------------------------------*/
285 
286     @Override
287     public void applyDataBinding(String $binding) {
288         if (allComponentsCreated && $bindings.containsKey($binding)) {
289             getDataBinding($binding).applyDataBinding();
290         }
291         processDataBinding($binding);
292     }
293 
294     @Override
295     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
296         super.firePropertyChange(propertyName, oldValue, newValue);
297     }
298 
299     @Override
300     public Map<String, Object> get$objectMap() {
301         return $objectMap;
302     }
303 
304     @Override
305     public JAXXBinding getDataBinding(String bindingId) {
306         return $bindings.get(bindingId);
307     }
308 
309     @Override
310     public JAXXBinding[] getDataBindings() {
311         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
312     }
313 
314     @Override
315     public Object getObjectById(String id) {
316         return $objectMap.get(id);
317     }
318 
319     @Override
320     public void processDataBinding(String $binding, boolean $force) {
321         if (!$force && $activeBindings.contains($binding)) { 
322             return;
323         }
324         $activeBindings.add($binding);
325         try {
326             if (allComponentsCreated && $bindings.containsKey($binding)) {
327                 getDataBinding($binding).processDataBinding();
328             }
329         } finally {
330             $activeBindings.remove($binding);
331         }
332     }
333 
334     @Override
335     public void processDataBinding(String $binding) {
336         processDataBinding($binding, false);
337     }
338 
339     @Override
340     public void registerDataBinding(JAXXBinding binding) {
341         $bindings.put(binding.getId(), binding);
342     }
343 
344     @Override
345     public void removeDataBinding(String $binding) {
346         if (allComponentsCreated && $bindings.containsKey($binding)) {
347             getDataBinding($binding).removeDataBinding();
348         }
349     }
350 
351     /*-----------------------------------------------------------------------*/
352     /*--------------------- JAXXContext implementation  ---------------------*/
353     /*-----------------------------------------------------------------------*/
354 
355     @Override
356     public <T> T getContextValue(Class<T> clazz) {
357         return delegateContext.getContextValue(clazz, null);
358     }
359 
360     @Override
361     public <T> T getContextValue(Class<T> clazz, String name) {
362         return delegateContext.getContextValue(clazz, name);
363     }
364 
365     @Override
366     public JAXXContext getDelegateContext() {
367         return delegateContext;
368     }
369 
370     @Override
371     public <O extends Container> O getParentContainer(Class<O> clazz) {
372         return SwingUtil.getParentContainer(this, clazz);
373     }
374 
375     @Override
376     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
377         return SwingUtil.getParentContainer(source, clazz);
378     }
379 
380     @Override
381     public <T> void removeContextValue(Class<T> clazz) {
382         delegateContext.removeContextValue(clazz, null);
383     }
384 
385     @Override
386     public <T> void removeContextValue(Class<T> clazz, String name) {
387         delegateContext.removeContextValue(clazz, name);
388     }
389 
390     @Override
391     public <T> void setContextValue(T o) {
392         delegateContext.setContextValue(o, null);
393     }
394 
395     @Override
396     public <T> void setContextValue(T o, String name) {
397         delegateContext.setContextValue(o, name);
398     }
399 
400     /*-----------------------------------------------------------------------*/
401     /*-------------------- JAXXValidator implementation  --------------------*/
402     /*-----------------------------------------------------------------------*/
403 
404     @Override
405     public SwingValidator<?> getValidator(String validatorId) {
406         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
407     }
408 
409     @Override
410     public List<String> getValidatorIds() {
411         return validatorIds;
412     }
413 
414     @Override
415     public void registerValidatorFields() {
416         SwingValidatorUtil.detectValidatorFields(this);
417     }
418 
419     /*-----------------------------------------------------------------------*/
420     /*---------------------------- Event methods ----------------------------*/
421     /*-----------------------------------------------------------------------*/
422 
423     public void doActionPerformed__on__filterSpeciesBatchAllButton(ActionEvent event) {
424         if (log.isDebugEnabled()) {
425             log.debug(event);
426         }
427         model.setTableViewMode(TableViewMode.ALL);
428     }
429 
430     public void doActionPerformed__on__filterSpeciesBatchLeafButton(ActionEvent event) {
431         if (log.isDebugEnabled()) {
432             log.debug(event);
433         }
434         model.setTableViewMode(TableViewMode.LEAF);
435     }
436 
437     public void doActionPerformed__on__filterSpeciesBatchRootButton(ActionEvent event) {
438         if (log.isDebugEnabled()) {
439             log.debug(event);
440         }
441         model.setTableViewMode(TableViewMode.ROOT);
442     }
443 
444     public void doActionPerformed__on__speciesSortModeAscButton(ActionEvent event) {
445         if (log.isDebugEnabled()) {
446             log.debug(event);
447         }
448         model.setSpeciesSortMode(SpeciesSortMode.ASC);
449     }
450 
451     public void doActionPerformed__on__speciesSortModeDescButton(ActionEvent event) {
452         if (log.isDebugEnabled()) {
453             log.debug(event);
454         }
455         model.setSpeciesSortMode(SpeciesSortMode.DESC);
456     }
457 
458     public void doActionPerformed__on__speciesSortModeNoneButton(ActionEvent event) {
459         if (log.isDebugEnabled()) {
460             log.debug(event);
461         }
462         model.setSpeciesSortMode(SpeciesSortMode.NONE);
463     }
464 
465     public void doKeyPressed__on__table(KeyEvent event) {
466         if (log.isDebugEnabled()) {
467             log.debug(event);
468         }
469         handler.openRowMenu(event, tablePopup);
470     }
471 
472     public void doMouseClicked__on__table(MouseEvent event) {
473         if (log.isDebugEnabled()) {
474             log.debug(event);
475         }
476         handler.autoSelectRowInTable(event, tablePopup);
477     }
478 
479     /*-----------------------------------------------------------------------*/
480     /*----------------------- Public acessor methods  -----------------------*/
481     /*-----------------------------------------------------------------------*/
482 
483     public JMenuItem getAddSampleCategoryMenu() {
484         return addSampleCategoryMenu;
485     }
486 
487     public TuttiHelpBroker getBroker() {
488         return broker;
489     }
490 
491     public JMenuItem getChangeSampleCategoryMenu() {
492         return changeSampleCategoryMenu;
493     }
494 
495     public JButton getCreateSpeciesBatchButton() {
496         return createSpeciesBatchButton;
497     }
498 
499     public JMenuItem getCreateSpeciesMelagMenu() {
500         return createSpeciesMelagMenu;
501     }
502 
503     public JMenuItem getEditFrequenciesMenu() {
504         return editFrequenciesMenu;
505     }
506 
507     public JMenuItem getExportMultiPostFullButton() {
508         return exportMultiPostFullButton;
509     }
510 
511     public JMenuItem getExportMultiPostOnlyFrequenciesButton() {
512         return exportMultiPostOnlyFrequenciesButton;
513     }
514 
515     public JMenuItem getExportMultiPostOnlyIndividualObservationsButton() {
516         return exportMultiPostOnlyIndividualObservationsButton;
517     }
518 
519     public JRadioButton getFilterSpeciesBatchAllButton() {
520         return filterSpeciesBatchAllButton;
521     }
522 
523     public JLabel getFilterSpeciesBatchLabel() {
524         return filterSpeciesBatchLabel;
525     }
526 
527     public JRadioButton getFilterSpeciesBatchLeafButton() {
528         return filterSpeciesBatchLeafButton;
529     }
530 
531     public JAXXButtonGroup getFilterSpeciesBatchMode() {
532         return filterSpeciesBatchMode;
533     }
534 
535     public JRadioButton getFilterSpeciesBatchRootButton() {
536         return filterSpeciesBatchRootButton;
537     }
538 
539     public JPanel getFilterTablePane() {
540         return filterTablePane;
541     }
542 
543     public Table getForm() {
544         return form;
545     }
546 
547     public SpeciesBatchUIHandler getHandler() {
548         return handler;
549     }
550 
551     public JMenuItem getImportBigfinButton() {
552         return importBigfinButton;
553     }
554 
555     public JMenuItem getImportMultiPostFullButton() {
556         return importMultiPostFullButton;
557     }
558 
559     public JMenuItem getImportMultiPostOnlyFrequenciesButton() {
560         return importMultiPostOnlyFrequenciesButton;
561     }
562 
563     public JMenuItem getImportMultiPostOnlyIndividualObservationsButton() {
564         return importMultiPostOnlyIndividualObservationsButton;
565     }
566 
567     public JMenuItem getImportPsionButton() {
568         return importPsionButton;
569     }
570 
571     public JMenuItem getImportPupitriButton() {
572         return importPupitriButton;
573     }
574 
575     public JMenuBar getMenu() {
576         return menu;
577     }
578 
579     public JMenu getMenuAction() {
580         return menuAction;
581     }
582 
583     public JMenu getMenuExportMultiPost() {
584         return menuExportMultiPost;
585     }
586 
587     public JMenu getMenuImportMultiPost() {
588         return menuImportMultiPost;
589     }
590 
591     public SpeciesBatchUIModel getModel() {
592         return model;
593     }
594 
595     public JMenuItem getRemoveSpeciesBatchMenu() {
596         return removeSpeciesBatchMenu;
597     }
598 
599     public JMenuItem getRemoveSpeciesSubBatchMenu() {
600         return removeSpeciesSubBatchMenu;
601     }
602 
603     public JMenuItem getRenameSpeciesBatchMenu() {
604         return renameSpeciesBatchMenu;
605     }
606 
607     public ButtonAttachment getSpeciesBatchAttachmentsButton() {
608         return speciesBatchAttachmentsButton;
609     }
610 
611     public JToolBar getSpeciesBatchTabToolBar() {
612         return speciesBatchTabToolBar;
613     }
614 
615     public JAXXButtonGroup getSpeciesSort() {
616         return speciesSort;
617     }
618 
619     public JLabel getSpeciesSortBatchLabel() {
620         return speciesSortBatchLabel;
621     }
622 
623     public JRadioButton getSpeciesSortModeAscButton() {
624         return speciesSortModeAscButton;
625     }
626 
627     public JRadioButton getSpeciesSortModeDescButton() {
628         return speciesSortModeDescButton;
629     }
630 
631     public JRadioButton getSpeciesSortModeNoneButton() {
632         return speciesSortModeNoneButton;
633     }
634 
635     public JPanel getSpeciesSortTablePane() {
636         return speciesSortTablePane;
637     }
638 
639     public JMenuItem getSplitSpeciesBatchMenu() {
640         return splitSpeciesBatchMenu;
641     }
642 
643     public JXTable getTable() {
644         return table;
645     }
646 
647     public JPopupMenu getTablePopup() {
648         return tablePopup;
649     }
650 
651     public JScrollPane getTableScrollPane() {
652         return tableScrollPane;
653     }
654 
655     public JPanel getTableToolbar() {
656         return tableToolbar;
657     }
658 
659     public ComputableDataEditor<Float> getTotalInertWeightField() {
660         return totalInertWeightField;
661     }
662 
663     public JLabel getTotalInertWeightLabel() {
664         return totalInertWeightLabel;
665     }
666 
667     public ComputableDataEditor<Float> getTotalLivingNotItemizedWeightField() {
668         return totalLivingNotItemizedWeightField;
669     }
670 
671     public JLabel getTotalLivingNotItemizedWeightLabel() {
672         return totalLivingNotItemizedWeightLabel;
673     }
674 
675     public JTextField getTotalSampleSortedWeightField() {
676         return totalSampleSortedWeightField;
677     }
678 
679     public JLabel getTotalSampleSortedWeightLabel() {
680         return totalSampleSortedWeightLabel;
681     }
682 
683     public ComputableDataEditor<Float> getTotalSortedWeightField() {
684         return totalSortedWeightField;
685     }
686 
687     public JLabel getTotalSortedWeightLabel() {
688         return totalSortedWeightLabel;
689     }
690 
691     public JTextField getTotalUnsortedWeightField() {
692         return totalUnsortedWeightField;
693     }
694 
695     public JLabel getTotalUnsortedWeightLabel() {
696         return totalUnsortedWeightLabel;
697     }
698 
699     public JTextField getTotalWeightField() {
700         return totalWeightField;
701     }
702 
703     public JLabel getTotalWeightLabel() {
704         return totalWeightLabel;
705     }
706 
707     public SwingValidator<SpeciesBatchUIModel> getValidator() {
708         return validator;
709     }
710 
711     /*-----------------------------------------------------------------------*/
712     /*---------------------------- Other methods ----------------------------*/
713     /*-----------------------------------------------------------------------*/
714 
715     @Override
716     public void registerHelpId(TuttiHelpBroker broker, Component component, String helpId) {
717         broker.installUI(component, helpId);
718     }
719 
720     @Override
721     public void showHelp(String helpId) {
722         getBroker().showHelp(this, helpId);
723     }
724 
725     /*-----------------------------------------------------------------------*/
726     /*--------------------- Protected acessors methods  ---------------------*/
727     /*-----------------------------------------------------------------------*/
728 
729     protected JPanel get$JPanel0() {
730         return $JPanel0;
731     }
732 
733     protected JPanel get$JPanel1() {
734         return $JPanel1;
735     }
736 
737     /*-----------------------------------------------------------------------*/
738     /*--------------------- Components creation methods ---------------------*/
739     /*-----------------------------------------------------------------------*/
740 
741     protected void addChildrenToEditSpeciesBatchTopPanel() {
742         if (!allComponentsCreated) {
743             return;
744         }
745         add(speciesBatchTabToolBar);
746         add(form, BorderLayout.NORTH);
747         add(tableScrollPane, BorderLayout.CENTER);
748     }
749 
750     protected void addChildrenToFilterSpeciesBatchAllButton() {
751         if (!allComponentsCreated) {
752             return;
753         }
754         { ButtonGroup $buttonGroup = filterSpeciesBatchMode; filterSpeciesBatchAllButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSpeciesBatchAllButton); }
755     }
756 
757     protected void addChildrenToFilterSpeciesBatchLeafButton() {
758         if (!allComponentsCreated) {
759             return;
760         }
761         { ButtonGroup $buttonGroup = filterSpeciesBatchMode; filterSpeciesBatchLeafButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSpeciesBatchLeafButton); }
762     }
763 
764     protected void addChildrenToFilterSpeciesBatchRootButton() {
765         if (!allComponentsCreated) {
766             return;
767         }
768         { ButtonGroup $buttonGroup = filterSpeciesBatchMode; filterSpeciesBatchRootButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(filterSpeciesBatchRootButton); }
769     }
770 
771     protected void addChildrenToFilterTablePane() {
772         if (!allComponentsCreated) {
773             return;
774         }
775         filterTablePane.add(filterSpeciesBatchLabel);
776         filterTablePane.add(filterSpeciesBatchAllButton);
777         filterTablePane.add(filterSpeciesBatchLeafButton);
778         filterTablePane.add(filterSpeciesBatchRootButton);
779     }
780 
781     protected void addChildrenToForm() {
782         if (!allComponentsCreated) {
783             return;
784         }
785         form.add(totalWeightLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
786         form.add(totalWeightField, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
787         form.add(totalSortedWeightLabel, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
788         form.add(SwingUtil.boxComponentWithJxLayer(totalSortedWeightField), new GridBagConstraints(3, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
789         form.add(totalSampleSortedWeightLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
790         form.add(totalSampleSortedWeightField, new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
791         form.add(totalUnsortedWeightLabel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
792         form.add(totalUnsortedWeightField, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
793         form.add(totalInertWeightLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
794         form.add(totalInertWeightField, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
795         form.add(totalLivingNotItemizedWeightLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
796         form.add(totalLivingNotItemizedWeightField, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
797         form.add(tableToolbar, new GridBagConstraints(0, 3, 4, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
798     }
799 
800     protected void addChildrenToMenu() {
801         if (!allComponentsCreated) {
802             return;
803         }
804         menu.add(menuAction);
805     }
806 
807     protected void addChildrenToMenuAction() {
808         if (!allComponentsCreated) {
809             return;
810         }
811         menuAction.add(importPupitriButton);
812         menuAction.add(importPsionButton);
813         menuAction.add(importBigfinButton);
814         menuAction.add(menuImportMultiPost);
815         menuAction.add(menuExportMultiPost);
816     }
817 
818     protected void addChildrenToMenuExportMultiPost() {
819         if (!allComponentsCreated) {
820             return;
821         }
822         menuExportMultiPost.add(exportMultiPostFullButton);
823         menuExportMultiPost.add(exportMultiPostOnlyFrequenciesButton);
824         menuExportMultiPost.add(exportMultiPostOnlyIndividualObservationsButton);
825     }
826 
827     protected void addChildrenToMenuImportMultiPost() {
828         if (!allComponentsCreated) {
829             return;
830         }
831         menuImportMultiPost.add(importMultiPostFullButton);
832         menuImportMultiPost.add(importMultiPostOnlyFrequenciesButton);
833         menuImportMultiPost.add(importMultiPostOnlyIndividualObservationsButton);
834     }
835 
836     protected void addChildrenToSpeciesBatchTabToolBar() {
837         if (!allComponentsCreated) {
838             return;
839         }
840         speciesBatchTabToolBar.add(menu);
841         speciesBatchTabToolBar.add(speciesBatchAttachmentsButton);
842     }
843 
844     protected void addChildrenToSpeciesSortModeAscButton() {
845         if (!allComponentsCreated) {
846             return;
847         }
848         { ButtonGroup $buttonGroup = speciesSort; speciesSortModeAscButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(speciesSortModeAscButton); }
849     }
850 
851     protected void addChildrenToSpeciesSortModeDescButton() {
852         if (!allComponentsCreated) {
853             return;
854         }
855         { ButtonGroup $buttonGroup = speciesSort; speciesSortModeDescButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(speciesSortModeDescButton); }
856     }
857 
858     protected void addChildrenToSpeciesSortModeNoneButton() {
859         if (!allComponentsCreated) {
860             return;
861         }
862         { ButtonGroup $buttonGroup = speciesSort; speciesSortModeNoneButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(speciesSortModeNoneButton); }
863     }
864 
865     protected void addChildrenToSpeciesSortTablePane() {
866         if (!allComponentsCreated) {
867             return;
868         }
869         speciesSortTablePane.add(speciesSortBatchLabel);
870         speciesSortTablePane.add(speciesSortModeNoneButton);
871         speciesSortTablePane.add(speciesSortModeAscButton);
872         speciesSortTablePane.add(speciesSortModeDescButton);
873     }
874 
875     protected void addChildrenToTablePopup() {
876         if (!allComponentsCreated) {
877             return;
878         }
879         tablePopup.add(splitSpeciesBatchMenu);
880         tablePopup.add(changeSampleCategoryMenu);
881         tablePopup.add(addSampleCategoryMenu);
882         tablePopup.add(removeSpeciesBatchMenu);
883         tablePopup.add(removeSpeciesSubBatchMenu);
884         tablePopup.add(renameSpeciesBatchMenu);
885         tablePopup.add(createSpeciesMelagMenu);
886         tablePopup.add(editFrequenciesMenu);
887     }
888 
889     protected void addChildrenToTableScrollPane() {
890         if (!allComponentsCreated) {
891             return;
892         }
893         tableScrollPane.getViewport().add(table);
894     }
895 
896     protected void addChildrenToTableToolbar() {
897         if (!allComponentsCreated) {
898             return;
899         }
900         tableToolbar.add($JPanel0, BorderLayout.WEST);
901         tableToolbar.add($JPanel1, BorderLayout.CENTER);
902     }
903 
904     protected void addChildrenToValidator() {
905         if (!allComponentsCreated) {
906             return;
907         }
908         validator.setUiClass(ImageValidationUI.class);
909         validator.setBean(model);
910     }
911 
912     protected void createAddSampleCategoryMenu() {
913         $objectMap.put("addSampleCategoryMenu", addSampleCategoryMenu = new JMenuItem());
914         
915         addSampleCategoryMenu.setName("addSampleCategoryMenu");
916         addSampleCategoryMenu.setText(t("tutti.editSpeciesBatch.action.addSampleCategory"));
917         addSampleCategoryMenu.setToolTipText(t("tutti.editSpeciesBatch.action.addSampleCategory.tip"));
918         addSampleCategoryMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.addSampleCategory.help");
919         addSampleCategoryMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.OpenAddSpeciesBatchSampleCategoryUIAction.class);
920     }
921 
922     protected void createBroker() {
923         $objectMap.put("broker", broker = new TuttiHelpBroker("tutti.editSpeciesBatch.help"));
924     }
925 
926     protected void createChangeSampleCategoryMenu() {
927         $objectMap.put("changeSampleCategoryMenu", changeSampleCategoryMenu = new JMenuItem());
928         
929         changeSampleCategoryMenu.setName("changeSampleCategoryMenu");
930         changeSampleCategoryMenu.setText(t("tutti.editSpeciesBatch.action.changeSampleCategory"));
931         changeSampleCategoryMenu.setToolTipText(t("tutti.editSpeciesBatch.action.changeSampleCategory.tip"));
932         changeSampleCategoryMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.changeSampleCategory.help");
933         changeSampleCategoryMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ChangeSpeciesBatchSampleCategoryAction.class);
934     }
935 
936     protected void createCreateSpeciesBatchButton() {
937         $objectMap.put("createSpeciesBatchButton", createSpeciesBatchButton = new JButton());
938         
939         createSpeciesBatchButton.setName("createSpeciesBatchButton");
940         createSpeciesBatchButton.setText(t("tutti.editSpeciesBatch.action.createBatch"));
941         createSpeciesBatchButton.setToolTipText(t("tutti.editSpeciesBatch.action.createBatch.tip"));
942         createSpeciesBatchButton.putClientProperty("help", "tutti.editSpeciesBatch.action.createBatch.help");
943         createSpeciesBatchButton.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.OpenCreateSpeciesBatchUIAction.class);
944     }
945 
946     protected void createCreateSpeciesMelagMenu() {
947         $objectMap.put("createSpeciesMelagMenu", createSpeciesMelagMenu = new JMenuItem());
948         
949         createSpeciesMelagMenu.setName("createSpeciesMelagMenu");
950         createSpeciesMelagMenu.setText(t("tutti.editSpeciesBatch.action.createMelag"));
951         createSpeciesMelagMenu.setToolTipText(t("tutti.editSpeciesBatch.action.createMelag.tip"));
952         createSpeciesMelagMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.createMelag.help");
953         createSpeciesMelagMenu.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.CreateSpeciesMelagAction.class);
954     }
955 
956     protected void createEditFrequenciesMenu() {
957         $objectMap.put("editFrequenciesMenu", editFrequenciesMenu = new JMenuItem());
958         
959         editFrequenciesMenu.setName("editFrequenciesMenu");
960         editFrequenciesMenu.setText(t("tutti.editSpeciesBatch.action.editFrequencies"));
961         editFrequenciesMenu.setToolTipText(t("tutti.editSpeciesBatch.action.editFrequencies.tip"));
962         editFrequenciesMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.editFrequencies.help");
963         editFrequenciesMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.OpenEditSpeciesBatchFrequencyUIAction.class);
964     }
965 
966     protected void createExportMultiPostFullButton() {
967         $objectMap.put("exportMultiPostFullButton", exportMultiPostFullButton = new JMenuItem());
968         
969         exportMultiPostFullButton.setName("exportMultiPostFullButton");
970         exportMultiPostFullButton.setText(t("tutti.editSpeciesBatch.action.exportMultiPostFull"));
971         exportMultiPostFullButton.setToolTipText(t("tutti.editSpeciesBatch.action.exportMultiPostFull.tip"));
972         exportMultiPostFullButton.putClientProperty("help", "tutti.editSpeciesBatch.action.exportMultiPostFull.help");
973         exportMultiPostFullButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ExportMultiPostSpeciesFullAction.class);
974     }
975 
976     protected void createExportMultiPostOnlyFrequenciesButton() {
977         $objectMap.put("exportMultiPostOnlyFrequenciesButton", exportMultiPostOnlyFrequenciesButton = new JMenuItem());
978         
979         exportMultiPostOnlyFrequenciesButton.setName("exportMultiPostOnlyFrequenciesButton");
980         exportMultiPostOnlyFrequenciesButton.setText(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies"));
981         exportMultiPostOnlyFrequenciesButton.setToolTipText(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies.tip"));
982         exportMultiPostOnlyFrequenciesButton.putClientProperty("help", "tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies.help");
983         exportMultiPostOnlyFrequenciesButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ExportMultiPostSpeciesOnlyFrequenciesAction.class);
984     }
985 
986     protected void createExportMultiPostOnlyIndividualObservationsButton() {
987         $objectMap.put("exportMultiPostOnlyIndividualObservationsButton", exportMultiPostOnlyIndividualObservationsButton = new JMenuItem());
988         
989         exportMultiPostOnlyIndividualObservationsButton.setName("exportMultiPostOnlyIndividualObservationsButton");
990         exportMultiPostOnlyIndividualObservationsButton.setText(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyIndividualObservations"));
991         exportMultiPostOnlyIndividualObservationsButton.setToolTipText(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyIndividualObservations.tip"));
992         exportMultiPostOnlyIndividualObservationsButton.putClientProperty("help", "tutti.editSpeciesBatch.action.exportMultiPostOnlyIndividualObservations.help");
993         exportMultiPostOnlyIndividualObservationsButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ExportMultiPostSpeciesOnlyIndividualObservationsAction.class);
994     }
995 
996     protected void createFilterSpeciesBatchAllButton() {
997         $objectMap.put("filterSpeciesBatchAllButton", filterSpeciesBatchAllButton = new JRadioButton());
998         
999         filterSpeciesBatchAllButton.setName("filterSpeciesBatchAllButton");
1000         filterSpeciesBatchAllButton.setText(t("tutti.editSpeciesBatch.filterBatch.mode.all"));
1001         { filterSpeciesBatchAllButton.putClientProperty("$value", "all");  Object $buttonGroup = filterSpeciesBatchAllButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1002         
1003         filterSpeciesBatchAllButton.setToolTipText(t("tutti.editSpeciesBatch.filterBatch.mode.all.tip"));
1004         filterSpeciesBatchAllButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSpeciesBatchAllButton"));
1005     }
1006 
1007     protected void createFilterSpeciesBatchLabel() {
1008         $objectMap.put("filterSpeciesBatchLabel", filterSpeciesBatchLabel = new JLabel());
1009         
1010         filterSpeciesBatchLabel.setName("filterSpeciesBatchLabel");
1011         filterSpeciesBatchLabel.setText(t("tutti.editSpeciesBatch.filterBatch"));
1012         filterSpeciesBatchLabel.setToolTipText(t("tutti.editSpeciesBatch.filterSpeciesBatch.tip"));
1013         filterSpeciesBatchLabel.putClientProperty("help", "tutti.editSpeciesBatch.filterSpeciesBatch.help");
1014         filterSpeciesBatchLabel.putClientProperty("strongStyle", true);
1015     }
1016 
1017     protected void createFilterSpeciesBatchLeafButton() {
1018         $objectMap.put("filterSpeciesBatchLeafButton", filterSpeciesBatchLeafButton = new JRadioButton());
1019         
1020         filterSpeciesBatchLeafButton.setName("filterSpeciesBatchLeafButton");
1021         filterSpeciesBatchLeafButton.setText(t("tutti.editSpeciesBatch.filterBatch.mode.leaf"));
1022         { filterSpeciesBatchLeafButton.putClientProperty("$value", "leaf");  Object $buttonGroup = filterSpeciesBatchLeafButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1023         
1024         filterSpeciesBatchLeafButton.setToolTipText(t("tutti.editSpeciesBatch.filterBatch.mode.leaf.tip"));
1025         filterSpeciesBatchLeafButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSpeciesBatchLeafButton"));
1026     }
1027 
1028     protected void createFilterSpeciesBatchMode() {
1029         $objectMap.put("filterSpeciesBatchMode", filterSpeciesBatchMode = new JAXXButtonGroup());
1030     }
1031 
1032     protected void createFilterSpeciesBatchRootButton() {
1033         $objectMap.put("filterSpeciesBatchRootButton", filterSpeciesBatchRootButton = new JRadioButton());
1034         
1035         filterSpeciesBatchRootButton.setName("filterSpeciesBatchRootButton");
1036         { filterSpeciesBatchRootButton.putClientProperty("$value", "root");  Object $buttonGroup = filterSpeciesBatchRootButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1037         
1038         filterSpeciesBatchRootButton.setToolTipText(t("tutti.editSpeciesBatch.filterBatch.mode.root.tip"));
1039         filterSpeciesBatchRootButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__filterSpeciesBatchRootButton"));
1040     }
1041 
1042     protected void createFilterTablePane() {
1043         $objectMap.put("filterTablePane", filterTablePane = new JPanel());
1044         
1045         filterTablePane.setName("filterTablePane");
1046     }
1047 
1048     protected void createForm() {
1049         $objectMap.put("form", form = new Table());
1050         
1051         form.setName("form");
1052     }
1053 
1054     protected SpeciesBatchUIHandler createHandler() {
1055         return new SpeciesBatchUIHandler();
1056     }
1057 
1058     protected void createImportBigfinButton() {
1059         $objectMap.put("importBigfinButton", importBigfinButton = new JMenuItem());
1060         
1061         importBigfinButton.setName("importBigfinButton");
1062         importBigfinButton.setText(t("tutti.editSpeciesBatch.action.importBigfin"));
1063         importBigfinButton.setToolTipText(t("tutti.editSpeciesBatch.action.importBigfin.tip"));
1064         importBigfinButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importBigfin.help");
1065         importBigfinButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportBigfinAction.class);
1066     }
1067 
1068     protected void createImportMultiPostFullButton() {
1069         $objectMap.put("importMultiPostFullButton", importMultiPostFullButton = new JMenuItem());
1070         
1071         importMultiPostFullButton.setName("importMultiPostFullButton");
1072         importMultiPostFullButton.setText(t("tutti.editSpeciesBatch.action.importMultiPostFull"));
1073         importMultiPostFullButton.setToolTipText(t("tutti.editSpeciesBatch.action.importMultiPostFull.tip"));
1074         importMultiPostFullButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importMultiPostFull.help");
1075         importMultiPostFullButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportMultiPostSpeciesFullAction.class);
1076     }
1077 
1078     protected void createImportMultiPostOnlyFrequenciesButton() {
1079         $objectMap.put("importMultiPostOnlyFrequenciesButton", importMultiPostOnlyFrequenciesButton = new JMenuItem());
1080         
1081         importMultiPostOnlyFrequenciesButton.setName("importMultiPostOnlyFrequenciesButton");
1082         importMultiPostOnlyFrequenciesButton.setText(t("tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies"));
1083         importMultiPostOnlyFrequenciesButton.setToolTipText(t("tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies.tip"));
1084         importMultiPostOnlyFrequenciesButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies.help");
1085         importMultiPostOnlyFrequenciesButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportMultiPostSpeciesOnlyFrequenciesAction.class);
1086     }
1087 
1088     protected void createImportMultiPostOnlyIndividualObservationsButton() {
1089         $objectMap.put("importMultiPostOnlyIndividualObservationsButton", importMultiPostOnlyIndividualObservationsButton = new JMenuItem());
1090         
1091         importMultiPostOnlyIndividualObservationsButton.setName("importMultiPostOnlyIndividualObservationsButton");
1092         importMultiPostOnlyIndividualObservationsButton.setText(t("tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations"));
1093         importMultiPostOnlyIndividualObservationsButton.setToolTipText(t("tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.tip"));
1094         importMultiPostOnlyIndividualObservationsButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.help");
1095         importMultiPostOnlyIndividualObservationsButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportMultiPostSpeciesOnlyIndividualObservationsAction.class);
1096     }
1097 
1098     protected void createImportPsionButton() {
1099         $objectMap.put("importPsionButton", importPsionButton = new JMenuItem());
1100         
1101         importPsionButton.setName("importPsionButton");
1102         importPsionButton.setText(t("tutti.editSpeciesBatch.action.importPsion"));
1103         importPsionButton.setToolTipText(t("tutti.editSpeciesBatch.action.importPsion.tip"));
1104         importPsionButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importPsion.help");
1105         importPsionButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportPsionAction.class);
1106     }
1107 
1108     protected void createImportPupitriButton() {
1109         $objectMap.put("importPupitriButton", importPupitriButton = new JMenuItem());
1110         
1111         importPupitriButton.setName("importPupitriButton");
1112         importPupitriButton.setText(t("tutti.editSpeciesBatch.action.importPupitri"));
1113         importPupitriButton.setToolTipText(t("tutti.editSpeciesBatch.action.importPupitri.tip"));
1114         importPupitriButton.putClientProperty("help", "tutti.editSpeciesBatch.action.importPupitri.help");
1115         importPupitriButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.ImportPupitriAction.class);
1116     }
1117 
1118     protected void createMenu() {
1119         $objectMap.put("menu", menu = new JMenuBar());
1120         
1121         menu.setName("menu");
1122     }
1123 
1124     protected void createMenuAction() {
1125         $objectMap.put("menuAction", menuAction = new JMenu());
1126         
1127         menuAction.setName("menuAction");
1128         menuAction.setOpaque(true);
1129         menuAction.setText(t("tutti.toolbar.menu.action"));
1130         menuAction.setToolTipText(t("tutti.toolbar.menu.action.tip"));
1131     }
1132 
1133     protected void createMenuExportMultiPost() {
1134         $objectMap.put("menuExportMultiPost", menuExportMultiPost = new JMenu());
1135         
1136         menuExportMultiPost.setName("menuExportMultiPost");
1137         menuExportMultiPost.setOpaque(true);
1138         menuExportMultiPost.setText(t("tutti.toolbar.menuExportMultiPost.action"));
1139         menuExportMultiPost.setToolTipText(t("tutti.toolbar.menuExportMultiPost.action.tip"));
1140     }
1141 
1142     protected void createMenuImportMultiPost() {
1143         $objectMap.put("menuImportMultiPost", menuImportMultiPost = new JMenu());
1144         
1145         menuImportMultiPost.setName("menuImportMultiPost");
1146         menuImportMultiPost.setOpaque(true);
1147         menuImportMultiPost.setText(t("tutti.toolbar.menuImportMultiPost.action"));
1148         menuImportMultiPost.setToolTipText(t("tutti.toolbar.menuImportMultiPost.action.tip"));
1149     }
1150 
1151     protected void createModel() {
1152         $objectMap.put("model", model = getContextValue(SpeciesBatchUIModel.class));
1153     }
1154 
1155     protected void createRemoveSpeciesBatchMenu() {
1156         $objectMap.put("removeSpeciesBatchMenu", removeSpeciesBatchMenu = new JMenuItem());
1157         
1158         removeSpeciesBatchMenu.setName("removeSpeciesBatchMenu");
1159         removeSpeciesBatchMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.removeBatch.help");
1160         removeSpeciesBatchMenu.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.RemoveSpeciesBatchAction.class);
1161     }
1162 
1163     protected void createRemoveSpeciesSubBatchMenu() {
1164         $objectMap.put("removeSpeciesSubBatchMenu", removeSpeciesSubBatchMenu = new JMenuItem());
1165         
1166         removeSpeciesSubBatchMenu.setName("removeSpeciesSubBatchMenu");
1167         removeSpeciesSubBatchMenu.setText(t("tutti.editSpeciesBatch.action.removeSubBatch"));
1168         removeSpeciesSubBatchMenu.setToolTipText(t("tutti.editSpeciesBatch.action.removeSubBatch.tip"));
1169         removeSpeciesSubBatchMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.removeSubBatch.help");
1170         removeSpeciesSubBatchMenu.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.RemoveSpeciesSubBatchAction.class);
1171     }
1172 
1173     protected void createRenameSpeciesBatchMenu() {
1174         $objectMap.put("renameSpeciesBatchMenu", renameSpeciesBatchMenu = new JMenuItem());
1175         
1176         renameSpeciesBatchMenu.setName("renameSpeciesBatchMenu");
1177         renameSpeciesBatchMenu.setText(t("tutti.editSpeciesBatch.action.renameBatch"));
1178         renameSpeciesBatchMenu.setToolTipText(t("tutti.editSpeciesBatch.action.renameBatch.tip"));
1179         renameSpeciesBatchMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.renameBatch.help");
1180         renameSpeciesBatchMenu.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.RenameSpeciesBatchAction.class);
1181     }
1182 
1183     protected void createSpeciesBatchAttachmentsButton() {
1184         $objectMap.put("speciesBatchAttachmentsButton", speciesBatchAttachmentsButton = new ButtonAttachment(handler.getContext(), getContextValue(EditCatchesUIModel.class)));
1185         
1186         speciesBatchAttachmentsButton.setName("speciesBatchAttachmentsButton");
1187         speciesBatchAttachmentsButton.setToolTipText(t("tutti.editSpeciesBatch.action.attachments.tip"));
1188         speciesBatchAttachmentsButton.setFocusPainted(false);
1189     }
1190 
1191     protected void createSpeciesBatchTabToolBar() {
1192         $objectMap.put("speciesBatchTabToolBar", speciesBatchTabToolBar = new JToolBar());
1193         
1194         speciesBatchTabToolBar.setName("speciesBatchTabToolBar");
1195         speciesBatchTabToolBar.setBorderPainted(false);
1196         speciesBatchTabToolBar.setOpaque(true);
1197         speciesBatchTabToolBar.setFloatable(false);
1198     }
1199 
1200     protected void createSpeciesSort() {
1201         $objectMap.put("speciesSort", speciesSort = new JAXXButtonGroup());
1202     }
1203 
1204     protected void createSpeciesSortBatchLabel() {
1205         $objectMap.put("speciesSortBatchLabel", speciesSortBatchLabel = new JLabel());
1206         
1207         speciesSortBatchLabel.setName("speciesSortBatchLabel");
1208         speciesSortBatchLabel.setText(t("tutti.editSpeciesBatch.sortSpeciesBatch"));
1209         speciesSortBatchLabel.setToolTipText(t("tutti.editSpeciesBatch.sortSpeciesBatch.tip"));
1210         speciesSortBatchLabel.putClientProperty("help", "tutti.editSpeciesBatch.sortSpeciesBatch.help");
1211         speciesSortBatchLabel.putClientProperty("strongStyle", true);
1212     }
1213 
1214     protected void createSpeciesSortModeAscButton() {
1215         $objectMap.put("speciesSortModeAscButton", speciesSortModeAscButton = new JRadioButton());
1216         
1217         speciesSortModeAscButton.setName("speciesSortModeAscButton");
1218         speciesSortModeAscButton.setText(t("tutti.editSpeciesBatch.speciesSortMode.asc"));
1219         { speciesSortModeAscButton.putClientProperty("$value", "ASC");  Object $buttonGroup = speciesSortModeAscButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1220         
1221         speciesSortModeAscButton.setToolTipText(t("tutti.editSpeciesBatch.speciesSortMode.asc.tip"));
1222         speciesSortModeAscButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__speciesSortModeAscButton"));
1223         speciesSortModeAscButton.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesSortMode.asc.help");
1224     }
1225 
1226     protected void createSpeciesSortModeDescButton() {
1227         $objectMap.put("speciesSortModeDescButton", speciesSortModeDescButton = new JRadioButton());
1228         
1229         speciesSortModeDescButton.setName("speciesSortModeDescButton");
1230         speciesSortModeDescButton.setText(t("tutti.editSpeciesBatch.speciesSortMode.desc"));
1231         { speciesSortModeDescButton.putClientProperty("$value", "DESC");  Object $buttonGroup = speciesSortModeDescButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1232         
1233         speciesSortModeDescButton.setToolTipText(t("tutti.editSpeciesBatch.speciesSortMode.desc.tip"));
1234         speciesSortModeDescButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__speciesSortModeDescButton"));
1235         speciesSortModeDescButton.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesSortMode.desc.help");
1236     }
1237 
1238     protected void createSpeciesSortModeNoneButton() {
1239         $objectMap.put("speciesSortModeNoneButton", speciesSortModeNoneButton = new JRadioButton());
1240         
1241         speciesSortModeNoneButton.setName("speciesSortModeNoneButton");
1242         speciesSortModeNoneButton.setText(t("tutti.editSpeciesBatch.speciesSortMode.none"));
1243         { speciesSortModeNoneButton.putClientProperty("$value", "NONE");  Object $buttonGroup = speciesSortModeNoneButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1244         
1245         speciesSortModeNoneButton.setToolTipText(t("tutti.editSpeciesBatch.speciesSortMode.none.tip"));
1246         speciesSortModeNoneButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__speciesSortModeNoneButton"));
1247         speciesSortModeNoneButton.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesSortMode.none.help");
1248     }
1249 
1250     protected void createSpeciesSortTablePane() {
1251         $objectMap.put("speciesSortTablePane", speciesSortTablePane = new JPanel());
1252         
1253         speciesSortTablePane.setName("speciesSortTablePane");
1254     }
1255 
1256     protected void createSplitSpeciesBatchMenu() {
1257         $objectMap.put("splitSpeciesBatchMenu", splitSpeciesBatchMenu = new JMenuItem());
1258         
1259         splitSpeciesBatchMenu.setName("splitSpeciesBatchMenu");
1260         splitSpeciesBatchMenu.setText(t("tutti.editSpeciesBatch.action.splitBatch"));
1261         splitSpeciesBatchMenu.setToolTipText(t("tutti.editSpeciesBatch.action.splitBatch.tip"));
1262         splitSpeciesBatchMenu.putClientProperty("help", "tutti.editSpeciesBatch.action.splitBatch.help");
1263         splitSpeciesBatchMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.edit.actions.OpenSplitSpeciesBatchUIAction.class);
1264     }
1265 
1266     protected void createTable() {
1267         $objectMap.put("table", table = new JXTable());
1268         
1269         table.setName("table");
1270         table.setSortable(false);
1271         table.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyPressed", this, "doKeyPressed__on__table"));
1272         table.addMouseListener(JAXXUtil.getEventListener(MouseListener.class, "mouseClicked", this, "doMouseClicked__on__table"));
1273     }
1274 
1275     protected void createTablePopup() {
1276         $objectMap.put("tablePopup", tablePopup = new JPopupMenu());
1277         
1278         tablePopup.setName("tablePopup");
1279         tablePopup.setLabel("tutti.editSpeciesBatch.title.batchActions");
1280     }
1281 
1282     protected void createTableScrollPane() {
1283         $objectMap.put("tableScrollPane", tableScrollPane = new JScrollPane());
1284         
1285         tableScrollPane.setName("tableScrollPane");
1286     }
1287 
1288     protected void createTableToolbar() {
1289         $objectMap.put("tableToolbar", tableToolbar = new JPanel());
1290         
1291         tableToolbar.setName("tableToolbar");
1292         tableToolbar.setLayout(new BorderLayout());
1293     }
1294 
1295     protected void createTotalInertWeightField() {
1296         $objectMap.put("totalInertWeightField", totalInertWeightField = new ComputableDataEditor<Float>(this));
1297         
1298         totalInertWeightField.setName("totalInertWeightField");
1299         totalInertWeightField.setShowReset(true);
1300         totalInertWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalInertWeight.help");
1301         totalInertWeightField.putClientProperty("selectOnFocus", true);
1302     }
1303 
1304     protected void createTotalInertWeightLabel() {
1305         $objectMap.put("totalInertWeightLabel", totalInertWeightLabel = new JLabel());
1306         
1307         totalInertWeightLabel.setName("totalInertWeightLabel");
1308         totalInertWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalInertWeight"));
1309         totalInertWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalInertWeight.tip"));
1310         totalInertWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalInertWeight.help");
1311         totalInertWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1312     }
1313 
1314     protected void createTotalLivingNotItemizedWeightField() {
1315         $objectMap.put("totalLivingNotItemizedWeightField", totalLivingNotItemizedWeightField = new ComputableDataEditor<Float>(this));
1316         
1317         totalLivingNotItemizedWeightField.setName("totalLivingNotItemizedWeightField");
1318         totalLivingNotItemizedWeightField.setShowReset(true);
1319         totalLivingNotItemizedWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.help");
1320         totalLivingNotItemizedWeightField.putClientProperty("selectOnFocus", true);
1321     }
1322 
1323     protected void createTotalLivingNotItemizedWeightLabel() {
1324         $objectMap.put("totalLivingNotItemizedWeightLabel", totalLivingNotItemizedWeightLabel = new JLabel());
1325         
1326         totalLivingNotItemizedWeightLabel.setName("totalLivingNotItemizedWeightLabel");
1327         totalLivingNotItemizedWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight"));
1328         totalLivingNotItemizedWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.tip"));
1329         totalLivingNotItemizedWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.help");
1330         totalLivingNotItemizedWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1331     }
1332 
1333     protected void createTotalSampleSortedWeightField() {
1334         $objectMap.put("totalSampleSortedWeightField", totalSampleSortedWeightField = new JTextField());
1335         
1336         totalSampleSortedWeightField.setName("totalSampleSortedWeightField");
1337         totalSampleSortedWeightField.setColumns(15);
1338         totalSampleSortedWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help");
1339         totalSampleSortedWeightField.putClientProperty("computed", true);
1340     }
1341 
1342     protected void createTotalSampleSortedWeightLabel() {
1343         $objectMap.put("totalSampleSortedWeightLabel", totalSampleSortedWeightLabel = new JLabel());
1344         
1345         totalSampleSortedWeightLabel.setName("totalSampleSortedWeightLabel");
1346         totalSampleSortedWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight"));
1347         totalSampleSortedWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.tip"));
1348         totalSampleSortedWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help");
1349         totalSampleSortedWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1350     }
1351 
1352     protected void createTotalSortedWeightField() {
1353         $objectMap.put("totalSortedWeightField", totalSortedWeightField = new ComputableDataEditor<Float>(this));
1354         
1355         totalSortedWeightField.setName("totalSortedWeightField");
1356         totalSortedWeightField.setShowReset(true);
1357         totalSortedWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalSortedWeight.help");
1358         totalSortedWeightField.putClientProperty("selectOnFocus", true);
1359     }
1360 
1361     protected void createTotalSortedWeightLabel() {
1362         $objectMap.put("totalSortedWeightLabel", totalSortedWeightLabel = new JLabel());
1363         
1364         totalSortedWeightLabel.setName("totalSortedWeightLabel");
1365         totalSortedWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalSortedWeight"));
1366         totalSortedWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalSortedWeight.tip"));
1367         totalSortedWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalSortedWeight.help");
1368         totalSortedWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1369     }
1370 
1371     protected void createTotalUnsortedWeightField() {
1372         $objectMap.put("totalUnsortedWeightField", totalUnsortedWeightField = new JTextField());
1373         
1374         totalUnsortedWeightField.setName("totalUnsortedWeightField");
1375         totalUnsortedWeightField.setColumns(15);
1376         totalUnsortedWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help");
1377         totalUnsortedWeightField.putClientProperty("computed", true);
1378     }
1379 
1380     protected void createTotalUnsortedWeightLabel() {
1381         $objectMap.put("totalUnsortedWeightLabel", totalUnsortedWeightLabel = new JLabel());
1382         
1383         totalUnsortedWeightLabel.setName("totalUnsortedWeightLabel");
1384         totalUnsortedWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight"));
1385         totalUnsortedWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.tip"));
1386         totalUnsortedWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help");
1387         totalUnsortedWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1388     }
1389 
1390     protected void createTotalWeightField() {
1391         $objectMap.put("totalWeightField", totalWeightField = new JTextField());
1392         
1393         totalWeightField.setName("totalWeightField");
1394         totalWeightField.setColumns(15);
1395         totalWeightField.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalWeight.help");
1396         totalWeightField.putClientProperty("computed", true);
1397     }
1398 
1399     protected void createTotalWeightLabel() {
1400         $objectMap.put("totalWeightLabel", totalWeightLabel = new JLabel());
1401         
1402         totalWeightLabel.setName("totalWeightLabel");
1403         totalWeightLabel.setText(t("tutti.editSpeciesBatch.field.speciesTotalWeight"));
1404         totalWeightLabel.setToolTipText(t("tutti.editSpeciesBatch.field.speciesTotalWeight.tip"));
1405         totalWeightLabel.putClientProperty("help", "tutti.editSpeciesBatch.field.speciesTotalWeight.help");
1406         totalWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
1407     }
1408 
1409     protected void createValidator() {
1410         $objectMap.put("validator", validator = SwingValidator.newValidator(SpeciesBatchUIModel.class, null));
1411     }
1412 
1413     /*-----------------------------------------------------------------------*/
1414     /*------------------------ Internal jaxx methods ------------------------*/
1415     /*-----------------------------------------------------------------------*/
1416 
1417     private void $completeSetup() {
1418         allComponentsCreated = true;
1419         if (log.isDebugEnabled()) {
1420             log.debug(this);
1421         }
1422         addChildrenToEditSpeciesBatchTopPanel();
1423         addChildrenToValidator();
1424         addChildrenToSpeciesBatchTabToolBar();
1425         addChildrenToMenu();
1426         addChildrenToMenuAction();
1427         addChildrenToMenuImportMultiPost();
1428         addChildrenToMenuExportMultiPost();
1429         addChildrenToTablePopup();
1430         addChildrenToForm();
1431         addChildrenToTableToolbar();
1432         // inline complete setup of $JPanel0
1433         $JPanel0.add(createSpeciesBatchButton);
1434         // inline complete setup of $JPanel1
1435         $JPanel1.add(filterTablePane);
1436         $JPanel1.add(speciesSortTablePane);
1437         addChildrenToFilterTablePane();
1438         addChildrenToFilterSpeciesBatchAllButton();
1439         addChildrenToFilterSpeciesBatchLeafButton();
1440         addChildrenToFilterSpeciesBatchRootButton();
1441         addChildrenToSpeciesSortTablePane();
1442         addChildrenToSpeciesSortModeNoneButton();
1443         addChildrenToSpeciesSortModeAscButton();
1444         addChildrenToSpeciesSortModeDescButton();
1445         addChildrenToTableScrollPane();
1446         
1447         // apply 24 data bindings
1448         JAXXUtil.applyDataBinding(this, $bindings.keySet());
1449         
1450         // apply 74 property setters
1451         menu.setBorder(null);
1452         menu.setBackground(javax.swing.UIManager.getColor("MenuBar.background"));
1453         menuAction.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menu.action.mnemonic"),'Z'));
1454         importPupitriButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importPupitri.mnemonic"),'Z'));
1455         importPupitriButton.setIcon(SwingUtil.createActionIcon("pupitri-import"));
1456         importPupitriButton.setVisible(model.canPupitriImport());
1457         importPsionButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importPsion.mnemonic"),'Z'));
1458         importPsionButton.setIcon(SwingUtil.createActionIcon("psion-import"));
1459         importPsionButton.setVisible(model.canPsionImport());
1460         importBigfinButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importBigfin.mnemonic"),'Z'));
1461         importBigfinButton.setIcon(SwingUtil.createActionIcon("bigfin-import"));
1462         importBigfinButton.setVisible(model.canBigfinImport());
1463         menuImportMultiPost.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menuImportMultiPost.action.mnemonic"),'Z'));
1464         menuImportMultiPost.setIcon(SwingUtil.createActionIcon("import"));
1465         importMultiPostFullButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importMultiPostFull.mnemonic"),'Z'));
1466         importMultiPostFullButton.setIcon(SwingUtil.createActionIcon("import"));
1467         importMultiPostOnlyFrequenciesButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies.mnemonic"),'Z'));
1468         importMultiPostOnlyFrequenciesButton.setIcon(SwingUtil.createActionIcon("import"));
1469         importMultiPostOnlyIndividualObservationsButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.mnemonic"),'Z'));
1470         importMultiPostOnlyIndividualObservationsButton.setIcon(SwingUtil.createActionIcon("import"));
1471         menuExportMultiPost.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menuExportMultiPost.action.mnemonic"),'Z'));
1472         menuExportMultiPost.setIcon(SwingUtil.createActionIcon("export"));
1473         exportMultiPostFullButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.exportMultiPostFull.mnemonic"),'Z'));
1474         exportMultiPostFullButton.setIcon(SwingUtil.createActionIcon("export"));
1475         exportMultiPostOnlyFrequenciesButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies.mnemonic"),'Z'));
1476         exportMultiPostOnlyFrequenciesButton.setIcon(SwingUtil.createActionIcon("export"));
1477         exportMultiPostOnlyIndividualObservationsButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.exportMultiPostOnlyIndividualObservations.mnemonic"),'Z'));
1478         exportMultiPostOnlyIndividualObservationsButton.setIcon(SwingUtil.createActionIcon("export"));
1479         splitSpeciesBatchMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.splitBatch.mnemonic"),'Z'));
1480         splitSpeciesBatchMenu.setIcon(SwingUtil.createActionIcon("batch-split"));
1481         changeSampleCategoryMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.changeSampleCategory.mnemonic"),'Z'));
1482         changeSampleCategoryMenu.setIcon(SwingUtil.createActionIcon("batch-split"));
1483         addSampleCategoryMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.addSampleCategory.mnemonic"),'Z'));
1484         addSampleCategoryMenu.setIcon(SwingUtil.createActionIcon("batch-split"));
1485         removeSpeciesBatchMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.removeBatch.mnemonic"),'Z'));
1486         removeSpeciesBatchMenu.setIcon(SwingUtil.createActionIcon("batch-delete"));
1487         removeSpeciesSubBatchMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.removeSubBatch.mnemonic"),'Z'));
1488         removeSpeciesSubBatchMenu.setIcon(SwingUtil.createActionIcon("batch-delete"));
1489         renameSpeciesBatchMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.renameBatch.mnemonic"),'Z'));
1490         renameSpeciesBatchMenu.setIcon(SwingUtil.createActionIcon("batch-rename"));
1491         createSpeciesMelagMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.createMelag.mnemonic"),'Z'));
1492         createSpeciesMelagMenu.setIcon(SwingUtil.createActionIcon("batch-rename"));
1493         editFrequenciesMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.editFrequencies.mnemonic"),'Z'));
1494         editFrequenciesMenu.setIcon(SwingUtil.createActionIcon("show-frequency"));
1495         totalWeightLabel.setLabelFor(totalWeightField);
1496         totalSortedWeightLabel.setLabelFor(totalSortedWeightField);
1497         totalSortedWeightField.setComputedDataColor(handler.getConfig().getColorComputedWeights());
1498         totalSortedWeightField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
1499         totalSortedWeightField.setNumberType(Float.class);
1500         totalSortedWeightField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
1501         totalSampleSortedWeightLabel.setLabelFor(totalSampleSortedWeightField);
1502         totalUnsortedWeightLabel.setLabelFor(totalUnsortedWeightField);
1503         totalInertWeightLabel.setLabelFor(totalInertWeightField);
1504         totalInertWeightField.setComputedDataColor(handler.getConfig().getColorComputedWeights());
1505         totalInertWeightField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
1506         totalInertWeightField.setNumberType(Float.class);
1507         totalInertWeightField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
1508         totalLivingNotItemizedWeightLabel.setLabelFor(totalLivingNotItemizedWeightField);
1509         totalLivingNotItemizedWeightField.setComputedDataColor(handler.getConfig().getColorComputedWeights());
1510         totalLivingNotItemizedWeightField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
1511         totalLivingNotItemizedWeightField.setNumberType(Float.class);
1512         totalLivingNotItemizedWeightField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
1513         createSpeciesBatchButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesBatch.action.createBatch.mnemonic"),'Z'));
1514         createSpeciesBatchButton.setIcon(SwingUtil.createActionIcon("batch-create"));
1515         filterTablePane.setBorder(new TitledBorder(null, ""));
1516         filterSpeciesBatchLabel.setIcon(SwingUtil.createActionIcon("filter"));
1517         speciesSortTablePane.setBorder(new TitledBorder(null, ""));
1518         speciesSortBatchLabel.setIcon(SwingUtil.createActionIcon("sort"));
1519         table.setSelectionForeground(Color.BLACK);
1520         table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
1521         // late initializer
1522         // help broker setup
1523         TuttiHelpBroker _broker = getBroker();
1524         registerHelpId(_broker, editSpeciesBatchTopPanel, "tutti.editSpeciesBatch.help");
1525         registerHelpId(_broker, importPupitriButton, "tutti.editSpeciesBatch.action.importPupitri.help");
1526         registerHelpId(_broker, importPsionButton, "tutti.editSpeciesBatch.action.importPsion.help");
1527         registerHelpId(_broker, importBigfinButton, "tutti.editSpeciesBatch.action.importBigfin.help");
1528         registerHelpId(_broker, importMultiPostFullButton, "tutti.editSpeciesBatch.action.importMultiPostFull.help");
1529         registerHelpId(_broker, importMultiPostOnlyFrequenciesButton, "tutti.editSpeciesBatch.action.importMultiPostOnlyFrequencies.help");
1530         registerHelpId(_broker, importMultiPostOnlyIndividualObservationsButton, "tutti.editSpeciesBatch.action.importMultiPostOnlyIndividualObservations.help");
1531         registerHelpId(_broker, exportMultiPostFullButton, "tutti.editSpeciesBatch.action.exportMultiPostFull.help");
1532         registerHelpId(_broker, exportMultiPostOnlyFrequenciesButton, "tutti.editSpeciesBatch.action.exportMultiPostOnlyFrequencies.help");
1533         registerHelpId(_broker, exportMultiPostOnlyIndividualObservationsButton, "tutti.editSpeciesBatch.action.exportMultiPostOnlyIndividualObservations.help");
1534         registerHelpId(_broker, splitSpeciesBatchMenu, "tutti.editSpeciesBatch.action.splitBatch.help");
1535         registerHelpId(_broker, changeSampleCategoryMenu, "tutti.editSpeciesBatch.action.changeSampleCategory.help");
1536         registerHelpId(_broker, addSampleCategoryMenu, "tutti.editSpeciesBatch.action.addSampleCategory.help");
1537         registerHelpId(_broker, removeSpeciesBatchMenu, "tutti.editSpeciesBatch.action.removeBatch.help");
1538         registerHelpId(_broker, removeSpeciesSubBatchMenu, "tutti.editSpeciesBatch.action.removeSubBatch.help");
1539         registerHelpId(_broker, renameSpeciesBatchMenu, "tutti.editSpeciesBatch.action.renameBatch.help");
1540         registerHelpId(_broker, createSpeciesMelagMenu, "tutti.editSpeciesBatch.action.createMelag.help");
1541         registerHelpId(_broker, editFrequenciesMenu, "tutti.editSpeciesBatch.action.editFrequencies.help");
1542         registerHelpId(_broker, totalWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalWeight.help");
1543         registerHelpId(_broker, totalWeightField, "tutti.editSpeciesBatch.field.speciesTotalWeight.help");
1544         registerHelpId(_broker, totalSortedWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalSortedWeight.help");
1545         registerHelpId(_broker, totalSortedWeightField, "tutti.editSpeciesBatch.field.speciesTotalSortedWeight.help");
1546         registerHelpId(_broker, totalSampleSortedWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help");
1547         registerHelpId(_broker, totalSampleSortedWeightField, "tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help");
1548         registerHelpId(_broker, totalUnsortedWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help");
1549         registerHelpId(_broker, totalUnsortedWeightField, "tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help");
1550         registerHelpId(_broker, totalInertWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalInertWeight.help");
1551         registerHelpId(_broker, totalInertWeightField, "tutti.editSpeciesBatch.field.speciesTotalInertWeight.help");
1552         registerHelpId(_broker, totalLivingNotItemizedWeightLabel, "tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.help");
1553         registerHelpId(_broker, totalLivingNotItemizedWeightField, "tutti.editSpeciesBatch.field.speciesTotalLivingNotItemizedWeight.help");
1554         registerHelpId(_broker, createSpeciesBatchButton, "tutti.editSpeciesBatch.action.createBatch.help");
1555         registerHelpId(_broker, filterSpeciesBatchLabel, "tutti.editSpeciesBatch.filterSpeciesBatch.help");
1556         registerHelpId(_broker, speciesSortBatchLabel, "tutti.editSpeciesBatch.sortSpeciesBatch.help");
1557         registerHelpId(_broker, speciesSortModeNoneButton, "tutti.editSpeciesBatch.field.speciesSortMode.none.help");
1558         registerHelpId(_broker, speciesSortModeAscButton, "tutti.editSpeciesBatch.field.speciesSortMode.asc.help");
1559         registerHelpId(_broker, speciesSortModeDescButton, "tutti.editSpeciesBatch.field.speciesSortMode.desc.help");
1560         _broker.prepareUI(this);
1561         // register 1 validator(s)
1562         validatorIds = SwingValidatorUtil.detectValidators(this);
1563         SwingValidatorUtil.installUI(this);
1564     }
1565 
1566     private void $initialize() {
1567         if (allComponentsCreated) {
1568             return;
1569         }
1570         if (log.isDebugEnabled()) {
1571             log.debug(this);
1572         }
1573         handler.beforeInit(this);
1574         $objectMap.put("editSpeciesBatchTopPanel", editSpeciesBatchTopPanel);
1575         createModel();
1576         createValidator();
1577         createBroker();
1578         createSpeciesBatchTabToolBar();
1579         createMenu();
1580         createMenuAction();
1581         createImportPupitriButton();
1582         createImportPsionButton();
1583         createImportBigfinButton();
1584         createMenuImportMultiPost();
1585         createImportMultiPostFullButton();
1586         createImportMultiPostOnlyFrequenciesButton();
1587         createImportMultiPostOnlyIndividualObservationsButton();
1588         createMenuExportMultiPost();
1589         createExportMultiPostFullButton();
1590         createExportMultiPostOnlyFrequenciesButton();
1591         createExportMultiPostOnlyIndividualObservationsButton();
1592         createSpeciesBatchAttachmentsButton();
1593         createTablePopup();
1594         createSplitSpeciesBatchMenu();
1595         createChangeSampleCategoryMenu();
1596         createAddSampleCategoryMenu();
1597         createRemoveSpeciesBatchMenu();
1598         createRemoveSpeciesSubBatchMenu();
1599         createRenameSpeciesBatchMenu();
1600         createCreateSpeciesMelagMenu();
1601         createEditFrequenciesMenu();
1602         createForm();
1603         createTotalWeightLabel();
1604         createTotalWeightField();
1605         createTotalSortedWeightLabel();
1606         createTotalSortedWeightField();
1607         createTotalSampleSortedWeightLabel();
1608         createTotalSampleSortedWeightField();
1609         createTotalUnsortedWeightLabel();
1610         createTotalUnsortedWeightField();
1611         createTotalInertWeightLabel();
1612         createTotalInertWeightField();
1613         createTotalLivingNotItemizedWeightLabel();
1614         createTotalLivingNotItemizedWeightField();
1615         createTableToolbar();
1616         // inline creation of $JPanel0
1617         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
1618         
1619         $JPanel0.setName("$JPanel0");
1620         $JPanel0.setLayout(new GridLayout(1,0));
1621         createCreateSpeciesBatchButton();
1622         // inline creation of $JPanel1
1623         $objectMap.put("$JPanel1", $JPanel1 = new JPanel());
1624         
1625         $JPanel1.setName("$JPanel1");
1626         $JPanel1.setLayout(new GridLayout());
1627         createFilterTablePane();
1628         createFilterSpeciesBatchLabel();
1629         createFilterSpeciesBatchAllButton();
1630         createFilterSpeciesBatchLeafButton();
1631         createFilterSpeciesBatchRootButton();
1632         createSpeciesSortTablePane();
1633         createSpeciesSortBatchLabel();
1634         createSpeciesSortModeNoneButton();
1635         createSpeciesSortModeAscButton();
1636         createSpeciesSortModeDescButton();
1637         createTableScrollPane();
1638         createTable();
1639         createFilterSpeciesBatchMode();
1640         createSpeciesSort();
1641         // inline creation of editSpeciesBatchTopPanel
1642         setName("editSpeciesBatchTopPanel");
1643         setLayout(new BorderLayout());
1644         editSpeciesBatchTopPanel.putClientProperty("help", "tutti.editSpeciesBatch.help");
1645         
1646         // registers 24 data bindings
1647         $registerDefaultBindings();
1648         $completeSetup();
1649         handler.afterInit(this);
1650     }
1651 
1652     private void $registerDefaultBindings() {
1653         // register 24 data bindings
1654         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SPLIT_SPECIES_BATCH_MENU_ENABLED, true, true) {
1655         
1656             @Override
1657             public void applyDataBinding() {
1658                 if (model != null) {
1659                     model.addPropertyChangeListener("tableViewModeAll", this);
1660                 }
1661                 if (model != null) {
1662                     model.addPropertyChangeListener("splitBatchEnabled", this);
1663                 }
1664             }
1665         
1666             @Override
1667             public void processDataBinding() {
1668                 if (model != null) {
1669                     splitSpeciesBatchMenu.setEnabled(model.isTableViewModeAll() && model.isSplitBatchEnabled());
1670                 }
1671             }
1672         
1673             @Override
1674             public void removeDataBinding() {
1675                 if (model != null) {
1676                     model.removePropertyChangeListener("tableViewModeAll", this);
1677                 }
1678                 if (model != null) {
1679                     model.removePropertyChangeListener("splitBatchEnabled", this);
1680                 }
1681             }
1682         });
1683         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CHANGE_SAMPLE_CATEGORY_MENU_ENABLED, true, true) {
1684         
1685             @Override
1686             public void applyDataBinding() {
1687                 if (model != null) {
1688                     model.addPropertyChangeListener("tableViewModeAll", this);
1689                 }
1690                 if (model != null) {
1691                     model.addPropertyChangeListener("changeSampleCategoryEnabled", this);
1692                 }
1693             }
1694         
1695             @Override
1696             public void processDataBinding() {
1697                 if (model != null) {
1698                     changeSampleCategoryMenu.setEnabled(model.isTableViewModeAll() && model.isChangeSampleCategoryEnabled());
1699                 }
1700             }
1701         
1702             @Override
1703             public void removeDataBinding() {
1704                 if (model != null) {
1705                     model.removePropertyChangeListener("tableViewModeAll", this);
1706                 }
1707                 if (model != null) {
1708                     model.removePropertyChangeListener("changeSampleCategoryEnabled", this);
1709                 }
1710             }
1711         });
1712         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ADD_SAMPLE_CATEGORY_MENU_ENABLED, true, true) {
1713         
1714             @Override
1715             public void applyDataBinding() {
1716                 if (model != null) {
1717                     model.addPropertyChangeListener("tableViewModeAll", this);
1718                 }
1719                 if (model != null) {
1720                     model.addPropertyChangeListener("addSampleCategoryEnabled", this);
1721                 }
1722             }
1723         
1724             @Override
1725             public void processDataBinding() {
1726                 if (model != null) {
1727                     addSampleCategoryMenu.setEnabled(model.isTableViewModeAll() && model.isAddSampleCategoryEnabled());
1728                 }
1729             }
1730         
1731             @Override
1732             public void removeDataBinding() {
1733                 if (model != null) {
1734                     model.removePropertyChangeListener("tableViewModeAll", this);
1735                 }
1736                 if (model != null) {
1737                     model.removePropertyChangeListener("addSampleCategoryEnabled", this);
1738                 }
1739             }
1740         });
1741         registerDataBinding(new DefaultJAXXBinding(this, BINDING_REMOVE_SPECIES_BATCH_MENU_ENABLED, true, true) {
1742         
1743             @Override
1744             public void applyDataBinding() {
1745                 if (model != null) {
1746                     model.addPropertyChangeListener("tableViewModeAll", this);
1747                 }
1748                 if (model != null) {
1749                     model.addPropertyChangeListener("removeBatchEnabled", this);
1750                 }
1751             }
1752         
1753             @Override
1754             public void processDataBinding() {
1755                 if (model != null) {
1756                     removeSpeciesBatchMenu.setEnabled(model.isTableViewModeAll() && model.isRemoveBatchEnabled());
1757                 }
1758             }
1759         
1760             @Override
1761             public void removeDataBinding() {
1762                 if (model != null) {
1763                     model.removePropertyChangeListener("tableViewModeAll", this);
1764                 }
1765                 if (model != null) {
1766                     model.removePropertyChangeListener("removeBatchEnabled", this);
1767                 }
1768             }
1769         });
1770         registerDataBinding(new DefaultJAXXBinding(this, BINDING_REMOVE_SPECIES_SUB_BATCH_MENU_ENABLED, true, true) {
1771         
1772             @Override
1773             public void applyDataBinding() {
1774                 if (model != null) {
1775                     model.addPropertyChangeListener("tableViewModeAll", this);
1776                 }
1777                 if (model != null) {
1778                     model.addPropertyChangeListener("removeSubBatchEnabled", this);
1779                 }
1780             }
1781         
1782             @Override
1783             public void processDataBinding() {
1784                 if (model != null) {
1785                     removeSpeciesSubBatchMenu.setEnabled(model.isTableViewModeAll() && model.isRemoveSubBatchEnabled());
1786                 }
1787             }
1788         
1789             @Override
1790             public void removeDataBinding() {
1791                 if (model != null) {
1792                     model.removePropertyChangeListener("tableViewModeAll", this);
1793                 }
1794                 if (model != null) {
1795                     model.removePropertyChangeListener("removeSubBatchEnabled", this);
1796                 }
1797             }
1798         });
1799         registerDataBinding(new DefaultJAXXBinding(this, BINDING_RENAME_SPECIES_BATCH_MENU_ENABLED, true, true) {
1800         
1801             @Override
1802             public void applyDataBinding() {
1803                 if (model != null) {
1804                     model.addPropertyChangeListener("tableViewModeAll", this);
1805                 }
1806                 if (model != null) {
1807                     model.addPropertyChangeListener("renameBatchEnabled", this);
1808                 }
1809             }
1810         
1811             @Override
1812             public void processDataBinding() {
1813                 if (model != null) {
1814                     renameSpeciesBatchMenu.setEnabled(model.isTableViewModeAll() && model.isRenameBatchEnabled());
1815                 }
1816             }
1817         
1818             @Override
1819             public void removeDataBinding() {
1820                 if (model != null) {
1821                     model.removePropertyChangeListener("tableViewModeAll", this);
1822                 }
1823                 if (model != null) {
1824                     model.removePropertyChangeListener("renameBatchEnabled", this);
1825                 }
1826             }
1827         });
1828         registerDataBinding(new DefaultJAXXBinding(this, BINDING_CREATE_SPECIES_MELAG_MENU_ENABLED, true, true) {
1829         
1830             @Override
1831             public void applyDataBinding() {
1832                 if (model != null) {
1833                     model.addPropertyChangeListener("tableViewModeLeaf", this);
1834                 }
1835                 if (model != null) {
1836                     model.addPropertyChangeListener("createMelagEnabled", this);
1837                 }
1838             }
1839         
1840             @Override
1841             public void processDataBinding() {
1842                 if (model != null) {
1843                     createSpeciesMelagMenu.setEnabled(!model.isTableViewModeLeaf() && model.isCreateMelagEnabled());
1844                 }
1845             }
1846         
1847             @Override
1848             public void removeDataBinding() {
1849                 if (model != null) {
1850                     model.removePropertyChangeListener("tableViewModeLeaf", this);
1851                 }
1852                 if (model != null) {
1853                     model.removePropertyChangeListener("createMelagEnabled", this);
1854                 }
1855             }
1856         });
1857         registerDataBinding(new DefaultJAXXBinding(this, BINDING_EDIT_FREQUENCIES_MENU_ENABLED, true, true) {
1858         
1859             @Override
1860             public void applyDataBinding() {
1861                 if (model != null) {
1862                     model.addPropertyChangeListener("tableViewModeAll", this);
1863                 }
1864                 if (model != null) {
1865                     model.addPropertyChangeListener("editFrequenciesEnabled", this);
1866                 }
1867             }
1868         
1869             @Override
1870             public void processDataBinding() {
1871                 if (model != null) {
1872                     editFrequenciesMenu.setEnabled(model.isTableViewModeAll() && model.isEditFrequenciesEnabled());
1873                 }
1874             }
1875         
1876             @Override
1877             public void removeDataBinding() {
1878                 if (model != null) {
1879                     model.removePropertyChangeListener("tableViewModeAll", this);
1880                 }
1881                 if (model != null) {
1882                     model.removePropertyChangeListener("editFrequenciesEnabled", this);
1883                 }
1884             }
1885         });
1886         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_WEIGHT_FIELD_TEXT, true) {
1887         
1888             @Override
1889             public void applyDataBinding() {
1890                 if (model != null) {
1891                     model.addPropertyChangeListener("totalComputedWeight", this);
1892                 }
1893             }
1894         
1895             @Override
1896             public void processDataBinding() {
1897                 if (model != null) {
1898                     SwingUtil.setText(totalWeightField, handler.getWeightStringValue(totalWeightLabel, model.getTotalComputedWeight()));
1899                 }
1900             }
1901         
1902             @Override
1903             public void removeDataBinding() {
1904                 if (model != null) {
1905                     model.removePropertyChangeListener("totalComputedWeight", this);
1906                 }
1907             }
1908         });
1909         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_SORTED_WEIGHT_FIELD_NUMBER_VALUE, true) {
1910         
1911             @Override
1912             public void applyDataBinding() {
1913                 if (model != null) {
1914                     model.addPropertyChangeListener("totalSortedWeight", this);
1915                 }
1916             }
1917         
1918             @Override
1919             public void processDataBinding() {
1920                 if (model != null) {
1921                     totalSortedWeightField.setNumberValue(model.getTotalSortedWeight());
1922                 }
1923             }
1924         
1925             @Override
1926             public void removeDataBinding() {
1927                 if (model != null) {
1928                     model.removePropertyChangeListener("totalSortedWeight", this);
1929                 }
1930             }
1931         });
1932         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_SORTED_WEIGHT_FIELD_BEAN, true) {
1933         
1934             @Override
1935             public void applyDataBinding() {
1936                 if (model != null) {
1937                     model.addPropertyChangeListener("totalSortedComputedOrNotWeight", this);
1938                 }
1939             }
1940         
1941             @Override
1942             public void processDataBinding() {
1943                 if (model != null) {
1944                     totalSortedWeightField.setBean(model.getTotalSortedComputedOrNotWeight());
1945                 }
1946             }
1947         
1948             @Override
1949             public void removeDataBinding() {
1950                 if (model != null) {
1951                     model.removePropertyChangeListener("totalSortedComputedOrNotWeight", this);
1952                 }
1953             }
1954         });
1955         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_SAMPLE_SORTED_WEIGHT_FIELD_TEXT, true) {
1956         
1957             @Override
1958             public void applyDataBinding() {
1959                 if (model != null) {
1960                     model.addPropertyChangeListener("totalSampleSortedComputedWeight", this);
1961                 }
1962             }
1963         
1964             @Override
1965             public void processDataBinding() {
1966                 if (model != null) {
1967                     SwingUtil.setText(totalSampleSortedWeightField, handler.getWeightStringValue(totalSampleSortedWeightLabel, model.getTotalSampleSortedComputedWeight()));
1968                 }
1969             }
1970         
1971             @Override
1972             public void removeDataBinding() {
1973                 if (model != null) {
1974                     model.removePropertyChangeListener("totalSampleSortedComputedWeight", this);
1975                 }
1976             }
1977         });
1978         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_UNSORTED_WEIGHT_FIELD_TEXT, true) {
1979         
1980             @Override
1981             public void applyDataBinding() {
1982                 if (model != null) {
1983                     model.addPropertyChangeListener("totalUnsortedComputedWeight", this);
1984                 }
1985             }
1986         
1987             @Override
1988             public void processDataBinding() {
1989                 if (model != null) {
1990                     SwingUtil.setText(totalUnsortedWeightField, handler.getWeightStringValue(totalUnsortedWeightLabel, model.getTotalUnsortedComputedWeight()));
1991                 }
1992             }
1993         
1994             @Override
1995             public void removeDataBinding() {
1996                 if (model != null) {
1997                     model.removePropertyChangeListener("totalUnsortedComputedWeight", this);
1998                 }
1999             }
2000         });
2001         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_INERT_WEIGHT_FIELD_NUMBER_VALUE, true) {
2002         
2003             @Override
2004             public void applyDataBinding() {
2005                 if (model != null) {
2006                     model.addPropertyChangeListener("totalInertWeight", this);
2007                 }
2008             }
2009         
2010             @Override
2011             public void processDataBinding() {
2012                 if (model != null) {
2013                     totalInertWeightField.setNumberValue(model.getTotalInertWeight());
2014                 }
2015             }
2016         
2017             @Override
2018             public void removeDataBinding() {
2019                 if (model != null) {
2020                     model.removePropertyChangeListener("totalInertWeight", this);
2021                 }
2022             }
2023         });
2024         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_INERT_WEIGHT_FIELD_BEAN, true) {
2025         
2026             @Override
2027             public void applyDataBinding() {
2028                 if (model != null) {
2029                     model.addPropertyChangeListener("totalInertComputedOrNotWeight", this);
2030                 }
2031             }
2032         
2033             @Override
2034             public void processDataBinding() {
2035                 if (model != null) {
2036                     totalInertWeightField.setBean(model.getTotalInertComputedOrNotWeight());
2037                 }
2038             }
2039         
2040             @Override
2041             public void removeDataBinding() {
2042                 if (model != null) {
2043                     model.removePropertyChangeListener("totalInertComputedOrNotWeight", this);
2044                 }
2045             }
2046         });
2047         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_FIELD_NUMBER_VALUE, true) {
2048         
2049             @Override
2050             public void applyDataBinding() {
2051                 if (model != null) {
2052                     model.addPropertyChangeListener("totalLivingNotItemizedWeight", this);
2053                 }
2054             }
2055         
2056             @Override
2057             public void processDataBinding() {
2058                 if (model != null) {
2059                     totalLivingNotItemizedWeightField.setNumberValue(model.getTotalLivingNotItemizedWeight());
2060                 }
2061             }
2062         
2063             @Override
2064             public void removeDataBinding() {
2065                 if (model != null) {
2066                     model.removePropertyChangeListener("totalLivingNotItemizedWeight", this);
2067                 }
2068             }
2069         });
2070         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT_FIELD_BEAN, true) {
2071         
2072             @Override
2073             public void applyDataBinding() {
2074                 if (model != null) {
2075                     model.addPropertyChangeListener("totalLivingNotItemizedComputedOrNotWeight", this);
2076                 }
2077             }
2078         
2079             @Override
2080             public void processDataBinding() {
2081                 if (model != null) {
2082                     totalLivingNotItemizedWeightField.setBean(model.getTotalLivingNotItemizedComputedOrNotWeight());
2083                 }
2084             }
2085         
2086             @Override
2087             public void removeDataBinding() {
2088                 if (model != null) {
2089                     model.removePropertyChangeListener("totalLivingNotItemizedComputedOrNotWeight", this);
2090                 }
2091             }
2092         });
2093         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SPECIES_BATCH_ALL_BUTTON_SELECTED, true) {
2094         
2095             @Override
2096             public void applyDataBinding() {
2097                 if (model != null) {
2098                     model.addPropertyChangeListener("tableViewModeAll", this);
2099                 }
2100             }
2101         
2102             @Override
2103             public void processDataBinding() {
2104                 if (model != null) {
2105                     filterSpeciesBatchAllButton.setSelected(model.isTableViewModeAll());
2106                 }
2107             }
2108         
2109             @Override
2110             public void removeDataBinding() {
2111                 if (model != null) {
2112                     model.removePropertyChangeListener("tableViewModeAll", this);
2113                 }
2114             }
2115         });
2116         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SPECIES_BATCH_LEAF_BUTTON_SELECTED, true) {
2117         
2118             @Override
2119             public void applyDataBinding() {
2120                 if (model != null) {
2121                     model.addPropertyChangeListener("tableViewModeLeaf", this);
2122                 }
2123             }
2124         
2125             @Override
2126             public void processDataBinding() {
2127                 if (model != null) {
2128                     filterSpeciesBatchLeafButton.setSelected(model.isTableViewModeLeaf());
2129                 }
2130             }
2131         
2132             @Override
2133             public void removeDataBinding() {
2134                 if (model != null) {
2135                     model.removePropertyChangeListener("tableViewModeLeaf", this);
2136                 }
2137             }
2138         });
2139         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SPECIES_BATCH_ROOT_BUTTON_TEXT, true) {
2140         
2141             @Override
2142             public void applyDataBinding() {
2143                 if (model != null) {
2144                     model.addPropertyChangeListener("rootNumber", this);
2145                 }
2146             }
2147         
2148             @Override
2149             public void processDataBinding() {
2150                 if (model != null) {
2151                     filterSpeciesBatchRootButton.setText(t(handler.getFilterSpeciesBatchRootButtonText(model.getRootNumber())));
2152                 }
2153             }
2154         
2155             @Override
2156             public void removeDataBinding() {
2157                 if (model != null) {
2158                     model.removePropertyChangeListener("rootNumber", this);
2159                 }
2160             }
2161         });
2162         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FILTER_SPECIES_BATCH_ROOT_BUTTON_SELECTED, true) {
2163         
2164             @Override
2165             public void applyDataBinding() {
2166                 if (model != null) {
2167                     model.addPropertyChangeListener("tableViewModeRoot", this);
2168                 }
2169             }
2170         
2171             @Override
2172             public void processDataBinding() {
2173                 if (model != null) {
2174                     filterSpeciesBatchRootButton.setSelected(model.isTableViewModeRoot());
2175                 }
2176             }
2177         
2178             @Override
2179             public void removeDataBinding() {
2180                 if (model != null) {
2181                     model.removePropertyChangeListener("tableViewModeRoot", this);
2182                 }
2183             }
2184         });
2185         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SPECIES_SORT_MODE_NONE_BUTTON_SELECTED, true) {
2186         
2187             @Override
2188             public void applyDataBinding() {
2189                 if (model != null) {
2190                     model.addPropertyChangeListener("speciesSortModeNone", this);
2191                 }
2192             }
2193         
2194             @Override
2195             public void processDataBinding() {
2196                 if (model != null) {
2197                     speciesSortModeNoneButton.setSelected(model.isSpeciesSortModeNone());
2198                 }
2199             }
2200         
2201             @Override
2202             public void removeDataBinding() {
2203                 if (model != null) {
2204                     model.removePropertyChangeListener("speciesSortModeNone", this);
2205                 }
2206             }
2207         });
2208         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SPECIES_SORT_MODE_ASC_BUTTON_SELECTED, true) {
2209         
2210             @Override
2211             public void applyDataBinding() {
2212                 if (model != null) {
2213                     model.addPropertyChangeListener("speciesSortModeAsc", this);
2214                 }
2215             }
2216         
2217             @Override
2218             public void processDataBinding() {
2219                 if (model != null) {
2220                     speciesSortModeAscButton.setSelected(model.isSpeciesSortModeAsc());
2221                 }
2222             }
2223         
2224             @Override
2225             public void removeDataBinding() {
2226                 if (model != null) {
2227                     model.removePropertyChangeListener("speciesSortModeAsc", this);
2228                 }
2229             }
2230         });
2231         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SPECIES_SORT_MODE_DESC_BUTTON_SELECTED, true) {
2232         
2233             @Override
2234             public void applyDataBinding() {
2235                 if (model != null) {
2236                     model.addPropertyChangeListener("speciesSortModeDesc", this);
2237                 }
2238             }
2239         
2240             @Override
2241             public void processDataBinding() {
2242                 if (model != null) {
2243                     speciesSortModeDescButton.setSelected(model.isSpeciesSortModeDesc());
2244                 }
2245             }
2246         
2247             @Override
2248             public void removeDataBinding() {
2249                 if (model != null) {
2250                     model.removePropertyChangeListener("speciesSortModeDesc", this);
2251                 }
2252             }
2253         });
2254     }
2255 
2256 }