r253 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/species java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split resources/i18n
Author: kmorin Date: 2013-01-28 19:29:58 +0100 (Mon, 28 Jan 2013) New Revision: 253 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/253 Log: debug + replace popups by cardlayouts Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 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/species/SpeciesBatchUIHandler.java 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/split/AddSpeciesAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 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/EditFishingOperationUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-28 18:29:58 UTC (rev 253) @@ -52,6 +52,10 @@ bean: {model}; } +/*#fishingOperationTabScrollPane { + horizontalScrollBarPolicy: {javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER}; +}*/ + #stationNumberLabel { text: "tutti.label.fishingOperation.stationNumber"; labelFor: {stationNumberField}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.jaxx 2013-01-28 18:29:58 UTC (rev 253) @@ -157,345 +157,347 @@ <JTabbedPane id='fishingOperationTabPane' constraints='BorderLayout.CENTER'> <tab id='traitGeneralTab'> - <Table fill='both' id='generalForm'> +<!-- <JScrollPane id='fishingOperationTabScrollPane'>--> + <Table fill='both' id='generalForm'> - <!-- Numero station / Numéro trait / Numéro de poche --> - <row> - <cell> - <JLabel id='stationNumberLabel'/> - </cell> - <cell weightx='0.3'> - <JTextField id='stationNumberField' - onKeyReleased='handler.setText(event, "stationNumber")'/> - </cell> - <cell> - <JLabel id='fishingOperationNumberLabel'/> - </cell> - <cell weightx='0.3'> - <NumberEditor id='fishingOperationNumberField' - constructorParams='this'/> - </cell> - <cell> - <JLabel id='trawlNetNumberLabel'/> - </cell> - <cell weightx='0.3'> - <NumberEditor id='trawlNetNumberField' constructorParams='this'/> - </cell> - </row> + <!-- Numero station / Numéro trait / Numéro de poche --> + <row> + <cell> + <JLabel id='stationNumberLabel'/> + </cell> + <cell weightx='0.3'> + <JTextField id='stationNumberField' + onKeyReleased='handler.setText(event, "stationNumber")'/> + </cell> + <cell> + <JLabel id='fishingOperationNumberLabel'/> + </cell> + <cell weightx='0.3'> + <NumberEditor id='fishingOperationNumberField' + constructorParams='this'/> + </cell> + <cell> + <JLabel id='trawlNetNumberLabel'/> + </cell> + <cell weightx='0.3'> + <NumberEditor id='trawlNetNumberField' constructorParams='this'/> + </cell> + </row> - <!-- Strate d'association / Sous Strate / Localité --> - <row> - <cell> - <JLabel id='strataLabel'/> - </cell> - <cell weightx='0.3'> - <BeanComboBox id='strataComboBox' constructorParams='this' - genericType='FishingOperationLocation'/> - </cell> - <cell> - <JLabel id='subStrataLabel'/> - </cell> - <cell weightx='0.3'> - <BeanComboBox id='subStrataComboBox' constructorParams='this' - genericType='FishingOperationLocation'/> - </cell> - <cell> - <JLabel id='locationLabel'/> - </cell> - <cell weightx='0.3'> - <BeanComboBox id='locationComboBox' constructorParams='this' - genericType='FishingOperationLocation'/> - </cell> - </row> + <!-- Strate d'association / Sous Strate / Localité --> + <row> + <cell> + <JLabel id='strataLabel'/> + </cell> + <cell weightx='0.3'> + <BeanComboBox id='strataComboBox' constructorParams='this' + genericType='FishingOperationLocation'/> + </cell> + <cell> + <JLabel id='subStrataLabel'/> + </cell> + <cell weightx='0.3'> + <BeanComboBox id='subStrataComboBox' constructorParams='this' + genericType='FishingOperationLocation'/> + </cell> + <cell> + <JLabel id='locationLabel'/> + </cell> + <cell weightx='0.3'> + <BeanComboBox id='locationComboBox' constructorParams='this' + genericType='FishingOperationLocation'/> + </cell> + </row> - <!-- début de traine long-lat-date-heure - fin de traine long-lat-date-heure --> - <row> - <cell columns='6'> - <JPanel layout="{new BorderLayout()}"> - <Table id="gearCaracteristicsTable" fill="both" weightx='1' - constraints='BorderLayout.CENTER'> - <row> - <cell> - <JPanel/> - </cell> - <cell> - <JLabel id='gearLatitudeLabel'/> - </cell> - <cell> - <JLabel id='gearLongitudeLabel'/> - </cell> - <cell> - <JLabel id='gearDateLabel'/> - </cell> - <cell> - <JLabel id='gearTimeLabel'/> - </cell> - </row> + <!-- début de traine long-lat-date-heure + fin de traine long-lat-date-heure --> + <row> + <cell columns='6'> + <JPanel layout="{new BorderLayout()}"> + <Table id="gearCaracteristicsTable" fill="both" weightx='1' + constraints='BorderLayout.CENTER'> + <row> + <cell> + <JPanel/> + </cell> + <cell> + <JLabel id='gearLatitudeLabel'/> + </cell> + <cell> + <JLabel id='gearLongitudeLabel'/> + </cell> + <cell> + <JLabel id='gearDateLabel'/> + </cell> + <cell> + <JLabel id='gearTimeLabel'/> + </cell> + </row> - <row> - <cell> - <JLabel id='gearShootingStartLabel'/> - </cell> - <cell weightx='1'> - <JPanel id='gearShootingStartLatitudePanel'> - <NumberEditor id='gearShootingStartLatitudeDDField' - constraints='"DD"' - constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMS"'> - <NumberEditor - id='gearShootingStartLatitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> + <row> + <cell> + <JLabel id='gearShootingStartLabel'/> + </cell> + <cell weightx='1'> + <JPanel id='gearShootingStartLatitudePanel'> + <NumberEditor id='gearShootingStartLatitudeDDField' + constraints='"DD"' + constructorParams='this'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingStartLatitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingStartLatitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> + <NumberEditor + id='gearShootingStartLatitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> - <NumberEditor - id='gearShootingStartLatitudeDMSSecondField' - constructorParams='this' styleClass='second'/> - </JPanel> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMD"'> - <NumberEditor - id='gearShootingStartLatitudeDMDDegreeField' - constructorParams='this' styleClass='degree'/> + <NumberEditor + id='gearShootingStartLatitudeDMSSecondField' + constructorParams='this' styleClass='second'/> + </JPanel> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMD"'> + <NumberEditor + id='gearShootingStartLatitudeDMDDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingStartLatitudeDMDMinuteField' - constructorParams='this' styleClass='decimalMinute'/> + <NumberEditor + id='gearShootingStartLatitudeDMDMinuteField' + constructorParams='this' styleClass='decimalMinute'/> + </JPanel> </JPanel> - </JPanel> - </cell> - <cell weightx='1'> - <JPanel id='gearShootingStartLongitudePanel'> - <NumberEditor id='gearShootingStartLongitudeDDField' - constraints='"DD"' - constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMS"'> - <NumberEditor - id='gearShootingStartLongitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> + </cell> + <cell weightx='1'> + <JPanel id='gearShootingStartLongitudePanel'> + <NumberEditor id='gearShootingStartLongitudeDDField' + constraints='"DD"' + constructorParams='this'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingStartLongitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingStartLongitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> + <NumberEditor + id='gearShootingStartLongitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> - <NumberEditor - id='gearShootingStartLongitudeDMSSecondField' - constructorParams='this' styleClass='second'/> - </JPanel> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMD"'> - <NumberEditor - id='gearShootingStartLongitudeDMDDegreeField' - constructorParams='this' styleClass='degree'/> + <NumberEditor + id='gearShootingStartLongitudeDMSSecondField' + constructorParams='this' styleClass='second'/> + </JPanel> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMD"'> + <NumberEditor + id='gearShootingStartLongitudeDMDDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingStartLongitudeDMDMinuteField' - constructorParams='this' styleClass='decimalMinute'/> + <NumberEditor + id='gearShootingStartLongitudeDMDMinuteField' + constructorParams='this' styleClass='decimalMinute'/> + </JPanel> </JPanel> - </JPanel> - </cell> - <cell> - <JXDatePicker id='gearShootingStartDateField' - onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/> - </cell> - <cell> - <SimpleTimeEditor id='gearShootingStartTimeField' + </cell> + <cell> + <JXDatePicker id='gearShootingStartDateField' + onActionPerformed='handler.setDate(event, "gearShootingStartDate")'/> + </cell> + <cell> + <SimpleTimeEditor id='gearShootingStartTimeField' + constructorParams='this'/> + </cell> + </row> + <row> + <cell> + <JLabel id='gearShootingEndLabel'/> + </cell> + <cell weightx='1'> + <JPanel id='gearShootingEndLatitudePanel'> + <NumberEditor id='gearShootingEndLatitudeDDField' + constraints='"DD"' constructorParams='this'/> - </cell> - </row> - <row> - <cell> - <JLabel id='gearShootingEndLabel'/> - </cell> - <cell weightx='1'> - <JPanel id='gearShootingEndLatitudePanel'> - <NumberEditor id='gearShootingEndLatitudeDDField' - constraints='"DD"' - constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMS"'> - <NumberEditor - id='gearShootingEndLatitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingEndLatitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingEndLatitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> + <NumberEditor + id='gearShootingEndLatitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> - <NumberEditor - id='gearShootingEndLatitudeDMSSecondField' - constructorParams='this' styleClass='second'/> - </JPanel> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMD"'> - <NumberEditor - id='gearShootingEndLatitudeDMDDegreeField' - constructorParams='this' styleClass='degree'/> + <NumberEditor + id='gearShootingEndLatitudeDMSSecondField' + constructorParams='this' styleClass='second'/> + </JPanel> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMD"'> + <NumberEditor + id='gearShootingEndLatitudeDMDDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingEndLatitudeDMDMinuteField' - constructorParams='this' styleClass='decimalMinute'/> + <NumberEditor + id='gearShootingEndLatitudeDMDMinuteField' + constructorParams='this' styleClass='decimalMinute'/> + </JPanel> </JPanel> - </JPanel> - </cell> - <cell weightx='1'> - <JPanel id='gearShootingEndLongitudePanel'> - <NumberEditor id='gearShootingEndLongitudeDDField' - constraints='"DD"' - constructorParams='this'/> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMS"'> - <NumberEditor - id='gearShootingEndLongitudeDMSDegreeField' - constructorParams='this' styleClass='degree'/> + </cell> + <cell weightx='1'> + <JPanel id='gearShootingEndLongitudePanel'> + <NumberEditor id='gearShootingEndLongitudeDDField' + constraints='"DD"' + constructorParams='this'/> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMS"'> + <NumberEditor + id='gearShootingEndLongitudeDMSDegreeField' + constructorParams='this' styleClass='degree'/> - <NumberEditor - id='gearShootingEndLongitudeDMSMinuteField' - constructorParams='this' styleClass='minute'/> + <NumberEditor + id='gearShootingEndLongitudeDMSMinuteField' + constructorParams='this' styleClass='minute'/> - <NumberEditor - id='gearShootingEndLongitudeDMSSecondField' - constructorParams='this' styleClass='second'/> + <NumberEditor + id='gearShootingEndLongitudeDMSSecondField' + constructorParams='this' styleClass='second'/> + </JPanel> + <JPanel layout="{new GridLayout(1,0)}" + constraints='"DMD"'> + <NumberEditor + id='gearShootingEndLongitudeDMDDegreeField' + constructorParams='this' styleClass='degree'/> + + <NumberEditor + id='gearShootingEndLongitudeDMDMinuteField' + constructorParams='this' styleClass='decimalMinute'/> + </JPanel> </JPanel> - <JPanel layout="{new GridLayout(1,0)}" - constraints='"DMD"'> - <NumberEditor - id='gearShootingEndLongitudeDMDDegreeField' - constructorParams='this' styleClass='degree'/> + </cell> + <cell> + <JXDatePicker id='gearShootingEndDateField' + onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/> + </cell> + <cell> + <SimpleTimeEditor id='gearShootingEndTimeField' + constructorParams='this'/> + </cell> + </row> - <NumberEditor - id='gearShootingEndLongitudeDMDMinuteField' - constructorParams='this' styleClass='decimalMinute'/> + <!-- FishingOperation rectiligne / distance chalutee / durée --> + <row> + <cell> + <JLabel/> + </cell> + <cell> + <JCheckBox id='fishingOperationRectiligneCheckBox' + onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/> + </cell> + <cell> + <JPanel layout="{new BorderLayout()}"> + <JLabel id='trawlDistanceLabel' + constraints='BorderLayout.WEST'/> + <NumberEditor id='trawlDistanceField' + constraints='BorderLayout.CENTER' + constructorParams='this'/> </JPanel> - </JPanel> - </cell> - <cell> - <JXDatePicker id='gearShootingEndDateField' - onActionPerformed='handler.setDate(event, "gearShootingEndDate")'/> - </cell> - <cell> - <SimpleTimeEditor id='gearShootingEndTimeField' - constructorParams='this'/> - </cell> - </row> + </cell> + <cell> + <JLabel/> + </cell> + <cell> + <JPanel layout="{new BorderLayout()}"> + <JLabel id='durationLabel' + constraints='BorderLayout.WEST'/> + <JTextField id='durationField' + constraints='BorderLayout.CENTER'/> + </JPanel> + </cell> + </row> - <!-- FishingOperation rectiligne / distance chalutee / durée --> - <row> - <cell> - <JLabel/> - </cell> - <cell> - <JCheckBox id='fishingOperationRectiligneCheckBox' - onItemStateChanged='handler.setBoolean(event, "fishingOperationRectiligne")'/> - </cell> - <cell> - <JPanel layout="{new BorderLayout()}"> - <JLabel id='trawlDistanceLabel' - constraints='BorderLayout.WEST'/> - <NumberEditor id='trawlDistanceField' - constraints='BorderLayout.CENTER' - constructorParams='this'/> - </JPanel> - </cell> - <cell> - <JLabel/> - </cell> - <cell> - <JPanel layout="{new BorderLayout()}"> - <JLabel id='durationLabel' - constraints='BorderLayout.WEST'/> - <JTextField id='durationField' - constraints='BorderLayout.CENTER'/> - </JPanel> - </cell> - </row> + <!-- Fishing operation valid / invalid--> + <row> + <cell> + <JToolBar id='fishingOperationValidPanel' + layout='{new BorderLayout()}'> + <JButton id='resetValidStateButton' + constraints='BorderLayout.WEST' + onActionPerformed="model.setFishingOperationValid(null)"/> + <JRadioButton id='fishingOperationResetRadio' + constraints='BorderLayout.EAST'/> + </JToolBar> + </cell> + <cell> + <HBox> + <JRadioButton id='fishingOperationValidRadio' + onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/> + <JRadioButton id='fishingOperationInvalidRadio' + onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/> + </HBox> + </cell> + <cell columns="4"> + <JPanel/> + </cell> + </row> + </Table> + </JPanel> + </cell> + </row> - <!-- Fishing operation valid / invalid--> - <row> - <cell> - <JToolBar id='fishingOperationValidPanel' - layout='{new BorderLayout()}'> - <JButton id='resetValidStateButton' - constraints='BorderLayout.WEST' - onActionPerformed="model.setFishingOperationValid(null)"/> - <JRadioButton id='fishingOperationResetRadio' - constraints='BorderLayout.EAST'/> - </JToolBar> - </cell> - <cell> - <HBox> - <JRadioButton id='fishingOperationValidRadio' - onActionPerformed='model.setFishingOperationValid(Boolean.TRUE)'/> - <JRadioButton id='fishingOperationInvalidRadio' - onActionPerformed='model.setFishingOperationValid(Boolean.FALSE)'/> - </HBox> - </cell> - <cell columns="4"> - <JPanel/> - </cell> - </row> - </Table> - </JPanel> - </cell> - </row> + <!-- Actions d'import --> + <row> + <cell columns='6'> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='importCasinoButton' + onActionPerformed='handler.importCasino()'/> + </JPanel> + </cell> + </row> - <!-- Actions d'import --> - <row> - <cell columns='6'> - <JPanel layout='{new GridLayout(1,0)}'> - <JButton id='importCasinoButton' - onActionPerformed='handler.importCasino()'/> - </JPanel> - </cell> - </row> + <!-- Saisisseur --> + <row weighty='0.2'> + <cell columns='6'> + <JPanel layout='{new GridLayout(1,0)}'> + <BeanDoubleList id='saisisseurList' genericType='Person'/> + <Table fill="both" weightx='1' id='traitVesselPanel'> + <row> + <cell anchor='west'> + <JLabel id='vesselLabel'/> + </cell> + <cell weightx="1.0" fill="both"> + <BeanComboBox id='vesselComboBox' + constructorParams='this' + genericType='Vessel'/> + </cell> + </row> + <row> + <cell anchor='west'> + <JLabel id='gearLabel'/> + </cell> + <cell> + <BeanComboBox id='gearComboBox' + constructorParams='this' + genericType='Gear'/> + </cell> + </row> + </Table> + </JPanel> + </cell> + </row> - <!-- Saisisseur --> - <row weighty='0.2'> - <cell columns='6'> - <JPanel layout='{new GridLayout(1,0)}'> - <BeanDoubleList id='saisisseurList' genericType='Person'/> - <Table fill="both" weightx='1' id='traitVesselPanel'> - <row> - <cell anchor='west'> - <JLabel id='vesselLabel'/> - </cell> - <cell weightx="1.0" fill="both"> - <BeanComboBox id='vesselComboBox' - constructorParams='this' - genericType='Vessel'/> - </cell> - </row> - <row> - <cell anchor='west'> - <JLabel id='gearLabel'/> - </cell> - <cell> - <BeanComboBox id='gearComboBox' - constructorParams='this' - genericType='Gear'/> - </cell> - </row> - </Table> - </JPanel> - </cell> - </row> - - <!-- Commentaire --> - <row weighty='0.8'> - <cell columns='6'> - <JScrollPane id='commentPane' - onFocusGained='commentField.requestFocus()'> - <JTextArea id='commentField' - onKeyReleased='handler.setText(event, "comment")'/> - </JScrollPane> - </cell> - </row> - </Table> + <!-- Commentaire --> + <row weighty='0.8'> + <cell columns='6'> + <JScrollPane id='commentPane' + onFocusGained='commentField.requestFocus()'> + <JTextArea id='commentField' + onKeyReleased='handler.setText(event, "comment")'/> + </JScrollPane> + </cell> + </row> + </Table> + <!--</JScrollPane>--> </tab> <tab id='traitGearShootingTab'> 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-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-01-28 18:29:58 UTC (rev 253) @@ -102,6 +102,14 @@ text: "tutti.label.catches.catchThalassa"; } +#speciesTabPanel { + layout:{speciesTabPanelLayout}; +} + +#speciesTabCreateBatchReminderLabel { + title: {_("tutti.title.createBatch")}; +} + #speciesTable { border: {BorderFactory.createTitledBorder(_("tutti.legend.catch.species"))}; } 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-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-01-28 18:29:58 UTC (rev 253) @@ -31,12 +31,14 @@ fr.ifremer.tutti.ui.swing.content.operation.catches.macrowaste.MacroWasteBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.plankton.PlanktonBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI + fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.CreateSpeciesBatchUI fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI org.jdesktop.swingx.JXTitledPanel - + + jaxx.runtime.swing.CardLayout2Ext jaxx.runtime.swing.editor.NumberEditor - + jaxx.runtime.validator.swing.SwingValidatorUtil jaxx.runtime.validator.swing.SwingValidatorMessageTableModel @@ -92,6 +94,9 @@ component='macroWasteTotalWeightField'/> </BeanValidator> + <CardLayout2Ext id='speciesTabPanelLayout' + constructorParams='this, "speciesTabPanel"'/> + <JTabbedPane id='tabPane' constraints='BorderLayout.CENTER'> <tab id='catchesCaracteristicsTab'> <JXTitledPanel id='catchesCaracteristicsTabPane'> @@ -288,9 +293,14 @@ </JXTitledPanel> </tab> <tab id='speciesTab' title='tutti.label.tab.species'> - <JXTitledPanel id='speciesTabFishingOperationReminderLabel'> - <SpeciesBatchUI id='speciesTabContent' constructorParams='this'/> - </JXTitledPanel> + <JPanel id='speciesTabPanel'> + <JXTitledPanel id='speciesTabFishingOperationReminderLabel' constraints='"main"'> + <SpeciesBatchUI id='speciesTabContent' constructorParams='this'/> + </JXTitledPanel> + <JXTitledPanel id='speciesTabCreateBatchReminderLabel' constraints='"createBatch"'> + <CreateSpeciesBatchUI id='speciesTabCreateBatch' constructorParams='this'/> + </JXTitledPanel> + </JPanel> </tab> <tab id='benthosTab' title='tutti.label.tab.benthos'> <JXTitledPanel id='benthosTabFishingOperationReminderLabel'> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-01-28 18:29:58 UTC (rev 253) @@ -43,6 +43,7 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.TuttiUI; 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.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.FrequencyCellComponent; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel; @@ -58,8 +59,6 @@ import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent; import fr.ifremer.tutti.ui.swing.util.table.AbstractSelectTableAction; import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier; -import java.awt.Color; -import java.awt.Component; import jaxx.runtime.JAXXUtil; import jaxx.runtime.context.JAXXContextEntryDef; import jaxx.runtime.swing.ErrorDialogUI; @@ -79,9 +78,8 @@ import java.util.EnumMap; import java.util.List; import java.util.Set; -import org.jdesktop.swingx.decorator.ComponentAdapter; -import org.jdesktop.swingx.decorator.HighlightPredicate; -import org.jdesktop.swingx.decorator.Highlighter; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.CardLayout2Ext; import static org.nuiton.i18n.I18n._; import static org.nuiton.i18n.I18n.n_; @@ -658,18 +656,16 @@ public void createSpeciesBatch() { - CreateSpeciesBatchUI createBatchEditor = - getCreateSpeciesBatchEditor(); + EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class); + CreateSpeciesBatchUI createBatchEditor = parent.getSpeciesTabCreateBatch(); createBatchEditor.getHandler().openUI(getModel()); - - openDialog(ui, - createBatchEditor, - _("tutti.title.createBatch"), - ui.getPreferredSize()); - - CreateSpeciesBatchUIModel createModel = createBatchEditor.getModel(); - + + CardLayout2Ext card = (CardLayout2Ext) parent.getSpeciesTabPanel().getLayout(); + card.setSelected("createBatch"); + } + + public void addSpeciesBatch(CreateSpeciesBatchUIModel createModel) { if (createModel.isValid()) { SpeciesBatchTableModel tableModel = getTableModel(); @@ -694,9 +690,6 @@ addToSpeciesUsed(newRow); } - // reset create ui - createBatchEditor.getHandler().openUI(null); - recomputeBatchActionEnable(); } 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-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-01-28 18:29:58 UTC (rev 253) @@ -26,6 +26,7 @@ import com.ezware.oxbow.swingbits.util.Preconditions; import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -176,7 +177,13 @@ Preconditions.checkNotNull(protocol, "Could not find protocol in ui context"); - speciesProtocol = TuttiEntities.splitById(protocol.getSpecies()); + // FIXME 20130128 kmorin: the species have no technical id + speciesProtocol = Maps.newHashMap(); + for (SpeciesProtocol sp : protocol.getSpecies()) { + speciesProtocol.put(sp.getSpeciesId(), sp); + } +// speciesProtocol = TuttiEntities.splitById(protocol.getSpecies()); + } //TODO Use protocol to have lengthStepCaracteristic to use (if any protocol) Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-01-28 18:29:58 UTC (rev 253) @@ -69,7 +69,7 @@ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - getHandler().openDialog(popup, _("tutti.title.createBatch")); +// getHandler().openDialog(popup, _("tutti.title.createBatch")); Species species = popup.getModel().getSelectedSpecies(); if (species != null) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUI.jaxx 2013-01-28 18:29:58 UTC (rev 253) @@ -29,7 +29,7 @@ fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue fr.ifremer.tutti.ui.swing.content.operation.catches.species.SampleCategoryType - fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI + fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI fr.ifremer.tutti.ui.swing.TuttiUI fr.ifremer.tutti.ui.swing.TuttiUIContext @@ -52,7 +52,7 @@ <script><![CDATA[ -public CreateSpeciesBatchUI(SpeciesBatchUI parentUI) { +public CreateSpeciesBatchUI(EditCatchesUI parentUI) { JAXXUtil.initContext(this, parentUI); CreateSpeciesBatchUIHandler handler = new CreateSpeciesBatchUIHandler(parentUI, this); setContextValue(handler); @@ -80,63 +80,50 @@ <field name='batchWeight' component='batchWeightField'/> </BeanValidator> - <JSplitPane id='splitPane' constraints='BorderLayout.NORTH'> + <Table id='configurationPanel' constraints='BorderLayout.CENTER' fill='both'> - <Table id='configurationPanel' fill='both'> + <!-- Species --> + <row> + <cell anchor='west'> + <JLabel id='speciesLabel'/> + </cell> + <cell weightx='1.0'> + <BeanComboBox id='speciesComboBox' constructorParams='this' + genericType='Species'/> + </cell> + <cell> + <JButton id='addSpeciesButton'/> + </cell> + </row> - <!-- Species --> - <row> - <cell anchor='west'> - <JLabel id='speciesLabel'/> - </cell> - <cell weightx='1.0'> - <BeanComboBox id='speciesComboBox' constructorParams='this' - genericType='Species'/> - </cell> - <cell> - <JButton id='addSpeciesButton'/> - </cell> - </row> + <!-- Sorted / Unsorted Category --> + <row> + <cell anchor='west'> + <JLabel id='sortedUnsortedCategoryLabel'/> + </cell> + <cell weightx='1.0' columns='2'> + <BeanComboBox id='sortedUnsortedCategoryComboBox' + constructorParams='this' + genericType='CaracteristicQualitativeValue'/> + </cell> + </row> - <!-- Sorted / Unsorted Category --> - <row> - <cell anchor='west'> - <JLabel id='sortedUnsortedCategoryLabel'/> - </cell> - <cell weightx='1.0' columns='2'> - <BeanComboBox id='sortedUnsortedCategoryComboBox' - constructorParams='this' - genericType='CaracteristicQualitativeValue'/> - </cell> - </row> + <!-- Species batch weight --> + <row> + <cell anchor='west'> + <JLabel id='batchWeightLabel'/> + </cell> + <cell weightx='1.0' columns='2'> + <NumberEditor id='batchWeightField' constructorParams='this'/> + </cell> + </row> - <!-- Species batch weight --> - <row> - <cell anchor='west'> - <JLabel id='batchWeightLabel'/> - </cell> - <cell weightx='1.0' columns='2'> - <NumberEditor id='batchWeightField' constructorParams='this'/> - </cell> - </row> - - <!-- Form Actions --> - <row> - <cell columns='3'> - <JPanel layout='{new GridLayout(1, 0)}'> - <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> - <JButton id='saveButton' onActionPerformed='handler.save()'/> - </JPanel> - </cell> - </row> - </Table> - - <!-- Messages report --> - <JPanel id='messagePanel' layout='{new GridLayout()}'> - <JScrollPane columnHeaderView='{errorTable.getTableHeader()}'> - <JTable id='errorTable'/> - </JScrollPane> - </JPanel> - </JSplitPane> - + + </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> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-01-28 18:29:58 UTC (rev 253) @@ -33,6 +33,7 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler; import fr.ifremer.tutti.ui.swing.TuttiUI; +import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SpeciesBatchUIModel; import fr.ifremer.tutti.ui.swing.util.Cancelable; @@ -45,6 +46,8 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.CardLayout2Ext; /** * Handler of {@link CreateSpeciesBatchUI}. @@ -69,7 +72,7 @@ private final CaracteristicQualitativeValue sortedValue; - public CreateSpeciesBatchUIHandler(SpeciesBatchUI parentUi, + public CreateSpeciesBatchUIHandler(TuttiUI parentUi, CreateSpeciesBatchUI ui) { super(parentUi.getHandler().getContext()); this.ui = ui; @@ -155,8 +158,8 @@ } }); - SwingValidatorUtil.installUI(ui.getErrorTable(), - new SwingValidatorMessageTableRenderer()); +// SwingValidatorUtil.installUI(ui.getErrorTable(), +// new SwingValidatorMessageTableRenderer()); listenValidatorValid(ui.getValidator(), getModel()); } @@ -168,6 +171,17 @@ log.info("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); + + CardLayout2Ext card = (CardLayout2Ext) parent.getSpeciesTabPanel().getLayout(); + card.setSelected("main"); + } @Override @@ -181,25 +195,12 @@ @Override public void cancel() { - if (log.isInfoEnabled()) { log.info("Cancel UI " + ui); } - - // evict model from validator - ui.getValidator().setBean(null); - - // when canceling always invalid model - getModel().setValid(false); - - // close dialog - closeDialog(ui); + closeUI(ui); } - public void openDialog(TuttiUI dialogContent, String title) { - openDialog(ui, dialogContent, title, ui.getPreferredSize()); - } - //------------------------------------------------------------------------// //-- Public methods --// //------------------------------------------------------------------------// @@ -241,8 +242,11 @@ log.info("Save UI " + ui); } + EditCatchesUI parent = SwingUtil.getParentContainer(ui, EditCatchesUI.class); + parent.getSpeciesTabContent().getHandler().addSpeciesBatch(getModel()); + // close dialog - closeDialog(ui); + closeUI(ui); } public CreateSpeciesBatchUI getUi() { 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-01-28 17:50:07 UTC (rev 252) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-28 18:29:58 UTC (rev 253) @@ -91,6 +91,7 @@ tutti.config.programId=Identifiant de la dernière série de campagne utilisée tutti.config.protocolId=Identifiant du dernier protocole utilisé tutti.config.ui.autoPopupNumberEditor=Toujours afficher le pavé numérique lors de l'édition d'un nombre +tutti.config.ui.color.cellWithValue= tutti.config.ui.color.rowInvalid=Ligne invalide tutti.config.ui.color.rowReadOnly=Cellule non éditable tutti.config.ui.config=Chemin du fichier de configuration des interfaces graphiques
participants (1)
-
kmorin@users.forge.codelutin.com