r293 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency resources/i18n
Author: kmorin Date: 2013-02-01 17:37:18 +0100 (Fri, 01 Feb 2013) New Revision: 293 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/293 Log: fixes #1959 [ESPECES] ajouter la saisie directe du nombre d'individus dans le popup "mensuration" pour le cas o?\195?\185 on ne mesure pas les individus (simple d?\195?\169nombrement). Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/FrequencyCellComponent.java 2013-02-01 16:37:18 UTC (rev 293) @@ -152,11 +152,19 @@ // transfer rows to editor List<SpeciesFrequencyRowModel> frequency = Lists.newArrayList(); - for (SpeciesFrequencyRowModel row : frequencyModel.getRows()) { - if (row.isValid()) { + + if (frequencyModel.isSimpleCountingMode()) { + SpeciesFrequencyRowModel row = new SpeciesFrequencyRowModel(); + row.setNumber(frequencyModel.getSimpleCount()); + frequency.add(row); + + } else { + for (SpeciesFrequencyRowModel row : frequencyModel.getRows()) { + if (row.isValid()) { - // can keep this row - frequency.add(row); + // can keep this row + frequency.add(row); + } } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2013-02-01 16:37:18 UTC (rev 293) @@ -43,6 +43,7 @@ #stepLabel { text: "tutti.label.frequencyConfiguration.step"; labelFor: {stepField}; + enabled: {!model.isSimpleCountingMode()}; } #stepField { @@ -51,16 +52,19 @@ useFloat: true; numberPattern: {DECIMAL1_PATTERN}; bean: {model}; + enabled: {!model.isSimpleCountingMode()}; } #lengthStepCaracteristicLabel { text: "tutti.label.frequencyConfiguration.lengthStepCaracteristic"; labelFor: {lengthStepCaracteristicComboBox}; + enabled: {!model.isSimpleCountingMode()}; } #lengthStepCaracteristicComboBox { property: lengthStepCaracteristic; selectedItem: {model.getLengthStepCaracteristic()}; + enabled: {!model.isSimpleCountingMode()}; } #minStepLabel { @@ -151,6 +155,20 @@ buttonGroup: "mode"; } +#simpleCountingModeButton { + text: "tutti.label.frequencyConfiguration.mode.simpleCounting"; + toolTipText: "tutti.label.frequencyConfiguration.mode.simpleCounting.tip"; + value: "simpleCountingMode"; + selected: {model.isSimpleCountingMode()}; + buttonGroup: "mode"; +} + +#simpleCountingModeLabel { + text: "tutti.label.frequencyConfiguration.no.configuration"; + horizontalAlignment: {JLabel.CENTER}; + enabled: false; +} + #closeButton { actionIcon: "close"; text: "tutti.action.close"; @@ -158,6 +176,14 @@ enabled: {model.getRows().size() == 0 || model.getLengthStepCaracteristic() != null}; } +#dataFieldLayout { + selected: {model.isSimpleCountingMode() ? "noLengthCaracteristicPmfm" : "lengthCaracteristicPmfm"}; +} + +#dataFieldPanel { + layout: {dataFieldLayout}; +} + #table { selectionMode: {ListSelectionModel.SINGLE_SELECTION}; selectionBackground: {null}; @@ -166,6 +192,20 @@ enabled: {model.getLengthStepCaracteristic() != null} } +#simpleCountingLabel { + text: "tutti.table.species.frequency.header.number"; + labelFor: {simpleCountingField}; +} + +#simpleCountingField { + property: simpleCount; + model: {model.getSimpleCount()}; + useFloat: false; + showReset: true; + numberPattern: {TuttiUI.INT_6_DIGITS_PATTERN}; + bean: {model}; +} + #cancelButton { actionIcon: cancel; mnemonic: C; @@ -178,18 +218,3 @@ text: "tutti.action.save"; enabled: {model.isValid()}; } - -#messagePanel { - border: {BorderFactory.createTitledBorder(_("tutti.title.messages"))}; - /*height: 200; - width: 500;*/ -} - -#errorTable { - rowSelectionAllowed: true; - autoCreateRowSorter: true; - autoResizeMode: {JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS}; - cellSelectionEnabled: false; - selectionMode: {ListSelectionModel.SINGLE_SELECTION}; - model: {errorTableModel}; -} \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2013-02-01 16:37:18 UTC (rev 293) @@ -81,6 +81,9 @@ <CardLayout2Ext id='modeConfigurationLayout' constructorParams='this, "modeConfigurationPanel"'/> + + <CardLayout2Ext id='dataFieldLayout' + constructorParams='this, "dataFieldPanel"'/> <JPanel id='configurationPanel' layout='{new BorderLayout()}' constraints='BorderLayout.NORTH'> @@ -94,6 +97,8 @@ onActionPerformed='model.setConfigurationMode(SpeciesFrequencyUIModel.ConfigurationMode.AUTO_GEN)'/> <JRadioButton id='rafaleModeButton' onActionPerformed='model.setConfigurationMode(SpeciesFrequencyUIModel.ConfigurationMode.RAFALE)'/> + <JRadioButton id='simpleCountingModeButton' + onActionPerformed='model.setConfigurationMode(SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE_COUNTING)'/> </VBox> <JPanel id='modeConfigurationPanel' constraints='BorderLayout.CENTER'> @@ -148,6 +153,10 @@ </row> </Table> </JPanel> + <JPanel id='simpleCountingModePanel' constraints='"simpleCountingMode"' + layout='{new BorderLayout()}'> + <JLabel id='simpleCountingModeLabel' constraints='BorderLayout.CENTER'/> + </JPanel> </JPanel> </JPanel> <Table fill='both' constraints='BorderLayout.SOUTH'> @@ -178,11 +187,23 @@ </row> </Table> </JPanel> + + <JPanel id='dataFieldPanel' constraints='BorderLayout.CENTER'> + <JScrollPane id='tableScrollPane' constraints='"lengthCaracteristicPmfm"'> + <JXTable id='table'/> + </JScrollPane> + <Table constraints='"noLengthCaracteristicPmfm"' fill='horizontal'> + <row> + <cell> + <JLabel id='simpleCountingLabel'/> + </cell> + <cell weightx='1'> + <NumberEditor id='simpleCountingField' constructorParams='this'/> + </cell> + </row> + </Table> + </JPanel> - <JScrollPane id='tableScrollPane' constraints='BorderLayout.CENTER'> - <JXTable id='table'/> - </JScrollPane> - <!-- actions --> <JPanel id='actionPanel' layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-01 16:37:18 UTC (rev 293) @@ -179,7 +179,7 @@ lengthStepCaracteristics = TuttiEntities.splitById(lengthStepCaracterics); SpeciesFrequencyUIModel model = getModel(); - + if (context.isProtocolFilled()) { // get loaded protocol @@ -195,7 +195,7 @@ // speciesProtocol = TuttiEntities.splitById(protocol.getSpecies()); } - + //TODO Use protocol to have lengthStepCaracteristic to use (if any protocol) initBeanComboBox(ui.getLengthStepCaracteristicComboBox(), lengthStepCaracterics, @@ -207,9 +207,6 @@ model.setMinStep(10f); model.setMaxStep(20f); - //TODO Configure this ? - model.setConfigurationMode(SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE); - ui.getRafaleStepField().getTextField().addKeyListener(new KeyAdapter() { @Override @@ -477,11 +474,21 @@ // connect model to validator ui.getValidator().setBean(model); - + model.setRows(editFrequency); model.setStep(lengthStep); model.setLengthStepCaracteristic(lengthStepCaracteristic); - + + SpeciesFrequencyUIModel.ConfigurationMode mode = SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE; + if (protocol != null) { + String speciesId = speciesBatch.getSpecies().getId(); + SpeciesProtocol speciesProtocol = this.speciesProtocol.get(speciesId); + if (speciesProtocol.getLengthStepPmfmId() == null) { + mode = SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE_COUNTING; + } + } + model.setConfigurationMode(mode); + // keep batch (will be used to push back editing entry) model.setBatch(speciesBatch); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java 2013-02-01 16:37:18 UTC (rev 293) @@ -52,12 +52,17 @@ public static final String PROPERTY_RAFALE_MODE = "rafaleMode"; + public static final String PROPERTY_SIMPLE_COUNTING_MODE = "simpleCountingMode"; + + public static final String PROPERTY_SIMPLE_COUNT = "simpleCount"; + public static final String PROPERTY_LENGHT_STEP_CARACTERISTIC = "lengthStepCaracteristic"; public static enum ConfigurationMode { SIMPLE, AUTO_GEN, - RAFALE + RAFALE, + SIMPLE_COUNTING } /** @@ -101,6 +106,13 @@ * @since 0.3 */ protected Caracteristic lengthStepCaracteristic; + + /** + * Number in case of simple counting mode + * + * @since 1.0 + */ + protected Integer simpleCount; public SpeciesFrequencyUIModel() { super(SpeciesBatchRowModel.class, null, null); @@ -117,6 +129,7 @@ firePropertyChange(PROPERTY_SIMPLE_MODE, null, isSimpleMode()); firePropertyChange(PROPERTY_AUTO_GEN_MODE, null, isAutoGenMode()); firePropertyChange(PROPERTY_RAFALE_MODE, null, isRafaleMode()); + firePropertyChange(PROPERTY_SIMPLE_COUNTING_MODE, null, isSimpleCountingMode()); } public float getStep() { @@ -161,6 +174,16 @@ firePropertyChange(PROPERTY_CAN_GENERATE, null, isCanGenerate()); } + public Integer getSimpleCount() { + return simpleCount; + } + + public void setSimpleCount(Integer simpleCount) { + Object oldValue = getSimpleCount(); + this.simpleCount = simpleCount; + firePropertyChange(PROPERTY_SIMPLE_COUNT, oldValue, simpleCount); + } + public boolean isSimpleMode() { return ConfigurationMode.SIMPLE == configurationMode; } @@ -172,6 +195,10 @@ public boolean isRafaleMode() { return ConfigurationMode.RAFALE == configurationMode; } + + public boolean isSimpleCountingMode() { + return ConfigurationMode.SIMPLE_COUNTING == configurationMode; + } public boolean isCanGenerate() { return minStep != null && maxStep != null && maxStep > minStep; Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml 2013-02-01 16:37:18 UTC (rev 293) @@ -28,23 +28,22 @@ <field name="lengthStepCaracteristic"> - <field-validator type="required" short-circuit="true"> - <message> - tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required - </message> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ isSimpleCountingMode() || lengthStepCaracteristic != null ]]> + </param> + <message>tutti.validator.error.speciesFrequency.lengthStepCaracteristic.required</message> </field-validator> - + </field> <field name="rows"> <field-validator type="fieldexpression" short-circuit="true"> <param name="expression"> - <![CDATA[ oneRowValid ]]> + <![CDATA[ isSimpleCountingMode() || rows != null ]]> </param> - <message> - tutti.validator.error.speciesFrequency.oneRowRequired - </message> + <message>tutti.validator.error.speciesFrequency.oneRowRequired</message> </field-validator> </field> Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-01 15:13:51 UTC (rev 292) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-01 16:37:18 UTC (rev 293) @@ -202,6 +202,8 @@ tutti.label.frequencyConfiguration.mode.rafale.tip=Mode où on ne saisit uniquement la classe de taille (les nombres seront alors incrémentés...) tutti.label.frequencyConfiguration.mode.simple=Mode simple tutti.label.frequencyConfiguration.mode.simple.tip=Mode par défaut on on doit tout saisir (les classes de tailles et les nombres) +tutti.label.frequencyConfiguration.mode.simpleCounting=Mode simple dénombrement +tutti.label.frequencyConfiguration.mode.simpleCounting.tip=Mode par défaut si la classe de taille n'est pas renseignée dans le protocole. tutti.label.frequencyConfiguration.no.configuration=< Pas de configuration > tutti.label.frequencyConfiguration.rafaleStep=Classe de taille à incrémenter tutti.label.frequencyConfiguration.step=Pas de la classe de taille
participants (1)
-
kmorin@users.forge.codelutin.com