From 385268ffdce5bafb3277251da58b22b0661f4257 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 22 Feb 2011 23:04:26 +0000 Subject: [PATCH] Improve GIS git-svn-id: https://svn.argeo.org/slc/trunk@4168 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../META-INF/MANIFEST.MF | 33 --- .../META-INF/spring/gisclient-osgi.xml | 12 - .../org.argeo.slc.client.gis/build.properties | 6 - .../org.argeo.slc.client.gis/icons/sample.gif | Bin 983 -> 0 bytes .../org.argeo.slc.client.gis/plugin.xml | 40 --- .../slc/client/gis/ClientGisActivator.java | 61 ----- .../slc/client/gis/GisPerspectiveFactory.java | 19 -- .../slc/client/gis/views/GeoToolsMapView.java | 241 ------------------ .../META-INF/spring/jcr.xml | 10 + .../META-INF/spring/osgi.xml | 5 +- .../META-INF/spring/views.xml | 12 +- .../org.argeo.slc.client.ui.dist/plugin.xml | 2 +- .../plugins/org.argeo.slc.client.ui/pom.xml | 16 -- .../.classpath | 0 .../.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 2 +- .../META-INF/MANIFEST.MF | 7 + .../org.argeo.slc.ui.gis.rap/build.properties | 4 + .../org.argeo.slc.ui.gis.rcp/.classpath | 7 + .../plugins/org.argeo.slc.ui.gis.rcp/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 8 + .../.settings/org.eclipse.pde.core.prefs | 3 + .../META-INF/MANIFEST.MF | 26 ++ .../META-INF/spring/gisui-views.xml} | 8 +- .../org.argeo.slc.ui.gis.rcp/build.properties | 4 + .../org.argeo.slc.ui.gis.rcp/plugin.xml | 14 + .../slc/ui/gis/rcp/views/SwingMapView.java | 140 ++++++++++ eclipse/plugins/pom.xml | 1 + 28 files changed, 266 insertions(+), 445 deletions(-) delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/build.properties delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/icons/sample.gif delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/plugin.xml delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java delete mode 100644 eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/views/GeoToolsMapView.java create mode 100644 eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/jcr.xml rename eclipse/plugins/{org.argeo.slc.client.gis => org.argeo.slc.ui.gis.rap}/.classpath (100%) rename eclipse/plugins/{org.argeo.slc.client.gis => org.argeo.slc.ui.gis.rap}/.project (94%) rename eclipse/plugins/{org.argeo.slc.client.gis => org.argeo.slc.ui.gis.rap}/.settings/org.eclipse.jdt.core.prefs (92%) create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rap/META-INF/MANIFEST.MF create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rap/build.properties create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/.classpath create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/.project create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.pde.core.prefs create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/MANIFEST.MF rename eclipse/plugins/{org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml => org.argeo.slc.ui.gis.rcp/META-INF/spring/gisui-views.xml} (54%) create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/build.properties create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/plugin.xml create mode 100644 eclipse/plugins/org.argeo.slc.ui.gis.rcp/src/main/java/org/argeo/slc/ui/gis/rcp/views/SwingMapView.java diff --git a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF deleted file mode 100644 index 31e527427..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF +++ /dev/null @@ -1,33 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Gis -Bundle-SymbolicName: org.argeo.slc.client.gis; singleton:=true -Bundle-Version: 0.13.1.SNAPSHOT -Bundle-Activator: org.argeo.slc.client.gis.ClientGisActivator -Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime, - org.argeo.dep.osgi.jai.imageio;bundle-version="1.1.0" -Bundle-ActivationPolicy: lazy -Bundle-RequiredExecutionEnvironment: J2SE-1.5 -Import-Package: com.vividsolutions.jts.geom;version="1.10.0", - org.apache.commons.logging;version="1.1.1", - org.argeo.eclipse.spring, - org.argeo.slc.geotools, - org.argeo.slc.geotools.data, - org.argeo.slc.geotools.swing, - org.argeo.slc.gis.model, - org.argeo.slc.jts, - org.geotools.data, - org.geotools.gce.image, - org.geotools.geometry, - org.geotools.map, - org.geotools.renderer, - org.geotools.renderer.lite, - org.geotools.styling, - org.geotools.swing, - org.geotools.swing.event, - org.geotools.swing.tool, - org.opengis.feature.simple, - org.opengis.geometry, - org.opengis.referencing.crs, - org.springframework.osgi.util;version="1.2.1" diff --git a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml deleted file mode 100644 index 69235e815..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.gis/build.properties b/eclipse/plugins/org.argeo.slc.client.gis/build.properties deleted file mode 100644 index 89500559a..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -source.. = src/main/java/ -output.. = target/classes/ -bin.includes = plugin.xml,\ - META-INF/,\ - .,\ - icons/ diff --git a/eclipse/plugins/org.argeo.slc.client.gis/icons/sample.gif b/eclipse/plugins/org.argeo.slc.client.gis/icons/sample.gif deleted file mode 100644 index 34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcmZ?wbhEHb6krfw_|CxKYUg-n!?izO{@9*?jxd%4aX0yzy`dymabz zw#(eg=y~&N&n)dZv2xzduG}5lraiApo3(c4*{Ylg5#|$JO_EEZ<^|a2`Z*=9ns7DV zy=TR&gYw*7f%auV?ip3tvjRPmcdoho{K?x$_vR?C#t5&<;~V}S*>OMCr>h}%%bLZ9 zmo3`hYEwTICo-TTCZwgTsC&VjZRgJ1eE#fBa^%9R zmmfWS@;bnyJ27HWY}kxYzv(Hl>yu;FCPlAEh+34Muq-8Rb6C)<8qA3{r2e5 z`$vyngh#H=FWlqqvnapfc5%(!sQ4v?r7J61-&eJNEN^;KTK}T7{#i-gJh%G*9vcYdwv_*~xdw!Gz4Va?T!sXyyF@8?w<>X`X=#j%uHV4GRvj@+tE@ zQ%F!a)GKcn^~8abN>4la1UNXVL;{ZWi)lEwyeatDu%Lr6;aASiLrXXW zQm# - - - - - - - - - - - - - - - - - - - - - diff --git a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java deleted file mode 100644 index 7c2d23563..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.argeo.slc.client.gis; - -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class ClientGisActivator extends AbstractUIPlugin { - - // The plug-in ID - public static final String PLUGIN_ID = "org.argeo.slc.client.gis"; //$NON-NLS-1$ - - // The shared instance - private static ClientGisActivator plugin; - - /** - * The constructor - */ - public ClientGisActivator() { - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static ClientGisActivator getDefault() { - return plugin; - } - - /** - * Returns an image descriptor for the image file at the given - * plug-in relative path - * - * @param path the path - * @return the image descriptor - */ - public static ImageDescriptor getImageDescriptor(String path) { - return imageDescriptorFromPlugin(PLUGIN_ID, path); - } -} diff --git a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java deleted file mode 100644 index c9de6640e..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.argeo.slc.client.gis; - -import org.eclipse.ui.IFolderLayout; -import org.eclipse.ui.IPageLayout; -import org.eclipse.ui.IPerspectiveFactory; - -public class GisPerspectiveFactory implements IPerspectiveFactory { - - public void createInitialLayout(IPageLayout layout) { - String editorArea = layout.getEditorArea(); - layout.setEditorAreaVisible(false); - layout.setFixed(false); - - IFolderLayout topLeft = layout.createFolder("topLeft", - IPageLayout.LEFT, 0.5f, editorArea); - topLeft.addView("org.argeo.slc.client.gis.mapView"); - } - -} diff --git a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/views/GeoToolsMapView.java b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/views/GeoToolsMapView.java deleted file mode 100644 index 369798706..000000000 --- a/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/views/GeoToolsMapView.java +++ /dev/null @@ -1,241 +0,0 @@ -package org.argeo.slc.client.gis.views; - -import java.awt.Color; -import java.awt.Frame; -import java.awt.Graphics2D; -import java.awt.Rectangle; -import java.awt.geom.AffineTransform; -import java.awt.geom.Point2D; - -import javax.swing.SwingUtilities; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.slc.geotools.Backend; -import org.argeo.slc.geotools.DataDescriptor; -import org.argeo.slc.geotools.data.FeatureSourceDataDescriptor; -import org.argeo.slc.geotools.data.PostgisDataDescriptor; -import org.argeo.slc.geotools.data.WorldImageDataDescriptor; -import org.argeo.slc.geotools.swing.VersatileZoomTool; -import org.argeo.slc.gis.model.FieldPosition; -import org.argeo.slc.jts.PositionProvider; -import org.eclipse.swt.SWT; -import org.eclipse.swt.awt.SWT_AWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.part.ViewPart; -import org.geotools.geometry.DirectPosition2D; -import org.geotools.geometry.Envelope2D; -import org.geotools.map.MapContext; -import org.geotools.renderer.lite.StreamingRenderer; -import org.geotools.styling.RasterSymbolizer; -import org.geotools.styling.Style; -import org.geotools.styling.StyleBuilder; -import org.geotools.swing.JMapPane; -import org.geotools.swing.event.MapPaneAdapter; -import org.geotools.swing.event.MapPaneEvent; - -import com.vividsolutions.jts.geom.Coordinate; - -public class GeoToolsMapView extends ViewPart { - public static final String ID = "org.argeo.slc.client.gis.views.GeoToolsMapView"; - private final static Log log = LogFactory.getLog(GeoToolsMapView.class); - - private Composite embedded; - - private PositionProvider positionProvider; - - private Backend backend; - - private MapContext mapContext; - private JMapPane mapPane; - - /** in s */ - private Integer positionRefreshPeriod = 1; - private FieldPosition currentPosition = null; - private Boolean positionProviderDisconnected = false; - private VersatileZoomTool versatileZoomTool; - - public void createPartControl(Composite parent) { - embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); - Frame frame = SWT_AWT.new_Frame(embedded); - - mapPane = new JMapPane(new StreamingRenderer(), mapContext); - versatileZoomTool = new VersatileZoomTool(); - mapPane.setCursorTool(versatileZoomTool); - - mapPane.addMapPaneListener(new CustomMapPaneListener()); - - frame.add(mapPane); - - centerOnPosition(); - - for (DataDescriptor dd : backend.getAvailableData(null)) { - if (dd instanceof WorldImageDataDescriptor) { - StyleBuilder styleBuilder = new StyleBuilder(); - RasterSymbolizer rs = styleBuilder.createRasterSymbolizer(); - rs.setGeometryPropertyName("geom"); - Style rasterStyle = styleBuilder.createStyle(rs); - try { - mapContext.addLayer(backend.loadGridCoverage(dd), - rasterStyle); - } catch (Exception e) { - log.warn(e); - } - - } else if (dd instanceof FeatureSourceDataDescriptor) { - try { - mapContext.addLayer(backend.loadFeatureSource(dd), null); - } catch (Exception e) { - log.warn(e); - } - } else if (dd instanceof PostgisDataDescriptor) { - // DataStore dataStore = backend.loadDataStore(dd); - for (DataDescriptor dd2 : backend.getAvailableData(dd)) - mapContext.addLayer(backend.loadFeatureSource(dd2), null); - } - } - // GisFieldViewer gisFieldViewer = new GisFieldViewer(frame); - // gisFieldViewer.setPostGisDataStore(postGisDataStore); - // gisFieldViewer.setPositionProvider(positionProvider); - // gisFieldViewer.setJaiImageIoClassLoader(jaiImageIoClassLoader); - // gisFieldViewer.afterPropertiesSet(); - - new Thread(new PositionUpdater()).start(); - - } - - protected void receiveNewPosition(FieldPosition position) { - if (position != null && versatileZoomTool != null) { - positionProviderDisconnected = false; - currentPosition = position; - Point2D point2d = new DirectPosition2D(currentPosition - .getLocation().getCoordinate().x, currentPosition - .getLocation().getCoordinate().y); - versatileZoomTool.setFieldPosition(point2d); - drawPositionLocation(); - } else { - positionProviderDisconnected = true; - } - } - - protected void drawPositionLocation() { - SwingUtilities.invokeLater(new Runnable() { - public void run() { - if (currentPosition == null) - return; - - AffineTransform tr = getMapPane().getWorldToScreenTransform(); - DirectPosition2D geoCoords = new DirectPosition2D( - currentPosition.getLocation().getCoordinate().x, - currentPosition.getLocation().getCoordinate().y); - if (tr == null) - return; - tr.transform(geoCoords, geoCoords); - geoCoords.setCoordinateReferenceSystem(getMapPane() - .getMapContext().getCoordinateReferenceSystem()); - - final int halfRefSize = 3; - Rectangle rect = new Rectangle((int) Math.round(geoCoords - .getX() - halfRefSize), (int) Math.round(geoCoords - .getY() - halfRefSize), halfRefSize * 2 + 1, - halfRefSize * 2 + 1); - Graphics2D g2D = (Graphics2D) getMapPane().getGraphics(); - if (g2D == null) - return; - g2D.setColor(Color.WHITE); - if (positionProviderDisconnected) - g2D.setXORMode(Color.ORANGE); - else - g2D.setXORMode(Color.RED); - g2D.drawRect(rect.x, rect.y, rect.width, rect.height); - g2D.drawRect(rect.x - 1, rect.y - 1, rect.width + 2, - rect.height + 2); - } - }); - } - - protected void centerOnPosition() { - if (currentPosition == null) - return; - Envelope2D env = new Envelope2D(); - final double increment = 1d; - Coordinate positionCoo = currentPosition.getLocation().getCoordinate(); - env.setFrameFromDiagonal(positionCoo.x - increment, positionCoo.y - - increment, positionCoo.x + increment, positionCoo.y - + increment); - getMapPane().setDisplayArea(env); - - } - - public void setFocus() { - if (embedded != null) - embedded.setFocus(); - } - - protected JMapPane getMapPane() { - return mapPane; - } - - public void setPositionProvider(PositionProvider positionProvider) { - this.positionProvider = positionProvider; - } - - public void setBackend(Backend backend) { - this.backend = backend; - } - - public void setMapContext(MapContext mapContext) { - this.mapContext = mapContext; - } - - private class CustomMapPaneListener extends MapPaneAdapter { - - @Override - public void onRenderingStopped(MapPaneEvent ev) { - drawPositionLocation(); - } - - @Override - public void onDisplayAreaChanged(MapPaneEvent ev) { - drawPositionLocation(); - } - - @Override - public void onRenderingProgress(MapPaneEvent ev) { - drawPositionLocation(); - } - - @Override - public void onRenderingStarted(MapPaneEvent ev) { - drawPositionLocation(); - } - - @Override - public void onResized(MapPaneEvent ev) { - drawPositionLocation(); - } - - } - - private class PositionUpdater implements Runnable { - - public void run() { - while (true) { - FieldPosition currentPosition = positionProvider - .currentPosition(); - - receiveNewPosition(currentPosition); - - if (currentPosition != null) { - } - - try { - Thread.sleep(positionRefreshPeriod * 1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - } - -} \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/jcr.xml b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/jcr.xml new file mode 100644 index 000000000..2701948bd --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/jcr.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/osgi.xml b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/osgi.xml index 15e7cfad6..0e87da8c0 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/osgi.xml +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/osgi.xml @@ -8,5 +8,8 @@ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" osgi:default-timeout="30000"> - + + + \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/views.xml b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/views.xml index 021599cb4..fab48161b 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/views.xml +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/META-INF/spring/views.xml @@ -7,13 +7,13 @@ - + - - - - - + + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/plugin.xml b/eclipse/plugins/org.argeo.slc.client.ui.dist/plugin.xml index 902c78125..89e87ed67 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/plugin.xml +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/plugin.xml @@ -50,7 +50,7 @@ locationURI="menu:org.eclipse.ui.main.menu?after=edit"> + id="org.argeo.slc.client.ui.dist.queryMenu"> ${version.slc} - org.argeo.slc.runtime @@ -41,16 +39,12 @@ - - org.argeo.commons.eclipse org.argeo.eclipse.ui ${version.argeo-commons} - org.argeo.commons.eclipse @@ -58,15 +52,5 @@ ${version.argeo-commons} provided - - - - - diff --git a/eclipse/plugins/org.argeo.slc.client.gis/.classpath b/eclipse/plugins/org.argeo.slc.ui.gis.rap/.classpath similarity index 100% rename from eclipse/plugins/org.argeo.slc.client.gis/.classpath rename to eclipse/plugins/org.argeo.slc.ui.gis.rap/.classpath diff --git a/eclipse/plugins/org.argeo.slc.client.gis/.project b/eclipse/plugins/org.argeo.slc.ui.gis.rap/.project similarity index 94% rename from eclipse/plugins/org.argeo.slc.client.gis/.project rename to eclipse/plugins/org.argeo.slc.ui.gis.rap/.project index f0dfed9bd..23932fa12 100644 --- a/eclipse/plugins/org.argeo.slc.client.gis/.project +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rap/.project @@ -1,6 +1,6 @@ - org.argeo.slc.client.gis + org.argeo.slc.ui.gis.rap diff --git a/eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/org.argeo.slc.ui.gis.rap/.settings/org.eclipse.jdt.core.prefs similarity index 92% rename from eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs rename to eclipse/plugins/org.argeo.slc.ui.gis.rap/.settings/org.eclipse.jdt.core.prefs index 14c8f81cd..fd54be0ab 100644 --- a/eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rap/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Wed Oct 13 08:00:18 CEST 2010 +#Mon Feb 21 08:58:15 CET 2011 eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rap/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.ui.gis.rap/META-INF/MANIFEST.MF new file mode 100644 index 000000000..4dfe7420e --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rap/META-INF/MANIFEST.MF @@ -0,0 +1,7 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Rap +Bundle-SymbolicName: org.argeo.slc.ui.gis.rap +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: Argeo +Bundle-RequiredExecutionEnvironment: J2SE-1.5 diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rap/build.properties b/eclipse/plugins/org.argeo.slc.ui.gis.rap/build.properties new file mode 100644 index 000000000..5fc538bc8 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rap/build.properties @@ -0,0 +1,4 @@ +source.. = src/main/java/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.classpath b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.classpath new file mode 100644 index 000000000..92f19d2ff --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.project b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.project new file mode 100644 index 000000000..8274d7a35 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.project @@ -0,0 +1,28 @@ + + + org.argeo.slc.ui.gis.rcp + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..404e51b45 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Mon Feb 21 08:56:35 CET 2011 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.pde.core.prefs b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.pde.core.prefs new file mode 100644 index 000000000..ad3b34899 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/.settings/org.eclipse.pde.core.prefs @@ -0,0 +1,3 @@ +#Mon Feb 21 09:12:59 CET 2011 +eclipse.preferences.version=1 +resolve.requirebundle=false diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/MANIFEST.MF new file mode 100644 index 000000000..b01d0ddb7 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/MANIFEST.MF @@ -0,0 +1,26 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Rcp +Bundle-SymbolicName: org.argeo.slc.ui.gis.rcp;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Vendor: Argeo +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime +Import-Package: com.vividsolutions.jts.geom;version="1.10.0", + org.apache.commons.logging;version="[1.1.1,2.0.0)", + org.argeo.eclipse.spring, + org.argeo.slc.geotools, + org.argeo.slc.geotools.map, + org.argeo.slc.geotools.swing, + org.argeo.slc.jts, + org.argeo.slc.ui.gis.views, + org.geotools.geometry, + org.geotools.map, + org.geotools.renderer, + org.geotools.renderer.lite, + org.geotools.swing, + org.geotools.swing.event, + org.geotools.swing.tool, + org.opengis.geometry, + org.opengis.referencing.crs diff --git a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/spring/gisui-views.xml similarity index 54% rename from eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml rename to eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/spring/gisui-views.xml index f395c7b21..60d667980 100644 --- a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/META-INF/spring/gisui-views.xml @@ -6,13 +6,7 @@ http://www.springframework.org/schema/beans/spring-beans.xsd "> - - - - - - - diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/build.properties b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/build.properties new file mode 100644 index 000000000..5fc538bc8 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/build.properties @@ -0,0 +1,4 @@ +source.. = src/main/java/ +output.. = target/classes/ +bin.includes = META-INF/,\ + . diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/plugin.xml b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/plugin.xml new file mode 100644 index 000000000..821bdf28f --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/plugin.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.ui.gis.rcp/src/main/java/org/argeo/slc/ui/gis/rcp/views/SwingMapView.java b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/src/main/java/org/argeo/slc/ui/gis/rcp/views/SwingMapView.java new file mode 100644 index 000000000..cefa2db93 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.ui.gis.rcp/src/main/java/org/argeo/slc/ui/gis/rcp/views/SwingMapView.java @@ -0,0 +1,140 @@ +package org.argeo.slc.ui.gis.rcp.views; + +import java.awt.Color; +import java.awt.Frame; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.geom.AffineTransform; +import java.awt.geom.Point2D; + +import javax.swing.SwingUtilities; + +import org.argeo.slc.geotools.map.OverlayLocationReceiver; +import org.argeo.slc.geotools.swing.VersatileZoomTool; +import org.argeo.slc.ui.gis.views.AbstractMapView; +import org.eclipse.swt.SWT; +import org.eclipse.swt.awt.SWT_AWT; +import org.eclipse.swt.widgets.Composite; +import org.geotools.geometry.DirectPosition2D; +import org.geotools.geometry.Envelope2D; +import org.geotools.map.DefaultMapContext; +import org.geotools.map.MapContext; +import org.geotools.renderer.lite.StreamingRenderer; +import org.geotools.swing.JMapPane; +import org.geotools.swing.event.MapPaneAdapter; +import org.geotools.swing.event.MapPaneEvent; + +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.Point; + +public class SwingMapView extends AbstractMapView implements + OverlayLocationReceiver { + public static final String ID = "org.argeo.slc.client.gis.views.GeoToolsMapView"; + + private Composite embedded; + private JMapPane mapPane; + + private VersatileZoomTool versatileZoomTool; + +public void createPartControl(Composite parent) { + embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); + Frame frame = SWT_AWT.new_Frame(embedded); + + mapPane = new JMapPane(new StreamingRenderer(), new DefaultMapContext()); + versatileZoomTool = new VersatileZoomTool(); + mapPane.setCursorTool(versatileZoomTool); + + mapPane.addMapPaneListener(new CustomMapPaneListener()); + + frame.add(mapPane); + } + + public void receiveOverlayLocation(final Point point, final Boolean stale) { + final Point2D point2d = new DirectPosition2D(point.getCoordinate().x, + point.getCoordinate().y); + versatileZoomTool.setFieldPosition(point2d); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + AffineTransform tr = mapPane.getWorldToScreenTransform(); + // DirectPosition2D geoCoords = new DirectPosition2D(point + // .getCoordinate().x, point.getCoordinate().y); + DirectPosition2D geoCoords = new DirectPosition2D(point2d); + if (tr == null) + return; + tr.transform(geoCoords, geoCoords); + geoCoords.setCoordinateReferenceSystem(mapPane.getMapContext() + .getCoordinateReferenceSystem()); + + final int halfRefSize = 3; + Rectangle rect = new Rectangle((int) Math.round(geoCoords + .getX() - halfRefSize), (int) Math.round(geoCoords + .getY() - halfRefSize), halfRefSize * 2 + 1, + halfRefSize * 2 + 1); + Graphics2D g2D = (Graphics2D) mapPane.getGraphics(); + if (g2D == null) + return; + g2D.setColor(Color.WHITE); + if (stale) + g2D.setXORMode(Color.ORANGE); + else + g2D.setXORMode(Color.RED); + g2D.drawRect(rect.x, rect.y, rect.width, rect.height); + g2D.drawRect(rect.x - 1, rect.y - 1, rect.width + 2, + rect.height + 2); + } + }); + } + + protected void centerMap(Coordinate coordinate) { + Envelope2D env = new Envelope2D(); + final double increment = 1d; + env.setFrameFromDiagonal(coordinate.x - increment, coordinate.y + - increment, coordinate.x + increment, coordinate.y + increment); + mapPane.setDisplayArea(env); + } + + public void setFocus() { + if (embedded != null) + embedded.setFocus(); + } + + + @Override + public MapContext getMapContext() { + return mapPane.getMapContext(); + } + + protected void redrawOverlayLocation() { + // FIXME: implement it + } + + private class CustomMapPaneListener extends MapPaneAdapter { + + @Override + public void onRenderingStopped(MapPaneEvent ev) { + redrawOverlayLocation(); + } + + @Override + public void onDisplayAreaChanged(MapPaneEvent ev) { + redrawOverlayLocation(); + } + + @Override + public void onRenderingProgress(MapPaneEvent ev) { + redrawOverlayLocation(); + } + + @Override + public void onRenderingStarted(MapPaneEvent ev) { + redrawOverlayLocation(); + } + + @Override + public void onResized(MapPaneEvent ev) { + redrawOverlayLocation(); + } + + } + +} \ No newline at end of file diff --git a/eclipse/plugins/pom.xml b/eclipse/plugins/pom.xml index 2612c90f4..dff317f68 100644 --- a/eclipse/plugins/pom.xml +++ b/eclipse/plugins/pom.xml @@ -14,6 +14,7 @@ org.argeo.slc.client.ui org.argeo.slc.client.ui.dist + org.argeo.slc.client.ui.gis org.argeo.slc.client.rcp org.argeo.slc.client.rap -- 2.39.2