r737 - in trunk/tutti-ui-swing/src/main: filtered-resources java/fr/ifremer/tutti/ui/swing/content java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create java/fr/ifremer/tutti/ui/swing/util/table resources/fr/ifremer/tutti/ui/swing/content resources/fr/ifremer/tutti/ui/swing/content/operation/catches resources/fr/ifremer/tutti/ui/swing/content/o
Author: tchemit Date: 2013-04-04 21:09:48 +0200 (Thu, 04 Apr 2013) New Revision: 737 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/737 Log: fixes #1865: [MACRODECHET] - Gestion de la saisie des Macrod?\195?\169chets add xml prolog on every validation file fixes #2233: [TECH] d?\195?\169marage 1.2 sans dossier data : erreur Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel-error-validation.xml Removed: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/program/ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/protocol/ Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/RemoveMarineLitterBatchAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel-error-validation.xml 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/split/SplitSpeciesBatchUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties =================================================================== --- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-en.properties 2013-04-04 19:09:48 UTC (rev 737) @@ -1,5 +1,28 @@ +### +# #%L +# Tutti :: UI +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2012 - 2013 Ifremer +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/gpl-3.0.html>. +# #L% +### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Wed Apr 03 18:09:43 CEST 2013 +#Thu Apr 04 20:09:11 CEST 2013 tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions @@ -7,6 +30,12 @@ tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields tutti.createBenthosBatch.help=createBenthosBatch.html +tutti.createMarineLitterBatch.action.cancel.help= +tutti.createMarineLitterBatch.action.save.help= +tutti.createMarineLitterBatch.field.marineLitterCategory.help= +tutti.createMarineLitterBatch.field.marineLitterSizeCategory.help= +tutti.createMarineLitterBatch.field.number.help= +tutti.createMarineLitterBatch.help= tutti.createSpeciesBatch.action.addSpecies.help=createSpeciesBatch.html\#actions tutti.createSpeciesBatch.action.cancel.help=createSpeciesBatch.html\#actions tutti.createSpeciesBatch.action.save.help=createSpeciesBatch.html\#actions @@ -118,6 +147,8 @@ tutti.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields tutti.editFishingOperation.help=editFishingOperation.html +tutti.editMarineLitterBatch.action.createBatch.help= +tutti.editMarineLitterBatch.action.removeBatch.help= tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help= tutti.editProgram.action.cancelProgram.help=editProgram.html\#actions tutti.editProgram.action.saveProgram.help=editProgram.html\#actions Modified: trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties =================================================================== --- trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/filtered-resources/tutti-help-fr.properties 2013-04-04 19:09:48 UTC (rev 737) @@ -1,5 +1,28 @@ +### +# #%L +# Tutti :: UI +# $Id$ +# $HeadURL$ +# %% +# Copyright (C) 2012 - 2013 Ifremer +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/gpl-3.0.html>. +# #L% +### #Generated by org.nuiton.jaxx.plugin.GenerateHelpIdsMojo -#Wed Apr 03 18:09:43 CEST 2013 +#Thu Apr 04 20:09:11 CEST 2013 tutti.createBenthosBatch.action.addSpecies.help=createBenthosBatch.html\#actions tutti.createBenthosBatch.action.cancel.help=createBenthosBatch.html\#actions tutti.createBenthosBatch.action.save.help=createBenthosBatch.html\#actions @@ -7,6 +30,12 @@ tutti.createBenthosBatch.field.sortedUnsortedCategory.help=createBenthosBatch.html\#fields tutti.createBenthosBatch.field.species.help=createBenthosBatch.html\#fields tutti.createBenthosBatch.help=createBenthosBatch.html +tutti.createMarineLitterBatch.action.cancel.help= +tutti.createMarineLitterBatch.action.save.help= +tutti.createMarineLitterBatch.field.marineLitterCategory.help= +tutti.createMarineLitterBatch.field.marineLitterSizeCategory.help= +tutti.createMarineLitterBatch.field.number.help= +tutti.createMarineLitterBatch.help= tutti.createSpeciesBatch.action.addSpecies.help=createSpeciesBatch.html\#actions tutti.createSpeciesBatch.action.cancel.help=createSpeciesBatch.html\#actions tutti.createSpeciesBatch.action.save.help=createSpeciesBatch.html\#actions @@ -127,6 +156,8 @@ tutti.editFishingOperation.field.trawlDistance.help=editFishingOperation.html\#fields tutti.editFishingOperation.field.vessel.help=editFishingOperation.html\#fields tutti.editFishingOperation.help=editFishingOperation.html +tutti.editMarineLitterBatch.action.createBatch.help= +tutti.editMarineLitterBatch.action.removeBatch.help= tutti.editMarineLitterBatch.field.marineLitterTotalWeight.help= tutti.editProgram.action.cancelProgram.help=editProgram.html\#actions tutti.editProgram.action.saveProgram.help=editProgram.html\#actions Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/MainUIHandler.java 2013-04-04 19:09:48 UTC (rev 737) @@ -45,7 +45,11 @@ import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI; import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler; import fr.ifremer.tutti.ui.swing.content.referential.ManageTemporaryReferentialUI; -import fr.ifremer.tutti.ui.swing.util.*; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.util.CloseableUI; +import fr.ifremer.tutti.ui.swing.util.RemoveablePropertyChangeListener; +import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper; import fr.ifremer.tutti.ui.swing.util.action.TuttiActionUI; import fr.ifremer.tutti.ui.swing.util.action.TuttiUIAction; @@ -56,8 +60,12 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; -import javax.swing.*; -import java.awt.*; +import javax.swing.Icon; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JToolBar; +import java.awt.Cursor; import java.beans.PropertyChangeEvent; import java.net.URL; import java.util.Locale; @@ -127,7 +135,9 @@ @Override public void propertyChange(PropertyChangeEvent evt) { Boolean newvalue = (Boolean) evt.getNewValue(); - getUI().getBody().setVisible(newvalue != null && newvalue); + if (getUI() != null && getUI().getBody() != null) { + getUI().getBody().setVisible(newvalue != null && newvalue); + } } }); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-04-04 19:09:48 UTC (rev 737) @@ -267,6 +267,10 @@ _computed: true; } +#marineLitterTabPanel { + layout:{marineLitterTabPanelLayout}; +} + #marineLitterTable { border: {BorderFactory.createTitledBorder(_("tutti.editCatchBatch.legend.marineLitter"))}; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-04-04 19:09:48 UTC (rev 737) @@ -31,6 +31,7 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.accidental.AccidentalBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.MarineLitterBatchUI + fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyUI fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.create.CreateBenthosBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.split.SplitBenthosBatchUI @@ -96,6 +97,9 @@ <CardLayout2Ext id='benthosTabPanelLayout' constructorParams='this, "benthosTabPanel"'/> + <CardLayout2Ext id='marineLitterTabPanelLayout' + constructorParams='this, "marineLitterTabPanel"'/> + <CardLayout2Ext id='catchTotalSortedWeightPanelLayout' constructorParams='this, "catchTotalSortedWeightPanel"'/> @@ -347,11 +351,20 @@ </JPanel> </tab> <tab id='marineLitterTab' title='tutti.label.tab.marineLitter'> - <JXTitledPanel id='marineLitterTabFishingOperationReminderLabel'> - <MarineLitterBatchUI id='marineLitterTabContent' - constructorParams='this'/> - </JXTitledPanel> + <JPanel id='marineLitterTabPanel'> + <JXTitledPanel id='marineLitterTabFishingOperationReminderLabel'> + <MarineLitterBatchUI id='marineLitterTabContent' + constructorParams='this' + constraints='EditCatchesUIHandler.MAIN_CARD'/> + </JXTitledPanel> + <JXTitledPanel id='marineLitterTabCreateBatchReminderLabel' + constraints='EditCatchesUIHandler.CREATE_BATCH_CARD'> + <CreateMarineLitterBatchUI id='marineLitterTabCreateBatch' + constructorParams='this'/> + </JXTitledPanel> + </JPanel> </tab> + <tab id='planktonTab' title='tutti.label.tab.plancton'> <!--JXTitledPanel id='planktonTabFishingOperationReminderLabel'> <PlanktonBatchUI id='planktonTabContent' constructorParams='this'/> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-04-04 19:09:48 UTC (rev 737) @@ -374,6 +374,39 @@ } } + public void setMarineLitterSelectedCard(String card) { + JPanel panel = ui.getMarineLitterTabPanel(); + CardLayout2Ext layout = (CardLayout2Ext) panel.getLayout(); + if (!card.equals(layout.getSelected())) { + layout.setSelected(card); + + JPanel actionPanel = getUI().getCreateFishingOperationActions(); + if (MAIN_CARD.equals(card)) { + registerValidators(); + actionPanel.setVisible(true); + } else { + actionPanel.setVisible(false); + TuttiUI tuttiUi = null; + JXTitledPanel titlePanel = null; + String title = ""; + switch (card) { + case CREATE_BATCH_CARD: + tuttiUi = ui.getMarineLitterTabCreateBatch(); + titlePanel = ui.getMarineLitterTabCreateBatchReminderLabel(); + title = n_("tutti.createMarineLitterBatch.title"); + break; + } + + if (tuttiUi != null) { + registerValidators(tuttiUi.getHandler().getValidator()); + } + if (titlePanel != null) { + titlePanel.setTitle(ui.getMarineLitterTabCreateBatchReminderLabel().getTitle() + " - " + _(title)); + } + } + } + } + public void selectCatchTotalSortedWeightPanel(Vessel vessel) { String card; String carousselTremieVesselId = getConfig().getTremieCarousselVesselId(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchTableModel.java 2013-04-04 19:09:48 UTC (rev 737) @@ -69,7 +69,7 @@ n_("tutti.editMarineLitterBatch.table.header.file.tip")); public MarineLitterBatchTableModel(TableColumnModelExt columnModel) { - super(columnModel, true, true); + super(columnModel, false, false); setNoneEditableCols(); } @@ -82,20 +82,4 @@ result.setValid(false); return result; } - - @Override - protected boolean isCellEditable(int rowIndex, - int columnIndex, - ColumnIdentifier<MarineLitterBatchRowModel> propertyName) { - boolean cellEditable = super.isCellEditable(rowIndex, - columnIndex, - propertyName); - if (ATTACHMENT == propertyName) { - - // only editable if row exists - MarineLitterBatchRowModel entry = getEntry(rowIndex); - cellEditable = entry.getObjectId() != null; - } - return cellEditable; - } } \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.css 2013-04-04 19:09:48 UTC (rev 737) @@ -69,7 +69,16 @@ sortable: false; } -#removeSpeciesBatchMenu { +#createMarineLitterBatchButton { + actionIcon: batch-create; + text: "tutti.editMarineLitterBatch.action.createBatch"; + toolTipText: "tutti.editMarineLitterBatch.action.createBatch.tip"; + i18nMnemonic: "tutti.editMarineLitterBatch.action.createBatch.mnemonic"; + /*enabled: {model.isCreateBatchEnabled()};*/ + _help: {"tutti.editMarineLitterBatch.action.createBatch.help"}; +} + +#removeMarineLitterBatchMenu { actionIcon: batch-delete; text: "tutti.editMarineLitterBatch.action.removeBatch"; toolTipText: "tutti.editMarineLitterBatch.action.removeBatch.tip"; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUI.jaxx 2013-04-04 19:09:48 UTC (rev 737) @@ -90,10 +90,23 @@ constructorParams='this'/> </cell> </row> + + <!-- Toolbar / Filter --> + <row> + <cell columns="2"> + <JPanel id='tableToolbar' layout='{new BorderLayout()}'> + <JPanel layout='{new GridLayout(1,0)}' + constraints='BorderLayout.WEST'> + <JButton id='createMarineLitterBatchButton' + onActionPerformed='handler.createBatch()'/> + </JPanel> + </JPanel> + </cell> + </row> </Table> <JScrollPane id='tableScrollPane' constraints='BorderLayout.CENTER'> - <JXTable id='table' + <JXTable id='table' onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)' onFocusLost='handler.saveSelectedRowIfRequired(event);'/> </JScrollPane> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/MarineLitterBatchUIHandler.java 2013-04-04 19:09:48 UTC (rev 737) @@ -33,8 +33,11 @@ import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchTableModel; +import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create.CreateMarineLitterBatchUIModel; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUI; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; @@ -42,6 +45,8 @@ import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentCellRenderer; import fr.ifremer.tutti.ui.swing.util.comment.CommentCellEditor; import fr.ifremer.tutti.ui.swing.util.comment.CommentCellRenderer; +import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction; +import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -178,35 +183,17 @@ protected void saveSelectedRowIfRequired(TuttiBeanMonitor<MarineLitterBatchRowModel> rowMonitor, MarineLitterBatchRowModel row) { - if (row != null) { + if (row != null && row.isValid() && rowMonitor.wasModified()) { - if (row.isValid()) { - // there is a valid bean attached to the monitor + // monitored bean was modified, save it + if (log.isInfoEnabled()) { + log.info("Row " + row + " was modified, will save it"); + } - if (rowMonitor.wasModified()) { + saveRow(row); - // monitored bean was modified, save it - if (log.isInfoEnabled()) { - log.info("Row " + row + " was modified, will save it"); - } - - saveRow(row); - - // clear modified flag on the monitor - rowMonitor.clearModified(); - } - } else { - - // row is not valid can not save it - - MarineLitterBatch batch = row.toBean(); - - if (!TuttiEntities.isNew(batch)) { - - // remove this - persistenceService.deleteMarineLitterBatch(batch.getId()); - } - } + // clear modified flag on the monitor + rowMonitor.clearModified(); } } @@ -389,6 +376,36 @@ //-- Public methods --// //------------------------------------------------------------------------// + public void createBatch() { + + EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class); + CreateMarineLitterBatchUI createBatchEditor = parent.getMarineLitterTabCreateBatch(); + + createBatchEditor.getHandler().openUI(); + parent.getHandler().setMarineLitterSelectedCard(EditCatchesUIHandler.CREATE_BATCH_CARD); + } + + public void addBatch(CreateMarineLitterBatchUIModel model) { + if (model.isValid()) { + + MarineLitterBatchTableModel tableModel = getTableModel(); + + MarineLitterBatchRowModel newRow = tableModel.createNewRow(); + newRow.setMarineLitterCategory(model.getMarineLitterCategory()); + newRow.setMarineLitterSizeCategory(model.getMarineLitterSizeCategory()); + newRow.setNumber(model.getNumber()); + + recomputeRowValidState(newRow); + + saveRow(newRow); + + tableModel.addNewRow(newRow); + AbstractSelectTableAction.doSelectCell(getTable(), tableModel.getRowCount() - 1, 0); + } + + recomputeBatchActionEnable(); + } + //------------------------------------------------------------------------// //-- Internal methods --// //------------------------------------------------------------------------// @@ -402,9 +419,7 @@ if (rowIndex != -1) { // there is a selected row - enableRemove = true; - } MarineLitterBatchUIModel model = getModel(); model.setRemoveBatchEnabled(enableRemove); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/RemoveMarineLitterBatchAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/RemoveMarineLitterBatchAction.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/RemoveMarineLitterBatchAction.java 2013-04-04 19:09:48 UTC (rev 737) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.base.Preconditions; import fr.ifremer.tutti.persistence.TuttiPersistence; import fr.ifremer.tutti.persistence.entities.TuttiEntities; Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/RemoveMarineLitterBatchAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css 2013-04-04 19:09:48 UTC (rev 737) @@ -0,0 +1,94 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ +BeanFilterableComboBox { + showReset: true; + i18nPrefix: "tutti.property."; + bean: {model}; +} + +NumberEditor { + autoPopup: {handler.getConfig().isAutoPopupNumberEditor()}; + showPopupButton: {handler.getConfig().isShowNumberEditorButton()}; + showReset: true; +} + +#createMarineLitterBatchTopPanel { + _help: {"tutti.createMarineLitterBatch.help"}; +} + +#marineLitterCategoryLabel { + text: "tutti.createMarineLitterBatch.field.marineLitterCategory"; + toolTipText: "tutti.createMarineLitterBatch.field.marineLitterCategory.tip"; + labelFor: {marineLitterCategoryComboBox}; + _help: {"tutti.createMarineLitterBatch.field.marineLitterCategory.help"}; +} + +#marineLitterCategoryComboBox { + property: marineLitterCategory; + selectedItem: {model.getMarineLitterCategory()}; +} + +#marineLitterSizeCategoryLabel { + text: "tutti.createMarineLitterBatch.field.marineLitterSizeCategory"; + toolTipText: "tutti.createMarineLitterBatch.field.marineLitterSizeCategory.tip"; + labelFor: {marineLitterSizeCategoryComboBox}; + _help: {"tutti.createMarineLitterBatch.field.marineLitterSizeCategory.help"}; +} + +#marineLitterSizeCategoryComboBox { + property: marineLitterSizeCategory; + selectedItem: {model.getMarineLitterSizeCategory()}; +} + +#numberLabel { + text: "tutti.createMarineLitterBatch.field.number"; + toolTipText: "tutti.createMarineLitterBatch.field.number.tip"; + labelFor: {numberField}; + _help: {"tutti.createMarineLitterBatch.field.number.help"}; +} + +#numberField { + property: number; + model: {model.getNumber()}; + useFloat: true; + numberPattern: {DECIMAL3_PATTERN}; + bean: {model}; +} + +#saveButton { + actionIcon: save; + text: "tutti.createMarineLitterBatch.action.save"; + toolTipText: "tutti.createMarineLitterBatch.action.save.tip"; + i18nMnemonic: "tutti.createMarineLitterBatch.action.save.mnemonic"; + enabled: {model.isValid()}; + _help: {"tutti.createMarineLitterBatch.action.save.help"}; +} + +#cancelButton { + actionIcon: cancel; + text: "tutti.createMarineLitterBatch.action.cancel"; + toolTipText: "tutti.createMarineLitterBatch.action.cancel.tip"; + i18nMnemonic: "tutti.createMarineLitterBatch.action.cancel.mnemonic"; + _help: {"tutti.createMarineLitterBatch.action.cancel.help"}; +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx 2013-04-04 19:09:48 UTC (rev 737) @@ -0,0 +1,112 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JPanel id='createMarineLitterBatchTopPanel' layout='{new BorderLayout()}' + decorator='help' + implements='fr.ifremer.tutti.ui.swing.util.TuttiUI<CreateMarineLitterBatchUIModel, CreateMarineLitterBatchUIHandler>'> + <import> + fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue + + fr.ifremer.tutti.ui.swing.TuttiHelpBroker + fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI + fr.ifremer.tutti.ui.swing.util.TuttiUI + + jaxx.runtime.swing.editor.bean.BeanFilterableComboBox + jaxx.runtime.swing.editor.NumberEditor + + static org.nuiton.i18n.I18n._ + </import> + + <script><![CDATA[ + +public CreateMarineLitterBatchUI(EditCatchesUI parentUI) { + JAXXUtil.initContext(this, parentUI); + CreateMarineLitterBatchUIHandler handler = new CreateMarineLitterBatchUIHandler(parentUI, this); + setContextValue(handler); + handler.beforeInitUI(); +} + +protected void $afterCompleteSetup() { handler.afterInitUI(); } + ]]></script> + + <CreateMarineLitterBatchUIHandler id='handler' + initializer='getContextValue(CreateMarineLitterBatchUIHandler.class)'/> + + <CreateMarineLitterBatchUIModel id='model' + initializer='getContextValue(CreateMarineLitterBatchUIModel.class)'/> + + <BeanValidator id='validator' bean='model' + uiClass='jaxx.runtime.validator.swing.ui.ImageValidationUI'> + <field name='marineLitterCategory' + component='marineLitterCategoryComboBox'/> + <field name='marineLitterSizeCategory' + component='marineLitterSizeCategoryComboBox'/> + <field name='number' component='numberField'/> + </BeanValidator> + + <TuttiHelpBroker id='broker' + constructorParams='"tutti.createMarineLitterBatch.help"'/> + + <Table id='configurationPanel' constraints='BorderLayout.CENTER' fill='both'> + + <!-- MarineLitterCategory --> + <row> + <cell anchor='west'> + <JLabel id='marineLitterCategoryLabel'/> + </cell> + <cell weightx='1.0'> + <BeanFilterableComboBox id='marineLitterCategoryComboBox' constructorParams='this' + genericType='CaracteristicQualitativeValue'/> + </cell> + </row> + + <!-- MarineLitterSizeCategory--> + <row> + <cell anchor='west'> + <JLabel id='marineLitterSizeCategoryLabel'/> + </cell> + <cell weightx='1.0'> + <BeanFilterableComboBox id='marineLitterSizeCategoryComboBox' + constructorParams='this' + genericType='CaracteristicQualitativeValue'/> + </cell> + </row> + + <!-- MarineLitter number --> + <row> + <cell anchor='west'> + <JLabel id='numberLabel'/> + </cell> + <cell weightx='1.0' columns='2'> + <NumberEditor id='numberField' constructorParams='this'/> + </cell> + </row> + + </Table> + + <!-- Form Actions --> + <JPanel layout='{new GridLayout(1, 0)}' constraints='BorderLayout.SOUTH'> + <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='saveButton' onActionPerformed='handler.save()'/> + </JPanel> +</JPanel> \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUI.jaxx ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java 2013-04-04 19:09:48 UTC (rev 737) @@ -0,0 +1,173 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.TuttiPersistence; +import fr.ifremer.tutti.persistence.entities.data.SortedUnsortedEnum; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.service.DecoratorService; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; +import fr.ifremer.tutti.ui.swing.util.Cancelable; +import fr.ifremer.tutti.ui.swing.util.TuttiUI; +import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUI; +import fr.ifremer.tutti.ui.swing.util.species.SelectSpeciesUIModel; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.awt.Dimension; +import java.util.List; + +/** + * @author tchemit <chemit@codelutin.com> + * @since 1.3 + */ +public class CreateMarineLitterBatchUIHandler extends AbstractTuttiUIHandler<CreateMarineLitterBatchUIModel, CreateMarineLitterBatchUI> implements Cancelable { + + /** Logger. */ + private static final Log log = + LogFactory.getLog(CreateMarineLitterBatchUIHandler.class); + + private final TuttiPersistence persistenceService; + + public CreateMarineLitterBatchUIHandler(TuttiUI parentUi, + CreateMarineLitterBatchUI ui) { + super(parentUi.getHandler().getContext(), ui); + this.persistenceService = context.getPersistenceService(); + } + + //------------------------------------------------------------------------// + //-- AbstractTuttiUIHandler methods --// + //------------------------------------------------------------------------// + + @Override + public void beforeInitUI() { + CreateMarineLitterBatchUIModel model = new CreateMarineLitterBatchUIModel(); + ui.setContextValue(model); + listModelIsModify(model); + } + + @Override + public void afterInitUI() { + + initUI(ui); + + Caracteristic marineLitterCategoryCaracteristic = + persistenceService.getMarineLitterCategoryCaracteristic(); + initBeanFilterableComboBox(ui.getMarineLitterCategoryComboBox(), + marineLitterCategoryCaracteristic.getQualitativeValue(), + null); + + Caracteristic marineLitterSizeCategoryCaracteristic = + persistenceService.getMarineLitterSizeCategoryCaracteristic(); + + initBeanFilterableComboBox(ui.getMarineLitterSizeCategoryComboBox(), + marineLitterSizeCategoryCaracteristic.getQualitativeValue(), + null); + + listenValidatorValid(ui.getValidator(), getModel()); + } + + @Override + public void onCloseUI() { + + if (log.isDebugEnabled()) { + log.debug("closing: " + ui); + } + + // evict model from validator + ui.getValidator().setBean(null); + + // when canceling always invalid model + getModel().setValid(false); + + EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class); + parent.getHandler().setMarineLitterSelectedCard(EditCatchesUIHandler.MAIN_CARD); + } + + @Override + public SwingValidator<CreateMarineLitterBatchUIModel> getValidator() { + return ui.getValidator(); + } + + //------------------------------------------------------------------------// + //-- Cancelable methods --// + //------------------------------------------------------------------------// + + @Override + public void cancel() { + if (log.isInfoEnabled()) { + log.info("Cancel UI " + ui); + } + closeUI(ui); + } + + //------------------------------------------------------------------------// + //-- Public methods --// + //------------------------------------------------------------------------// + + public void openUI() { + + CreateMarineLitterBatchUIModel model = getModel(); + + // connect model to validator + ui.getValidator().setBean(model); + + model.reset(); + + ui.getMarineLitterCategoryComboBox().requestFocus(); + } + + public void save() { + + if (log.isInfoEnabled()) { + log.info("Save UI " + ui); + } + + EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class); + parent.getMarineLitterTabContent().getHandler().addBatch(getModel()); + + // close dialog + closeUI(ui); + } + + public Species openAddSpeciesDialog(String title, List<Species> species) { + SelectSpeciesUI dialogContent = new SelectSpeciesUI(ui); + SelectSpeciesUIModel model = dialogContent.getModel(); + model.setSelectedSpecies(null); + model.setSpecies(species); + + openDialog(dialogContent, title, new Dimension(400, 130)); + + Species result = model.getSelectedSpecies(); + return result; + } + +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java 2013-04-04 19:09:48 UTC (rev 737) @@ -0,0 +1,94 @@ +package fr.ifremer.tutti.ui.swing.content.operation.catches.marinelitter.create; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.persistence.entities.TuttiBeanFactory; +import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; + +/** + * Model to create a new marine litter batch. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.3 + */ +public class CreateMarineLitterBatchUIModel extends AbstractTuttiBeanUIModel<CreateMarineLitterBatchUIModel, CreateMarineLitterBatchUIModel> { + + private static final long serialVersionUID = 1L; + + /** + * Delegate edit object. + * + * @since 1.3 + */ + protected final MarineLitterBatch editObject = + TuttiBeanFactory.newMarineLitterBatch(); + + public CreateMarineLitterBatchUIModel() { + super(CreateMarineLitterBatchUIModel.class, null, null); + } + + public CaracteristicQualitativeValue getMarineLitterCategory() { + return editObject.getMarineLitterCategory(); + } + + public void setMarineLitterCategory(CaracteristicQualitativeValue marineLitterCategory) { + Object oldValue = getMarineLitterCategory(); + editObject.setMarineLitterCategory(marineLitterCategory); + firePropertyChange(MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, oldValue, marineLitterCategory); + } + + public CaracteristicQualitativeValue getMarineLitterSizeCategory() { + return editObject.getMarineLitterSizeCategory(); + } + + public void setMarineLitterSizeCategory(CaracteristicQualitativeValue marineLitterSizeCategory) { + Object oldValue = getMarineLitterSizeCategory(); + editObject.setMarineLitterSizeCategory(marineLitterSizeCategory); + firePropertyChange(MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, oldValue, marineLitterSizeCategory); + } + + public Integer getNumber() { + return editObject.getNumber(); + } + + public void setNumber(Integer number) { + Object oldValue = getNumber(); + editObject.setNumber(number); + firePropertyChange(MarineLitterBatch.PROPERTY_NUMBER, oldValue, number); + } + + @Override + protected CreateMarineLitterBatchUIModel newEntity() { + return new CreateMarineLitterBatchUIModel(); + } + + public void reset() { + editObject.setMarineLitterCategory(null); + editObject.setMarineLitterSizeCategory(null); + editObject.setNumber(null); + } +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-04-04 19:09:48 UTC (rev 737) @@ -28,7 +28,6 @@ import com.google.common.collect.Sets; import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUIContext; -import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchTableModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; @@ -38,7 +37,6 @@ import jaxx.runtime.swing.editor.cell.NumberCellEditor; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ArrayUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -53,13 +51,11 @@ import javax.swing.table.TableCellEditor; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; -import java.awt.Color; import java.awt.Component; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.Collection; import java.util.Enumeration; import java.util.List; import java.util.Set; Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel-error-validation.xml 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/create/CreateBenthosBatchUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel-error-validation.xml 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/split/SplitBenthosBatchUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI Added: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel-error-validation.xml (rev 0) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<!DOCTYPE validators PUBLIC + "-//Apache Struts//XWork Validator 1.0.3//EN" + "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> +<validators> + + <field name="marineLitterCategory"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required + </message> + </field-validator> + </field> + + <field name="marineLitterSizeCategory"> + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required + </message> + </field-validator> + </field> + + <field name="number"> + + <field-validator type="required" short-circuit="true"> + <message> + tutti.validator.error.createMarineLitterBatch.number.required + </message> + </field-validator> + + <field-validator type="double" short-circuit="true"> + <param name="minExclusive">0</param> + <message> + tutti.validator.error.createMarineLitterBatch.number.invalidValue + </message> + </field-validator> + + </field> +</validators> \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/marinelitter/create/CreateMarineLitterBatchUIModel-error-validation.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel-error-validation.xml 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/create/CreateSpeciesBatchUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI 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-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel-error-validation.xml 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/SplitSpeciesBatchUIModel-error-validation.xml 2013-04-04 19:09:48 UTC (rev 737) @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- #%L Tutti :: UI Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-04-04 19:09:48 UTC (rev 737) @@ -116,6 +116,19 @@ tutti.createBenthosBatch.title= tutti.createBenthosMelag.error.message= tutti.createBenthosMelag.error.title= +tutti.createMarineLitterBatch.action.cancel= +tutti.createMarineLitterBatch.action.cancel.mnemonic= +tutti.createMarineLitterBatch.action.cancel.tip= +tutti.createMarineLitterBatch.action.save= +tutti.createMarineLitterBatch.action.save.mnemonic= +tutti.createMarineLitterBatch.action.save.tip= +tutti.createMarineLitterBatch.field.marineLitterCategory= +tutti.createMarineLitterBatch.field.marineLitterCategory.tip= +tutti.createMarineLitterBatch.field.marineLitterSizeCategory= +tutti.createMarineLitterBatch.field.marineLitterSizeCategory.tip= +tutti.createMarineLitterBatch.field.number= +tutti.createMarineLitterBatch.field.number.tip= +tutti.createMarineLitterBatch.title= tutti.createSpeciesBatch.action.addSpecies= tutti.createSpeciesBatch.action.addSpecies.mnemonic= tutti.createSpeciesBatch.action.addSpecies.tip= @@ -477,6 +490,12 @@ tutti.editFishingOperation.label.traitReminder.inCreation= tutti.editFishingOperation.pane.other= tutti.editFishingOperation.tab.general= +tutti.editMarineLitterBatch.action.createBatch= +tutti.editMarineLitterBatch.action.createBatch.mnemonic= +tutti.editMarineLitterBatch.action.createBatch.tip= +tutti.editMarineLitterBatch.action.removeBatch= +tutti.editMarineLitterBatch.action.removeBatch.mnemonic= +tutti.editMarineLitterBatch.action.removeBatch.tip= tutti.editMarineLitterBatch.field.marineLitterTotalWeight= tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip= tutti.editMarineLitterBatch.table.header.comment= @@ -1007,6 +1026,10 @@ tutti.update.jre= tutti.update.tutti= tutti.validator.error.comment.too.long= +tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required= +tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required= +tutti.validator.error.createMarineLitterBatch.number.invalidValue= +tutti.validator.error.createMarineLitterBatch.number.required= tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue= tutti.validator.error.createSpeciesBatch.sortedUnsortedCategory.required= tutti.validator.error.createSpeciesBatch.species.required= 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-04-04 19:02:11 UTC (rev 736) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-04-04 19:09:48 UTC (rev 737) @@ -108,7 +108,7 @@ tutti.createBenthosBatch.field.sortedUnsortedCategory.tip= tutti.createBenthosBatch.field.species=Espèce du lot tutti.createBenthosBatch.field.species.tip= -tutti.createBenthosBatch.title=Créer un lot +tutti.createBenthosBatch.title=Créer un lôt tutti.createBenthosMelag.action.cancel=Annuler tutti.createBenthosMelag.action.cancel.mnemonic=A tutti.createBenthosMelag.action.cancel.tip=Annuler la création du MELAG @@ -119,6 +119,19 @@ tutti.createBenthosMelag.error.title=Erreur tutti.createBenthosMelag.message=Combien pesait le MELAG (kg) ? tutti.createBenthosMelag.title=Poids du MELAG (kg) +tutti.createMarineLitterBatch.action.cancel=Annuler +tutti.createMarineLitterBatch.action.cancel.mnemonic=A +tutti.createMarineLitterBatch.action.cancel.tip=Annuler la création du lôt macro-déchet +tutti.createMarineLitterBatch.action.save=Enregistrer +tutti.createMarineLitterBatch.action.save.mnemonic=E +tutti.createMarineLitterBatch.action.save.tip=Enregistrer la création du lôt macro-déchet +tutti.createMarineLitterBatch.field.marineLitterCategory=Catégorie de déchets +tutti.createMarineLitterBatch.field.marineLitterCategory.tip= +tutti.createMarineLitterBatch.field.marineLitterSizeCategory=Catégorie de taille +tutti.createMarineLitterBatch.field.marineLitterSizeCategory.tip= +tutti.createMarineLitterBatch.field.number=Nombre +tutti.createMarineLitterBatch.field.number.tip= +tutti.createMarineLitterBatch.title=Créer un lôt tutti.createSpeciesBatch.action.addSpecies=... tutti.createSpeciesBatch.action.addSpecies.mnemonic=. tutti.createSpeciesBatch.action.addSpecies.tip=Sélectionner une autre espèce @@ -484,6 +497,12 @@ tutti.editFishingOperation.label.traitReminder.inCreation=en cours de création tutti.editFishingOperation.pane.other=Autres caractéristiques tutti.editFishingOperation.tab.general=Trait +tutti.editMarineLitterBatch.action.createBatch=Créer un lot de déchet +tutti.editMarineLitterBatch.action.createBatch.mnemonic=C +tutti.editMarineLitterBatch.action.createBatch.tip=Créer un nouveau lot de déchet +tutti.editMarineLitterBatch.action.removeBatch=Supprimer la ligne sélectionnée +tutti.editMarineLitterBatch.action.removeBatch.mnemonic=S +tutti.editMarineLitterBatch.action.removeBatch.tip=Supprimer la ligne sélectionnée tutti.editMarineLitterBatch.field.marineLitterTotalWeight=Poids total (Kg) tutti.editMarineLitterBatch.field.marineLitterTotalWeight.tip=Poids total (Kg) tutti.editMarineLitterBatch.table.header.comment=Commentaire @@ -1011,6 +1030,10 @@ tutti.update.jre=Java tutti.update.tutti=Tutti tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères) +tutti.validator.error.createMarineLitterBatch.marineLitterCategory.required= +tutti.validator.error.createMarineLitterBatch.marineLitterSizeCategory.required= +tutti.validator.error.createMarineLitterBatch.number.invalidValue= +tutti.validator.error.createMarineLitterBatch.number.required= tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue=Le poids du lot doit être strictement positif tutti.validator.error.createSpeciesBatch.sortedUnsortedCategory.required=La catégorie Vrac / Hors Vrac est obligatoire tutti.validator.error.createSpeciesBatch.species.required=L'espèce est obligatoire
participants (1)
-
tchemit@users.forge.codelutin.com