Author: kmorin Date: 2013-01-29 19:13:04 +0100 (Tue, 29 Jan 2013) New Revision: 257 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/257 Log: - add icons - cruise: layout - protocol: the columns cannot be reoder + the rows are always valid, even if the size class is not set - fishing operation: compute distance + set color to the tab if the operation is valid or not + set the gear and vessel if only one in the cruise + disable the trawlnet number if there is only one in the cruise Added: trunk/tutti-ui-swing/src/main/resources/icons/action-allegro.png trunk/tutti-ui-swing/src/main/resources/icons/action-calendar.png trunk/tutti-ui-swing/src/main/resources/icons/action-coordinates.png trunk/tutti-ui-swing/src/main/resources/icons/action-cruise.png trunk/tutti-ui-swing/src/main/resources/icons/action-filter.png trunk/tutti-ui-swing/src/main/resources/icons/action-gear.png trunk/tutti-ui-swing/src/main/resources/icons/action-location.png trunk/tutti-ui-swing/src/main/resources/icons/action-person.png trunk/tutti-ui-swing/src/main/resources/icons/action-prelevements.png trunk/tutti-ui-swing/src/main/resources/icons/action-program.png trunk/tutti-ui-swing/src/main/resources/icons/action-psfm.png trunk/tutti-ui-swing/src/main/resources/icons/action-samplingOperation.png trunk/tutti-ui-swing/src/main/resources/icons/action-time.png trunk/tutti-ui-swing/src/main/resources/icons/action-vessel.png Modified: trunk/tutti-ui-swing/pom.xml trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 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/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 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/species/SpeciesBatchUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/pom.xml =================================================================== --- trunk/tutti-ui-swing/pom.xml 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/pom.xml 2013-01-29 18:13:04 UTC (rev 257) @@ -240,19 +240,7 @@ <version>${project.version}</version> <!--<scope>runtime</scope>--> </dependency> - - - <!--dependency> - <groupId>com.jidesoft</groupId> - <artifactId>jide-oss</artifactId> - <version>3.5.0</version> - </dependency--> - - <!--dependency> - <groupId>fr.ird</groupId> - <artifactId>msaccess-importer</artifactId> - </dependency--> - + <dependency> <groupId>org.nuiton</groupId> <artifactId>nuiton-utils</artifactId> @@ -366,6 +354,11 @@ <artifactId>junit</artifactId> </dependency> + <dependency> + <groupId>com.javadocmd</groupId> + <artifactId>simplelatlng</artifactId> + </dependency> + </dependencies> <profiles> Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedCruiseAction.java 2013-01-29 18:13:04 UTC (rev 257) @@ -48,7 +48,7 @@ public EditSelectedCruiseAction(MainUIHandler handler) { super(handler, "editCruise", - "edit", + "cruise", _("tutti.action.editSelectedCruise"), _("tutti.action.editSelectedCruise.tip"), true Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/EditSelectedProgramAction.java 2013-01-29 18:13:04 UTC (rev 257) @@ -48,7 +48,7 @@ public EditSelectedProgramAction(MainUIHandler handler) { super(handler, "editProgram", - "edit", + "program", _("tutti.action.editSelectedProgram"), _("tutti.action.editSelectedProgram.tip"), true Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-01-29 18:13:04 UTC (rev 257) @@ -119,6 +119,7 @@ toolTipText: "tutti.menu.synchronisationAllegro.tip"; mnemonic: A; enabled: false; + actionIcon: allegro; } #menuHelp { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.css 2013-01-29 18:13:04 UTC (rev 257) @@ -123,14 +123,6 @@ numberPattern: {INT_1_DIGITS_PATTERN}; } -#vesselList { - property: vessel; -} - -#vesselListPane { - border: {BorderFactory.createTitledBorder(_("tutti.label.list.vessel"))}; -} - #filterVesselLabel { text: "tutti.label.filterVesselType"; } @@ -159,6 +151,11 @@ buttonGroup: "filterVesselType"; } +#vesselList { + property: vessel; + border: {BorderFactory.createTitledBorder(_("tutti.label.list.vessel"))}; +} + #gearList { property: gear; border: {BorderFactory.createTitledBorder(_("tutti.label.list.gear"))}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-01-29 18:13:04 UTC (rev 257) @@ -44,7 +44,9 @@ org.jdesktop.swingx.JXDatePicker javax.swing.DefaultListModel + javax.swing.JSeparator javax.swing.ListSelectionModel + javax.swing.SwingConstants java.awt.Dimension @@ -168,21 +170,28 @@ </row> <!-- cruise vessel / gear --> + <row> + <cell columns='6'> + <JSeparator constructorParams='SwingConstants.HORIZONTAL'/> + </cell> + </row> + <row> + <cell columns='6'> + <JPanel id='vesselFilterPane'> + <JLabel id='filterVesselLabel'/> + <JRadioButton id='filterVesselAllButton' + onActionPerformed='model.setVesselType(VesselTypeEnum.ALL)'/> + <JRadioButton id='filterVesselScientificButton' + onActionPerformed='model.setVesselType(VesselTypeEnum.SCIENTIFIC)'/> + <JRadioButton id='filterVesselFishingButton' + onActionPerformed='model.setVesselType(VesselTypeEnum.FISHING)'/> + </JPanel> + </cell> + </row> <row weighty='0.3'> <cell columns='6'> <JPanel layout='{new GridLayout(1, 0)}'> - <JPanel id='vesselListPane' layout="{new BorderLayout()}"> - <JPanel id='vesselFilterPane' constraints='BorderLayout.NORTH'> - <JLabel id='filterVesselLabel'/> - <JRadioButton id='filterVesselAllButton' - onActionPerformed='model.setVesselType(VesselTypeEnum.ALL)'/> - <JRadioButton id='filterVesselScientificButton' - onActionPerformed='model.setVesselType(VesselTypeEnum.SCIENTIFIC)'/> - <JRadioButton id='filterVesselFishingButton' - onActionPerformed='model.setVesselType(VesselTypeEnum.FISHING)'/> - </JPanel> - <BeanDoubleList id='vesselList' genericType='Vessel' constraints='BorderLayout.CENTER'/> - </JPanel> + <BeanDoubleList id='vesselList' genericType='Vessel'/> <BeanDoubleList id='gearList' genericType='Gear'/> </JPanel> </cell> 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-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-01-29 18:13:04 UTC (rev 257) @@ -109,18 +109,22 @@ #gearLongitudeLabel { text: "tutti.label.fishingOperation.gearLongitude"; + actionIcon: "coordinates"; } #gearLatitudeLabel { text: "tutti.label.fishingOperation.gearLatitude"; + actionIcon: "coordinates"; } #gearDateLabel { text: "tutti.label.fishingOperation.gearDate"; + actionIcon: "calendar"; } #gearTimeLabel { text: "tutti.label.fishingOperation.gearTime"; + actionIcon: "time"; } #gearShootingStartLabel { @@ -136,11 +140,13 @@ } #traitVesselPanel { - border: {BorderFactory.createTitledBorder((String)null)}; + border: {BorderFactory.createTitledBorder(_("tutti.label.fishingOperation.other"))}; } + #vesselLabel { text: "tutti.label.fishingOperation.vessel"; labelFor: {vesselComboBox}; + actionIcon: "vessel"; } #vesselComboBox { @@ -151,6 +157,7 @@ #gearLabel { text: "tutti.label.fishingOperation.gear"; labelFor: {gearComboBox}; + actionIcon: "gear"; } #gearComboBox { @@ -167,7 +174,7 @@ showReset: false; useFloat: false; useSign: false; - numberPattern: {INT_1_DIGITS_PATTERN}; + numberPattern: {INT_2_DIGITS_PATTERN}; property: trawlNetNumber; model: {model.getTrawlNetNumber()}; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-29 18:13:04 UTC (rev 257) @@ -26,6 +26,9 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; +import com.javadocmd.simplelatlng.LatLng; +import com.javadocmd.simplelatlng.LatLngTool; +import com.javadocmd.simplelatlng.util.LengthUnit; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; @@ -49,7 +52,6 @@ import fr.ifremer.tutti.ui.swing.util.TabHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -58,6 +60,8 @@ import javax.swing.JPanel; import javax.swing.JTabbedPane; import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; @@ -158,7 +162,50 @@ onSelectedSubStrata(source, newStrata); } }); + + model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_RECTILIGNE, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean rectiligne = (Boolean) evt.getNewValue(); + if (rectiligne) { + EditFishingOperationUIModel source = (EditFishingOperationUIModel) evt.getSource(); + Float latS = source.getGearShootingStartLatitude(); + Float longS = source.getGearShootingStartLongitude(); + Float latE = source.getGearShootingEndLatitude(); + Float longE = source.getGearShootingEndLongitude(); + + if (latS != null && longS != null + && latE != null && longE != null) { + LatLng start = new LatLng(latS, longS); + LatLng end = new LatLng(latE, longE); + Double distance = LatLngTool.distance(start, end, LengthUnit.KILOMETER); + source.setTrawlDistance(distance.floatValue()); + } + } + } + }); + + model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID, new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + Boolean valid = (Boolean) evt.getNewValue(); + Color color = null; + Color fontColor = Color.BLACK; + if (valid == Boolean.TRUE) { + color = Color.GREEN; + + } else if (valid == Boolean.FALSE) { + color = Color.RED; + fontColor = Color.WHITE; + } + Component tab = getTabPanel().getTabComponentAt(0); + tab.setForeground(fontColor); + tab.setBackground(color); + } + }); + getContext().addPropertyChangeListener(TuttiUIContext.PROPERTY_VALIDATION_CONTEXT, new PropertyChangeListener() { @Override @@ -194,6 +241,11 @@ Lists.<Gear>newArrayList(), null); + Cruise cruise = TuttiUIUtil.getCruise(ui); + Preconditions.checkNotNull(cruise, + "Could not find cruise in ui context"); + ui.getTrawlNetNumberField().setEnabled(cruise.getTrawlNet() != 1); + Program program = TuttiUIUtil.getProgram(ui); Preconditions.checkNotNull(program, "Could not find program in ui context"); @@ -232,7 +284,7 @@ setCustomTab(0, model); listModelIsModify(model); - + //init gear shooting GearShootingTabUIModel gearShootingModel = ui.getGearShootingTabContent().getModel(); @@ -277,7 +329,6 @@ }); } - MainUI main = ui.getContextValue(MainUI.class, MainUI.class.getName()); main.clearValidators(); main.registerValidator(ui.getValidator()); @@ -404,7 +455,7 @@ // update saisissuer selection List<Person> saisisseur = model.getSaisisseur(); ui.getSaisisseurList().getModel().setSelected(saisisseur); - + // update model empty property model.setEmpty(empty); @@ -463,40 +514,40 @@ // reset sub strata combo ui.getSubStrataComboBox().setData(null); - Zone zone = - model.getFishingOperation().getCruise().getProgram().getZone(); - - String zoneId = zone.getId(); - String strataId = newStrata == null ? null : newStrata.getId(); - - List<FishingOperationLocation> subStrata = - persistenceService.getAllFishingOperationSubStrata(zoneId, strataId); - - List<FishingOperationLocation> location = - persistenceService.getAllFishingOperationLocation(zoneId, strataId, null); - - ui.getSubStrataComboBox().setData(subStrata); - - ui.getLocationComboBox().setData(location); - - if (newStrata == null) { - - // reset strata, keep focus on it - ui.getStrataComboBox().grabFocus(); - - } else { - - // try to load substrata - - - if (CollectionUtils.isEmpty(subStrata)) { - - // try to load localite - - - ui.getLocationComboBox().grabFocus(); - } - } +// Zone zone = +// model.getFishingOperation().getCruise().getProgram().getZone(); +// +// String zoneId = zone.getId(); +// String strataId = newStrata == null ? null : newStrata.getId(); +// +// List<FishingOperationLocation> subStrata = +// persistenceService.getAllFishingOperationSubStrata(zoneId, strataId); +// +// List<FishingOperationLocation> location = +// persistenceService.getAllFishingOperationLocation(zoneId, strataId, null); +// +// ui.getSubStrataComboBox().setData(subStrata); +// +// ui.getLocationComboBox().setData(location); +// +// if (newStrata == null) { +// +// // reset strata, keep focus on it +// ui.getStrataComboBox().grabFocus(); +// +// } else { +// +// // try to load substrata +// +// +// if (CollectionUtils.isEmpty(subStrata)) { +// +// // try to load localite +// +// +// ui.getLocationComboBox().grabFocus(); +// } +// } } protected void onSelectedSubStrata(EditFishingOperationUIModel model, @@ -507,25 +558,25 @@ // reset localite combo ui.getLocationComboBox().setData(null); - Zone zone = - getModel().getFishingOperation().getCruise().getProgram().getZone(); - String zoneId = zone.getId(); - - FishingOperationLocation strata = model.getStrata(); - String subStrataId = newSubStrata == null ? null : newSubStrata.getId(); - - String strataId = strata == null ? null : strata.getId(); - - List<FishingOperationLocation> location = - persistenceService.getAllFishingOperationLocation(zoneId, strataId, subStrataId); - - ui.getLocationComboBox().setData(location); - - if (newSubStrata == null) { - - // reset substrata, keep focus on it - ui.getSubStrataComboBox().grabFocus(); - } +// Zone zone = +// getModel().getFishingOperation().getCruise().getProgram().getZone(); +// String zoneId = zone.getId(); +// +// FishingOperationLocation strata = model.getStrata(); +// String subStrataId = newSubStrata == null ? null : newSubStrata.getId(); +// +// String strataId = strata == null ? null : strata.getId(); +// +// List<FishingOperationLocation> location = +// persistenceService.getAllFishingOperationLocation(zoneId, strataId, subStrataId); +// +// ui.getLocationComboBox().setData(location); +// +// if (newSubStrata == null) { +// +// // reset substrata, keep focus on it +// ui.getSubStrataComboBox().grabFocus(); +// } } protected boolean areAllModelsValid() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-29 18:13:04 UTC (rev 257) @@ -197,23 +197,31 @@ // use a new empty fishingOperation FishingOperation newFishingOperation = new FishingOperation(); - newFishingOperation.setCruise(TuttiUIUtil.getCruise(ui)); + Cruise cruise = TuttiUIUtil.getCruise(ui); + newFishingOperation.setCruise(cruise); //TODO Should select vessel from possible one ? - Vessel vessel = newFishingOperation.getCruise().getVessel(0); - newFishingOperation.setVessel(vessel); + List<Vessel> vessels = cruise.getVessel(); + if (vessels.size() == 1) { + newFishingOperation.setVessel(vessels.get(0)); + } //TODO Should select gear from possible one ? - Gear gear = newFishingOperation.getCruise().getGear(0); - newFishingOperation.setGear(gear); - newFishingOperation.setTrawlNetNumber(1); + List<Gear> gears = cruise.getGear(); + if (gears.size() == 1) { + newFishingOperation.setGear(gears.get(0)); + } + + if (cruise.getTrawlNet() == 1) { + newFishingOperation.setTrawlNetNumber(1); + } // by default use the current day with no time information - Date currentDate = DateUtils.setMinutes( - DateUtils.setHours(new Date(), 0), 0); +// Date currentDate = DateUtils.setMinutes( +// DateUtils.setHours(new Date(), 0), 0); - newFishingOperation.setGearShootingStartDate(currentDate); - newFishingOperation.setGearShootingEndDate(currentDate); + newFishingOperation.setGearShootingStartDate(null); + newFishingOperation.setGearShootingEndDate(null); selectFishingOperation(newFishingOperation); } 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-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-01-29 18:13:04 UTC (rev 257) @@ -161,7 +161,7 @@ if (fishingOperationMonitor.wasModified()) { save(); } - + ui.getSpeciesTabContent().getHandler().clearTableSelection(); ui.getBenthosTabContent().getHandler().clearTableSelection(); ui.getPlanktonTabContent().getHandler().clearTableSelection(); @@ -194,7 +194,6 @@ fishingOperationMonitor.clearModified(); // 3) Propagate title to others tabs - ui.getCatchesCaracteristicsTabPane().setTitle(fishingOperationText); ui.getSpeciesTabFishingOperationReminderLabel().setTitle(fishingOperationText); ui.getBenthosTabFishingOperationReminderLabel().setTitle(fishingOperationText); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-01-29 18:13:04 UTC (rev 257) @@ -126,6 +126,7 @@ text: "tutti.label.filterSpeciesBatchMode.label"; toolTipText: "tutti.label.filterSpeciesBatchMode.label.tip"; _strongStyle: true; + actionIcon: filter; } #filterSpeciesBatchAllButton { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-01-29 18:13:04 UTC (rev 257) @@ -120,8 +120,7 @@ @Override protected boolean isRowValid(EditProtocolSpeciesRowModel row) { - boolean result = row.getLengthStepPmfm() != null; - return result; + return true; } @Override @@ -226,6 +225,7 @@ if (mustClone != null && mustClone) { ui.setContextValue(false, MainUIHandler.CLONE_PROTOCOL); model.setId(null); + model.setName(null); } } else { @@ -284,25 +284,6 @@ } } - columnModel.addColumnModelListener(new TableColumnModelListener() { - - public void columnAdded(TableColumnModelEvent e) { - } - - public void columnRemoved(TableColumnModelEvent e) { - } - - public void columnMoved(TableColumnModelEvent e) { - getModel().setModify(true); - } - - public void columnMarginChanged(ChangeEvent e) { - } - - public void columnSelectionChanged(ListSelectionEvent e) { - } - }); - EditProtocolSpeciesTableModel tableModel = new EditProtocolSpeciesTableModel(columnModel); table.setModel(tableModel); @@ -310,9 +291,6 @@ initTable(table); - // Authorize to change column orders - table.getTableHeader().setReorderingAllowed(true); - List<Species> speciesList = Lists.newArrayList(allSpecies.values()); List<EditProtocolSpeciesRowModel> rows = Lists.newArrayList(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/CustomTab.java 2013-01-29 18:13:04 UTC (rev 257) @@ -59,7 +59,7 @@ public CustomTab(AbstractTuttiBeanUIModel model) { this.model = model; title.setText(_(model.getTitle())); - setBackground(new Color(0, 0, 0, 0)); + setBackground(null); this.model.addPropertyChangeListener(AbstractTuttiBeanUIModel.PROPERTY_MODIFY, new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -73,5 +73,22 @@ }); add(title); } + + @Override + public void setBackground(Color bg) { + if (bg == null) { + bg = new Color(0, 0, 0, 0); + } + super.setBackground(bg); + revalidate(); + } + + @Override + public void setForeground(Color fg) { + super.setForeground(fg); + if (title != null) { + title.setForeground(fg); + } + } } 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-29 18:06:46 UTC (rev 256) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-29 18:13:04 UTC (rev 257) @@ -168,6 +168,7 @@ tutti.label.fishingOperation.gearShootingStart=Début de traine tutti.label.fishingOperation.gearTime=Heure tutti.label.fishingOperation.location=Localité +tutti.label.fishingOperation.other=Autres caractéristiques tutti.label.fishingOperation.stationNumber=Code Station tutti.label.fishingOperation.strata=Strate tutti.label.fishingOperation.subStrata=Sous strate Added: trunk/tutti-ui-swing/src/main/resources/icons/action-allegro.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-allegro.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-calendar.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-calendar.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-coordinates.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-coordinates.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-cruise.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-filter.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-filter.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-gear.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-gear.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-location.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-location.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-person.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-person.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-prelevements.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-prelevements.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-program.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-program.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-psfm.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-psfm.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-samplingOperation.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-samplingOperation.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-time.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-time.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/tutti-ui-swing/src/main/resources/icons/action-vessel.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-vessel.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream