branch feature/6944 updated (3b2484e -> 2c6ffc7)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6944 in repository observe. See http://git.codelutin.com/observe.git from 3b2484e permettre d'interagir avec la carte même sur une marée clôturée (refs #6944) new 2c6ffc7 add export map into png, fix zoomIt in launch The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2c6ffc7117b5277c751136ec828ca75879d1a2a3 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 22 17:35:56 2015 +0200 add export map into png, fix zoomIt in launch Summary of changes: .../fr/ird/observe/ui/util/tripMap/TripMapUI.css | 10 +++ .../fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx | 5 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 90 ++++++++++++++++++---- .../resources/i18n/observe-swing_en_GB.properties | 18 +++++ .../resources/i18n/observe-swing_es_ES.properties | 18 +++++ .../resources/i18n/observe-swing_fr_FR.properties | 12 +++ 6 files changed, 136 insertions(+), 17 deletions(-) create mode 100644 observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.css -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6944 in repository observe. See http://git.codelutin.com/observe.git commit 2c6ffc7117b5277c751136ec828ca75879d1a2a3 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 22 17:35:56 2015 +0200 add export map into png, fix zoomIt in launch --- .../fr/ird/observe/ui/util/tripMap/TripMapUI.css | 10 +++ .../fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx | 5 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 90 ++++++++++++++++++---- .../resources/i18n/observe-swing_en_GB.properties | 18 +++++ .../resources/i18n/observe-swing_es_ES.properties | 18 +++++ .../resources/i18n/observe-swing_fr_FR.properties | 12 +++ 6 files changed, 136 insertions(+), 17 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.css b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.css new file mode 100644 index 0000000..532970b --- /dev/null +++ b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.css @@ -0,0 +1,10 @@ + +#zoomIt { + text: "observe.map.action.zoomIt"; + toolTipText: "observe.map.action.zoomIt.tip"; +} + +#exportPng { + text: "observe.map.action.exportPng"; + toolTipText: "observe.map.action.exportPng.tip"; +} \ No newline at end of file diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx index a7fa300..d0fc5d1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx +++ b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUI.jaxx @@ -17,7 +17,10 @@ void $afterCompleteSetup() { ]]> </script> - + <JPopupMenu id='mapPopupMenu'> + <JMenuItem id='zoomIt' onActionPerformed='getHandler().zoomIt()'/> + <JMenuItem id='exportPng' onActionPerformed='getHandler().exportPng()'/> + </JPopupMenu> <ObserveMapPane id='observeMapPane' constraints="BorderLayout.CENTER"/> diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java index a0c5317..db9c6c1 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java @@ -16,6 +16,7 @@ import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; import fr.ird.observe.tripMap.TripMapPoint; import fr.ird.observe.tripMap.TripMapPointType; +import fr.ird.observe.ui.UIHelper; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; @@ -48,6 +49,8 @@ import org.geotools.swing.event.MapPaneListener; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; +import javax.imageio.ImageIO; +import javax.swing.JOptionPane; import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -56,13 +59,17 @@ import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; +import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; +import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; +import static org.nuiton.i18n.I18n.t; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -91,13 +98,16 @@ public class TripMapUIHandler { public void initUI() { - JMapPane mapPane = getMapPane(); + ObserveMapPane mapPane = getObserveMapPane(); MouseMapListener mouseMapListener = new MouseMapListener(); mapPane.addMouseWheelListener(mouseMapListener); mapPane.addMouseMotionListener(mouseMapListener); mapPane.addMouseListener(mouseMapListener); mapPane.addMapPaneListener(new TripMapListener()); + + mapPane.setComponentPopupMenu(view.getMapPopupMenu()); + rendererRunning = false; } @@ -105,11 +115,13 @@ public class TripMapUIHandler { public void setConfig(ObserveConfig config) { this.config = config; - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); mapPane.setBackground(config.getMapBackgroundColor()); } - + protected ObserveMapPane getObserveMapPane() { + return view.getObserveMapPane(); + } public void doOpenMap(DataSource dataSource, DataService dataService, String tripId) { @@ -121,17 +133,53 @@ public class TripMapUIHandler { throw new ObserveTechnicalException("Unable to load trip map activity points", e); } - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); MapContent mapContent = buildMapContent(tripMapPoints); mapPane.setMapContent(mapContent); - zoomIt(); } public void zoomIt() { - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); mapPane.setDisplayArea(tripArea); } + public void exportPng() { + + File file = UIHelper.chooseFile( + view, + t("observe.map.export.chooseFile.title"), + t("observe.map.export.chooseFile.ok"), + null, + "^.+\\.png$", + t("observe.map.export.chooseFile.png")); + + boolean write = true; + if (file.exists()) { + write = UIHelper.askUser( + view, + t("observe.map.export.overwrite.title"), + t("observe.map.export.overwrite"), + JOptionPane.OK_CANCEL_OPTION, + new Object[] { + t("observe.map.export.overwrite.ok"), + t("observe.map.export.overwrite.cancel")}, + 1) == 0; + } + + if (write) { + BufferedImage im = new BufferedImage(view.getWidth(), view.getHeight(), BufferedImage.TYPE_INT_ARGB); + view.paint(im.getGraphics()); + try { + ImageIO.write(im, "PNG", file); + } catch (IOException e) { + throw new ObserveTechnicalException("unable to export map ", e); + } + + UIHelper.displayInfo(t("observe.map.export.success")); + } + } + + protected MapContent buildMapContent(List<TripMapPoint> tripMapPoints) { @@ -355,7 +403,7 @@ public class TripMapUIHandler { protected void zoomApply() { if (zoomRatio != 1 && ! rendererRunning) { - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); ReferencedEnvelope displayArea = mapPane.getDisplayArea(); @@ -420,12 +468,16 @@ public class TripMapUIHandler { @Override public void mousePressed(MouseEvent e) { - startMove(e.getPoint()); + if (e.getButton() == MouseEvent.BUTTON1) { + startMove(e.getPoint()); + } } @Override public void mouseReleased(MouseEvent e) { - endMove(e.getPoint()); + if (e.getButton() == MouseEvent.BUTTON1) { + endMove(e.getPoint()); + } } @Override @@ -449,7 +501,7 @@ public class TripMapUIHandler { } protected void startMove(Point2D startPointInScreen) { - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); startDisplayArea = mapPane.getDisplayArea(); @@ -474,7 +526,7 @@ public class TripMapUIHandler { endDisplayArea.translate(transX, transY); - JMapPane mapPane = getMapPane(); + JMapPane mapPane = getObserveMapPane(); mapPane.setDisplayArea(endDisplayArea); @@ -485,9 +537,14 @@ public class TripMapUIHandler { } protected class TripMapListener implements MapPaneListener { + + protected boolean firstRendering; + @Override public void onNewMapContent(MapPaneEvent ev) { + firstRendering = true; } + @Override public void onDisplayAreaChanged(MapPaneEvent ev) { } @@ -500,12 +557,13 @@ public class TripMapUIHandler { @Override public void onRenderingStopped(MapPaneEvent ev) { rendererRunning = false; - zoomApply(); + if (firstRendering) { + zoomIt(); + firstRendering = false; + } else { + zoomApply(); + } } } - protected JMapPane getMapPane() { - return view.getObserveMapPane(); - } - } diff --git a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties index b67fc38..603d32a 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties @@ -1240,7 +1240,25 @@ observe.longlineGlobalComposition.tab.floatlinesComposition=Floatines observe.longlineGlobalComposition.tab.hooksComposition=Hooks observe.longlineGlobalComposition.tab.mitigationType=Mitigation observe.longlineGlobalComposition.title=Global composition +observe.map.action.exportPng= +observe.map.action.exportPng.tip= +observe.map.action.zoomIt= +observe.map.action.zoomIt.tip= observe.map.east= +observe.map.export.choose.export.ok= +observe.map.export.choose.export.title= +observe.map.export.chooseFile.ok= +observe.map.export.chooseFile.overwrite= +observe.map.export.chooseFile.overwrite.cancel= +observe.map.export.chooseFile.overwrite.ok= +observe.map.export.chooseFile.overwrite.title= +observe.map.export.chooseFile.png= +observe.map.export.chooseFile.title= +observe.map.export.overwrite= +observe.map.export.overwrite.cancel= +observe.map.export.overwrite.ok= +observe.map.export.overwrite.title= +observe.map.export.success= observe.map.miles= observe.map.north= observe.map.south= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties index 070e9a7..4baf73a 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties @@ -1240,7 +1240,25 @@ observe.longlineGlobalComposition.tab.floatlinesComposition= observe.longlineGlobalComposition.tab.hooksComposition= observe.longlineGlobalComposition.tab.mitigationType= observe.longlineGlobalComposition.title= +observe.map.action.exportPng= +observe.map.action.exportPng.tip= +observe.map.action.zoomIt= +observe.map.action.zoomIt.tip= observe.map.east= +observe.map.export.choose.export.ok= +observe.map.export.choose.export.title= +observe.map.export.chooseFile.ok= +observe.map.export.chooseFile.overwrite= +observe.map.export.chooseFile.overwrite.cancel= +observe.map.export.chooseFile.overwrite.ok= +observe.map.export.chooseFile.overwrite.title= +observe.map.export.chooseFile.png= +observe.map.export.chooseFile.title= +observe.map.export.overwrite= +observe.map.export.overwrite.cancel= +observe.map.export.overwrite.ok= +observe.map.export.overwrite.title= +observe.map.export.success= observe.map.miles= observe.map.north= observe.map.south= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties index e72a30b..88ea1ac 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties @@ -1238,7 +1238,19 @@ observe.longlineGlobalComposition.tab.floatlinesComposition=Orins observe.longlineGlobalComposition.tab.hooksComposition=Hameçons observe.longlineGlobalComposition.tab.mitigationType=Atténuations observe.longlineGlobalComposition.title=Composition globale de la palangre +observe.map.action.exportPng=Exporter +observe.map.action.exportPng.tip=Exporter la carte +observe.map.action.zoomIt=Centrer +observe.map.action.zoomIt.tip=Centrer la carte sur la marée observe.map.east=Est +observe.map.export.chooseFile.ok=Exporter +observe.map.export.chooseFile.png=image PNG +observe.map.export.chooseFile.title=Exporter la carte +observe.map.export.overwrite=Le fichier existe déjà. Voulez-vous le remplacer ? +observe.map.export.overwrite.cancel=Annuler +observe.map.export.overwrite.ok=Remplacer +observe.map.export.overwrite.title=Attention +observe.map.export.success=Carte Exportée observe.map.miles=milles observe.map.north=Nord observe.map.south=Sud -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm