r4403 - in trunk/src/main/java/fr/ifremer/isisfish: map simulator/sensitivity ui/input ui/input/port ui/input/spatial util
Author: echatellier Date: 2017-03-16 13:08:04 +0100 (Thu, 16 Mar 2017) New Revision: 4403 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4403 Log: fixes #9085: Les shapes charg?\195?\169s dans l'onglet de d?\195?\169finition de la p?\195?\170cherie, n'apparaissents pas dans l'onglet zones Modified: trunk/src/main/java/fr/ifremer/isisfish/map/CellSelectionLayer.java trunk/src/main/java/fr/ifremer/isisfish/map/DatabaseDataProvider.java trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java trunk/src/main/java/fr/ifremer/isisfish/map/MapDataProvider.java trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx trunk/src/main/java/fr/ifremer/isisfish/ui/input/port/PortHandler.java trunk/src/main/java/fr/ifremer/isisfish/ui/input/spatial/ChangeSpatialPreviewHandler.java trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java Modified: trunk/src/main/java/fr/ifremer/isisfish/map/CellSelectionLayer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/map/CellSelectionLayer.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/map/CellSelectionLayer.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -57,8 +57,7 @@ * Last update : $Date$ * By : $Author$ */ -public class CellSelectionLayer extends ZoneDelimiterLayer implements - MapMouseListener { +public class CellSelectionLayer extends ZoneDelimiterLayer implements MapMouseListener { /** serialVersionUID */ private static final long serialVersionUID = 6952137313443302883L; Modified: trunk/src/main/java/fr/ifremer/isisfish/map/DatabaseDataProvider.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/map/DatabaseDataProvider.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/map/DatabaseDataProvider.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -7,15 +7,23 @@ import fr.ifremer.isisfish.entities.FisheryRegion; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; +import org.nuiton.topia.event.TopiaTransactionEvent; +import org.nuiton.topia.event.TopiaTransactionListener; +import org.nuiton.topia.persistence.TopiaEntity; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; -public class DatabaseDataProvider extends MapDataProvider { +public class DatabaseDataProvider extends MapDataProvider implements TopiaTransactionListener { + protected IsisMapBean isisMapBean; protected FisheryRegion fisheryRegion; - public DatabaseDataProvider(FisheryRegion fisheryRegion) { + public DatabaseDataProvider(IsisMapBean isisMapBean, FisheryRegion fisheryRegion) { + this.isisMapBean = isisMapBean; this.fisheryRegion = fisheryRegion; + fisheryRegion.getTopiaContext().addTopiaTransactionListener(this); } @Override @@ -76,4 +84,42 @@ protected CellDAO getCellDAO() throws TopiaException { return IsisFishDAOHelper.getCellDAO(getTopiaContext()); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DatabaseDataProvider that = (DatabaseDataProvider) o; + return Objects.equals(isisMapBean, that.isisMapBean) && + Objects.equals(fisheryRegion, that.fisheryRegion); + } + + @Override + public int hashCode() { + return Objects.hash(isisMapBean, fisheryRegion); + } + + public void commit(TopiaTransactionEvent event) { + for (TopiaEntity e : event.getEntities()) { + if (event.isModification(e) && Cell.class.isAssignableFrom(e.getClass()) + || FisheryRegion.class.isAssignableFrom(e.getClass())) { + // on rafraichi que si on commit au moins un Cell + fireEvent(); + break; + } + } + } + + private void fireEvent() { + List<ProviderChangeListener> listeners = new ArrayList<>(providerChangeListeners); + for (ProviderChangeListener listener : listeners) { + listener.regionChanged(); + } + } + + + @Override + public void rollback(TopiaTransactionEvent event) { + // nothing to do + } } Modified: trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/map/IsisMapBean.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -31,6 +31,7 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Properties; @@ -67,7 +68,7 @@ /** * IsisMapBean. */ -public class IsisMapBean extends OverlayMapPanel { +public class IsisMapBean extends OverlayMapPanel implements MapDataProvider.ProviderChangeListener { /** serialVersionUID. */ private static final long serialVersionUID = -4162103384132928473L; @@ -155,7 +156,7 @@ */ @Deprecated public void setFisheryRegion(FisheryRegion fisheryRegion) { - setMapDataProvider(new DatabaseDataProvider(fisheryRegion)); + setMapDataProvider(fisheryRegion != null ? new DatabaseDataProvider(this, fisheryRegion) : null); } public void setMapDataProvider(MapDataProvider mapDataProvider) { @@ -168,15 +169,13 @@ this.mapDataProvider = mapDataProvider; if (mapDataProvider == null) { layerHandler.removeAll(); + if (oldDataProvider != null) { + oldDataProvider.removeProviderChangeListener(this); + } } else { if (!mapDataProvider.equals(oldDataProvider)) { - pasMailleLatitude = mapDataProvider.getCellLengthLatitude(); - pasMailleLongitude = mapDataProvider.getCellLengthLongitude(); - minLatitude = mapDataProvider.getMinLatitude(); - minLongitude = mapDataProvider.getMinLongitude(); - maxLatitude = mapDataProvider.getMaxLatitude(); - maxLongitude = mapDataProvider.getMaxLongitude(); - initMap(); + mapDataProvider.addProviderChangeListener(this); + refreshMap(); } } } catch (Exception eee) { @@ -186,6 +185,21 @@ } } + @Override + public void regionChanged() { + refreshMap(); + } + + protected void refreshMap() { + pasMailleLatitude = mapDataProvider.getCellLengthLatitude(); + pasMailleLongitude = mapDataProvider.getCellLengthLongitude(); + minLatitude = mapDataProvider.getMinLatitude(); + minLongitude = mapDataProvider.getMinLongitude(); + maxLatitude = mapDataProvider.getMaxLatitude(); + maxLongitude = mapDataProvider.getMaxLongitude(); + initMap(); + } + /** * Retourne la liste des mailles selectionnées. * Modified: trunk/src/main/java/fr/ifremer/isisfish/map/MapDataProvider.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/map/MapDataProvider.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/map/MapDataProvider.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -60,6 +60,6 @@ } interface ProviderChangeListener { - void cellsChanged(Collection<Cell> cells); + void regionChanged(); } } Modified: trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/map/ZoneDelimiterLayer.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -81,6 +81,11 @@ generateGraphics(); } + @Override + protected void finalize() { + mapDataProvider.removeProviderChangeListener(this); + } + /** * Set the projection. * @param proj Projection @@ -168,26 +173,9 @@ } @Override - public void cellsChanged(Collection<Cell> cells) { + public void regionChanged() { // on rafraichi que si on commit au moins un Cell refresh(); } - /*public void commit(TopiaTransactionEvent event) { - for (TopiaEntity e : event.getEntities()) { - if (event.isModification(e) && Cell.class.isAssignableFrom(e.getClass())) { - // on rafraichi que si on commit au moins un Cell - refresh(); - break; - } - } - }*/ - - - - /*@Override - public void rollback(TopiaTransactionEvent event) { - // nothing to do - }*/ - } // ZoneDelimiterLayer Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/AbstractSensitivityAnalysis.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -372,7 +372,6 @@ File importFile = new File(directoryPath, name + extension); - System.out.println("result=" + importFile); String simulResult = ""; try { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputContentUI.jaxx 2017-03-16 12:08:04 UTC (rev 4403) @@ -99,6 +99,10 @@ public InputSaveVerifier getSaveVerifier() { return getContextValue(InputSaveVerifier.class); } +/** + * @deprecated since 4.4.1. Pas pratique, on ne peux pas ecouter les changements de region ou de proprietes. + */ +@Deprecated public FisheryRegion getFisheryRegion() { return getContextValue(FisheryRegion.class); } Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/port/PortHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/port/PortHandler.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/port/PortHandler.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -73,7 +73,7 @@ inputContentUI.setButtonTitle(t("isisfish.input.continueSpecies")); inputContentUI.setNextPath(n("isisfish.input.tree.species")); - + inputContentUI.addPropertyChangeListener(PortUI.PROPERTY_BEAN, new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (evt.getNewValue() == null) { Modified: trunk/src/main/java/fr/ifremer/isisfish/ui/input/spatial/ChangeSpatialPreviewHandler.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/ui/input/spatial/ChangeSpatialPreviewHandler.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/ui/input/spatial/ChangeSpatialPreviewHandler.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -133,9 +133,9 @@ List<Zone> zones = oldFisheryRegion.getZone(); List<Port> ports = oldFisheryRegion.getPort(); inputUI.currentZones.setModel(new GenericComboModel<>(zones)); - inputUI.currentZoneMap.setMapDataProvider(new DatabaseDataProvider(oldFisheryRegion)); + inputUI.currentZoneMap.setMapDataProvider(new DatabaseDataProvider(inputUI.currentZoneMap, oldFisheryRegion)); inputUI.currentPorts.setModel(new GenericComboModel<>(ports)); - inputUI.currentPortMap.setMapDataProvider(new DatabaseDataProvider(oldFisheryRegion)); + inputUI.currentPortMap.setMapDataProvider(new DatabaseDataProvider(inputUI.currentPortMap, oldFisheryRegion)); SpatialChangeDataProvider spatialChangeDataProvider = new SpatialChangeDataProvider(newFisheryRegion, cells); inputUI.newZoneMap.setMapDataProvider(spatialChangeDataProvider); Modified: trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2017-03-16 10:47:47 UTC (rev 4402) +++ trunk/src/main/java/fr/ifremer/isisfish/util/CompileHelper.java 2017-03-16 12:08:04 UTC (rev 4403) @@ -349,7 +349,6 @@ } else { stringTypes = new String[names.length]; Class<?>[] types = interfaceMethod.getParameterTypes(); - System.out.println(Arrays.toString(types)); for (int i = 0; i < types.length; i++) { stringTypes[i] = types[i].getName(); }
participants (1)
-
echatellier@users.forge.codelutin.com