View Javadoc
1   package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency;
2   
3   /*
4    * #%L
5    * Tutti :: UI
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2017 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import fr.ifremer.tutti.persistence.entities.data.CopyIndividualObservationMode;
28  import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
29  import fr.ifremer.tutti.ui.swing.TuttiHelpBroker;
30  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.AddSpeciesFrequencyLengthStepCaracteristicAction;
31  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.CancelEditSpeciesFrequencyAction;
32  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.GenerateSpeciesFrequencyLengthStepsAction;
33  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ResetSpeciesFrequencyAction;
34  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndCloseSpeciesFrequencyAction;
35  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndContinueSpeciesFrequencyAction;
36  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SaveAndStaySpeciesFrequencyAction;
37  import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.SearchSpeciesInPrevOrNextCatchesAction;
38  import fr.ifremer.tutti.ui.swing.util.TuttiUI;
39  import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
40  import fr.ifremer.tutti.ui.swing.util.WideDataBeanFilterableComboBox;
41  import fr.ifremer.tutti.ui.swing.util.caracteristics.CaracteristicMapEditorUI;
42  import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
43  import java.awt.BorderLayout;
44  import java.awt.Color;
45  import java.awt.Component;
46  import java.awt.Container;
47  import java.awt.Font;
48  import java.awt.GridBagConstraints;
49  import java.awt.GridLayout;
50  import java.awt.Insets;
51  import java.awt.LayoutManager;
52  import java.awt.event.ActionEvent;
53  import java.awt.event.ActionListener;
54  import java.awt.event.ComponentEvent;
55  import java.awt.event.ComponentListener;
56  import java.awt.event.ItemEvent;
57  import java.awt.event.ItemListener;
58  import java.awt.event.KeyEvent;
59  import java.awt.event.KeyListener;
60  import java.awt.event.MouseEvent;
61  import java.awt.event.MouseListener;
62  import java.util.ArrayList;
63  import java.util.HashMap;
64  import java.util.List;
65  import java.util.Map;
66  import java.util.TreeMap;
67  import javax.swing.BorderFactory;
68  import javax.swing.ButtonGroup;
69  import javax.swing.JButton;
70  import javax.swing.JCheckBox;
71  import javax.swing.JLabel;
72  import javax.swing.JMenu;
73  import javax.swing.JMenuBar;
74  import javax.swing.JMenuItem;
75  import javax.swing.JPanel;
76  import javax.swing.JPopupMenu;
77  import javax.swing.JRadioButton;
78  import javax.swing.JScrollPane;
79  import javax.swing.JSeparator;
80  import javax.swing.JSplitPane;
81  import javax.swing.JTextField;
82  import javax.swing.JToolBar;
83  import javax.swing.ListSelectionModel;
84  import javax.swing.SwingConstants;
85  import jaxx.runtime.JAXXBinding;
86  import jaxx.runtime.JAXXContext;
87  import jaxx.runtime.JAXXObject;
88  import jaxx.runtime.JAXXObjectDescriptor;
89  import jaxx.runtime.JAXXUtil;
90  import jaxx.runtime.JAXXValidator;
91  import jaxx.runtime.SwingUtil;
92  import jaxx.runtime.binding.DefaultJAXXBinding;
93  import jaxx.runtime.binding.SimpleJAXXObjectBinding;
94  import jaxx.runtime.context.DefaultJAXXContext;
95  import jaxx.runtime.swing.CardLayout2Ext;
96  import jaxx.runtime.swing.HBox;
97  import jaxx.runtime.swing.JAXXButtonGroup;
98  import jaxx.runtime.swing.JAXXWidgetUtil;
99  import jaxx.runtime.swing.Table;
100 import jaxx.runtime.swing.VBox;
101 import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
102 import jaxx.runtime.swing.help.JAXXHelpUI;
103 import jaxx.runtime.validator.swing.SwingValidator;
104 import jaxx.runtime.validator.swing.SwingValidatorUtil;
105 import jaxx.runtime.validator.swing.meta.Validator;
106 import jaxx.runtime.validator.swing.meta.ValidatorField;
107 import jaxx.runtime.validator.swing.ui.ImageValidationUI;
108 import org.apache.commons.logging.Log;
109 import org.apache.commons.logging.LogFactory;
110 import org.jdesktop.swingx.JXTable;
111 import org.jdesktop.swingx.JXTitledPanel;
112 import org.nuiton.jaxx.widgets.number.NumberEditor;
113 import static jaxx.runtime.SwingUtil.getStringValue;
114 import static org.nuiton.i18n.I18n.t;
115 
116 public class SpeciesFrequencyUI extends JPanel implements JAXXHelpUI<TuttiHelpBroker>, TuttiUI<SpeciesFrequencyUIModel, SpeciesFrequencyUIHandler>, JAXXObject, JAXXValidator {
117 
118     /*-----------------------------------------------------------------------*/
119     /*------------------ Constants for all public bindings ------------------*/
120     /*-----------------------------------------------------------------------*/
121 
122     public static final String BINDING_ADD_INDIVIDUAL_OBSERVATION_CHECK_BOX_ENABLED = "addIndividualObservationCheckBox.enabled";
123     public static final String BINDING_ADD_INDIVIDUAL_OBSERVATION_CHECK_BOX_SELECTED = "addIndividualObservationCheckBox.selected";
124     public static final String BINDING_ADD_LENGTH_STEP_CARACTERISTIC_BUTTON_ENABLED = "addLengthStepCaracteristicButton.enabled";
125     public static final String BINDING_AUTO_GEN_MODE_BUTTON_ENABLED = "autoGenModeButton.enabled";
126     public static final String BINDING_AUTO_GEN_MODE_BUTTON_SELECTED = "autoGenModeButton.selected";
127     public static final String BINDING_COPY_ALL_BUTTON_SELECTED = "copyAllButton.selected";
128     public static final String BINDING_COPY_NOTHING_BUTTON_SELECTED = "copyNothingButton.selected";
129     public static final String BINDING_COPY_RTP_WEIGHTS_CHECK_BOX_ENABLED = "copyRtpWeightsCheckBox.enabled";
130     public static final String BINDING_COPY_RTP_WEIGHTS_CHECK_BOX_SELECTED = "copyRtpWeightsCheckBox.selected";
131     public static final String BINDING_COPY_SIZES_BUTTON_SELECTED = "copySizesButton.selected";
132     public static final String BINDING_DATA_FIELD_LAYOUT_SELECTED = "dataFieldLayout.selected";
133     public static final String BINDING_DATA_IN_FREQUENCIES_WARNING_CONTAINER_VISIBLE = "dataInFrequenciesWarningContainer.visible";
134     public static final String BINDING_FREQUENCIES_TITLE_PANEL_TITLE_PAINTER = "frequenciesTitlePanel.titlePainter";
135     public static final String BINDING_FREQUENCY_MODE_BUTTON_SELECTED = "frequencyModeButton.selected";
136     public static final String BINDING_GENERATE_LENGTH_STEPS_ACTION_ENABLED = "generateLengthStepsAction.enabled";
137     public static final String BINDING_HISTOGRAM_PANEL_VISIBLE = "histogramPanel.visible";
138     public static final String BINDING_IMPORT_MULTI_POST_FULL_BUTTON_ENABLED = "importMultiPostFullButton.enabled";
139     public static final String BINDING_IMPORT_MULTI_POST_ONLY_FREQUENCIES_BUTTON_ENABLED = "importMultiPostOnlyFrequenciesButton.enabled";
140     public static final String BINDING_IMPORT_MULTI_POST_ONLY_INDIVIDUAL_OBSERVATIONS_BUTTON_ENABLED = "importMultiPostOnlyIndividualObservationsButton.enabled";
141     public static final String BINDING_LENGTH_STEP_CARACTERISTIC_COMBO_BOX_ENABLED = "lengthStepCaracteristicComboBox.enabled";
142     public static final String BINDING_LENGTH_STEP_CARACTERISTIC_COMBO_BOX_SELECTED_ITEM = "lengthStepCaracteristicComboBox.selectedItem";
143     public static final String BINDING_LENGTH_STEP_CARACTERISTIC_LABEL_ENABLED = "lengthStepCaracteristicLabel.enabled";
144     public static final String BINDING_LENGTH_STEP_CARACTERISTIC_PANEL_VISIBLE = "lengthStepCaracteristicPanel.visible";
145     public static final String BINDING_MAX_STEP_FIELD_NUMBER_PATTERN = "maxStepField.numberPattern";
146     public static final String BINDING_MAX_STEP_FIELD_NUMBER_VALUE = "maxStepField.numberValue";
147     public static final String BINDING_MENU_IMPORT_MULTI_POST_ENABLED = "menuImportMultiPost.enabled";
148     public static final String BINDING_MIN_STEP_FIELD_NUMBER_PATTERN = "minStepField.numberPattern";
149     public static final String BINDING_MIN_STEP_FIELD_NUMBER_VALUE = "minStepField.numberValue";
150     public static final String BINDING_MODE_CONFIGURATION_LAYOUT_SELECTED = "modeConfigurationLayout.selected";
151     public static final String BINDING_MODE_CONFIGURATION_PANEL_VISIBLE = "modeConfigurationPanel.visible";
152     public static final String BINDING_MODE_PANEL_VISIBLE = "modePanel.visible";
153     public static final String BINDING_OBS_TABLE_ENABLED = "obsTable.enabled";
154     public static final String BINDING_OBS_TABLE_TITLE_PANEL_TITLE_PAINTER = "obsTableTitlePanel.titlePainter";
155     public static final String BINDING_RAFALE_MODE_BUTTON_ENABLED = "rafaleModeButton.enabled";
156     public static final String BINDING_RAFALE_MODE_BUTTON_SELECTED = "rafaleModeButton.selected";
157     public static final String BINDING_RAFALE_STEP_FIELD_ENABLED = "rafaleStepField.enabled";
158     public static final String BINDING_RAFALE_STEP_FIELD_NUMBER_PATTERN = "rafaleStepField.numberPattern";
159     public static final String BINDING_SAMPLING_RESUME_LABEL_VISIBLE = "samplingResumeLabel.visible";
160     public static final String BINDING_SAMPLING_WARNING_LABEL_VISIBLE = "samplingWarningLabel.visible";
161     public static final String BINDING_SAVE_AND_CLOSE_ACTION_ENABLED = "saveAndCloseAction.enabled";
162     public static final String BINDING_SAVE_AND_CONTINUE_ACTION_ENABLED = "saveAndContinueAction.enabled";
163     public static final String BINDING_SAVE_AND_STAY_ACTION_ENABLED = "saveAndStayAction.enabled";
164     public static final String BINDING_SEARCH_SPECIES_IN_NEXT_CATCHES_BUTTON_ENABLED = "searchSpeciesInNextCatchesButton.enabled";
165     public static final String BINDING_SEARCH_SPECIES_IN_PREV_CATCHES_BUTTON_ENABLED = "searchSpeciesInPrevCatchesButton.enabled";
166     public static final String BINDING_SIMPLE_COUNTING_MODE_BUTTON_SELECTED = "simpleCountingModeButton.selected";
167     public static final String BINDING_SIMPLE_COUNTING_NUMBER_FIELD_NUMBER_PATTERN = "simpleCountingNumberField.numberPattern";
168     public static final String BINDING_SIMPLE_COUNTING_NUMBER_FIELD_NUMBER_VALUE = "simpleCountingNumberField.numberValue";
169     public static final String BINDING_SIMPLE_COUNTING_WEIGHT_FIELD_BEAN = "simpleCountingWeightField.bean";
170     public static final String BINDING_SIMPLE_COUNTING_WEIGHT_FIELD_NUMBER_VALUE = "simpleCountingWeightField.numberValue";
171     public static final String BINDING_STEP_FIELD_ENABLED = "stepField.enabled";
172     public static final String BINDING_STEP_FIELD_NUMBER_PATTERN = "stepField.numberPattern";
173     public static final String BINDING_STEP_FIELD_NUMBER_VALUE = "stepField.numberValue";
174     public static final String BINDING_STEP_LABEL_ENABLED = "stepLabel.enabled";
175     public static final String BINDING_TABLE_ENABLED = "table.enabled";
176     public static final String BINDING_TOTAL_NUMBER_FIELD_TEXT = "totalNumberField.text";
177     public static final String BINDING_TOTAL_NUMBER_LABEL_ENABLED = "totalNumberLabel.enabled";
178     public static final String BINDING_TOTAL_WEIGHT_FIELD_BEAN = "totalWeightField.bean";
179     public static final String BINDING_TOTAL_WEIGHT_FIELD_NUMBER_VALUE = "totalWeightField.numberValue";
180     public static final String BINDING_TOTAL_WEIGHT_LABEL_ENABLED = "totalWeightLabel.enabled";
181 
182     /*-----------------------------------------------------------------------*/
183     /*--------------- Constants for all none public bindings  ---------------*/
184     /*-----------------------------------------------------------------------*/
185 
186     private static final String BINDING_$JSEPARATOR0_VISIBLE = "$JSeparator0.visible";
187 
188     /*-----------------------------------------------------------------------*/
189     /*------------------------- Other static fields -------------------------*/
190     /*-----------------------------------------------------------------------*/
191 
192     private static final String $jaxxObjectDescriptor = "H4sIAAAAAAAAAM09S2wcR3YtmtSHkijzY8mOvLsjRnaoWG6SsqXVWrbk4ZCUx+ZHy6E+sbBgmjNNTks93e3uGn7c4CJBsEEC5LBAzgniey5BEiTIJocghwBBEGADJAgWQS6LBLkEwQZY5BakPt1dXdVV3dUzQ8IGPBx1v1+996rq1auqN3/4X9pI4GvXXhgHB7rfdYDVMfVPq8+erW+/MJtg0QyavuUB19fIf6eGtKHn2vlW8jwA2i8+X0HosxH6bM3teK5jOinseyvaaAAObTNomyYA2jdYjGYQzDaS1/cOvK4fU02EElH9g5/999APW7/21ZCmHXhQujZsSqUIi7ZkeEUbslpAm4Cc9oxZ23B2oRi+5exCeS+iZzXbCII1o2N+oX1fO7OinfYMHxID2rR6kzENjH/gAe2bZssCDc9sWmaw7JtfdE0Hfd10vUeGY9pAe7bj69aOb3ZMXwddACy9a+nBPhRKb7oOgDx01zN9A1iuozcN0GybgR4QgvpORPFQ51gcPq57HpbiNNBGOm4LsfrecbFaRfQpv3N7hm21DKgUoL3DmCd5EbFtoM8n8UNK4fS27740IfoNucib6J+fQL4LGJYiX0HNrbnOjrXbJY1ZMQ5dCM25PSFTM/wWeX9r6QBQKpegSMayZdrRW/T4Cn095m4H2ILCtxWj1VoxnV3QbgDTgyyMJjB9KwBWs9pEEgHt+4MxhoHJBXq11eLtkisAlfWNXdNBfEwKH8RC7g9WyIcRJ7mkAS/deGDsmVWn1QDGYSyVO1ipGpQDLxgvzUQkTc12AzMWxzsWcTCLInlei+WBfCynm4gUHI9IEZciqSqBafjNdgRWdx755l6NMIkFBAMWMMtw3V8zDwDDVi5hBhTBvUvhfyHgmrxpbG+6rr1gwDFqCs0cB5H0n0aPEeK5BH+4YzpdHnIVPosg5xLIUQQZa2k8A4+g3lNR9AJUKiLxWoZEHZgdhH9HRRuEDIK7x+JMIjnrcBb0wWrXBtYjN8CD4F0W7A2LBVnu2jZH834CfJ0DXnfsw9ScKcWbFeDVnZa1Z7W6hr2+HZj+HvYkOQncnKWDwuaYB0XNWabN4YDzm0PxZgV4Ss2hJCZ20qFG4pC3WK+83HS9ww3gPTWt3TYIam2z+XLBPeCdJn6OsNYS5Nd3fcNrV/dgJ901CYXY5yYZdCokRR5HnDfdhvWlKRdvKgVkbNvmirGNopgJhjp+iBCeJHgXEV41NgyUlEHYMFqWS2V6wsq05oI2BKPvv8cCXUJASKJACnIRRgZY3keu14UR4GWGPX6IumFqioPBkwlMaNgNdz+Iezm26Da1KI4jjY4HA0wY3kigpgipQriJZjo8iiLR1wXREW4Ia5bEtw5R2BfhXhHgfhL5zEvqM4FFBENwzi7C59To0B7JsJGCvWmLoxwsF4LBY91LqJo9K7BgY+o7qT5YRCXxrs/RRzfh+i0JPFwXbLu4C30kn+C6wLL1p1bLXIQR5oJpOMuWDQkgTcf4LLecaJLq5TGLcy6AoDLx8Usc28IA3fV3dadrQTI6NuK+1do1QQCfdbah8Gv4zxL0PtdnqYy1oQguHAY6kROwPTOxQJHyz3Xy/ehJ7EcFdMaNLnBhiCnwl99KhH7VN3YM28yFuZxZQCRt+U0VQV5NCcL64Q8THhc6ltPImOh3M++xldCz3+DfGwf5+OS9DP/sdWKguaRV9N1YvCLgvOv36DBItShrYASSlfErEQgr5leM6wvnvvSktMHiTAVo+IOe89TwHfiHZV9kvMkYe8MMuh2zHPKF6582TA92UNhZ5vihP3mjQmksWX5yvkettGP5AWhAWQECyXCLXyDwP6YrhnRkYAE77njX0DDwomUGL4HrERoH+qfPMAgV4U9pP0rRYSX8c7oQJ6MkGmwaJkAjfrBgu82Xibf8iJIDLjBsMtawKv8rIUw0eLFN3oRxa+JIPB4JUTjacLa20ZOnFmg/diwgQolY3S8Y0Jtux+sCNIjjJBT5ikZ4OnRSkS4FJpyBW4yN/ozVyJjt7gaNpu/aNjHvFda8yRsE/3d0aEdoeNYG2lWJTeM5/e+pPFhaluY/sIRHQIz2Y/Txj3QkiTMhiQdQL5mIYyHqaujNX6CPf6YR0/VUc+YS3v/CsNhk2P8kefc2fMdMiauGR1S+YcIxtJXyJ45tBlNMBmjLRaZP4wW6mMzjOmL7b3QpwcZCxK3ZwZT22mtoNKg7qXEiGtvQktyw4GidKP+nNNqSISX+/+/50rCd5af5wOwILgUWdcMCYBnl82T1z/reOfh8G09b+HkyMDcNp2na3IT2M0rLNwMTSF+ns1BSID4ZIwVkskhSqElu+YMmW6BNCwIklL8nZB76LlxYpNIOEAd+P6Wl8pqpgXs19drXrjKkm0Gg0xw9TaKfeq6N+F34GDrY82xafwO+Ign917mEPiKI3/7f5cl/+tG//slynMVHvF8TgqY2IVa0Uc9HKSFgIdaXSAofdb9Z2MXuPYcxLVz6NMkOxZsCwRrRaygc5IczK6T3fmIEbUhi5MxP/vpvLv/qj1/Rhpa1Uds1WssGgq9Dl2pD72i7duvAe/AxlujC/ln4+Sr8fwhF0213fwP5D9Q48LtQW8PbMKwH2pkQZ96PDqA63hSoI5Fp+9zf/nyy8Ucfxyo5BUV8QwpO1TLyuXbacmC0YuKtDWTiM5KtjPNeYHZbLt2dEO1XaGi9Kl6SEA86NYo/xzJ6QFMPCnujRe9s2Daclg0HTLiWIKH0zA3dCqoxSHpZMXPjCGijZL2xeehB/V0Ml6EFgN5Esh2h+RKqGOPFi/o5CYMGBEzTJvCYw9gWcZF1Z9ltdoPEWCr2Q42ewoZB3y4jPV1IsynQzghOL6CowGyhmKDm2mhiEWsJf4fvaxFClJ7Bbfi66zijS6HqpkQRUoEKT0FzRAEzXH+H17BlkDCZlAIURMDV83Ii7jyuY1twDUJsgEJEGIgRr0BKoY/lTLMRZh63021MEmhDt+ckBPn5TUruFch82/VbKK6wHOhJMIqDCy5oHO206xlfYE+P+sAO8gUSNhKYLPPcNLhXYL4htKmHZYFfQqdr28gft43my104ZzlQtDthOsB9XF81HGM39j3YHWamo4S5TrGmRVqP0u1FEg3DLmzN33VWHbPjOlYTzq0kuAOwRduQDSIS7TDonQSI19wwgKsOGLlIcaHB0NNNy9vEkN+QcwGWJ2pOak+gqFGnM42az7Lj0vbFbRwlEHW0NQMnHIyetHxGlQGviJvKkkG9wN5vOsg/oafMh9An8J4zHo5qME4S5giiZK6wa4p3MIrUO6KiXm4boax6SfY/T71iBgrqlUgmcTvRnohKN4/FmQ6L9gGP0lb9FmdVw3noIowFhCGxYeEGWF/yZnYFC+VFGGXkzey0le/fHxMzi4+ZxBYW7MKl/HFiy/A822riThPvPe6Fg92i5XpaLCuUhHBM4pDcwebbPbYWzmpbbdOGw8jH4XSvGkMEpo/4fnavV3KSbiffMi3vHJ/1IBu3TVnkJ79+In7CCVXGZRb61wH1ns968h5epWJHWh4AZYlPKe2sl3evJz1KLN7NLvK03zkxTxPLV8bpVgeqGep/T3r2P4nOxa743cEykXhl2XMbxzQ5Cs50nPTkyEVZqpMjFyoqTY6C1paeHEUa62NyFJGTTY7SAzjHNDnmn+E56clR7CdlJkfOZZQmx3wdlJ4cC1Tax+RYQFk2Oaqc0zqmyVH5qNdJT45yT+thcuScTmlyVNZM6clRXed9TI7qTGSTY8lTgEUOqpIMjB+oZQMFhwwV8ieRD8znKnEHbfnp7PFEaucPCuwswpbY8nZ5Qlwyaj2spPIA8CsEnblRufZRBSU5K2+/Xbmmlq2q2hCgAiU8S7YpEPHvhuWwIbcMOBUdkRcZUnIOVMGjmG4+0mwbqJef3wpeWl48MLFpUhV9Zw+WioSWnj89+Y6QPc2qkHY6vwO18+5+lO0f3nbRIZNISx8qeiW3O6zjnQaRhMKjtEVCnslMabUe5TKYiDrav8B71bJt7kgRH/TOkA4XNeXhQiR3PG6M7Bk2co1XMG12FLnfB308nKS6/EwY72zl93VhT2aPPpc38MMeG+KQTHtvRu5VexFTauiHPRs6lp839pmEB2vw/LC5mA9v9JvFRs/fzMgeXi9v/MUeGxXAf/Vm+fzVYT5HavbFns2OJedtPkyoswZ/0A8H3to3iq2NqEhMzV9BKDL0Kaqptwo0RVQhYlpwjbX86ii/00dBNFzNuHtmSi0pN2NCjzPk3sMtxThDRp5q6r7aUiIroDjM/E5vxLDjXNwih+LigKoz4JXeBs+WWcoJB5vMhZXy9ldLDDF3XmTGH0ZgieVvlSdMzX5PcQXJyiW2+Z0eKAkN/mLQS3uGZ6G1BTePypv7IxVl8JeXZAY/TQATk7/fC3Fq9I/UjJ6RTmz2uz3REhreHrDhFzmuhaYXXidTmG+Skz6z4QL+Ro5SHupN3zSAudTxwCF5MXP7ZmV+7mYF/xHPd4L7ZuVjG5X5u0Mm7PRxMmlYg0/WJg6Y39Wl1KkLPlAKYUQC8tHLRPaKHe+hKosqESs+jPlmEsYonsHLuQBY3qIqqwbcCsZ9FA2qkqbIElcPH6Ti8ebkT2uXCyykbHhTXk1Muczyk52dElzOLDLh2YwJqwrCs3JHF+ukVsyqKzJo/qicw4ratKpkU7G8vFnPp24I8iZVSf6IufBWvZJYtUrZ4WO6NH3Z/8ozc+uyvCPkb9OKmkxuDpb3g/wtUjkn6gbfVu/akZC88Ufp5cly26U5iuBNfzkx60bCbNCWz1ylVTlsZ0eleN4IJVV6jlLhw1xYEcUP5FJiFECgLPtNnGuXZbfFt3kVwpiUPt8PSaEoHdtwfWeGczCU+G9E0E8QyMwNsdJkxYkUTiufxendZXRxYCxMXw8+Stz7l1Vck2BSj35PzaMJmiTq1UtQkGx4MTeiFdRx0YmuzAFg+nCcnggXl2r11erK/Naj6ubm0sYa2kuJLg0dQs9PGn6eYD4h3XGKHudfJRC4o/SjnbzmYYuVtnbqMndJaxPM0u0haP1YO6IgtXbq/vqxWDtuuNzaBKIXazPayWuekrXTh5CvhtJyXCkxb6stWWNSOYJyd/0VRkU6g9D4Ah1+juhIJgt5lbFyfWE85IoG0O7wroLlKDJV5h0lm1NMSadQ2dFOEZH0C75sgspupkrX6Lux2cABdiFJVRK6/y3OYHMmVD81oLIBKasYse5scKHcipIuiuhJ3EFlK62QtHyfqFqAOuhgr7AQR5m00EDiutzKPwoulRpUroUF9XyOSu1IS4iV3ZGWkJH4m0o+REaRO9JS/nZlQQUllWtVsZOj8nRAu64wxrAT/hWp1i9tJWVHoxJi1RDM9GGB6XTEMBhbUuXfz1c+OuKTmnVRLp8qSGKbompVCnNM6pJUUWnTI/UN+ShMkVM8Gf0U1tcqN5qcD4NscPJLCk4SMGHJnJJjBfKA5B1V9AF0f1puTGFvqGwsP0wUk+3HumI/Rvi407JrgXE6yGQWAj1o/1h9lJZsU4iXS+y/vMfsvwBtsu361peoqoxdta1dp4PLX18JcaXmGjpuazgg0GtLa9BOR6KL5OhYGzlCMTR/R7irJKrPpTIGnVyr2FbcFqbABXXCVGKgOAE2HnIFpsXLM7YMWLmk1bPcDZrKg8q04xLHYwOozk5nuvJBZdqWvBMH9VxzFBa9E65jbrrdZnvpwDOcFjlmGfnRBd9E6n8anY98ZU4X+hJXBO2k9yZlFc7KTRgTIV/ZjM4bKqmWFHbZPHUKVTKL5J+nyFIZwGSSKQanMOSd24rrq/BHjmdCPL77pNJ815xJBv1NygalawehO9pw+XHhTB27nrwlVRurB2+J+1UPLSao/XpLRIXzlkrIGodAFaQTMvX9FNwlG0vcVowlUswEIcXrkgb05lycqqOqRG9xPOI6Qes+XMInDIs0pZqZLDdIzwunBq7aoYJ9JsksBlcHC6kSMUnhGPoadgkzfn0xxIVi9IWVau0zfJEC9pf04X0IkiCS7be3whU4rzXSD229UV97uLK01VhaWapt1tfXxAFZUmhRIXQZASi1UZiipN+jqpyXfKTZRag+PzqgOBVmb93Apl4ApMAiutAAx4hHoWPuV0TlHz0Coq+i4DuCn2EvsKREIoV3JFtZ4lKiClNw74G87+4Hkpo/fAlLhUH16+Vk6XFwsUSKla4mknVM5X5lbkeoJVLFs0yc+mrI/tKJkGxSA7REX8g/kmEJr7pJu8VkmLmDk+0Vn/fTK8TJz7z+ISh++jVyyjmRU64+XtmsP4JuWUcLoSfVFYl/9r0FkFR0PfG0sbzuarmNqKuhtArqUanjJiIy6jfy5TR6upGfQ052I19aOVbB2ZmChJfCOux3qORbfIuYTxRdDqFfbt3ZWqw/rG82xMmi8yl5cqKz1GKEic761reyjnoI/XmfE64ByvscvxjoRQdcqJopmnhTVuoyos9UUuzfZ+nyQsEe5ZYO6cQkynn0sAQYgIL7XgvISy0rLApoJc5fCel6Gt0GqTtLvo/mRHz1Cc4C79DgBOdWEFDyFk8SDH7yii8POY0nb1y219gHOpl5b71/+2bl1vzdm5W7d8XNLK6cPdjM420u88heU9onvJO+mn98l7VQ1WmlXgpPV8vaqtBEcYb0Ukh+YIdmRiPB38sVHI9YuuPqzM/MqGVHrmSPiKvuK3CnSvNljPaeSF3wk673U8Ncl7KSHebW0SDCKp7/YhqofsKJ1Usv579YCrLzX+mC7KVOHX1IhzxUPhEpEb2BgwcM0c0D0cLICvBvTEpGQvGP6JU5tHUlFJJIjfgfqmmdI5MTUoiLzZdS5Hiooh3BTx6WUc1UmMVP6eU75fSCaOQoRVBY/xg0kv1JyjIKmQwz6Cl93C2lD0QiRx3ZXy0oP4gqXafEP55QNIZ+MfB7q4FZavgc8eO65HgQu6HcMmqeW6rXgpE+xGNnfgqQISAZOtO/VVEmkzP2IYoPKtsoteLs3s+QPgU/tVEFiqJYAQKPrIlJugokx/fQLzs0B0fwLIqP0boyh05YSAchr+ZQ+IEShWc5FH67bxl+v28Kf9k3hf/om8L/KNh02GriX0qR0XigJMWXORSqfVOo9U1hqW8KD/umUO+bwmd9U1jtm8Jm3xR2+qbQ7pvCi74p/GffFH7eN4X/hRT+H+FtnXp9gAAA";
193     private static final Log log = LogFactory.getLog(SpeciesFrequencyUI.class);
194     private static final long serialVersionUID = 1L;
195 
196     /*-----------------------------------------------------------------------*/
197     /*--------------------------- Internal states ---------------------------*/
198     /*-----------------------------------------------------------------------*/
199 
200     protected List<Object> $activeBindings = new ArrayList<Object>();
201     protected Map<String, Object> $bindingSources = new HashMap<String, Object>();
202     protected final Map<String, JAXXBinding> $bindings = new TreeMap<String, JAXXBinding>();
203     protected Map<String, Object> $objectMap = new HashMap<String, Object>();
204     protected Map<?, ?> $previousValues = new HashMap<Object, Object>();
205     private boolean allComponentsCreated;
206     protected final JAXXContext delegateContext = new DefaultJAXXContext();
207 
208     /*-----------------------------------------------------------------------*/
209     /*------------------------ Protected components  ------------------------*/
210     /*-----------------------------------------------------------------------*/
211 
212     protected JPanel actionPanel;
213     protected JCheckBox addIndividualObservationCheckBox;
214     protected AddSpeciesFrequencyLengthStepCaracteristicAction addLengthStepCaracteristicAction;
215     protected JButton addLengthStepCaracteristicButton;
216     protected JRadioButton autoGenModeButton;
217     protected Table autoGenModePanel;
218     protected TuttiHelpBroker broker;
219     protected JButton cancelButton;
220     protected Table configurationPanel;
221     protected JRadioButton copyAllButton;
222     protected JRadioButton copyNothingButton;
223     protected JCheckBox copyRtpWeightsCheckBox;
224     protected JRadioButton copySizesButton;
225     protected JLabel copyToSizeTableLabel;
226     protected JAXXButtonGroup copyToSizeTableMode;
227     protected JToolBar copyToSizeToolBar;
228     protected CardLayout2Ext dataFieldLayout;
229     protected JPanel dataFieldPanel;
230     protected JLabel dataInFrequenciesWarning;
231     protected JPanel dataInFrequenciesWarningContainer;
232     protected JMenuItem deleteObsRowsMenu;
233     protected JMenuItem deleteSampleCodeMenu;
234     protected JMenuItem editSampleCodeMenu;
235     protected SpeciesFrequencyUI editSpeciesFrequenciesTopPanel = this;
236     protected JMenuItem exportMultiPostFullButton;
237     protected JMenuItem exportMultiPostOnlyFrequenciesButton;
238     protected JMenuItem exportMultiPostOnlyIndividualObservationsButton;
239     protected JSplitPane firstSplitPane;
240     protected JAXXButtonGroup frequenciesMode;
241     protected JPanel frequenciesPanel;
242     protected JXTitledPanel frequenciesTitlePanel;
243     protected JToolBar frequenciesToolBar;
244     protected JRadioButton frequencyModeButton;
245     protected HBox frequencyModePanel;
246     protected JButton generateButton;
247     protected GenerateSpeciesFrequencyLengthStepsAction generateLengthStepsAction;
248     protected JButton graphAverageWeightButton;
249     protected final SpeciesFrequencyUIHandler handler = createHandler();
250     protected JPanel histogramPanel;
251     protected JMenuItem importMultiPostFullButton;
252     protected JMenuItem importMultiPostOnlyFrequenciesButton;
253     protected JMenuItem importMultiPostOnlyIndividualObservationsButton;
254     @ValidatorField( validatorId = "validator",  propertyName = "lengthStepCaracteristic",  editorName = "lengthStepCaracteristicComboBox")
255     protected WideDataBeanFilterableComboBox<Caracteristic> lengthStepCaracteristicComboBox;
256     protected JLabel lengthStepCaracteristicLabel;
257     protected Table lengthStepCaracteristicPanel;
258     protected Table lengthstepSettingsBlock;
259     protected JScrollPane logsScrollPane;
260     protected JXTable logsTable;
261     protected NumberEditor maxStepField;
262     protected JLabel maxStepLabel;
263     protected JMenuBar menu;
264     protected JMenu menuAction;
265     protected JMenu menuExportMultiPost;
266     protected JMenu menuImportMultiPost;
267     protected NumberEditor minStepField;
268     protected JLabel minStepLabel;
269     protected JAXXButtonGroup mode;
270     protected CardLayout2Ext modeConfigurationLayout;
271     protected JPanel modeConfigurationPanel;
272     protected VBox modePanel;
273     protected SpeciesFrequencyUIModel model;
274     protected CaracteristicMapEditorUI obsCaracteristicCaracteristicMapEditor;
275     protected JXTitledPanel obsCaracteristicMapEditorReminderLabel;
276     @ValidatorField( validatorId = "validator",  propertyName = "nonEmptyIndividualObservationRowsInError",  editorName = "obsPanel")
277     protected JPanel obsPanel;
278     protected CardLayout2Ext obsPanelLayout;
279     protected JXTable obsTable;
280     protected JPopupMenu obsTablePopup;
281     protected JXTitledPanel obsTableTitlePanel;
282     protected JRadioButton rafaleModeButton;
283     protected Table rafaleModePanel;
284     protected NumberEditor rafaleStepField;
285     protected JLabel rafaleStepLabel;
286     protected JButton resetButton;
287     protected JLabel samplingResumeLabel;
288     protected JLabel samplingWarningLabel;
289     protected SaveAndCloseSpeciesFrequencyAction saveAndCloseAction;
290     protected JButton saveAndCloseButton;
291     protected SaveAndContinueSpeciesFrequencyAction saveAndContinueAction;
292     protected JButton saveAndContinueButton;
293     protected SaveAndStaySpeciesFrequencyAction saveAndStayAction;
294     protected JButton saveAndStayButton;
295     protected SearchSpeciesInPrevOrNextCatchesAction searchSpeciesInNextCatchesAction;
296     protected JMenuItem searchSpeciesInNextCatchesButton;
297     protected SearchSpeciesInPrevOrNextCatchesAction searchSpeciesInPrevCatchesAction;
298     protected JMenuItem searchSpeciesInPrevCatchesButton;
299     protected JSplitPane secondSplitPane;
300     protected JRadioButton simpleCountingModeButton;
301     protected NumberEditor simpleCountingNumberField;
302     protected JLabel simpleCountingNumberLabel;
303     protected Table simpleCountingNumberPanel;
304     protected NumberEditor simpleCountingWeightField;
305     protected JLabel simpleCountingWeightLabel;
306     protected JToolBar speciesFrequencyTabToolBar;
307     @ValidatorField( validatorId = "validator",  propertyName = "step",  editorName = "stepField")
308     protected NumberEditor stepField;
309     protected JLabel stepLabel;
310     protected JXTable table;
311     @ValidatorField( validatorId = "validator",  propertyName = "rows",  editorName = "tableScrollPane")
312     protected JScrollPane tableScrollPane;
313     protected JTextField totalNumberField;
314     protected JLabel totalNumberLabel;
315     @ValidatorField( validatorId = "validator",  propertyName = "totalWeight",  editorName = "totalWeightField")
316     protected ComputableDataEditor<Float> totalWeightField;
317     protected JLabel totalWeightLabel;
318     @Validator( validatorId = "validator")
319     protected SwingValidator<SpeciesFrequencyUIModel> validator;
320     protected List<String> validatorIds = new ArrayList<String>();
321 
322     /*-----------------------------------------------------------------------*/
323     /*------------------------- Private components  -------------------------*/
324     /*-----------------------------------------------------------------------*/
325 
326     private JPanel $JPanel0;
327     private JScrollPane $JScrollPane0;
328     private JSeparator $JSeparator0;
329 
330     /*-----------------------------------------------------------------------*/
331     /*---------------------- Raw body code from script ----------------------*/
332     /*-----------------------------------------------------------------------*/
333 
334     // Pour savoir sur quel modèle on est (espèce ou benthos)
335     private String speciesOrBenthosContext;
336     
337     
338     public String getSpeciesOrBenthosContext() { return speciesOrBenthosContext; }
339     
340     protected int getLengthStepPanelPreferedWidth() {
341         return getWidth() - frequencyModePanel.getPreferredSize().width - histogramPanel.getPreferredSize().width;
342     }
343     
344     public boolean leaveIfConfirmed() { return handler.leaveIfConfirmed(); }
345 
346     /*-----------------------------------------------------------------------*/
347     /*---------------------------- Constructors  ----------------------------*/
348     /*-----------------------------------------------------------------------*/
349 
350     public SpeciesFrequencyUI(TuttiUI parentUI, String speciesOrBenthosContext) {
351         TuttiUIUtil.setParentUI(this, parentUI);
352             this.speciesOrBenthosContext = speciesOrBenthosContext;
353             $initialize();
354     }
355 
356     public SpeciesFrequencyUI(LayoutManager param0, boolean param1) {
357         super(param0 ,param1);
358         $initialize();
359     }
360 
361     public SpeciesFrequencyUI(JAXXContext parentContext, LayoutManager param1, boolean param2) {
362         super(param1 ,param2);
363         JAXXUtil.initContext(this, parentContext);
364         $initialize();
365     }
366 
367     public SpeciesFrequencyUI(LayoutManager param0) {
368         super(param0);
369         $initialize();
370     }
371 
372     public SpeciesFrequencyUI(JAXXContext parentContext, LayoutManager param1) {
373         super(param1);
374         JAXXUtil.initContext(this, parentContext);
375         $initialize();
376     }
377 
378     public SpeciesFrequencyUI() {
379         $initialize();
380     }
381 
382     public SpeciesFrequencyUI(JAXXContext parentContext) {
383         JAXXUtil.initContext(this, parentContext);
384         $initialize();
385     }
386 
387     public SpeciesFrequencyUI(boolean param0) {
388         super(param0);
389         $initialize();
390     }
391 
392     public SpeciesFrequencyUI(JAXXContext parentContext, boolean param1) {
393         super(param1);
394         JAXXUtil.initContext(this, parentContext);
395         $initialize();
396     }
397 
398     /*-----------------------------------------------------------------------*/
399     /*--------------------------- Statics methods ---------------------------*/
400     /*-----------------------------------------------------------------------*/
401 
402     public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
403         return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
404     }
405 
406     /*-----------------------------------------------------------------------*/
407     /*---------------------- JAXXObject implementation ----------------------*/
408     /*-----------------------------------------------------------------------*/
409 
410     @Override
411     public void applyDataBinding(String $binding) {
412         if (allComponentsCreated && $bindings.containsKey($binding)) {
413             getDataBinding($binding).applyDataBinding();
414         }
415         processDataBinding($binding);
416     }
417 
418     @Override
419     public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
420         super.firePropertyChange(propertyName, oldValue, newValue);
421     }
422 
423     @Override
424     public Map<String, Object> get$objectMap() {
425         return $objectMap;
426     }
427 
428     @Override
429     public JAXXBinding getDataBinding(String bindingId) {
430         return $bindings.get(bindingId);
431     }
432 
433     @Override
434     public JAXXBinding[] getDataBindings() {
435         return $bindings.values().toArray(new JAXXBinding[$bindings.size()]);
436     }
437 
438     @Override
439     public Object getObjectById(String id) {
440         return $objectMap.get(id);
441     }
442 
443     @Override
444     public void processDataBinding(String $binding, boolean $force) {
445         if (!$force && $activeBindings.contains($binding)) { 
446             return;
447         }
448         $activeBindings.add($binding);
449         try {
450             if (allComponentsCreated && $bindings.containsKey($binding)) {
451                 getDataBinding($binding).processDataBinding();
452             }
453         } finally {
454             $activeBindings.remove($binding);
455         }
456     }
457 
458     @Override
459     public void processDataBinding(String $binding) {
460         processDataBinding($binding, false);
461     }
462 
463     @Override
464     public void registerDataBinding(JAXXBinding binding) {
465         $bindings.put(binding.getId(), binding);
466     }
467 
468     @Override
469     public void removeDataBinding(String $binding) {
470         if (allComponentsCreated && $bindings.containsKey($binding)) {
471             getDataBinding($binding).removeDataBinding();
472         }
473     }
474 
475     /*-----------------------------------------------------------------------*/
476     /*--------------------- JAXXContext implementation  ---------------------*/
477     /*-----------------------------------------------------------------------*/
478 
479     @Override
480     public <T> T getContextValue(Class<T> clazz) {
481         return delegateContext.getContextValue(clazz, null);
482     }
483 
484     @Override
485     public <T> T getContextValue(Class<T> clazz, String name) {
486         return delegateContext.getContextValue(clazz, name);
487     }
488 
489     @Override
490     public JAXXContext getDelegateContext() {
491         return delegateContext;
492     }
493 
494     @Override
495     public <O extends Container> O getParentContainer(Class<O> clazz) {
496         return SwingUtil.getParentContainer(this, clazz);
497     }
498 
499     @Override
500     public <O extends Container> O getParentContainer(Object source, Class<O> clazz) {
501         return SwingUtil.getParentContainer(source, clazz);
502     }
503 
504     @Override
505     public <T> void removeContextValue(Class<T> clazz) {
506         delegateContext.removeContextValue(clazz, null);
507     }
508 
509     @Override
510     public <T> void removeContextValue(Class<T> clazz, String name) {
511         delegateContext.removeContextValue(clazz, name);
512     }
513 
514     @Override
515     public <T> void setContextValue(T o) {
516         delegateContext.setContextValue(o, null);
517     }
518 
519     @Override
520     public <T> void setContextValue(T o, String name) {
521         delegateContext.setContextValue(o, name);
522     }
523 
524     /*-----------------------------------------------------------------------*/
525     /*-------------------- JAXXValidator implementation  --------------------*/
526     /*-----------------------------------------------------------------------*/
527 
528     @Override
529     public SwingValidator<?> getValidator(String validatorId) {
530         return (SwingValidator<?>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
531     }
532 
533     @Override
534     public List<String> getValidatorIds() {
535         return validatorIds;
536     }
537 
538     @Override
539     public void registerValidatorFields() {
540         SwingValidatorUtil.detectValidatorFields(this);
541     }
542 
543     /*-----------------------------------------------------------------------*/
544     /*---------------------------- Event methods ----------------------------*/
545     /*-----------------------------------------------------------------------*/
546 
547     public void doActionPerformed__on__autoGenModeButton(ActionEvent event) {
548         if (log.isDebugEnabled()) {
549             log.debug(event);
550         }
551         model.setFrequenciesConfigurationMode(FrequencyConfigurationMode.AUTO_GEN);
552     }
553 
554     public void doActionPerformed__on__copyAllButton(ActionEvent event) {
555         if (log.isDebugEnabled()) {
556             log.debug(event);
557         }
558         handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.ALL);
559     }
560 
561     public void doActionPerformed__on__copyNothingButton(ActionEvent event) {
562         if (log.isDebugEnabled()) {
563             log.debug(event);
564         }
565         handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.NOTHING);
566     }
567 
568     public void doActionPerformed__on__copyRtpWeightsCheckBox(ActionEvent event) {
569         if (log.isDebugEnabled()) {
570             log.debug(event);
571         }
572         model.setCopyRtpWeights(copyRtpWeightsCheckBox.isSelected());
573     }
574 
575     public void doActionPerformed__on__copySizesButton(ActionEvent event) {
576         if (log.isDebugEnabled()) {
577             log.debug(event);
578         }
579         handler.setCopyIndividualObservationMode(CopyIndividualObservationMode.SIZE);
580     }
581 
582     public void doActionPerformed__on__frequencyModeButton(ActionEvent event) {
583         if (log.isDebugEnabled()) {
584             log.debug(event);
585         }
586         model.setConfigurationMode(FrequencyConfigurationMode.FREQUENCIES);
587     }
588 
589     public void doActionPerformed__on__rafaleModeButton(ActionEvent event) {
590         if (log.isDebugEnabled()) {
591             log.debug(event);
592         }
593         model.setFrequenciesConfigurationMode(FrequencyConfigurationMode.RAFALE);
594     }
595 
596     public void doActionPerformed__on__simpleCountingModeButton(ActionEvent event) {
597         if (log.isDebugEnabled()) {
598             log.debug(event);
599         }
600         model.setConfigurationMode(FrequencyConfigurationMode.SIMPLE_COUNTING);
601     }
602 
603     public void doComponentResized__on__editSpeciesFrequenciesTopPanel(ComponentEvent event) {
604         if (log.isDebugEnabled()) {
605             log.debug(event);
606         }
607         JAXXWidgetUtil.setComponentWidth(lengthStepCaracteristicComboBox, getLengthStepPanelPreferedWidth())  ;
608     }
609 
610     public void doItemStateChanged__on__addIndividualObservationCheckBox(ItemEvent event) {
611         if (log.isDebugEnabled()) {
612             log.debug(event);
613         }
614         handler.setBoolean(event, "addIndividualObservationOnRafale");
615     }
616 
617     public void doKeyPressed__on__obsTable(KeyEvent event) {
618         if (log.isDebugEnabled()) {
619             log.debug(event);
620         }
621         handler.openRowMenu(event, obsTablePopup);
622     }
623 
624     public void doMouseClicked__on__obsTable(MouseEvent event) {
625         if (log.isDebugEnabled()) {
626             log.debug(event);
627         }
628         handler.autoSelectRowInTable(event, obsTablePopup);
629     }
630 
631     /*-----------------------------------------------------------------------*/
632     /*----------------------- Public acessor methods  -----------------------*/
633     /*-----------------------------------------------------------------------*/
634 
635     public JPanel getActionPanel() {
636         return actionPanel;
637     }
638 
639     public JCheckBox getAddIndividualObservationCheckBox() {
640         return addIndividualObservationCheckBox;
641     }
642 
643     public AddSpeciesFrequencyLengthStepCaracteristicAction getAddLengthStepCaracteristicAction() {
644         return addLengthStepCaracteristicAction;
645     }
646 
647     public JButton getAddLengthStepCaracteristicButton() {
648         return addLengthStepCaracteristicButton;
649     }
650 
651     public JRadioButton getAutoGenModeButton() {
652         return autoGenModeButton;
653     }
654 
655     public Table getAutoGenModePanel() {
656         return autoGenModePanel;
657     }
658 
659     public TuttiHelpBroker getBroker() {
660         return broker;
661     }
662 
663     public JButton getCancelButton() {
664         return cancelButton;
665     }
666 
667     public Table getConfigurationPanel() {
668         return configurationPanel;
669     }
670 
671     public JRadioButton getCopyAllButton() {
672         return copyAllButton;
673     }
674 
675     public JRadioButton getCopyNothingButton() {
676         return copyNothingButton;
677     }
678 
679     public JCheckBox getCopyRtpWeightsCheckBox() {
680         return copyRtpWeightsCheckBox;
681     }
682 
683     public JRadioButton getCopySizesButton() {
684         return copySizesButton;
685     }
686 
687     public JLabel getCopyToSizeTableLabel() {
688         return copyToSizeTableLabel;
689     }
690 
691     public JAXXButtonGroup getCopyToSizeTableMode() {
692         return copyToSizeTableMode;
693     }
694 
695     public JToolBar getCopyToSizeToolBar() {
696         return copyToSizeToolBar;
697     }
698 
699     public CardLayout2Ext getDataFieldLayout() {
700         return dataFieldLayout;
701     }
702 
703     public JPanel getDataFieldPanel() {
704         return dataFieldPanel;
705     }
706 
707     public JLabel getDataInFrequenciesWarning() {
708         return dataInFrequenciesWarning;
709     }
710 
711     public JPanel getDataInFrequenciesWarningContainer() {
712         return dataInFrequenciesWarningContainer;
713     }
714 
715     public JMenuItem getDeleteObsRowsMenu() {
716         return deleteObsRowsMenu;
717     }
718 
719     public JMenuItem getDeleteSampleCodeMenu() {
720         return deleteSampleCodeMenu;
721     }
722 
723     public JMenuItem getEditSampleCodeMenu() {
724         return editSampleCodeMenu;
725     }
726 
727     public JMenuItem getExportMultiPostFullButton() {
728         return exportMultiPostFullButton;
729     }
730 
731     public JMenuItem getExportMultiPostOnlyFrequenciesButton() {
732         return exportMultiPostOnlyFrequenciesButton;
733     }
734 
735     public JMenuItem getExportMultiPostOnlyIndividualObservationsButton() {
736         return exportMultiPostOnlyIndividualObservationsButton;
737     }
738 
739     public JSplitPane getFirstSplitPane() {
740         return firstSplitPane;
741     }
742 
743     public JAXXButtonGroup getFrequenciesMode() {
744         return frequenciesMode;
745     }
746 
747     public JPanel getFrequenciesPanel() {
748         return frequenciesPanel;
749     }
750 
751     public JXTitledPanel getFrequenciesTitlePanel() {
752         return frequenciesTitlePanel;
753     }
754 
755     public JToolBar getFrequenciesToolBar() {
756         return frequenciesToolBar;
757     }
758 
759     public JRadioButton getFrequencyModeButton() {
760         return frequencyModeButton;
761     }
762 
763     public HBox getFrequencyModePanel() {
764         return frequencyModePanel;
765     }
766 
767     public JButton getGenerateButton() {
768         return generateButton;
769     }
770 
771     public GenerateSpeciesFrequencyLengthStepsAction getGenerateLengthStepsAction() {
772         return generateLengthStepsAction;
773     }
774 
775     public JButton getGraphAverageWeightButton() {
776         return graphAverageWeightButton;
777     }
778 
779     public SpeciesFrequencyUIHandler getHandler() {
780         return handler;
781     }
782 
783     public JPanel getHistogramPanel() {
784         return histogramPanel;
785     }
786 
787     public JMenuItem getImportMultiPostFullButton() {
788         return importMultiPostFullButton;
789     }
790 
791     public JMenuItem getImportMultiPostOnlyFrequenciesButton() {
792         return importMultiPostOnlyFrequenciesButton;
793     }
794 
795     public JMenuItem getImportMultiPostOnlyIndividualObservationsButton() {
796         return importMultiPostOnlyIndividualObservationsButton;
797     }
798 
799     public WideDataBeanFilterableComboBox<Caracteristic> getLengthStepCaracteristicComboBox() {
800         return lengthStepCaracteristicComboBox;
801     }
802 
803     public JLabel getLengthStepCaracteristicLabel() {
804         return lengthStepCaracteristicLabel;
805     }
806 
807     public Table getLengthStepCaracteristicPanel() {
808         return lengthStepCaracteristicPanel;
809     }
810 
811     public Table getLengthstepSettingsBlock() {
812         return lengthstepSettingsBlock;
813     }
814 
815     public JScrollPane getLogsScrollPane() {
816         return logsScrollPane;
817     }
818 
819     public JXTable getLogsTable() {
820         return logsTable;
821     }
822 
823     public NumberEditor getMaxStepField() {
824         return maxStepField;
825     }
826 
827     public JLabel getMaxStepLabel() {
828         return maxStepLabel;
829     }
830 
831     public JMenuBar getMenu() {
832         return menu;
833     }
834 
835     public JMenu getMenuAction() {
836         return menuAction;
837     }
838 
839     public JMenu getMenuExportMultiPost() {
840         return menuExportMultiPost;
841     }
842 
843     public JMenu getMenuImportMultiPost() {
844         return menuImportMultiPost;
845     }
846 
847     public NumberEditor getMinStepField() {
848         return minStepField;
849     }
850 
851     public JLabel getMinStepLabel() {
852         return minStepLabel;
853     }
854 
855     public JAXXButtonGroup getMode() {
856         return mode;
857     }
858 
859     public CardLayout2Ext getModeConfigurationLayout() {
860         return modeConfigurationLayout;
861     }
862 
863     public JPanel getModeConfigurationPanel() {
864         return modeConfigurationPanel;
865     }
866 
867     public VBox getModePanel() {
868         return modePanel;
869     }
870 
871     public SpeciesFrequencyUIModel getModel() {
872         return model;
873     }
874 
875     public CaracteristicMapEditorUI getObsCaracteristicCaracteristicMapEditor() {
876         return obsCaracteristicCaracteristicMapEditor;
877     }
878 
879     public JXTitledPanel getObsCaracteristicMapEditorReminderLabel() {
880         return obsCaracteristicMapEditorReminderLabel;
881     }
882 
883     public JPanel getObsPanel() {
884         return obsPanel;
885     }
886 
887     public CardLayout2Ext getObsPanelLayout() {
888         return obsPanelLayout;
889     }
890 
891     public JXTable getObsTable() {
892         return obsTable;
893     }
894 
895     public JPopupMenu getObsTablePopup() {
896         return obsTablePopup;
897     }
898 
899     public JXTitledPanel getObsTableTitlePanel() {
900         return obsTableTitlePanel;
901     }
902 
903     public JRadioButton getRafaleModeButton() {
904         return rafaleModeButton;
905     }
906 
907     public Table getRafaleModePanel() {
908         return rafaleModePanel;
909     }
910 
911     public NumberEditor getRafaleStepField() {
912         return rafaleStepField;
913     }
914 
915     public JLabel getRafaleStepLabel() {
916         return rafaleStepLabel;
917     }
918 
919     public JButton getResetButton() {
920         return resetButton;
921     }
922 
923     public JLabel getSamplingResumeLabel() {
924         return samplingResumeLabel;
925     }
926 
927     public JLabel getSamplingWarningLabel() {
928         return samplingWarningLabel;
929     }
930 
931     public SaveAndCloseSpeciesFrequencyAction getSaveAndCloseAction() {
932         return saveAndCloseAction;
933     }
934 
935     public JButton getSaveAndCloseButton() {
936         return saveAndCloseButton;
937     }
938 
939     public SaveAndContinueSpeciesFrequencyAction getSaveAndContinueAction() {
940         return saveAndContinueAction;
941     }
942 
943     public JButton getSaveAndContinueButton() {
944         return saveAndContinueButton;
945     }
946 
947     public SaveAndStaySpeciesFrequencyAction getSaveAndStayAction() {
948         return saveAndStayAction;
949     }
950 
951     public JButton getSaveAndStayButton() {
952         return saveAndStayButton;
953     }
954 
955     public SearchSpeciesInPrevOrNextCatchesAction getSearchSpeciesInNextCatchesAction() {
956         return searchSpeciesInNextCatchesAction;
957     }
958 
959     public JMenuItem getSearchSpeciesInNextCatchesButton() {
960         return searchSpeciesInNextCatchesButton;
961     }
962 
963     public SearchSpeciesInPrevOrNextCatchesAction getSearchSpeciesInPrevCatchesAction() {
964         return searchSpeciesInPrevCatchesAction;
965     }
966 
967     public JMenuItem getSearchSpeciesInPrevCatchesButton() {
968         return searchSpeciesInPrevCatchesButton;
969     }
970 
971     public JSplitPane getSecondSplitPane() {
972         return secondSplitPane;
973     }
974 
975     public JRadioButton getSimpleCountingModeButton() {
976         return simpleCountingModeButton;
977     }
978 
979     public NumberEditor getSimpleCountingNumberField() {
980         return simpleCountingNumberField;
981     }
982 
983     public JLabel getSimpleCountingNumberLabel() {
984         return simpleCountingNumberLabel;
985     }
986 
987     public Table getSimpleCountingNumberPanel() {
988         return simpleCountingNumberPanel;
989     }
990 
991     public NumberEditor getSimpleCountingWeightField() {
992         return simpleCountingWeightField;
993     }
994 
995     public JLabel getSimpleCountingWeightLabel() {
996         return simpleCountingWeightLabel;
997     }
998 
999     public JToolBar getSpeciesFrequencyTabToolBar() {
1000         return speciesFrequencyTabToolBar;
1001     }
1002 
1003     public NumberEditor getStepField() {
1004         return stepField;
1005     }
1006 
1007     public JLabel getStepLabel() {
1008         return stepLabel;
1009     }
1010 
1011     public JXTable getTable() {
1012         return table;
1013     }
1014 
1015     public JScrollPane getTableScrollPane() {
1016         return tableScrollPane;
1017     }
1018 
1019     public JTextField getTotalNumberField() {
1020         return totalNumberField;
1021     }
1022 
1023     public JLabel getTotalNumberLabel() {
1024         return totalNumberLabel;
1025     }
1026 
1027     public ComputableDataEditor<Float> getTotalWeightField() {
1028         return totalWeightField;
1029     }
1030 
1031     public JLabel getTotalWeightLabel() {
1032         return totalWeightLabel;
1033     }
1034 
1035     public SwingValidator<SpeciesFrequencyUIModel> getValidator() {
1036         return validator;
1037     }
1038 
1039     /*-----------------------------------------------------------------------*/
1040     /*---------------------------- Other methods ----------------------------*/
1041     /*-----------------------------------------------------------------------*/
1042 
1043     @Override
1044     public void registerHelpId(TuttiHelpBroker broker, Component component, String helpId) {
1045         broker.installUI(component, helpId);
1046     }
1047 
1048     @Override
1049     public void showHelp(String helpId) {
1050         getBroker().showHelp(this, helpId);
1051     }
1052 
1053     /*-----------------------------------------------------------------------*/
1054     /*--------------------- Protected acessors methods  ---------------------*/
1055     /*-----------------------------------------------------------------------*/
1056 
1057     protected JPanel get$JPanel0() {
1058         return $JPanel0;
1059     }
1060 
1061     protected JScrollPane get$JScrollPane0() {
1062         return $JScrollPane0;
1063     }
1064 
1065     protected JSeparator get$JSeparator0() {
1066         return $JSeparator0;
1067     }
1068 
1069     /*-----------------------------------------------------------------------*/
1070     /*--------------------- Components creation methods ---------------------*/
1071     /*-----------------------------------------------------------------------*/
1072 
1073     protected void addChildrenToActionPanel() {
1074         if (!allComponentsCreated) {
1075             return;
1076         }
1077         actionPanel.add(cancelButton);
1078         actionPanel.add(resetButton);
1079         actionPanel.add(saveAndStayButton);
1080         actionPanel.add(saveAndContinueButton);
1081         actionPanel.add(saveAndCloseButton);
1082     }
1083 
1084     protected void addChildrenToAutoGenModeButton() {
1085         if (!allComponentsCreated) {
1086             return;
1087         }
1088         { ButtonGroup $buttonGroup = frequenciesMode; autoGenModeButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(autoGenModeButton); }
1089     }
1090 
1091     protected void addChildrenToAutoGenModePanel() {
1092         if (!allComponentsCreated) {
1093             return;
1094         }
1095         autoGenModePanel.add(minStepLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1096         autoGenModePanel.add(minStepField, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1097         autoGenModePanel.add(maxStepLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1098         autoGenModePanel.add(maxStepField, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1099         autoGenModePanel.add($JPanel0, new GridBagConstraints(0, 2, 2, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1100     }
1101 
1102     protected void addChildrenToConfigurationPanel() {
1103         if (!allComponentsCreated) {
1104             return;
1105         }
1106         configurationPanel.add(frequencyModePanel, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1107         configurationPanel.add(lengthStepCaracteristicPanel, new GridBagConstraints(2, 0, 1, 2, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1108         configurationPanel.add(histogramPanel, new GridBagConstraints(3, 0, 1, 4, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1109         configurationPanel.add(modePanel, new GridBagConstraints(0, 1, 1, 3, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1110         configurationPanel.add(modeConfigurationPanel, new GridBagConstraints(1, 1, 1, 3, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1111         configurationPanel.add(samplingWarningLabel, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1112         configurationPanel.add(samplingResumeLabel, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1113         configurationPanel.add($JSeparator0, new GridBagConstraints(0, 4, 4, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1114         configurationPanel.add(dataFieldPanel, new GridBagConstraints(0, 5, 4, 1, 1.0, 1.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1115     }
1116 
1117     protected void addChildrenToCopyAllButton() {
1118         if (!allComponentsCreated) {
1119             return;
1120         }
1121         { ButtonGroup $buttonGroup = copyToSizeTableMode; copyAllButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(copyAllButton); }
1122     }
1123 
1124     protected void addChildrenToCopyNothingButton() {
1125         if (!allComponentsCreated) {
1126             return;
1127         }
1128         { ButtonGroup $buttonGroup = copyToSizeTableMode; copyNothingButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(copyNothingButton); }
1129     }
1130 
1131     protected void addChildrenToCopySizesButton() {
1132         if (!allComponentsCreated) {
1133             return;
1134         }
1135         { ButtonGroup $buttonGroup = copyToSizeTableMode; copySizesButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(copySizesButton); }
1136     }
1137 
1138     protected void addChildrenToCopyToSizeToolBar() {
1139         if (!allComponentsCreated) {
1140             return;
1141         }
1142         copyToSizeToolBar.add(copyToSizeTableLabel);
1143         copyToSizeToolBar.add(copyAllButton);
1144         copyToSizeToolBar.add(copyNothingButton);
1145         copyToSizeToolBar.add(copySizesButton);
1146     }
1147 
1148     protected void addChildrenToDataFieldPanel() {
1149         if (!allComponentsCreated) {
1150             return;
1151         }
1152         dataFieldPanel.add(firstSplitPane, "lengthCaracteristicPmfm");
1153         dataFieldPanel.add(simpleCountingNumberPanel, "noLengthCaracteristicPmfm");
1154     }
1155 
1156     protected void addChildrenToDataInFrequenciesWarningContainer() {
1157         if (!allComponentsCreated) {
1158             return;
1159         }
1160         dataInFrequenciesWarningContainer.add(dataInFrequenciesWarning, BorderLayout.CENTER);
1161     }
1162 
1163     protected void addChildrenToEditSpeciesFrequenciesTopPanel() {
1164         if (!allComponentsCreated) {
1165             return;
1166         }
1167         add(speciesFrequencyTabToolBar);
1168         add(frequenciesToolBar);
1169         add(copyToSizeToolBar);
1170         add(configurationPanel, BorderLayout.CENTER);
1171         add(actionPanel, BorderLayout.SOUTH);
1172     }
1173 
1174     protected void addChildrenToFirstSplitPane() {
1175         if (!allComponentsCreated) {
1176             return;
1177         }
1178         firstSplitPane.add(frequenciesTitlePanel, JSplitPane.LEFT);
1179         firstSplitPane.add(SwingUtil.boxComponentWithJxLayer(obsPanel), JSplitPane.RIGHT);
1180     }
1181 
1182     protected void addChildrenToFrequenciesPanel() {
1183         if (!allComponentsCreated) {
1184             return;
1185         }
1186         frequenciesPanel.add(lengthstepSettingsBlock, BorderLayout.NORTH);
1187         frequenciesPanel.add(secondSplitPane, BorderLayout.CENTER);
1188     }
1189 
1190     protected void addChildrenToFrequenciesTitlePanel() {
1191         if (!allComponentsCreated) {
1192             return;
1193         }
1194         frequenciesTitlePanel.add(frequenciesPanel);
1195     }
1196 
1197     protected void addChildrenToFrequenciesToolBar() {
1198         if (!allComponentsCreated) {
1199             return;
1200         }
1201         frequenciesToolBar.add(copyRtpWeightsCheckBox);
1202         frequenciesToolBar.add(graphAverageWeightButton);
1203     }
1204 
1205     protected void addChildrenToFrequencyModeButton() {
1206         if (!allComponentsCreated) {
1207             return;
1208         }
1209         { ButtonGroup $buttonGroup = mode; frequencyModeButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(frequencyModeButton); }
1210     }
1211 
1212     protected void addChildrenToFrequencyModePanel() {
1213         if (!allComponentsCreated) {
1214             return;
1215         }
1216         frequencyModePanel.add(simpleCountingModeButton);
1217         frequencyModePanel.add(frequencyModeButton);
1218     }
1219 
1220     protected void addChildrenToLengthStepCaracteristicPanel() {
1221         if (!allComponentsCreated) {
1222             return;
1223         }
1224         lengthStepCaracteristicPanel.add(lengthStepCaracteristicLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1225         lengthStepCaracteristicPanel.add(SwingUtil.boxComponentWithJxLayer(lengthStepCaracteristicComboBox), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1226         lengthStepCaracteristicPanel.add(addLengthStepCaracteristicButton, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1227         lengthStepCaracteristicPanel.add(stepLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1228         lengthStepCaracteristicPanel.add(SwingUtil.boxComponentWithJxLayer(stepField), new GridBagConstraints(1, 1, 2, 1, 1.0, 0.0, 17, 1, new Insets(3, 3, 3, 3), 0, 0));
1229     }
1230 
1231     protected void addChildrenToLengthstepSettingsBlock() {
1232         if (!allComponentsCreated) {
1233             return;
1234         }
1235         lengthstepSettingsBlock.add(totalNumberLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, 13, 1, new Insets(3, 3, 3, 3), 0, 0));
1236         lengthstepSettingsBlock.add(totalNumberField, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1237         lengthstepSettingsBlock.add(totalWeightLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1238         lengthstepSettingsBlock.add(SwingUtil.boxComponentWithJxLayer(totalWeightField), new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1239     }
1240 
1241     protected void addChildrenToLogsScrollPane() {
1242         if (!allComponentsCreated) {
1243             return;
1244         }
1245         logsScrollPane.getViewport().add(logsTable);
1246     }
1247 
1248     protected void addChildrenToMenu() {
1249         if (!allComponentsCreated) {
1250             return;
1251         }
1252         menu.add(menuAction);
1253     }
1254 
1255     protected void addChildrenToMenuAction() {
1256         if (!allComponentsCreated) {
1257             return;
1258         }
1259         menuAction.add(searchSpeciesInPrevCatchesButton);
1260         menuAction.add(searchSpeciesInNextCatchesButton);
1261         menuAction.add(menuImportMultiPost);
1262         menuAction.add(menuExportMultiPost);
1263     }
1264 
1265     protected void addChildrenToMenuExportMultiPost() {
1266         if (!allComponentsCreated) {
1267             return;
1268         }
1269         menuExportMultiPost.add(exportMultiPostFullButton);
1270         menuExportMultiPost.add(exportMultiPostOnlyFrequenciesButton);
1271         menuExportMultiPost.add(exportMultiPostOnlyIndividualObservationsButton);
1272     }
1273 
1274     protected void addChildrenToMenuImportMultiPost() {
1275         if (!allComponentsCreated) {
1276             return;
1277         }
1278         menuImportMultiPost.add(importMultiPostFullButton);
1279         menuImportMultiPost.add(importMultiPostOnlyFrequenciesButton);
1280         menuImportMultiPost.add(importMultiPostOnlyIndividualObservationsButton);
1281     }
1282 
1283     protected void addChildrenToModeConfigurationPanel() {
1284         if (!allComponentsCreated) {
1285             return;
1286         }
1287         modeConfigurationPanel.add(autoGenModePanel, "autoGenMode");
1288         modeConfigurationPanel.add(rafaleModePanel, "rafaleMode");
1289     }
1290 
1291     protected void addChildrenToModePanel() {
1292         if (!allComponentsCreated) {
1293             return;
1294         }
1295         modePanel.add(autoGenModeButton);
1296         modePanel.add(rafaleModeButton);
1297     }
1298 
1299     protected void addChildrenToObsCaracteristicMapEditorReminderLabel() {
1300         if (!allComponentsCreated) {
1301             return;
1302         }
1303         obsCaracteristicMapEditorReminderLabel.add(obsCaracteristicCaracteristicMapEditor);
1304     }
1305 
1306     protected void addChildrenToObsPanel() {
1307         if (!allComponentsCreated) {
1308             return;
1309         }
1310         obsPanel.add(obsTableTitlePanel, SpeciesFrequencyUIHandler.OBS_TABLE_CARD);
1311         obsPanel.add(obsCaracteristicMapEditorReminderLabel, SpeciesFrequencyUIHandler.EDIT_CARACTERISTICS_CARD);
1312     }
1313 
1314     protected void addChildrenToObsTablePopup() {
1315         if (!allComponentsCreated) {
1316             return;
1317         }
1318         obsTablePopup.add(deleteObsRowsMenu);
1319         obsTablePopup.add(editSampleCodeMenu);
1320         obsTablePopup.add(deleteSampleCodeMenu);
1321     }
1322 
1323     protected void addChildrenToObsTableTitlePanel() {
1324         if (!allComponentsCreated) {
1325             return;
1326         }
1327         obsTableTitlePanel.add($JScrollPane0);
1328     }
1329 
1330     protected void addChildrenToRafaleModeButton() {
1331         if (!allComponentsCreated) {
1332             return;
1333         }
1334         { ButtonGroup $buttonGroup = frequenciesMode; rafaleModeButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(rafaleModeButton); }
1335     }
1336 
1337     protected void addChildrenToRafaleModePanel() {
1338         if (!allComponentsCreated) {
1339             return;
1340         }
1341         rafaleModePanel.add(rafaleStepLabel, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1342         rafaleModePanel.add(rafaleStepField, new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1343         rafaleModePanel.add(addIndividualObservationCheckBox, new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
1344     }
1345 
1346     protected void addChildrenToSecondSplitPane() {
1347         if (!allComponentsCreated) {
1348             return;
1349         }
1350         secondSplitPane.add(logsScrollPane, JSplitPane.LEFT);
1351         secondSplitPane.add(SwingUtil.boxComponentWithJxLayer(tableScrollPane), JSplitPane.RIGHT);
1352     }
1353 
1354     protected void addChildrenToSimpleCountingModeButton() {
1355         if (!allComponentsCreated) {
1356             return;
1357         }
1358         { ButtonGroup $buttonGroup = mode; simpleCountingModeButton.putClientProperty("$buttonGroup", $buttonGroup); $buttonGroup.add(simpleCountingModeButton); }
1359     }
1360 
1361     protected void addChildrenToSimpleCountingNumberPanel() {
1362         if (!allComponentsCreated) {
1363             return;
1364         }
1365         simpleCountingNumberPanel.add(dataInFrequenciesWarningContainer, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
1366         simpleCountingNumberPanel.add(simpleCountingNumberLabel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
1367         simpleCountingNumberPanel.add(simpleCountingNumberField, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
1368         simpleCountingNumberPanel.add(simpleCountingWeightLabel, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
1369         simpleCountingNumberPanel.add(simpleCountingWeightField, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, 10, 2, new Insets(3, 3, 3, 3), 0, 0));
1370     }
1371 
1372     protected void addChildrenToSpeciesFrequencyTabToolBar() {
1373         if (!allComponentsCreated) {
1374             return;
1375         }
1376         speciesFrequencyTabToolBar.add(menu);
1377     }
1378 
1379     protected void addChildrenToTableScrollPane() {
1380         if (!allComponentsCreated) {
1381             return;
1382         }
1383         tableScrollPane.getViewport().add(table);
1384     }
1385 
1386     protected void addChildrenToValidator() {
1387         if (!allComponentsCreated) {
1388             return;
1389         }
1390         validator.setUiClass(ImageValidationUI.class);
1391         validator.setBean(model);
1392     }
1393 
1394     protected void createActionPanel() {
1395         $objectMap.put("actionPanel", actionPanel = new JPanel());
1396         
1397         actionPanel.setName("actionPanel");
1398         actionPanel.setLayout(new GridLayout(1, 0));
1399         SwingUtil.setComponentHeight(actionPanel,50);
1400     }
1401 
1402     protected void createAddIndividualObservationCheckBox() {
1403         $objectMap.put("addIndividualObservationCheckBox", addIndividualObservationCheckBox = new JCheckBox());
1404         
1405         addIndividualObservationCheckBox.setName("addIndividualObservationCheckBox");
1406         addIndividualObservationCheckBox.setText(t("tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale"));
1407         addIndividualObservationCheckBox.setToolTipText(t("tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.tip"));
1408         addIndividualObservationCheckBox.addItemListener(JAXXUtil.getEventListener(ItemListener.class, "itemStateChanged", this, "doItemStateChanged__on__addIndividualObservationCheckBox"));
1409         addIndividualObservationCheckBox.putClientProperty("help", "tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.help");
1410     }
1411 
1412     protected void createAddLengthStepCaracteristicAction() {
1413         $objectMap.put("addLengthStepCaracteristicAction", addLengthStepCaracteristicAction = new AddSpeciesFrequencyLengthStepCaracteristicAction(this));
1414     }
1415 
1416     protected void createAddLengthStepCaracteristicButton() {
1417         $objectMap.put("addLengthStepCaracteristicButton", addLengthStepCaracteristicButton = new JButton());
1418         
1419         addLengthStepCaracteristicButton.setName("addLengthStepCaracteristicButton");
1420         addLengthStepCaracteristicButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.help");
1421     }
1422 
1423     protected void createAutoGenModeButton() {
1424         $objectMap.put("autoGenModeButton", autoGenModeButton = new JRadioButton());
1425         
1426         autoGenModeButton.setName("autoGenModeButton");
1427         autoGenModeButton.setText(t("tutti.editSpeciesFrequencies.field.frequencyMode.autoGen"));
1428         { autoGenModeButton.putClientProperty("$value", "autoGenMode");  Object $buttonGroup = autoGenModeButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1429         
1430         autoGenModeButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.tip"));
1431         autoGenModeButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__autoGenModeButton"));
1432         autoGenModeButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.help");
1433     }
1434 
1435     protected void createAutoGenModePanel() {
1436         $objectMap.put("autoGenModePanel", autoGenModePanel = new Table());
1437         
1438         autoGenModePanel.setName("autoGenModePanel");
1439     }
1440 
1441     protected void createBroker() {
1442         $objectMap.put("broker", broker = new TuttiHelpBroker("tutti.editSpeciesFrequencies.help"));
1443     }
1444 
1445     protected void createCancelButton() {
1446         $objectMap.put("cancelButton", cancelButton = new JButton());
1447         
1448         cancelButton.setName("cancelButton");
1449         cancelButton.setText(t("tutti.editSpeciesFrequencies.action.cancel"));
1450         cancelButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.cancel.tip"));
1451         cancelButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.cancel.help");
1452         cancelButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.CancelEditSpeciesFrequencyAction.class);
1453     }
1454 
1455     protected void createConfigurationPanel() {
1456         $objectMap.put("configurationPanel", configurationPanel = new Table());
1457         
1458         configurationPanel.setName("configurationPanel");
1459     }
1460 
1461     protected void createCopyAllButton() {
1462         $objectMap.put("copyAllButton", copyAllButton = new JRadioButton());
1463         
1464         copyAllButton.setName("copyAllButton");
1465         copyAllButton.setText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all"));
1466         { copyAllButton.putClientProperty("$value", "all");  Object $buttonGroup = copyAllButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1467         
1468         copyAllButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.tip"));
1469         copyAllButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__copyAllButton"));
1470         copyAllButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.help");
1471     }
1472 
1473     protected void createCopyNothingButton() {
1474         $objectMap.put("copyNothingButton", copyNothingButton = new JRadioButton());
1475         
1476         copyNothingButton.setName("copyNothingButton");
1477         copyNothingButton.setText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing"));
1478         { copyNothingButton.putClientProperty("$value", "nothing");  Object $buttonGroup = copyNothingButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1479         
1480         copyNothingButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.tip"));
1481         copyNothingButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__copyNothingButton"));
1482         copyNothingButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.help");
1483     }
1484 
1485     protected void createCopyRtpWeightsCheckBox() {
1486         $objectMap.put("copyRtpWeightsCheckBox", copyRtpWeightsCheckBox = new JCheckBox());
1487         
1488         copyRtpWeightsCheckBox.setName("copyRtpWeightsCheckBox");
1489         copyRtpWeightsCheckBox.setText(t("tutti.editSpeciesFrequencies.field.copyRtpWeights"));
1490         copyRtpWeightsCheckBox.setToolTipText(t("tutti.editSpeciesFrequencies.field.copyRtpWeights.tip"));
1491         copyRtpWeightsCheckBox.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__copyRtpWeightsCheckBox"));
1492         copyRtpWeightsCheckBox.putClientProperty("help", "tutti.editSpeciesFrequencies.field.copyRtpWeights.help");
1493     }
1494 
1495     protected void createCopySizesButton() {
1496         $objectMap.put("copySizesButton", copySizesButton = new JRadioButton());
1497         
1498         copySizesButton.setName("copySizesButton");
1499         copySizesButton.setText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size"));
1500         { copySizesButton.putClientProperty("$value", "size");  Object $buttonGroup = copySizesButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1501         
1502         copySizesButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.tip"));
1503         copySizesButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__copySizesButton"));
1504         copySizesButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.help");
1505     }
1506 
1507     protected void createCopyToSizeTableLabel() {
1508         $objectMap.put("copyToSizeTableLabel", copyToSizeTableLabel = new JLabel());
1509         
1510         copyToSizeTableLabel.setName("copyToSizeTableLabel");
1511         if (copyToSizeTableLabel.getFont() != null) {
1512             copyToSizeTableLabel.setFont(copyToSizeTableLabel.getFont().deriveFont(copyToSizeTableLabel.getFont().getStyle() | Font.BOLD));
1513         }
1514         copyToSizeTableLabel.setText(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.label"));
1515     }
1516 
1517     protected void createCopyToSizeTableMode() {
1518         $objectMap.put("copyToSizeTableMode", copyToSizeTableMode = new JAXXButtonGroup());
1519     }
1520 
1521     protected void createCopyToSizeToolBar() {
1522         $objectMap.put("copyToSizeToolBar", copyToSizeToolBar = new JToolBar());
1523         
1524         copyToSizeToolBar.setName("copyToSizeToolBar");
1525         copyToSizeToolBar.setBorderPainted(false);
1526         copyToSizeToolBar.setOpaque(false);
1527         copyToSizeToolBar.setFloatable(false);
1528     }
1529 
1530     protected void createDataFieldLayout() {
1531         $objectMap.put("dataFieldLayout", dataFieldLayout = new CardLayout2Ext(this, "dataFieldPanel"));
1532     }
1533 
1534     protected void createDataFieldPanel() {
1535         $objectMap.put("dataFieldPanel", dataFieldPanel = new JPanel());
1536         
1537         dataFieldPanel.setName("dataFieldPanel");
1538         dataFieldPanel.setLayout(dataFieldLayout);
1539     }
1540 
1541     protected void createDataInFrequenciesWarning() {
1542         $objectMap.put("dataInFrequenciesWarning", dataInFrequenciesWarning = new JLabel());
1543         
1544         dataInFrequenciesWarning.setName("dataInFrequenciesWarning");
1545         dataInFrequenciesWarning.setText(t("tutti.editSpeciesFrequencies.simpleCountingAndFrequencies"));
1546     }
1547 
1548     protected void createDataInFrequenciesWarningContainer() {
1549         $objectMap.put("dataInFrequenciesWarningContainer", dataInFrequenciesWarningContainer = new JPanel());
1550         
1551         dataInFrequenciesWarningContainer.setName("dataInFrequenciesWarningContainer");
1552         dataInFrequenciesWarningContainer.setLayout(new BorderLayout(10, 10));
1553     }
1554 
1555     protected void createDeleteObsRowsMenu() {
1556         $objectMap.put("deleteObsRowsMenu", deleteObsRowsMenu = new JMenuItem());
1557         
1558         deleteObsRowsMenu.setName("deleteObsRowsMenu");
1559         deleteObsRowsMenu.setText(t("tutti.editSpeciesFrequencies.action.removeObservation"));
1560         deleteObsRowsMenu.setToolTipText(t("tutti.editSpeciesFrequencies.action.removeObservation.tip"));
1561         deleteObsRowsMenu.putClientProperty("help", "tutti.editSpeciesFrequencies.action.removeObservation.help");
1562         deleteObsRowsMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.RemoveObservationAction.class);
1563     }
1564 
1565     protected void createDeleteSampleCodeMenu() {
1566         $objectMap.put("deleteSampleCodeMenu", deleteSampleCodeMenu = new JMenuItem());
1567         
1568         deleteSampleCodeMenu.setName("deleteSampleCodeMenu");
1569         deleteSampleCodeMenu.setText(t("tutti.editSpeciesFrequencies.action.deleteSampleCode"));
1570         deleteSampleCodeMenu.setToolTipText(t("tutti.editSpeciesFrequencies.action.deleteSampleCode.tip"));
1571         deleteSampleCodeMenu.putClientProperty("help", "tutti.editSpeciesFrequencies.action.deleteSampleCode.help");
1572         deleteSampleCodeMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.DeleteSampleCodeAction.class);
1573     }
1574 
1575     protected void createEditSampleCodeMenu() {
1576         $objectMap.put("editSampleCodeMenu", editSampleCodeMenu = new JMenuItem());
1577         
1578         editSampleCodeMenu.setName("editSampleCodeMenu");
1579         editSampleCodeMenu.setText(t("tutti.editSpeciesFrequencies.action.editSampleCode"));
1580         editSampleCodeMenu.setToolTipText(t("tutti.editSpeciesFrequencies.action.editSampleCode.tip"));
1581         editSampleCodeMenu.putClientProperty("help", "tutti.editSpeciesFrequencies.action.editSampleCode.help");
1582         editSampleCodeMenu.putClientProperty("simpleAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.EditSampleCodeAction.class);
1583     }
1584 
1585     protected void createExportMultiPostFullButton() {
1586         $objectMap.put("exportMultiPostFullButton", exportMultiPostFullButton = new JMenuItem());
1587         
1588         exportMultiPostFullButton.setName("exportMultiPostFullButton");
1589         exportMultiPostFullButton.setText(t("tutti.editSpeciesFrequencies.action.exportMultiPostFull"));
1590         exportMultiPostFullButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.exportMultiPostFull.tip"));
1591         exportMultiPostFullButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.exportMultiPostFull.help");
1592         exportMultiPostFullButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesFullAction.class);
1593     }
1594 
1595     protected void createExportMultiPostOnlyFrequenciesButton() {
1596         $objectMap.put("exportMultiPostOnlyFrequenciesButton", exportMultiPostOnlyFrequenciesButton = new JMenuItem());
1597         
1598         exportMultiPostOnlyFrequenciesButton.setName("exportMultiPostOnlyFrequenciesButton");
1599         exportMultiPostOnlyFrequenciesButton.setText(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies"));
1600         exportMultiPostOnlyFrequenciesButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.tip"));
1601         exportMultiPostOnlyFrequenciesButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.help");
1602         exportMultiPostOnlyFrequenciesButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesOnlyFrequenciesAction.class);
1603     }
1604 
1605     protected void createExportMultiPostOnlyIndividualObservationsButton() {
1606         $objectMap.put("exportMultiPostOnlyIndividualObservationsButton", exportMultiPostOnlyIndividualObservationsButton = new JMenuItem());
1607         
1608         exportMultiPostOnlyIndividualObservationsButton.setName("exportMultiPostOnlyIndividualObservationsButton");
1609         exportMultiPostOnlyIndividualObservationsButton.setText(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations"));
1610         exportMultiPostOnlyIndividualObservationsButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.tip"));
1611         exportMultiPostOnlyIndividualObservationsButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.help");
1612         exportMultiPostOnlyIndividualObservationsButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ExportMultiPostSpeciesOnlyIndividualObservationsAction.class);
1613     }
1614 
1615     protected void createFirstSplitPane() {
1616         $objectMap.put("firstSplitPane", firstSplitPane = new JSplitPane());
1617         
1618         firstSplitPane.setName("firstSplitPane");
1619         firstSplitPane.setOneTouchExpandable(true);
1620         firstSplitPane.setResizeWeight(0.6);
1621     }
1622 
1623     protected void createFrequenciesMode() {
1624         $objectMap.put("frequenciesMode", frequenciesMode = new JAXXButtonGroup());
1625     }
1626 
1627     protected void createFrequenciesPanel() {
1628         $objectMap.put("frequenciesPanel", frequenciesPanel = new JPanel());
1629         
1630         frequenciesPanel.setName("frequenciesPanel");
1631         frequenciesPanel.setLayout(new BorderLayout());
1632     }
1633 
1634     protected void createFrequenciesTitlePanel() {
1635         $objectMap.put("frequenciesTitlePanel", frequenciesTitlePanel = new JXTitledPanel());
1636         
1637         frequenciesTitlePanel.setName("frequenciesTitlePanel");
1638         frequenciesTitlePanel.setTitle(t("tutti.editSpeciesFrequencies.frequenciesPanel"));
1639     }
1640 
1641     protected void createFrequenciesToolBar() {
1642         $objectMap.put("frequenciesToolBar", frequenciesToolBar = new JToolBar());
1643         
1644         frequenciesToolBar.setName("frequenciesToolBar");
1645         frequenciesToolBar.setBorderPainted(false);
1646         frequenciesToolBar.setOpaque(false);
1647         frequenciesToolBar.setFloatable(false);
1648     }
1649 
1650     protected void createFrequencyModeButton() {
1651         $objectMap.put("frequencyModeButton", frequencyModeButton = new JRadioButton());
1652         
1653         frequencyModeButton.setName("frequencyModeButton");
1654         frequencyModeButton.setText(t("tutti.editSpeciesFrequencies.field.mode.frequencyMode"));
1655         { frequencyModeButton.putClientProperty("$value", "frequenciesMode");  Object $buttonGroup = frequencyModeButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1656         
1657         frequencyModeButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.mode.frequencyMode.tip"));
1658         frequencyModeButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__frequencyModeButton"));
1659         frequencyModeButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.mode.frequencyMode.help");
1660     }
1661 
1662     protected void createFrequencyModePanel() {
1663         $objectMap.put("frequencyModePanel", frequencyModePanel = new HBox());
1664         
1665         frequencyModePanel.setName("frequencyModePanel");
1666     }
1667 
1668     protected void createGenerateButton() {
1669         $objectMap.put("generateButton", generateButton = new JButton());
1670         
1671         generateButton.setName("generateButton");
1672         generateButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.generate.help");
1673     }
1674 
1675     protected void createGenerateLengthStepsAction() {
1676         $objectMap.put("generateLengthStepsAction", generateLengthStepsAction = new GenerateSpeciesFrequencyLengthStepsAction(this));
1677     }
1678 
1679     protected void createGraphAverageWeightButton() {
1680         $objectMap.put("graphAverageWeightButton", graphAverageWeightButton = new JButton());
1681         
1682         graphAverageWeightButton.setName("graphAverageWeightButton");
1683         graphAverageWeightButton.setText(t("tutti.editSpeciesFrequencies.field.graphAverageWeight"));
1684         graphAverageWeightButton.putClientProperty("skipAction", true);
1685     }
1686 
1687     protected SpeciesFrequencyUIHandler createHandler() {
1688         return new SpeciesFrequencyUIHandler();
1689     }
1690 
1691     protected void createHistogramPanel() {
1692         $objectMap.put("histogramPanel", histogramPanel = new JPanel());
1693         
1694         histogramPanel.setName("histogramPanel");
1695         histogramPanel.setLayout(new BorderLayout());
1696     }
1697 
1698     protected void createImportMultiPostFullButton() {
1699         $objectMap.put("importMultiPostFullButton", importMultiPostFullButton = new JMenuItem());
1700         
1701         importMultiPostFullButton.setName("importMultiPostFullButton");
1702         importMultiPostFullButton.setText(t("tutti.editSpeciesFrequencies.action.importMultiPostFull"));
1703         importMultiPostFullButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.importMultiPostFull.tip"));
1704         importMultiPostFullButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.importMultiPostFull.help");
1705         importMultiPostFullButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesFullAction.class);
1706     }
1707 
1708     protected void createImportMultiPostOnlyFrequenciesButton() {
1709         $objectMap.put("importMultiPostOnlyFrequenciesButton", importMultiPostOnlyFrequenciesButton = new JMenuItem());
1710         
1711         importMultiPostOnlyFrequenciesButton.setName("importMultiPostOnlyFrequenciesButton");
1712         importMultiPostOnlyFrequenciesButton.setText(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies"));
1713         importMultiPostOnlyFrequenciesButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.tip"));
1714         importMultiPostOnlyFrequenciesButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.help");
1715         importMultiPostOnlyFrequenciesButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesOnlyFrequenciesAction.class);
1716     }
1717 
1718     protected void createImportMultiPostOnlyIndividualObservationsButton() {
1719         $objectMap.put("importMultiPostOnlyIndividualObservationsButton", importMultiPostOnlyIndividualObservationsButton = new JMenuItem());
1720         
1721         importMultiPostOnlyIndividualObservationsButton.setName("importMultiPostOnlyIndividualObservationsButton");
1722         importMultiPostOnlyIndividualObservationsButton.setText(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations"));
1723         importMultiPostOnlyIndividualObservationsButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.tip"));
1724         importMultiPostOnlyIndividualObservationsButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.help");
1725         importMultiPostOnlyIndividualObservationsButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ImportMultiPostSpeciesOnlyIndividualObservationsAction.class);
1726     }
1727 
1728     protected void createLengthStepCaracteristicComboBox() {
1729         $objectMap.put("lengthStepCaracteristicComboBox", lengthStepCaracteristicComboBox = new WideDataBeanFilterableComboBox<Caracteristic>(this));
1730         
1731         lengthStepCaracteristicComboBox.setName("lengthStepCaracteristicComboBox");
1732         lengthStepCaracteristicComboBox.setProperty("lengthStepCaracteristic");
1733         lengthStepCaracteristicComboBox.setShowReset(true);
1734         lengthStepCaracteristicComboBox.putClientProperty("help", "tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.help");
1735         lengthStepCaracteristicComboBox.putClientProperty("validatorLabel", t("tutti.editSpeciesFrequencies.field.lengthStepCaracteristic"));
1736     }
1737 
1738     protected void createLengthStepCaracteristicLabel() {
1739         $objectMap.put("lengthStepCaracteristicLabel", lengthStepCaracteristicLabel = new JLabel());
1740         
1741         lengthStepCaracteristicLabel.setName("lengthStepCaracteristicLabel");
1742         lengthStepCaracteristicLabel.setText(t("tutti.editSpeciesFrequencies.field.lengthStepCaracteristic"));
1743         lengthStepCaracteristicLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.tip"));
1744         lengthStepCaracteristicLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.help");
1745     }
1746 
1747     protected void createLengthStepCaracteristicPanel() {
1748         $objectMap.put("lengthStepCaracteristicPanel", lengthStepCaracteristicPanel = new Table());
1749         
1750         lengthStepCaracteristicPanel.setName("lengthStepCaracteristicPanel");
1751     }
1752 
1753     protected void createLengthstepSettingsBlock() {
1754         $objectMap.put("lengthstepSettingsBlock", lengthstepSettingsBlock = new Table());
1755         
1756         lengthstepSettingsBlock.setName("lengthstepSettingsBlock");
1757     }
1758 
1759     protected void createLogsScrollPane() {
1760         $objectMap.put("logsScrollPane", logsScrollPane = new JScrollPane());
1761         
1762         logsScrollPane.setName("logsScrollPane");
1763     }
1764 
1765     protected void createLogsTable() {
1766         $objectMap.put("logsTable", logsTable = new JXTable());
1767         
1768         logsTable.setName("logsTable");
1769         logsTable.setSortable(false);
1770     }
1771 
1772     protected void createMaxStepField() {
1773         $objectMap.put("maxStepField", maxStepField = new NumberEditor(this));
1774         
1775         maxStepField.setName("maxStepField");
1776         maxStepField.setProperty("maxStep");
1777         maxStepField.setShowReset(true);
1778         maxStepField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.maxStep.help");
1779         maxStepField.putClientProperty("selectOnFocus", true);
1780     }
1781 
1782     protected void createMaxStepLabel() {
1783         $objectMap.put("maxStepLabel", maxStepLabel = new JLabel());
1784         
1785         maxStepLabel.setName("maxStepLabel");
1786         maxStepLabel.setText(t("tutti.editSpeciesFrequencies.field.maxStep"));
1787         maxStepLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.maxStep.tip"));
1788         maxStepLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.maxStep.help");
1789     }
1790 
1791     protected void createMenu() {
1792         $objectMap.put("menu", menu = new JMenuBar());
1793         
1794         menu.setName("menu");
1795     }
1796 
1797     protected void createMenuAction() {
1798         $objectMap.put("menuAction", menuAction = new JMenu());
1799         
1800         menuAction.setName("menuAction");
1801         menuAction.setOpaque(true);
1802         menuAction.setText(t("tutti.toolbar.menu.action"));
1803         menuAction.setToolTipText(t("tutti.toolbar.menu.action.tip"));
1804     }
1805 
1806     protected void createMenuExportMultiPost() {
1807         $objectMap.put("menuExportMultiPost", menuExportMultiPost = new JMenu());
1808         
1809         menuExportMultiPost.setName("menuExportMultiPost");
1810         menuExportMultiPost.setOpaque(true);
1811         menuExportMultiPost.setText(t("tutti.toolbar.menuExportMultiPost.action"));
1812         menuExportMultiPost.setToolTipText(t("tutti.toolbar.menuExportMultiPost.action.tip"));
1813     }
1814 
1815     protected void createMenuImportMultiPost() {
1816         $objectMap.put("menuImportMultiPost", menuImportMultiPost = new JMenu());
1817         
1818         menuImportMultiPost.setName("menuImportMultiPost");
1819         menuImportMultiPost.setOpaque(true);
1820         menuImportMultiPost.setText(t("tutti.toolbar.menuImportMultiPost.action"));
1821         menuImportMultiPost.setToolTipText(t("tutti.toolbar.menuImportMultiPost.action.tip"));
1822     }
1823 
1824     protected void createMinStepField() {
1825         $objectMap.put("minStepField", minStepField = new NumberEditor(this));
1826         
1827         minStepField.setName("minStepField");
1828         minStepField.setProperty("minStep");
1829         minStepField.setShowReset(true);
1830         minStepField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.minStep.help");
1831         minStepField.putClientProperty("selectOnFocus", true);
1832     }
1833 
1834     protected void createMinStepLabel() {
1835         $objectMap.put("minStepLabel", minStepLabel = new JLabel());
1836         
1837         minStepLabel.setName("minStepLabel");
1838         minStepLabel.setText(t("tutti.editSpeciesFrequencies.field.minStep"));
1839         minStepLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.minStep.tip"));
1840         minStepLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.minStep.help");
1841     }
1842 
1843     protected void createMode() {
1844         $objectMap.put("mode", mode = new JAXXButtonGroup());
1845     }
1846 
1847     protected void createModeConfigurationLayout() {
1848         $objectMap.put("modeConfigurationLayout", modeConfigurationLayout = new CardLayout2Ext(this, "modeConfigurationPanel"));
1849     }
1850 
1851     protected void createModeConfigurationPanel() {
1852         $objectMap.put("modeConfigurationPanel", modeConfigurationPanel = new JPanel());
1853         
1854         modeConfigurationPanel.setName("modeConfigurationPanel");
1855         modeConfigurationPanel.setLayout(modeConfigurationLayout);
1856     }
1857 
1858     protected void createModePanel() {
1859         $objectMap.put("modePanel", modePanel = new VBox());
1860         
1861         modePanel.setName("modePanel");
1862     }
1863 
1864     protected void createModel() {
1865         $objectMap.put("model", model = getContextValue(SpeciesFrequencyUIModel.class));
1866     }
1867 
1868     protected void createObsCaracteristicCaracteristicMapEditor() {
1869         $objectMap.put("obsCaracteristicCaracteristicMapEditor", obsCaracteristicCaracteristicMapEditor = new CaracteristicMapEditorUI(this));
1870         
1871         obsCaracteristicCaracteristicMapEditor.setName("obsCaracteristicCaracteristicMapEditor");
1872     }
1873 
1874     protected void createObsCaracteristicMapEditorReminderLabel() {
1875         $objectMap.put("obsCaracteristicMapEditorReminderLabel", obsCaracteristicMapEditorReminderLabel = new JXTitledPanel());
1876         
1877         obsCaracteristicMapEditorReminderLabel.setName("obsCaracteristicMapEditorReminderLabel");
1878     }
1879 
1880     protected void createObsPanel() {
1881         $objectMap.put("obsPanel", obsPanel = new JPanel());
1882         
1883         obsPanel.setName("obsPanel");
1884         obsPanel.setLayout(obsPanelLayout);
1885     }
1886 
1887     protected void createObsPanelLayout() {
1888         $objectMap.put("obsPanelLayout", obsPanelLayout = new CardLayout2Ext(this, "obsPanel"));
1889     }
1890 
1891     protected void createObsTable() {
1892         $objectMap.put("obsTable", obsTable = new JXTable());
1893         
1894         obsTable.setName("obsTable");
1895         obsTable.setSortable(false);
1896         obsTable.addKeyListener(JAXXUtil.getEventListener(KeyListener.class, "keyPressed", this, "doKeyPressed__on__obsTable"));
1897         obsTable.addMouseListener(JAXXUtil.getEventListener(MouseListener.class, "mouseClicked", this, "doMouseClicked__on__obsTable"));
1898     }
1899 
1900     protected void createObsTablePopup() {
1901         $objectMap.put("obsTablePopup", obsTablePopup = new JPopupMenu());
1902         
1903         obsTablePopup.setName("obsTablePopup");
1904     }
1905 
1906     protected void createObsTableTitlePanel() {
1907         $objectMap.put("obsTableTitlePanel", obsTableTitlePanel = new JXTitledPanel());
1908         
1909         obsTableTitlePanel.setName("obsTableTitlePanel");
1910         obsTableTitlePanel.setTitle(t("tutti.editSpeciesFrequencies.individualObservationsPanel"));
1911     }
1912 
1913     protected void createRafaleModeButton() {
1914         $objectMap.put("rafaleModeButton", rafaleModeButton = new JRadioButton());
1915         
1916         rafaleModeButton.setName("rafaleModeButton");
1917         rafaleModeButton.setText(t("tutti.editSpeciesFrequencies.field.frequencyMode.rafale"));
1918         { rafaleModeButton.putClientProperty("$value", "rafaleMode");  Object $buttonGroup = rafaleModeButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
1919         
1920         rafaleModeButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.frequencyMode.rafale.tip"));
1921         rafaleModeButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__rafaleModeButton"));
1922         rafaleModeButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.mode.rafale.help");
1923     }
1924 
1925     protected void createRafaleModePanel() {
1926         $objectMap.put("rafaleModePanel", rafaleModePanel = new Table());
1927         
1928         rafaleModePanel.setName("rafaleModePanel");
1929     }
1930 
1931     protected void createRafaleStepField() {
1932         $objectMap.put("rafaleStepField", rafaleStepField = new NumberEditor(this));
1933         
1934         rafaleStepField.setName("rafaleStepField");
1935         rafaleStepField.setShowReset(true);
1936         rafaleStepField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.rafaleStep.help");
1937         rafaleStepField.putClientProperty("selectOnFocus", true);
1938     }
1939 
1940     protected void createRafaleStepLabel() {
1941         $objectMap.put("rafaleStepLabel", rafaleStepLabel = new JLabel());
1942         
1943         rafaleStepLabel.setName("rafaleStepLabel");
1944         rafaleStepLabel.setText(t("tutti.editSpeciesFrequencies.field.rafaleStep"));
1945         rafaleStepLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.rafaleStep.tip"));
1946         rafaleStepLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.rafaleStep.help");
1947     }
1948 
1949     protected void createResetButton() {
1950         $objectMap.put("resetButton", resetButton = new JButton());
1951         
1952         resetButton.setName("resetButton");
1953         resetButton.setText(t("tutti.editSpeciesFrequencies.action.reset"));
1954         resetButton.setToolTipText(t("tutti.editSpeciesFrequencies.action.reset.tip"));
1955         resetButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.reset.help");
1956         resetButton.putClientProperty("applicationAction", fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.actions.ResetSpeciesFrequencyAction.class);
1957     }
1958 
1959     protected void createSamplingResumeLabel() {
1960         $objectMap.put("samplingResumeLabel", samplingResumeLabel = new JLabel());
1961         
1962         samplingResumeLabel.setName("samplingResumeLabel");
1963         if (samplingResumeLabel.getFont() != null) {
1964             samplingResumeLabel.setFont(samplingResumeLabel.getFont().deriveFont((float) 15));
1965         }
1966     }
1967 
1968     protected void createSamplingWarningLabel() {
1969         $objectMap.put("samplingWarningLabel", samplingWarningLabel = new JLabel());
1970         
1971         samplingWarningLabel.setName("samplingWarningLabel");
1972         samplingWarningLabel.setOpaque(true);
1973         if (samplingWarningLabel.getFont() != null) {
1974             samplingWarningLabel.setFont(samplingWarningLabel.getFont().deriveFont((float) 16));
1975         }
1976     }
1977 
1978     protected void createSaveAndCloseAction() {
1979         $objectMap.put("saveAndCloseAction", saveAndCloseAction = new SaveAndCloseSpeciesFrequencyAction(this));
1980     }
1981 
1982     protected void createSaveAndCloseButton() {
1983         $objectMap.put("saveAndCloseButton", saveAndCloseButton = new JButton());
1984         
1985         saveAndCloseButton.setName("saveAndCloseButton");
1986         saveAndCloseButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.saveAndClose.help");
1987     }
1988 
1989     protected void createSaveAndContinueAction() {
1990         $objectMap.put("saveAndContinueAction", saveAndContinueAction = new SaveAndContinueSpeciesFrequencyAction(this));
1991     }
1992 
1993     protected void createSaveAndContinueButton() {
1994         $objectMap.put("saveAndContinueButton", saveAndContinueButton = new JButton());
1995         
1996         saveAndContinueButton.setName("saveAndContinueButton");
1997         saveAndContinueButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.saveAndContinue.help");
1998     }
1999 
2000     protected void createSaveAndStayAction() {
2001         $objectMap.put("saveAndStayAction", saveAndStayAction = new SaveAndStaySpeciesFrequencyAction(this));
2002     }
2003 
2004     protected void createSaveAndStayButton() {
2005         $objectMap.put("saveAndStayButton", saveAndStayButton = new JButton());
2006         
2007         saveAndStayButton.setName("saveAndStayButton");
2008         saveAndStayButton.putClientProperty("help", "tutti.editSpeciesFrequencies.action.saveAndStay.help");
2009     }
2010 
2011     protected void createSearchSpeciesInNextCatchesAction() {
2012         $objectMap.put("searchSpeciesInNextCatchesAction", searchSpeciesInNextCatchesAction = new SearchSpeciesInPrevOrNextCatchesAction(this, false));
2013     }
2014 
2015     protected void createSearchSpeciesInNextCatchesButton() {
2016         $objectMap.put("searchSpeciesInNextCatchesButton", searchSpeciesInNextCatchesButton = new JMenuItem());
2017         
2018         searchSpeciesInNextCatchesButton.setName("searchSpeciesInNextCatchesButton");
2019     }
2020 
2021     protected void createSearchSpeciesInPrevCatchesAction() {
2022         $objectMap.put("searchSpeciesInPrevCatchesAction", searchSpeciesInPrevCatchesAction = new SearchSpeciesInPrevOrNextCatchesAction(this, true));
2023     }
2024 
2025     protected void createSearchSpeciesInPrevCatchesButton() {
2026         $objectMap.put("searchSpeciesInPrevCatchesButton", searchSpeciesInPrevCatchesButton = new JMenuItem());
2027         
2028         searchSpeciesInPrevCatchesButton.setName("searchSpeciesInPrevCatchesButton");
2029     }
2030 
2031     protected void createSecondSplitPane() {
2032         $objectMap.put("secondSplitPane", secondSplitPane = new JSplitPane());
2033         
2034         secondSplitPane.setName("secondSplitPane");
2035         secondSplitPane.setOneTouchExpandable(true);
2036         secondSplitPane.setResizeWeight(0.1);
2037     }
2038 
2039     protected void createSimpleCountingModeButton() {
2040         $objectMap.put("simpleCountingModeButton", simpleCountingModeButton = new JRadioButton());
2041         
2042         simpleCountingModeButton.setName("simpleCountingModeButton");
2043         simpleCountingModeButton.setText(t("tutti.editSpeciesFrequencies.field.mode.simpleCounting"));
2044         { simpleCountingModeButton.putClientProperty("$value", "simpleCountingMode");  Object $buttonGroup = simpleCountingModeButton.getClientProperty("$buttonGroup"); if ($buttonGroup instanceof JAXXButtonGroup) { ((JAXXButtonGroup) $buttonGroup).updateSelectedValue(); } }
2045         
2046         simpleCountingModeButton.setToolTipText(t("tutti.editSpeciesFrequencies.field.mode.simpleCounting.tip"));
2047         simpleCountingModeButton.addActionListener(JAXXUtil.getEventListener(ActionListener.class, "actionPerformed", this, "doActionPerformed__on__simpleCountingModeButton"));
2048         simpleCountingModeButton.putClientProperty("help", "tutti.editSpeciesFrequencies.field.mode.simpleCounting.help");
2049     }
2050 
2051     protected void createSimpleCountingNumberField() {
2052         $objectMap.put("simpleCountingNumberField", simpleCountingNumberField = new NumberEditor(this));
2053         
2054         simpleCountingNumberField.setName("simpleCountingNumberField");
2055         simpleCountingNumberField.setProperty("simpleCount");
2056         simpleCountingNumberField.setShowReset(true);
2057         simpleCountingNumberField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.simpleCountingNumber.help");
2058         simpleCountingNumberField.putClientProperty("selectOnFocus", true);
2059     }
2060 
2061     protected void createSimpleCountingNumberLabel() {
2062         $objectMap.put("simpleCountingNumberLabel", simpleCountingNumberLabel = new JLabel());
2063         
2064         simpleCountingNumberLabel.setName("simpleCountingNumberLabel");
2065         simpleCountingNumberLabel.setText(t("tutti.editSpeciesFrequencies.field.simpleCountingNumber"));
2066         simpleCountingNumberLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.simpleCountingNumber.tip"));
2067         simpleCountingNumberLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.simpleCountingNumber.help");
2068     }
2069 
2070     protected void createSimpleCountingNumberPanel() {
2071         $objectMap.put("simpleCountingNumberPanel", simpleCountingNumberPanel = new Table());
2072         
2073         simpleCountingNumberPanel.setName("simpleCountingNumberPanel");
2074     }
2075 
2076     protected void createSimpleCountingWeightField() {
2077         $objectMap.put("simpleCountingWeightField", simpleCountingWeightField = new NumberEditor(this));
2078         
2079         simpleCountingWeightField.setName("simpleCountingWeightField");
2080         simpleCountingWeightField.setProperty("data");
2081         simpleCountingWeightField.setShowReset(true);
2082         simpleCountingWeightField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.simpleCountingWeight.help");
2083         simpleCountingWeightField.putClientProperty("selectOnFocus", true);
2084     }
2085 
2086     protected void createSimpleCountingWeightLabel() {
2087         $objectMap.put("simpleCountingWeightLabel", simpleCountingWeightLabel = new JLabel());
2088         
2089         simpleCountingWeightLabel.setName("simpleCountingWeightLabel");
2090         simpleCountingWeightLabel.setText(t("tutti.editSpeciesFrequencies.field.simpleCountingWeight"));
2091         simpleCountingWeightLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.simpleCountingWeight.tip"));
2092         simpleCountingWeightLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.simpleCountingWeight.help");
2093         simpleCountingWeightLabel.putClientProperty("addWeightUnit", handler.getConfig().getSpeciesWeightUnit());
2094     }
2095 
2096     protected void createSpeciesFrequencyTabToolBar() {
2097         $objectMap.put("speciesFrequencyTabToolBar", speciesFrequencyTabToolBar = new JToolBar());
2098         
2099         speciesFrequencyTabToolBar.setName("speciesFrequencyTabToolBar");
2100         speciesFrequencyTabToolBar.setBorderPainted(false);
2101         speciesFrequencyTabToolBar.setOpaque(true);
2102         speciesFrequencyTabToolBar.setFloatable(false);
2103     }
2104 
2105     protected void createStepField() {
2106         $objectMap.put("stepField", stepField = new NumberEditor(this));
2107         
2108         stepField.setName("stepField");
2109         stepField.setProperty("step");
2110         stepField.setShowReset(true);
2111         stepField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.step.help");
2112         stepField.putClientProperty("selectOnFocus", true);
2113         stepField.putClientProperty("validatorLabel", t("tutti.editSpeciesFrequencies.field.step"));
2114     }
2115 
2116     protected void createStepLabel() {
2117         $objectMap.put("stepLabel", stepLabel = new JLabel());
2118         
2119         stepLabel.setName("stepLabel");
2120         stepLabel.setText(t("tutti.editSpeciesFrequencies.field.step"));
2121         stepLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.step.tip"));
2122         stepLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.step.help");
2123     }
2124 
2125     protected void createTable() {
2126         $objectMap.put("table", table = new JXTable());
2127         
2128         table.setName("table");
2129         table.setSortable(false);
2130     }
2131 
2132     protected void createTableScrollPane() {
2133         $objectMap.put("tableScrollPane", tableScrollPane = new JScrollPane());
2134         
2135         tableScrollPane.setName("tableScrollPane");
2136         tableScrollPane.putClientProperty("validatorLabel", t("tutti.editSpeciesFrequencies.field.rows"));
2137     }
2138 
2139     protected void createTotalNumberField() {
2140         $objectMap.put("totalNumberField", totalNumberField = new JTextField());
2141         
2142         totalNumberField.setName("totalNumberField");
2143         totalNumberField.setColumns(15);
2144         totalNumberField.setEnabled(false);
2145         totalNumberField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.totalNumber.help");
2146         totalNumberField.putClientProperty("computed", true);
2147     }
2148 
2149     protected void createTotalNumberLabel() {
2150         $objectMap.put("totalNumberLabel", totalNumberLabel = new JLabel());
2151         
2152         totalNumberLabel.setName("totalNumberLabel");
2153         totalNumberLabel.setText(t("tutti.editSpeciesFrequencies.field.totalNumber"));
2154         totalNumberLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.totalNumber.tip"));
2155         totalNumberLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.totalNumber.help");
2156     }
2157 
2158     protected void createTotalWeightField() {
2159         $objectMap.put("totalWeightField", totalWeightField = new ComputableDataEditor<Float>(this));
2160         
2161         totalWeightField.setName("totalWeightField");
2162         totalWeightField.setShowReset(true);
2163         totalWeightField.putClientProperty("help", "tutti.editSpeciesFrequencies.field.totalWeight.help");
2164         totalWeightField.putClientProperty("selectOnFocus", true);
2165         totalWeightField.putClientProperty("validatorLabel", t("tutti.editSpeciesFrequencies.field.totalWeight"));
2166     }
2167 
2168     protected void createTotalWeightLabel() {
2169         $objectMap.put("totalWeightLabel", totalWeightLabel = new JLabel());
2170         
2171         totalWeightLabel.setName("totalWeightLabel");
2172         totalWeightLabel.setText(t("tutti.editSpeciesFrequencies.field.totalWeight"));
2173         totalWeightLabel.setToolTipText(t("tutti.editSpeciesFrequencies.field.totalWeight.tip"));
2174         totalWeightLabel.putClientProperty("help", "tutti.editSpeciesFrequencies.field.totalWeight.help");
2175         totalWeightLabel.putClientProperty("addWeightUnit", model.getWeightUnit());
2176     }
2177 
2178     protected void createValidator() {
2179         $objectMap.put("validator", validator = SwingValidator.newValidator(SpeciesFrequencyUIModel.class, null));
2180     }
2181 
2182     /*-----------------------------------------------------------------------*/
2183     /*------------------------ Internal jaxx methods ------------------------*/
2184     /*-----------------------------------------------------------------------*/
2185 
2186     private void $completeSetup() {
2187         allComponentsCreated = true;
2188         if (log.isDebugEnabled()) {
2189             log.debug(this);
2190         }
2191         addChildrenToEditSpeciesFrequenciesTopPanel();
2192         addChildrenToValidator();
2193         addChildrenToSpeciesFrequencyTabToolBar();
2194         addChildrenToMenu();
2195         addChildrenToMenuAction();
2196         addChildrenToMenuImportMultiPost();
2197         addChildrenToMenuExportMultiPost();
2198         addChildrenToFrequenciesToolBar();
2199         addChildrenToCopyToSizeToolBar();
2200         addChildrenToCopyAllButton();
2201         addChildrenToCopyNothingButton();
2202         addChildrenToCopySizesButton();
2203         addChildrenToObsTablePopup();
2204         addChildrenToConfigurationPanel();
2205         addChildrenToFrequencyModePanel();
2206         addChildrenToSimpleCountingModeButton();
2207         addChildrenToFrequencyModeButton();
2208         addChildrenToLengthStepCaracteristicPanel();
2209         addChildrenToModePanel();
2210         addChildrenToAutoGenModeButton();
2211         addChildrenToRafaleModeButton();
2212         addChildrenToModeConfigurationPanel();
2213         addChildrenToAutoGenModePanel();
2214         // inline complete setup of $JPanel0
2215         $JPanel0.add(generateButton);
2216         addChildrenToRafaleModePanel();
2217         addChildrenToDataFieldPanel();
2218         addChildrenToFirstSplitPane();
2219         addChildrenToFrequenciesTitlePanel();
2220         addChildrenToFrequenciesPanel();
2221         addChildrenToLengthstepSettingsBlock();
2222         addChildrenToSecondSplitPane();
2223         addChildrenToLogsScrollPane();
2224         addChildrenToTableScrollPane();
2225         addChildrenToObsPanel();
2226         addChildrenToObsTableTitlePanel();
2227         // inline complete setup of $JScrollPane0
2228         $JScrollPane0.getViewport().add(obsTable);
2229         addChildrenToObsCaracteristicMapEditorReminderLabel();
2230         addChildrenToSimpleCountingNumberPanel();
2231         addChildrenToDataInFrequenciesWarningContainer();
2232         addChildrenToActionPanel();
2233         
2234         // apply 60 data bindings
2235         JAXXUtil.applyDataBinding(this, $bindings.keySet());
2236         
2237         // apply 117 property setters
2238         frequencyModePanel.setHorizontalAlignment(SwingConstants.LEFT);
2239         frequencyModePanel.setVerticalAlignment(SwingConstants.CENTER);
2240         lengthStepCaracteristicComboBox.setBeanType(Caracteristic.class);
2241         modePanel.setVerticalAlignment(SwingConstants.CENTER);
2242         menu.setBorder(null);
2243         menu.setBackground(javax.swing.UIManager.getColor("MenuBar.background"));
2244         menuAction.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menu.action.mnemonic"),'Z'));
2245         searchSpeciesInPrevCatchesButton.setAction(searchSpeciesInPrevCatchesAction);
2246         searchSpeciesInNextCatchesButton.setAction(searchSpeciesInNextCatchesAction);
2247         menuImportMultiPost.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menuImportMultiPost.action.mnemonic"),'Z'));
2248         menuImportMultiPost.setIcon(SwingUtil.createActionIcon("import"));
2249         importMultiPostFullButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.importMultiPostFull.mnemonic"),'Z'));
2250         importMultiPostFullButton.setIcon(SwingUtil.createActionIcon("import"));
2251         importMultiPostOnlyFrequenciesButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.mnemonic"),'Z'));
2252         importMultiPostOnlyFrequenciesButton.setIcon(SwingUtil.createActionIcon("import"));
2253         importMultiPostOnlyIndividualObservationsButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.mnemonic"),'Z'));
2254         importMultiPostOnlyIndividualObservationsButton.setIcon(SwingUtil.createActionIcon("import"));
2255         menuExportMultiPost.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.toolbar.menuExportMultiPost.action.mnemonic"),'Z'));
2256         menuExportMultiPost.setIcon(SwingUtil.createActionIcon("export"));
2257         exportMultiPostFullButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.exportMultiPostFull.mnemonic"),'Z'));
2258         exportMultiPostFullButton.setIcon(SwingUtil.createActionIcon("export"));
2259         exportMultiPostOnlyFrequenciesButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.mnemonic"),'Z'));
2260         exportMultiPostOnlyFrequenciesButton.setIcon(SwingUtil.createActionIcon("export"));
2261         exportMultiPostOnlyIndividualObservationsButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.mnemonic"),'Z'));
2262         exportMultiPostOnlyIndividualObservationsButton.setIcon(SwingUtil.createActionIcon("export"));
2263         graphAverageWeightButton.setIcon(SwingUtil.createActionIcon("chart"));
2264         copyAllButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.mnemonic"),'Z'));
2265         copyNothingButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.mnemonic"),'Z'));
2266         copySizesButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.mnemonic"),'Z'));
2267         deleteObsRowsMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.removeObservation.mnemonic"),'Z'));
2268         deleteObsRowsMenu.setIcon(SwingUtil.createActionIcon("delete2"));
2269         editSampleCodeMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.editSampleCode.mnemonic"),'Z'));
2270         editSampleCodeMenu.setIcon(SwingUtil.createActionIcon("edit"));
2271         deleteSampleCodeMenu.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.deleteSampleCode.mnemonic"),'Z'));
2272         deleteSampleCodeMenu.setIcon(SwingUtil.createActionIcon("delete"));
2273         frequencyModePanel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
2274         simpleCountingModeButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.mode.simpleCounting.mnemonic"),'Z'));
2275         frequencyModeButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.mode.frequencyMode.mnemonic"),'Z'));
2276         lengthStepCaracteristicPanel.setBorder( BorderFactory.createTitledBorder(null, null) );
2277         lengthStepCaracteristicLabel.setLabelFor(lengthStepCaracteristicComboBox);
2278         lengthStepCaracteristicComboBox.setBean(model);
2279         addLengthStepCaracteristicButton.setAction(addLengthStepCaracteristicAction);
2280         stepLabel.setLabelFor(stepField);
2281         stepField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2282         stepField.setNumberType(Float.class);
2283         stepField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2284         stepField.setBean(model);
2285         autoGenModeButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.mnemonic"),'Z'));
2286         rafaleModeButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.field.frequencyMode.rafale.mnemonic"),'Z'));
2287         modeConfigurationPanel.setBorder( BorderFactory.createTitledBorder(null, null) );
2288         minStepLabel.setLabelFor(minStepField);
2289         minStepField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2290         minStepField.setNumberType(Float.class);
2291         minStepField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2292         minStepField.setBean(model);
2293         maxStepLabel.setLabelFor(maxStepField);
2294         maxStepField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2295         maxStepField.setNumberType(Float.class);
2296         maxStepField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2297         maxStepField.setBean(model);
2298         generateButton.setAction(generateLengthStepsAction);
2299         rafaleStepLabel.setLabelFor(rafaleStepField);
2300         rafaleStepField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2301         rafaleStepField.setNumberType(Float.class);
2302         rafaleStepField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2303         rafaleStepField.setBean(model);
2304         samplingWarningLabel.setBorder(BorderFactory.createEmptyBorder(3, 10, 5, 10));
2305         samplingWarningLabel.setHorizontalAlignment(SwingConstants.CENTER);
2306         samplingResumeLabel.setBorder(BorderFactory.createEmptyBorder(3, 10, 5, 10));
2307         samplingResumeLabel.setHorizontalAlignment(SwingConstants.CENTER);
2308         frequenciesTitlePanel.setRightDecoration(frequenciesToolBar);
2309         lengthstepSettingsBlock.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
2310         totalNumberLabel.setLabelFor(totalNumberField);
2311         totalWeightLabel.setLabelFor(totalWeightField);
2312         totalWeightField.setComputedDataColor(handler.getConfig().getColorComputedWeights());
2313         totalWeightField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2314         totalWeightField.setNumberType(Float.class);
2315         totalWeightField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2316         logsTable.setSelectionBackground(null);
2317         logsTable.setSelectionForeground(Color.BLACK);
2318         logsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
2319         table.setSelectionBackground(null);
2320         table.setSelectionForeground(Color.BLACK);
2321         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
2322         obsTableTitlePanel.setRightDecoration(copyToSizeToolBar);
2323         obsTable.setSelectionBackground(null);
2324         obsTable.setSelectionForeground(Color.BLACK);
2325         obsTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
2326         simpleCountingNumberPanel.setBorder( BorderFactory.createTitledBorder(null, null) );
2327         dataInFrequenciesWarningContainer.setBackground(new java.awt.Color(245, 218, 88));
2328         dataInFrequenciesWarning.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
2329         dataInFrequenciesWarning.setIcon(SwingUtil.createActionIcon("warning"));
2330         simpleCountingNumberLabel.setLabelFor(simpleCountingNumberField);
2331         simpleCountingNumberField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2332         simpleCountingNumberField.setNumberType(Integer.class);
2333         simpleCountingNumberField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2334         simpleCountingNumberField.setBean(model);
2335         simpleCountingWeightLabel.setLabelFor(simpleCountingWeightField);
2336         simpleCountingWeightField.setAutoPopup(handler.getConfig().isAutoPopupNumberEditor());
2337         simpleCountingWeightField.setNumberType(Float.class);
2338         simpleCountingWeightField.setShowPopupButton(handler.getConfig().isShowNumberEditorButton());
2339         cancelButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.cancel.mnemonic"),'Z'));
2340         cancelButton.setIcon(SwingUtil.createActionIcon("cancel"));
2341         resetButton.setMnemonic(SwingUtil.getFirstCharAt(t("tutti.editSpeciesFrequencies.action.reset.mnemonic"),'Z'));
2342         resetButton.setIcon(SwingUtil.createActionIcon("reset"));
2343         saveAndStayButton.setAction(saveAndStayAction);
2344         saveAndContinueButton.setAction(saveAndContinueAction);
2345         saveAndCloseButton.setAction(saveAndCloseAction);
2346         // late initializer
2347         // help broker setup
2348         TuttiHelpBroker _broker = getBroker();
2349         registerHelpId(_broker, editSpeciesFrequenciesTopPanel, "tutti.editSpeciesFrequencies.help");
2350         registerHelpId(_broker, importMultiPostFullButton, "tutti.editSpeciesFrequencies.action.importMultiPostFull.help");
2351         registerHelpId(_broker, importMultiPostOnlyFrequenciesButton, "tutti.editSpeciesFrequencies.action.importMultiPostOnlyFrequencies.help");
2352         registerHelpId(_broker, importMultiPostOnlyIndividualObservationsButton, "tutti.editSpeciesFrequencies.action.importMultiPostOnlyIndividualObservations.help");
2353         registerHelpId(_broker, exportMultiPostFullButton, "tutti.editSpeciesFrequencies.action.exportMultiPostFull.help");
2354         registerHelpId(_broker, exportMultiPostOnlyFrequenciesButton, "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyFrequencies.help");
2355         registerHelpId(_broker, exportMultiPostOnlyIndividualObservationsButton, "tutti.editSpeciesFrequencies.action.exportMultiPostOnlyIndividualObservations.help");
2356         registerHelpId(_broker, copyRtpWeightsCheckBox, "tutti.editSpeciesFrequencies.field.copyRtpWeights.help");
2357         registerHelpId(_broker, copyAllButton, "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.all.help");
2358         registerHelpId(_broker, copyNothingButton, "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.nothing.help");
2359         registerHelpId(_broker, copySizesButton, "tutti.editSpeciesFrequencies.field.copyToSizeTableMode.size.help");
2360         registerHelpId(_broker, deleteObsRowsMenu, "tutti.editSpeciesFrequencies.action.removeObservation.help");
2361         registerHelpId(_broker, editSampleCodeMenu, "tutti.editSpeciesFrequencies.action.editSampleCode.help");
2362         registerHelpId(_broker, deleteSampleCodeMenu, "tutti.editSpeciesFrequencies.action.deleteSampleCode.help");
2363         registerHelpId(_broker, simpleCountingModeButton, "tutti.editSpeciesFrequencies.field.mode.simpleCounting.help");
2364         registerHelpId(_broker, frequencyModeButton, "tutti.editSpeciesFrequencies.field.mode.frequencyMode.help");
2365         registerHelpId(_broker, lengthStepCaracteristicLabel, "tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.help");
2366         registerHelpId(_broker, lengthStepCaracteristicComboBox, "tutti.editSpeciesFrequencies.field.lengthStepCaracteristic.help");
2367         registerHelpId(_broker, addLengthStepCaracteristicButton, "tutti.editSpeciesFrequencies.action.addLengthStepCaracteristic.help");
2368         registerHelpId(_broker, stepLabel, "tutti.editSpeciesFrequencies.field.step.help");
2369         registerHelpId(_broker, stepField, "tutti.editSpeciesFrequencies.field.step.help");
2370         registerHelpId(_broker, autoGenModeButton, "tutti.editSpeciesFrequencies.field.frequencyMode.autoGen.help");
2371         registerHelpId(_broker, rafaleModeButton, "tutti.editSpeciesFrequencies.field.mode.rafale.help");
2372         registerHelpId(_broker, minStepLabel, "tutti.editSpeciesFrequencies.field.minStep.help");
2373         registerHelpId(_broker, minStepField, "tutti.editSpeciesFrequencies.field.minStep.help");
2374         registerHelpId(_broker, maxStepLabel, "tutti.editSpeciesFrequencies.field.maxStep.help");
2375         registerHelpId(_broker, maxStepField, "tutti.editSpeciesFrequencies.field.maxStep.help");
2376         registerHelpId(_broker, generateButton, "tutti.editSpeciesFrequencies.action.generate.help");
2377         registerHelpId(_broker, rafaleStepLabel, "tutti.editSpeciesFrequencies.field.rafaleStep.help");
2378         registerHelpId(_broker, rafaleStepField, "tutti.editSpeciesFrequencies.field.rafaleStep.help");
2379         registerHelpId(_broker, addIndividualObservationCheckBox, "tutti.editSpeciesFrequencies.field.addIndividualObservationOnRafale.help");
2380         registerHelpId(_broker, totalNumberLabel, "tutti.editSpeciesFrequencies.field.totalNumber.help");
2381         registerHelpId(_broker, totalNumberField, "tutti.editSpeciesFrequencies.field.totalNumber.help");
2382         registerHelpId(_broker, totalWeightLabel, "tutti.editSpeciesFrequencies.field.totalWeight.help");
2383         registerHelpId(_broker, totalWeightField, "tutti.editSpeciesFrequencies.field.totalWeight.help");
2384         registerHelpId(_broker, simpleCountingNumberLabel, "tutti.editSpeciesFrequencies.field.simpleCountingNumber.help");
2385         registerHelpId(_broker, simpleCountingNumberField, "tutti.editSpeciesFrequencies.field.simpleCountingNumber.help");
2386         registerHelpId(_broker, simpleCountingWeightLabel, "tutti.editSpeciesFrequencies.field.simpleCountingWeight.help");
2387         registerHelpId(_broker, simpleCountingWeightField, "tutti.editSpeciesFrequencies.field.simpleCountingWeight.help");
2388         registerHelpId(_broker, cancelButton, "tutti.editSpeciesFrequencies.action.cancel.help");
2389         registerHelpId(_broker, resetButton, "tutti.editSpeciesFrequencies.action.reset.help");
2390         registerHelpId(_broker, saveAndStayButton, "tutti.editSpeciesFrequencies.action.saveAndStay.help");
2391         registerHelpId(_broker, saveAndContinueButton, "tutti.editSpeciesFrequencies.action.saveAndContinue.help");
2392         registerHelpId(_broker, saveAndCloseButton, "tutti.editSpeciesFrequencies.action.saveAndClose.help");
2393         _broker.prepareUI(this);
2394         // register 1 validator(s)
2395         validatorIds = SwingValidatorUtil.detectValidators(this);
2396         SwingValidatorUtil.installUI(this);
2397     }
2398 
2399     private void $initialize() {
2400         if (allComponentsCreated) {
2401             return;
2402         }
2403         if (log.isDebugEnabled()) {
2404             log.debug(this);
2405         }
2406         handler.beforeInit(this);
2407         $objectMap.put("editSpeciesFrequenciesTopPanel", editSpeciesFrequenciesTopPanel);
2408         createModel();
2409         createValidator();
2410         createBroker();
2411         createModeConfigurationLayout();
2412         createDataFieldLayout();
2413         createObsPanelLayout();
2414         createAddLengthStepCaracteristicAction();
2415         createGenerateLengthStepsAction();
2416         createSaveAndStayAction();
2417         createSaveAndCloseAction();
2418         createSaveAndContinueAction();
2419         createSearchSpeciesInPrevCatchesAction();
2420         createSearchSpeciesInNextCatchesAction();
2421         createSpeciesFrequencyTabToolBar();
2422         createMenu();
2423         createMenuAction();
2424         createSearchSpeciesInPrevCatchesButton();
2425         createSearchSpeciesInNextCatchesButton();
2426         createMenuImportMultiPost();
2427         createImportMultiPostFullButton();
2428         createImportMultiPostOnlyFrequenciesButton();
2429         createImportMultiPostOnlyIndividualObservationsButton();
2430         createMenuExportMultiPost();
2431         createExportMultiPostFullButton();
2432         createExportMultiPostOnlyFrequenciesButton();
2433         createExportMultiPostOnlyIndividualObservationsButton();
2434         createFrequenciesToolBar();
2435         createCopyRtpWeightsCheckBox();
2436         createGraphAverageWeightButton();
2437         createCopyToSizeToolBar();
2438         createCopyToSizeTableLabel();
2439         createCopyAllButton();
2440         createCopyNothingButton();
2441         createCopySizesButton();
2442         createObsTablePopup();
2443         createDeleteObsRowsMenu();
2444         createEditSampleCodeMenu();
2445         createDeleteSampleCodeMenu();
2446         createConfigurationPanel();
2447         createFrequencyModePanel();
2448         createSimpleCountingModeButton();
2449         createFrequencyModeButton();
2450         createLengthStepCaracteristicPanel();
2451         createLengthStepCaracteristicLabel();
2452         createLengthStepCaracteristicComboBox();
2453         createAddLengthStepCaracteristicButton();
2454         createStepLabel();
2455         createStepField();
2456         createHistogramPanel();
2457         createModePanel();
2458         createAutoGenModeButton();
2459         createRafaleModeButton();
2460         createModeConfigurationPanel();
2461         createAutoGenModePanel();
2462         createMinStepLabel();
2463         createMinStepField();
2464         createMaxStepLabel();
2465         createMaxStepField();
2466         // inline creation of $JPanel0
2467         $objectMap.put("$JPanel0", $JPanel0 = new JPanel());
2468         
2469         $JPanel0.setName("$JPanel0");
2470         $JPanel0.setLayout(new GridLayout(1, 0));
2471         createGenerateButton();
2472         createRafaleModePanel();
2473         createRafaleStepLabel();
2474         createRafaleStepField();
2475         createAddIndividualObservationCheckBox();
2476         createSamplingWarningLabel();
2477         createSamplingResumeLabel();
2478         // inline creation of $JSeparator0
2479         $objectMap.put("$JSeparator0", $JSeparator0 = new JSeparator());
2480         
2481         $JSeparator0.setName("$JSeparator0");
2482         createDataFieldPanel();
2483         createFirstSplitPane();
2484         createFrequenciesTitlePanel();
2485         createFrequenciesPanel();
2486         createLengthstepSettingsBlock();
2487         createTotalNumberLabel();
2488         createTotalNumberField();
2489         createTotalWeightLabel();
2490         createTotalWeightField();
2491         createSecondSplitPane();
2492         createLogsScrollPane();
2493         createLogsTable();
2494         createTableScrollPane();
2495         createTable();
2496         createObsPanel();
2497         createObsTableTitlePanel();
2498         // inline creation of $JScrollPane0
2499         $objectMap.put("$JScrollPane0", $JScrollPane0 = new JScrollPane());
2500         
2501         $JScrollPane0.setName("$JScrollPane0");
2502         createObsTable();
2503         createObsCaracteristicMapEditorReminderLabel();
2504         createObsCaracteristicCaracteristicMapEditor();
2505         createSimpleCountingNumberPanel();
2506         createDataInFrequenciesWarningContainer();
2507         createDataInFrequenciesWarning();
2508         createSimpleCountingNumberLabel();
2509         createSimpleCountingNumberField();
2510         createSimpleCountingWeightLabel();
2511         createSimpleCountingWeightField();
2512         createActionPanel();
2513         createCancelButton();
2514         createResetButton();
2515         createSaveAndStayButton();
2516         createSaveAndContinueButton();
2517         createSaveAndCloseButton();
2518         createCopyToSizeTableMode();
2519         createMode();
2520         createFrequenciesMode();
2521         // inline creation of editSpeciesFrequenciesTopPanel
2522         setName("editSpeciesFrequenciesTopPanel");
2523         setLayout(new BorderLayout());
2524         editSpeciesFrequenciesTopPanel.addComponentListener(JAXXUtil.getEventListener(ComponentListener.class, "componentResized", this, "doComponentResized__on__editSpeciesFrequenciesTopPanel"));
2525         editSpeciesFrequenciesTopPanel.putClientProperty("help", "tutti.editSpeciesFrequencies.help");
2526         
2527         // registers 60 data bindings
2528         $registerDefaultBindings();
2529         $completeSetup();
2530         handler.afterInit(this);
2531     }
2532 
2533     private void $registerDefaultBindings() {
2534         // register 60 data bindings
2535         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODE_CONFIGURATION_LAYOUT_SELECTED, true) {
2536         
2537             @Override
2538             public void applyDataBinding() {
2539                 if (frequenciesMode != null) {
2540                     frequenciesMode.addPropertyChangeListener("selectedValue", this);
2541                 }
2542             }
2543         
2544             @Override
2545             public void processDataBinding() {
2546                 if (frequenciesMode != null) {
2547                     modeConfigurationLayout.setSelected(String.valueOf(frequenciesMode.getSelectedValue()));
2548                 }
2549             }
2550         
2551             @Override
2552             public void removeDataBinding() {
2553                 if (frequenciesMode != null) {
2554                     frequenciesMode.removePropertyChangeListener("selectedValue", this);
2555                 }
2556             }
2557         });
2558         registerDataBinding(new DefaultJAXXBinding(this, BINDING_DATA_FIELD_LAYOUT_SELECTED, true) {
2559         
2560             @Override
2561             public void applyDataBinding() {
2562                 if (model != null) {
2563                     model.addPropertyChangeListener("simpleCountingMode", this);
2564                 }
2565             }
2566         
2567             @Override
2568             public void processDataBinding() {
2569                 if (model != null) {
2570                     dataFieldLayout.setSelected(model.isSimpleCountingMode() ? "noLengthCaracteristicPmfm" : "lengthCaracteristicPmfm");
2571                 }
2572             }
2573         
2574             @Override
2575             public void removeDataBinding() {
2576                 if (model != null) {
2577                     model.removePropertyChangeListener("simpleCountingMode", this);
2578                 }
2579             }
2580         });
2581         registerDataBinding(new DefaultJAXXBinding(this, BINDING_GENERATE_LENGTH_STEPS_ACTION_ENABLED, true) {
2582         
2583             @Override
2584             public void applyDataBinding() {
2585                 if (model != null) {
2586                     model.addPropertyChangeListener("canGenerate", this);
2587                 }
2588             }
2589         
2590             @Override
2591             public void processDataBinding() {
2592                 if (model != null) {
2593                     generateLengthStepsAction.setEnabled(model.isCanGenerate());
2594                 }
2595             }
2596         
2597             @Override
2598             public void removeDataBinding() {
2599                 if (model != null) {
2600                     model.removePropertyChangeListener("canGenerate", this);
2601                 }
2602             }
2603         });
2604         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_AND_STAY_ACTION_ENABLED, true) {
2605         
2606             @Override
2607             public void applyDataBinding() {
2608                 if (model != null) {
2609                     model.addPropertyChangeListener("valid", this);
2610                 }
2611             }
2612         
2613             @Override
2614             public void processDataBinding() {
2615                 if (model != null) {
2616                     saveAndStayAction.setEnabled(model.isValid());
2617                 }
2618             }
2619         
2620             @Override
2621             public void removeDataBinding() {
2622                 if (model != null) {
2623                     model.removePropertyChangeListener("valid", this);
2624                 }
2625             }
2626         });
2627         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_AND_CLOSE_ACTION_ENABLED, true) {
2628         
2629             @Override
2630             public void applyDataBinding() {
2631                 if (model != null) {
2632                     model.addPropertyChangeListener("valid", this);
2633                 }
2634             }
2635         
2636             @Override
2637             public void processDataBinding() {
2638                 if (model != null) {
2639                     saveAndCloseAction.setEnabled(model.isValid());
2640                 }
2641             }
2642         
2643             @Override
2644             public void removeDataBinding() {
2645                 if (model != null) {
2646                     model.removePropertyChangeListener("valid", this);
2647                 }
2648             }
2649         });
2650         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_AND_CONTINUE_ACTION_ENABLED, true, true) {
2651         
2652             @Override
2653             public void applyDataBinding() {
2654                 if (model != null) {
2655                     model.addPropertyChangeListener("nextEditableRowIndex", this);
2656                 }
2657                 if (model != null) {
2658                     model.addPropertyChangeListener("valid", this);
2659                 }
2660             }
2661         
2662             @Override
2663             public void processDataBinding() {
2664                 if (model != null) {
2665                     saveAndContinueAction.setEnabled(model.getNextEditableRowIndex() != null && model.isValid());
2666                 }
2667             }
2668         
2669             @Override
2670             public void removeDataBinding() {
2671                 if (model != null) {
2672                     model.removePropertyChangeListener("nextEditableRowIndex", this);
2673                 }
2674                 if (model != null) {
2675                     model.removePropertyChangeListener("valid", this);
2676                 }
2677             }
2678         });
2679         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SEARCH_SPECIES_IN_PREV_CATCHES_BUTTON_ENABLED, true) {
2680         
2681             @Override
2682             public void applyDataBinding() {
2683                 if (getModel() != null) {
2684                     getModel().addPropertyChangeListener("canGoPrevBatch", this);
2685                 }
2686             }
2687         
2688             @Override
2689             public void processDataBinding() {
2690                 if (getModel() != null) {
2691                     searchSpeciesInPrevCatchesButton.setEnabled(getModel().isCanGoPrevBatch());
2692                 }
2693             }
2694         
2695             @Override
2696             public void removeDataBinding() {
2697                 if (getModel() != null) {
2698                     getModel().removePropertyChangeListener("canGoPrevBatch", this);
2699                 }
2700             }
2701         });
2702         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SEARCH_SPECIES_IN_NEXT_CATCHES_BUTTON_ENABLED, true) {
2703         
2704             @Override
2705             public void applyDataBinding() {
2706                 if (getModel() != null) {
2707                     getModel().addPropertyChangeListener("canGoNextBatch", this);
2708                 }
2709             }
2710         
2711             @Override
2712             public void processDataBinding() {
2713                 if (getModel() != null) {
2714                     searchSpeciesInNextCatchesButton.setEnabled(getModel().isCanGoNextBatch());
2715                 }
2716             }
2717         
2718             @Override
2719             public void removeDataBinding() {
2720                 if (getModel() != null) {
2721                     getModel().removePropertyChangeListener("canGoNextBatch", this);
2722                 }
2723             }
2724         });
2725         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MENU_IMPORT_MULTI_POST_ENABLED, true) {
2726         
2727             @Override
2728             public void applyDataBinding() {
2729                 if (getModel() != null) {
2730                     getModel().addPropertyChangeListener("copyIndividualObservationNothing", this);
2731                 }
2732             }
2733         
2734             @Override
2735             public void processDataBinding() {
2736                 if (getModel() != null) {
2737                     menuImportMultiPost.setEnabled(getModel().isCopyIndividualObservationNothing());
2738                 }
2739             }
2740         
2741             @Override
2742             public void removeDataBinding() {
2743                 if (getModel() != null) {
2744                     getModel().removePropertyChangeListener("copyIndividualObservationNothing", this);
2745                 }
2746             }
2747         });
2748         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_MULTI_POST_FULL_BUTTON_ENABLED, true) {
2749         
2750             @Override
2751             public void applyDataBinding() {
2752                 if (getModel() != null) {
2753                     getModel().addPropertyChangeListener("copyIndividualObservationNothing", this);
2754                 }
2755             }
2756         
2757             @Override
2758             public void processDataBinding() {
2759                 if (getModel() != null) {
2760                     importMultiPostFullButton.setEnabled(getModel().isCopyIndividualObservationNothing());
2761                 }
2762             }
2763         
2764             @Override
2765             public void removeDataBinding() {
2766                 if (getModel() != null) {
2767                     getModel().removePropertyChangeListener("copyIndividualObservationNothing", this);
2768                 }
2769             }
2770         });
2771         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_MULTI_POST_ONLY_FREQUENCIES_BUTTON_ENABLED, true) {
2772         
2773             @Override
2774             public void applyDataBinding() {
2775                 if (getModel() != null) {
2776                     getModel().addPropertyChangeListener("copyIndividualObservationNothing", this);
2777                 }
2778             }
2779         
2780             @Override
2781             public void processDataBinding() {
2782                 if (getModel() != null) {
2783                     importMultiPostOnlyFrequenciesButton.setEnabled(getModel().isCopyIndividualObservationNothing());
2784                 }
2785             }
2786         
2787             @Override
2788             public void removeDataBinding() {
2789                 if (getModel() != null) {
2790                     getModel().removePropertyChangeListener("copyIndividualObservationNothing", this);
2791                 }
2792             }
2793         });
2794         registerDataBinding(new DefaultJAXXBinding(this, BINDING_IMPORT_MULTI_POST_ONLY_INDIVIDUAL_OBSERVATIONS_BUTTON_ENABLED, true) {
2795         
2796             @Override
2797             public void applyDataBinding() {
2798                 if (getModel() != null) {
2799                     getModel().addPropertyChangeListener("copyIndividualObservationNothing", this);
2800                 }
2801             }
2802         
2803             @Override
2804             public void processDataBinding() {
2805                 if (getModel() != null) {
2806                     importMultiPostOnlyIndividualObservationsButton.setEnabled(getModel().isCopyIndividualObservationNothing());
2807                 }
2808             }
2809         
2810             @Override
2811             public void removeDataBinding() {
2812                 if (getModel() != null) {
2813                     getModel().removePropertyChangeListener("copyIndividualObservationNothing", this);
2814                 }
2815             }
2816         });
2817         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COPY_RTP_WEIGHTS_CHECK_BOX_ENABLED, true, true) {
2818         
2819             @Override
2820             public void applyDataBinding() {
2821                 if (getModel() != null) {
2822                     getModel().addPropertyChangeListener("rtp", this);
2823                 }
2824                 if (getModel() != null) {
2825                     getModel().addPropertyChangeListener("copyIndividualObservationAll", this);
2826                 }
2827             }
2828         
2829             @Override
2830             public void processDataBinding() {
2831                 if (getModel() != null) {
2832                     copyRtpWeightsCheckBox.setEnabled( getModel().getRtp() != null && !getModel().isCopyIndividualObservationAll() );
2833                 }
2834             }
2835         
2836             @Override
2837             public void removeDataBinding() {
2838                 if (getModel() != null) {
2839                     getModel().removePropertyChangeListener("rtp", this);
2840                 }
2841                 if (getModel() != null) {
2842                     getModel().removePropertyChangeListener("copyIndividualObservationAll", this);
2843                 }
2844             }
2845         });
2846         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COPY_RTP_WEIGHTS_CHECK_BOX_SELECTED, true, true) {
2847         
2848             @Override
2849             public void applyDataBinding() {
2850                 if (getModel() != null) {
2851                     getModel().addPropertyChangeListener("copyIndividualObservationAll", this);
2852                 }
2853                 if (getModel() != null) {
2854                     getModel().addPropertyChangeListener("copyRtpWeights", this);
2855                 }
2856             }
2857         
2858             @Override
2859             public void processDataBinding() {
2860                 if (getModel() != null) {
2861                     copyRtpWeightsCheckBox.setSelected( !getModel().isCopyIndividualObservationAll() && getModel().isCopyRtpWeights() );
2862                 }
2863             }
2864         
2865             @Override
2866             public void removeDataBinding() {
2867                 if (getModel() != null) {
2868                     getModel().removePropertyChangeListener("copyIndividualObservationAll", this);
2869                 }
2870                 if (getModel() != null) {
2871                     getModel().removePropertyChangeListener("copyRtpWeights", this);
2872                 }
2873             }
2874         });
2875         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COPY_ALL_BUTTON_SELECTED, true) {
2876         
2877             @Override
2878             public void applyDataBinding() {
2879                 if (model != null) {
2880                     model.addPropertyChangeListener("copyIndividualObservationAll", this);
2881                 }
2882             }
2883         
2884             @Override
2885             public void processDataBinding() {
2886                 if (model != null) {
2887                     copyAllButton.setSelected(model.isCopyIndividualObservationAll());
2888                 }
2889             }
2890         
2891             @Override
2892             public void removeDataBinding() {
2893                 if (model != null) {
2894                     model.removePropertyChangeListener("copyIndividualObservationAll", this);
2895                 }
2896             }
2897         });
2898         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COPY_NOTHING_BUTTON_SELECTED, true) {
2899         
2900             @Override
2901             public void applyDataBinding() {
2902                 if (model != null) {
2903                     model.addPropertyChangeListener("copyIndividualObservationNothing", this);
2904                 }
2905             }
2906         
2907             @Override
2908             public void processDataBinding() {
2909                 if (model != null) {
2910                     copyNothingButton.setSelected(model.isCopyIndividualObservationNothing());
2911                 }
2912             }
2913         
2914             @Override
2915             public void removeDataBinding() {
2916                 if (model != null) {
2917                     model.removePropertyChangeListener("copyIndividualObservationNothing", this);
2918                 }
2919             }
2920         });
2921         registerDataBinding(new DefaultJAXXBinding(this, BINDING_COPY_SIZES_BUTTON_SELECTED, true) {
2922         
2923             @Override
2924             public void applyDataBinding() {
2925                 if (model != null) {
2926                     model.addPropertyChangeListener("copyIndividualObservationSize", this);
2927                 }
2928             }
2929         
2930             @Override
2931             public void processDataBinding() {
2932                 if (model != null) {
2933                     copySizesButton.setSelected(model.isCopyIndividualObservationSize());
2934                 }
2935             }
2936         
2937             @Override
2938             public void removeDataBinding() {
2939                 if (model != null) {
2940                     model.removePropertyChangeListener("copyIndividualObservationSize", this);
2941                 }
2942             }
2943         });
2944         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SIMPLE_COUNTING_MODE_BUTTON_SELECTED, true) {
2945         
2946             @Override
2947             public void applyDataBinding() {
2948                 if (model != null) {
2949                     model.addPropertyChangeListener("simpleCountingMode", this);
2950                 }
2951             }
2952         
2953             @Override
2954             public void processDataBinding() {
2955                 if (model != null) {
2956                     simpleCountingModeButton.setSelected(model.isSimpleCountingMode());
2957                 }
2958             }
2959         
2960             @Override
2961             public void removeDataBinding() {
2962                 if (model != null) {
2963                     model.removePropertyChangeListener("simpleCountingMode", this);
2964                 }
2965             }
2966         });
2967         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FREQUENCY_MODE_BUTTON_SELECTED, true) {
2968         
2969             @Override
2970             public void applyDataBinding() {
2971                 if (model != null) {
2972                     model.addPropertyChangeListener("frequenciesMode", this);
2973                 }
2974             }
2975         
2976             @Override
2977             public void processDataBinding() {
2978                 if (model != null) {
2979                     frequencyModeButton.setSelected(model.isFrequenciesMode());
2980                 }
2981             }
2982         
2983             @Override
2984             public void removeDataBinding() {
2985                 if (model != null) {
2986                     model.removePropertyChangeListener("frequenciesMode", this);
2987                 }
2988             }
2989         });
2990         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LENGTH_STEP_CARACTERISTIC_PANEL_VISIBLE, true) {
2991         
2992             @Override
2993             public void applyDataBinding() {
2994                 if (model != null) {
2995                     model.addPropertyChangeListener("simpleCountingMode", this);
2996                 }
2997             }
2998         
2999             @Override
3000             public void processDataBinding() {
3001                 if (model != null) {
3002                     lengthStepCaracteristicPanel.setVisible(!model.isSimpleCountingMode());
3003                 }
3004             }
3005         
3006             @Override
3007             public void removeDataBinding() {
3008                 if (model != null) {
3009                     model.removePropertyChangeListener("simpleCountingMode", this);
3010                 }
3011             }
3012         });
3013         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LENGTH_STEP_CARACTERISTIC_LABEL_ENABLED, true) {
3014         
3015             @Override
3016             public void applyDataBinding() {
3017                 if (model != null) {
3018                     model.addPropertyChangeListener("simpleCountingMode", this);
3019                 }
3020             }
3021         
3022             @Override
3023             public void processDataBinding() {
3024                 if (model != null) {
3025                     lengthStepCaracteristicLabel.setEnabled(!model.isSimpleCountingMode());
3026                 }
3027             }
3028         
3029             @Override
3030             public void removeDataBinding() {
3031                 if (model != null) {
3032                     model.removePropertyChangeListener("simpleCountingMode", this);
3033                 }
3034             }
3035         });
3036         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LENGTH_STEP_CARACTERISTIC_COMBO_BOX_SELECTED_ITEM, true) {
3037         
3038             @Override
3039             public void applyDataBinding() {
3040                 if (model != null) {
3041                     model.addPropertyChangeListener("lengthStepCaracteristic", this);
3042                 }
3043             }
3044         
3045             @Override
3046             public void processDataBinding() {
3047                 if (model != null) {
3048                     lengthStepCaracteristicComboBox.setSelectedItem(model.getLengthStepCaracteristic());
3049                 }
3050             }
3051         
3052             @Override
3053             public void removeDataBinding() {
3054                 if (model != null) {
3055                     model.removePropertyChangeListener("lengthStepCaracteristic", this);
3056                 }
3057             }
3058         });
3059         registerDataBinding(new DefaultJAXXBinding(this, BINDING_LENGTH_STEP_CARACTERISTIC_COMBO_BOX_ENABLED, true, true) {
3060         
3061             @Override
3062             public void applyDataBinding() {
3063                 if (model != null) {
3064                     model.addPropertyChangeListener("simpleCountingMode", this);
3065                 }
3066                 if (model != null) {
3067                     model.addPropertyChangeListener("canEditLengthStep", this);
3068                 }
3069             }
3070         
3071             @Override
3072             public void processDataBinding() {
3073                 if (model != null) {
3074                     lengthStepCaracteristicComboBox.setEnabled(!model.isSimpleCountingMode() && model.isCanEditLengthStep());
3075                 }
3076             }
3077         
3078             @Override
3079             public void removeDataBinding() {
3080                 if (model != null) {
3081                     model.removePropertyChangeListener("simpleCountingMode", this);
3082                 }
3083                 if (model != null) {
3084                     model.removePropertyChangeListener("canEditLengthStep", this);
3085                 }
3086             }
3087         });
3088         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ADD_LENGTH_STEP_CARACTERISTIC_BUTTON_ENABLED, true, true) {
3089         
3090             @Override
3091             public void applyDataBinding() {
3092                 if (model != null) {
3093                     model.addPropertyChangeListener("simpleCountingMode", this);
3094                 }
3095                 if (model != null) {
3096                     model.addPropertyChangeListener("canEditLengthStep", this);
3097                 }
3098             }
3099         
3100             @Override
3101             public void processDataBinding() {
3102                 if (model != null) {
3103                     addLengthStepCaracteristicButton.setEnabled(!model.isSimpleCountingMode() && model.isCanEditLengthStep());
3104                 }
3105             }
3106         
3107             @Override
3108             public void removeDataBinding() {
3109                 if (model != null) {
3110                     model.removePropertyChangeListener("simpleCountingMode", this);
3111                 }
3112                 if (model != null) {
3113                     model.removePropertyChangeListener("canEditLengthStep", this);
3114                 }
3115             }
3116         });
3117         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STEP_LABEL_ENABLED, true) {
3118         
3119             @Override
3120             public void applyDataBinding() {
3121                 if (model != null) {
3122                     model.addPropertyChangeListener("simpleCountingMode", this);
3123                 }
3124             }
3125         
3126             @Override
3127             public void processDataBinding() {
3128                 if (model != null) {
3129                     stepLabel.setEnabled(!model.isSimpleCountingMode());
3130                 }
3131             }
3132         
3133             @Override
3134             public void removeDataBinding() {
3135                 if (model != null) {
3136                     model.removePropertyChangeListener("simpleCountingMode", this);
3137                 }
3138             }
3139         });
3140         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_STEP_FIELD_NUMBER_PATTERN, true ,"DECIMAL1_PATTERN") {
3141         
3142             @Override
3143             public void processDataBinding() {
3144                 stepField.setNumberPattern(DECIMAL1_PATTERN);
3145             }
3146         });
3147         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STEP_FIELD_NUMBER_VALUE, true) {
3148         
3149             @Override
3150             public void applyDataBinding() {
3151                 if (model != null) {
3152                     model.addPropertyChangeListener("step", this);
3153                 }
3154             }
3155         
3156             @Override
3157             public void processDataBinding() {
3158                 if (model != null) {
3159                     stepField.setNumberValue(model.getStep());
3160                 }
3161             }
3162         
3163             @Override
3164             public void removeDataBinding() {
3165                 if (model != null) {
3166                     model.removePropertyChangeListener("step", this);
3167                 }
3168             }
3169         });
3170         registerDataBinding(new DefaultJAXXBinding(this, BINDING_STEP_FIELD_ENABLED, true, true) {
3171         
3172             @Override
3173             public void applyDataBinding() {
3174                 if (model != null) {
3175                     model.addPropertyChangeListener("simpleCountingMode", this);
3176                 }
3177                 if (model != null) {
3178                     model.addPropertyChangeListener("canEditLengthStep", this);
3179                 }
3180             }
3181         
3182             @Override
3183             public void processDataBinding() {
3184                 if (model != null) {
3185                     stepField.setEnabled(!model.isSimpleCountingMode() && model.isCanEditLengthStep());
3186                 }
3187             }
3188         
3189             @Override
3190             public void removeDataBinding() {
3191                 if (model != null) {
3192                     model.removePropertyChangeListener("simpleCountingMode", this);
3193                 }
3194                 if (model != null) {
3195                     model.removePropertyChangeListener("canEditLengthStep", this);
3196                 }
3197             }
3198         });
3199         registerDataBinding(new DefaultJAXXBinding(this, BINDING_HISTOGRAM_PANEL_VISIBLE, true) {
3200         
3201             @Override
3202             public void applyDataBinding() {
3203                 if (model != null) {
3204                     model.addPropertyChangeListener("simpleCountingMode", this);
3205                 }
3206             }
3207         
3208             @Override
3209             public void processDataBinding() {
3210                 if (model != null) {
3211                     histogramPanel.setVisible(!model.isSimpleCountingMode());
3212                 }
3213             }
3214         
3215             @Override
3216             public void removeDataBinding() {
3217                 if (model != null) {
3218                     model.removePropertyChangeListener("simpleCountingMode", this);
3219                 }
3220             }
3221         });
3222         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODE_PANEL_VISIBLE, true) {
3223         
3224             @Override
3225             public void applyDataBinding() {
3226                 if (model != null) {
3227                     model.addPropertyChangeListener("simpleCountingMode", this);
3228                 }
3229             }
3230         
3231             @Override
3232             public void processDataBinding() {
3233                 if (model != null) {
3234                     modePanel.setVisible(!model.isSimpleCountingMode());
3235                 }
3236             }
3237         
3238             @Override
3239             public void removeDataBinding() {
3240                 if (model != null) {
3241                     model.removePropertyChangeListener("simpleCountingMode", this);
3242                 }
3243             }
3244         });
3245         registerDataBinding(new DefaultJAXXBinding(this, BINDING_AUTO_GEN_MODE_BUTTON_SELECTED, true) {
3246         
3247             @Override
3248             public void applyDataBinding() {
3249                 if (model != null) {
3250                     model.addPropertyChangeListener("autoGenMode", this);
3251                 }
3252             }
3253         
3254             @Override
3255             public void processDataBinding() {
3256                 if (model != null) {
3257                     autoGenModeButton.setSelected(model.isAutoGenMode());
3258                 }
3259             }
3260         
3261             @Override
3262             public void removeDataBinding() {
3263                 if (model != null) {
3264                     model.removePropertyChangeListener("autoGenMode", this);
3265                 }
3266             }
3267         });
3268         registerDataBinding(new DefaultJAXXBinding(this, BINDING_AUTO_GEN_MODE_BUTTON_ENABLED, true) {
3269         
3270             @Override
3271             public void applyDataBinding() {
3272                 if (model != null) {
3273                     model.addPropertyChangeListener("copyIndividualObservationNothing", this);
3274                 }
3275             }
3276         
3277             @Override
3278             public void processDataBinding() {
3279                 if (model != null) {
3280                     autoGenModeButton.setEnabled(model.isCopyIndividualObservationNothing());
3281                 }
3282             }
3283         
3284             @Override
3285             public void removeDataBinding() {
3286                 if (model != null) {
3287                     model.removePropertyChangeListener("copyIndividualObservationNothing", this);
3288                 }
3289             }
3290         });
3291         registerDataBinding(new DefaultJAXXBinding(this, BINDING_RAFALE_MODE_BUTTON_SELECTED, true) {
3292         
3293             @Override
3294             public void applyDataBinding() {
3295                 if (model != null) {
3296                     model.addPropertyChangeListener("rafaleMode", this);
3297                 }
3298             }
3299         
3300             @Override
3301             public void processDataBinding() {
3302                 if (model != null) {
3303                     rafaleModeButton.setSelected(model.isRafaleMode());
3304                 }
3305             }
3306         
3307             @Override
3308             public void removeDataBinding() {
3309                 if (model != null) {
3310                     model.removePropertyChangeListener("rafaleMode", this);
3311                 }
3312             }
3313         });
3314         registerDataBinding(new DefaultJAXXBinding(this, BINDING_RAFALE_MODE_BUTTON_ENABLED, true) {
3315         
3316             @Override
3317             public void applyDataBinding() {
3318                 if (model != null) {
3319                     model.addPropertyChangeListener("copyIndividualObservationNothing", this);
3320                 }
3321             }
3322         
3323             @Override
3324             public void processDataBinding() {
3325                 if (model != null) {
3326                     rafaleModeButton.setEnabled(model.isCopyIndividualObservationNothing());
3327                 }
3328             }
3329         
3330             @Override
3331             public void removeDataBinding() {
3332                 if (model != null) {
3333                     model.removePropertyChangeListener("copyIndividualObservationNothing", this);
3334                 }
3335             }
3336         });
3337         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODE_CONFIGURATION_PANEL_VISIBLE, true) {
3338         
3339             @Override
3340             public void applyDataBinding() {
3341                 if (model != null) {
3342                     model.addPropertyChangeListener("simpleCountingMode", this);
3343                 }
3344             }
3345         
3346             @Override
3347             public void processDataBinding() {
3348                 if (model != null) {
3349                     modeConfigurationPanel.setVisible(!model.isSimpleCountingMode());
3350                 }
3351             }
3352         
3353             @Override
3354             public void removeDataBinding() {
3355                 if (model != null) {
3356                     model.removePropertyChangeListener("simpleCountingMode", this);
3357                 }
3358             }
3359         });
3360         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_MIN_STEP_FIELD_NUMBER_PATTERN, true ,"DECIMAL1_PATTERN") {
3361         
3362             @Override
3363             public void processDataBinding() {
3364                 minStepField.setNumberPattern(DECIMAL1_PATTERN);
3365             }
3366         });
3367         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MIN_STEP_FIELD_NUMBER_VALUE, true) {
3368         
3369             @Override
3370             public void applyDataBinding() {
3371                 if (model != null) {
3372                     model.addPropertyChangeListener("minStep", this);
3373                 }
3374             }
3375         
3376             @Override
3377             public void processDataBinding() {
3378                 if (model != null) {
3379                     minStepField.setNumberValue(model.getMinStep());
3380                 }
3381             }
3382         
3383             @Override
3384             public void removeDataBinding() {
3385                 if (model != null) {
3386                     model.removePropertyChangeListener("minStep", this);
3387                 }
3388             }
3389         });
3390         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_MAX_STEP_FIELD_NUMBER_PATTERN, true ,"DECIMAL1_PATTERN") {
3391         
3392             @Override
3393             public void processDataBinding() {
3394                 maxStepField.setNumberPattern(DECIMAL1_PATTERN);
3395             }
3396         });
3397         registerDataBinding(new DefaultJAXXBinding(this, BINDING_MAX_STEP_FIELD_NUMBER_VALUE, true) {
3398         
3399             @Override
3400             public void applyDataBinding() {
3401                 if (model != null) {
3402                     model.addPropertyChangeListener("maxStep", this);
3403                 }
3404             }
3405         
3406             @Override
3407             public void processDataBinding() {
3408                 if (model != null) {
3409                     maxStepField.setNumberValue(model.getMaxStep());
3410                 }
3411             }
3412         
3413             @Override
3414             public void removeDataBinding() {
3415                 if (model != null) {
3416                     model.removePropertyChangeListener("maxStep", this);
3417                 }
3418             }
3419         });
3420         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_RAFALE_STEP_FIELD_NUMBER_PATTERN, true ,"DECIMAL1_PATTERN") {
3421         
3422             @Override
3423             public void processDataBinding() {
3424                 rafaleStepField.setNumberPattern(DECIMAL1_PATTERN);
3425             }
3426         });
3427         registerDataBinding(new DefaultJAXXBinding(this, BINDING_RAFALE_STEP_FIELD_ENABLED, true) {
3428         
3429             @Override
3430             public void applyDataBinding() {
3431                 if (model != null) {
3432                     model.addPropertyChangeListener("lengthStepCaracteristic", this);
3433                 }
3434             }
3435         
3436             @Override
3437             public void processDataBinding() {
3438                 if (model != null) {
3439                     rafaleStepField.setEnabled(model.getLengthStepCaracteristic() != null);
3440                 }
3441             }
3442         
3443             @Override
3444             public void removeDataBinding() {
3445                 if (model != null) {
3446                     model.removePropertyChangeListener("lengthStepCaracteristic", this);
3447                 }
3448             }
3449         });
3450         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ADD_INDIVIDUAL_OBSERVATION_CHECK_BOX_SELECTED, true) {
3451         
3452             @Override
3453             public void applyDataBinding() {
3454                 if (model != null) {
3455                     model.addPropertyChangeListener("addIndividualObservationOnRafale", this);
3456                 }
3457             }
3458         
3459             @Override
3460             public void processDataBinding() {
3461                 if (model != null) {
3462                     addIndividualObservationCheckBox.setSelected(model.isAddIndividualObservationOnRafale());
3463                 }
3464             }
3465         
3466             @Override
3467             public void removeDataBinding() {
3468                 if (model != null) {
3469                     model.removePropertyChangeListener("addIndividualObservationOnRafale", this);
3470                 }
3471             }
3472         });
3473         registerDataBinding(new DefaultJAXXBinding(this, BINDING_ADD_INDIVIDUAL_OBSERVATION_CHECK_BOX_ENABLED, true) {
3474         
3475             @Override
3476             public void applyDataBinding() {
3477                 if (model != null) {
3478                     model.addPropertyChangeListener("copyIndividualObservationNothing", this);
3479                 }
3480             }
3481         
3482             @Override
3483             public void processDataBinding() {
3484                 if (model != null) {
3485                     addIndividualObservationCheckBox.setEnabled(model.isCopyIndividualObservationNothing());
3486                 }
3487             }
3488         
3489             @Override
3490             public void removeDataBinding() {
3491                 if (model != null) {
3492                     model.removePropertyChangeListener("copyIndividualObservationNothing", this);
3493                 }
3494             }
3495         });
3496         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAMPLING_WARNING_LABEL_VISIBLE, true) {
3497         
3498             @Override
3499             public void applyDataBinding() {
3500                 if (model != null) {
3501                     model.addPropertyChangeListener("simpleCountingMode", this);
3502                 }
3503             }
3504         
3505             @Override
3506             public void processDataBinding() {
3507                 if (model != null) {
3508                     samplingWarningLabel.setVisible(!model.isSimpleCountingMode());
3509                 }
3510             }
3511         
3512             @Override
3513             public void removeDataBinding() {
3514                 if (model != null) {
3515                     model.removePropertyChangeListener("simpleCountingMode", this);
3516                 }
3517             }
3518         });
3519         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAMPLING_RESUME_LABEL_VISIBLE, true) {
3520         
3521             @Override
3522             public void applyDataBinding() {
3523                 if (model != null) {
3524                     model.addPropertyChangeListener("simpleCountingMode", this);
3525                 }
3526             }
3527         
3528             @Override
3529             public void processDataBinding() {
3530                 if (model != null) {
3531                     samplingResumeLabel.setVisible(!model.isSimpleCountingMode());
3532                 }
3533             }
3534         
3535             @Override
3536             public void removeDataBinding() {
3537                 if (model != null) {
3538                     model.removePropertyChangeListener("simpleCountingMode", this);
3539                 }
3540             }
3541         });
3542         registerDataBinding(new DefaultJAXXBinding(this, BINDING_$JSEPARATOR0_VISIBLE, true) {
3543         
3544             @Override
3545             public void applyDataBinding() {
3546                 if (model != null) {
3547                     model.addPropertyChangeListener("simpleCountingMode", this);
3548                 }
3549             }
3550         
3551             @Override
3552             public void processDataBinding() {
3553                 if (model != null) {
3554                     $JSeparator0.setVisible(!model.isSimpleCountingMode());
3555                 }
3556             }
3557         
3558             @Override
3559             public void removeDataBinding() {
3560                 if (model != null) {
3561                     model.removePropertyChangeListener("simpleCountingMode", this);
3562                 }
3563             }
3564         });
3565         registerDataBinding(new DefaultJAXXBinding(this, BINDING_FREQUENCIES_TITLE_PANEL_TITLE_PAINTER, true) {
3566         
3567             @Override
3568             public void applyDataBinding() {
3569                 if (getModel() != null) {
3570                     getModel().addPropertyChangeListener("frequenciesColor", this);
3571                 }
3572             }
3573         
3574             @Override
3575             public void processDataBinding() {
3576                 if (getModel() != null) {
3577                     frequenciesTitlePanel.setTitlePainter(new org.jdesktop.swingx.painter.MattePainter(getModel().getFrequenciesColor()));
3578                 }
3579             }
3580         
3581             @Override
3582             public void removeDataBinding() {
3583                 if (getModel() != null) {
3584                     getModel().removePropertyChangeListener("frequenciesColor", this);
3585                 }
3586             }
3587         });
3588         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_NUMBER_LABEL_ENABLED, true) {
3589         
3590             @Override
3591             public void applyDataBinding() {
3592                 if (model != null) {
3593                     model.addPropertyChangeListener("simpleCountingMode", this);
3594                 }
3595             }
3596         
3597             @Override
3598             public void processDataBinding() {
3599                 if (model != null) {
3600                     totalNumberLabel.setEnabled(!model.isSimpleCountingMode());
3601                 }
3602             }
3603         
3604             @Override
3605             public void removeDataBinding() {
3606                 if (model != null) {
3607                     model.removePropertyChangeListener("simpleCountingMode", this);
3608                 }
3609             }
3610         });
3611         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_NUMBER_FIELD_TEXT, true) {
3612         
3613             @Override
3614             public void applyDataBinding() {
3615                 if (model != null) {
3616                     model.addPropertyChangeListener("totalNumber", this);
3617                 }
3618             }
3619         
3620             @Override
3621             public void processDataBinding() {
3622                 if (model != null) {
3623                     SwingUtil.setText(totalNumberField, getStringValue(model.getTotalNumber()));
3624                 }
3625             }
3626         
3627             @Override
3628             public void removeDataBinding() {
3629                 if (model != null) {
3630                     model.removePropertyChangeListener("totalNumber", this);
3631                 }
3632             }
3633         });
3634         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_WEIGHT_LABEL_ENABLED, true) {
3635         
3636             @Override
3637             public void applyDataBinding() {
3638                 if (model != null) {
3639                     model.addPropertyChangeListener("totalWeight", this);
3640                 }
3641             }
3642         
3643             @Override
3644             public void processDataBinding() {
3645                 if (model != null) {
3646                     totalWeightLabel.setEnabled(model.getTotalWeight() != null);
3647                 }
3648             }
3649         
3650             @Override
3651             public void removeDataBinding() {
3652                 if (model != null) {
3653                     model.removePropertyChangeListener("totalWeight", this);
3654                 }
3655             }
3656         });
3657         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_WEIGHT_FIELD_NUMBER_VALUE, true) {
3658         
3659             @Override
3660             public void applyDataBinding() {
3661                 if (model != null) {
3662                     model.addPropertyChangeListener("totalWeight", this);
3663                 }
3664             }
3665         
3666             @Override
3667             public void processDataBinding() {
3668                 if (model != null) {
3669                     totalWeightField.setNumberValue(model.getTotalWeight());
3670                 }
3671             }
3672         
3673             @Override
3674             public void removeDataBinding() {
3675                 if (model != null) {
3676                     model.removePropertyChangeListener("totalWeight", this);
3677                 }
3678             }
3679         });
3680         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TOTAL_WEIGHT_FIELD_BEAN, true) {
3681         
3682             @Override
3683             public void applyDataBinding() {
3684                 if (model != null) {
3685                     model.addPropertyChangeListener("totalComputedOrNotWeight", this);
3686                 }
3687             }
3688         
3689             @Override
3690             public void processDataBinding() {
3691                 if (model != null) {
3692                     totalWeightField.setBean(model.getTotalComputedOrNotWeight());
3693                 }
3694             }
3695         
3696             @Override
3697             public void removeDataBinding() {
3698                 if (model != null) {
3699                     model.removePropertyChangeListener("totalComputedOrNotWeight", this);
3700                 }
3701             }
3702         });
3703         registerDataBinding(new DefaultJAXXBinding(this, BINDING_TABLE_ENABLED, true, true) {
3704         
3705             @Override
3706             public void applyDataBinding() {
3707                 if (model != null) {
3708                     model.addPropertyChangeListener("lengthStepCaracteristic", this);
3709                 }
3710                 if (model != null) {
3711                     model.addPropertyChangeListener("step", this);
3712                 }
3713             }
3714         
3715             @Override
3716             public void processDataBinding() {
3717                 if (model != null) {
3718                     table.setEnabled(model.getLengthStepCaracteristic() != null && model.getStep() > 0f);
3719                 }
3720             }
3721         
3722             @Override
3723             public void removeDataBinding() {
3724                 if (model != null) {
3725                     model.removePropertyChangeListener("lengthStepCaracteristic", this);
3726                 }
3727                 if (model != null) {
3728                     model.removePropertyChangeListener("step", this);
3729                 }
3730             }
3731         });
3732         registerDataBinding(new DefaultJAXXBinding(this, BINDING_OBS_TABLE_TITLE_PANEL_TITLE_PAINTER, true) {
3733         
3734             @Override
3735             public void applyDataBinding() {
3736                 if (getModel() != null) {
3737                     getModel().addPropertyChangeListener("individualObservationColor", this);
3738                 }
3739             }
3740         
3741             @Override
3742             public void processDataBinding() {
3743                 if (getModel() != null) {
3744                     obsTableTitlePanel.setTitlePainter(new org.jdesktop.swingx.painter.MattePainter(getModel().getIndividualObservationColor()));
3745                 }
3746             }
3747         
3748             @Override
3749             public void removeDataBinding() {
3750                 if (getModel() != null) {
3751                     getModel().removePropertyChangeListener("individualObservationColor", this);
3752                 }
3753             }
3754         });
3755         registerDataBinding(new DefaultJAXXBinding(this, BINDING_OBS_TABLE_ENABLED, true) {
3756         
3757             @Override
3758             public void applyDataBinding() {
3759                 if (model != null) {
3760                     model.addPropertyChangeListener("lengthStepCaracteristic", this);
3761                 }
3762             }
3763         
3764             @Override
3765             public void processDataBinding() {
3766                 if (model != null) {
3767                     obsTable.setEnabled(model.getLengthStepCaracteristic() != null);
3768                 }
3769             }
3770         
3771             @Override
3772             public void removeDataBinding() {
3773                 if (model != null) {
3774                     model.removePropertyChangeListener("lengthStepCaracteristic", this);
3775                 }
3776             }
3777         });
3778         registerDataBinding(new DefaultJAXXBinding(this, BINDING_DATA_IN_FREQUENCIES_WARNING_CONTAINER_VISIBLE, true, true) {
3779         
3780             @Override
3781             public void applyDataBinding() {
3782                 if (model != null) {
3783                     model.addPropertyChangeListener("rowsInError", this);
3784                 }
3785                 if (model != null) {
3786                     model.addPropertyChangeListener("emptyRows", this);
3787                 }
3788                 if (model != null) {
3789                     model.addPropertyChangeListener("rows", this);
3790                 }
3791             }
3792         
3793             @Override
3794             public void processDataBinding() {
3795                 if (model != null && model.getRows() != null && model.getEmptyRows() != null && model.getRowsInError() != null) {
3796                     dataInFrequenciesWarningContainer.setVisible((model.getRowsInError().size() + model.getEmptyRows().size()) != model.getRows().size());
3797                 }
3798             }
3799         
3800             @Override
3801             public void removeDataBinding() {
3802                 if (model != null) {
3803                     model.removePropertyChangeListener("rowsInError", this);
3804                 }
3805                 if (model != null) {
3806                     model.removePropertyChangeListener("emptyRows", this);
3807                 }
3808                 if (model != null) {
3809                     model.removePropertyChangeListener("rows", this);
3810                 }
3811             }
3812         });
3813         registerDataBinding(new SimpleJAXXObjectBinding(this, BINDING_SIMPLE_COUNTING_NUMBER_FIELD_NUMBER_PATTERN, true ,"INT_6_DIGITS_PATTERN") {
3814         
3815             @Override
3816             public void processDataBinding() {
3817                 simpleCountingNumberField.setNumberPattern(INT_6_DIGITS_PATTERN);
3818             }
3819         });
3820         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SIMPLE_COUNTING_NUMBER_FIELD_NUMBER_VALUE, true) {
3821         
3822             @Override
3823             public void applyDataBinding() {
3824                 if (model != null) {
3825                     model.addPropertyChangeListener("simpleCount", this);
3826                 }
3827             }
3828         
3829             @Override
3830             public void processDataBinding() {
3831                 if (model != null) {
3832                     simpleCountingNumberField.setNumberValue(model.getSimpleCount());
3833                 }
3834             }
3835         
3836             @Override
3837             public void removeDataBinding() {
3838                 if (model != null) {
3839                     model.removePropertyChangeListener("simpleCount", this);
3840                 }
3841             }
3842         });
3843         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SIMPLE_COUNTING_WEIGHT_FIELD_NUMBER_VALUE, true) {
3844         
3845             @Override
3846             public void applyDataBinding() {
3847                 if (model != null) {
3848                     model.addPropertyChangeListener("totalWeight", this);
3849                 }
3850             }
3851         
3852             @Override
3853             public void processDataBinding() {
3854                 if (model != null) {
3855                     simpleCountingWeightField.setNumberValue(model.getTotalWeight());
3856                 }
3857             }
3858         
3859             @Override
3860             public void removeDataBinding() {
3861                 if (model != null) {
3862                     model.removePropertyChangeListener("totalWeight", this);
3863                 }
3864             }
3865         });
3866         registerDataBinding(new DefaultJAXXBinding(this, BINDING_SIMPLE_COUNTING_WEIGHT_FIELD_BEAN, true) {
3867         
3868             @Override
3869             public void applyDataBinding() {
3870                 if (model != null) {
3871                     model.addPropertyChangeListener("totalComputedOrNotWeight", this);
3872                 }
3873             }
3874         
3875             @Override
3876             public void processDataBinding() {
3877                 if (model != null) {
3878                     simpleCountingWeightField.setBean(model.getTotalComputedOrNotWeight());
3879                 }
3880             }
3881         
3882             @Override
3883             public void removeDataBinding() {
3884                 if (model != null) {
3885                     model.removePropertyChangeListener("totalComputedOrNotWeight", this);
3886                 }
3887             }
3888         });
3889     }
3890 
3891 }