From a3e959fcd1fe352e3d1f011142762c3d2f83f31d Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 13 Oct 2010 10:41:36 +0000 Subject: [PATCH] First working integration of field viewer in SLC RCP git-svn-id: https://svn.argeo.org/slc/trunk@3841 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org.argeo.slc.client.gis/.classpath | 7 ++ .../plugins/org.argeo.slc.client.gis/.project | 28 +++++ .../.settings/org.eclipse.jdt.core.prefs | 8 ++ .../META-INF/MANIFEST.MF | 16 +++ .../META-INF/spring/gisclient-osgi.xml | 7 +- .../META-INF/spring/gisclient-views.xml | 27 +++++ .../org.argeo.slc.client.gis/build.properties | 6 + .../org.argeo.slc.client.gis/icons/sample.gif | Bin 0 -> 983 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 | 52 +++++++++ .../org.argeo.slc.client.rcp/build.properties | 3 +- .../org.argeo.slc.client.rcp/plugin.xml | 20 +--- .../plugin_customization.ini | 5 + .../slc-client-rcp.product | 20 +++- .../ApplicationWorkbenchWindowAdvisor.java | 3 +- .../.project | 2 +- .../.settings/org.eclipse.pde.core.prefs | 0 .../META-INF/MANIFEST.MF | 5 +- .../META-INF/registryFile.jai | 0 .../META-INF/spring/backend-osgi.xml | 10 ++ .../META-INF/spring/backend.xml | 41 +++++++ .../build.properties | 0 .../META-INF/spring/ui.xml | 54 --------- .../slc/geotools/swing/GisFieldViewer.java | 103 +++++++++++------- 26 files changed, 422 insertions(+), 115 deletions(-) create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/.classpath create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/.project create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF rename modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui-osgi.xml => eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml (76%) create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/build.properties create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/icons/sample.gif create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/plugin.xml create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java create mode 100644 eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java create 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.rcp/plugin_customization.ini rename modules/gis/{org.argeo.slc.gis.position.ui => org.argeo.slc.gis.position.backend}/.project (90%) rename modules/gis/{org.argeo.slc.gis.position.ui => org.argeo.slc.gis.position.backend}/.settings/org.eclipse.pde.core.prefs (100%) rename modules/gis/{org.argeo.slc.gis.position.ui => org.argeo.slc.gis.position.backend}/META-INF/MANIFEST.MF (77%) rename modules/gis/{org.argeo.slc.gis.position.ui => org.argeo.slc.gis.position.backend}/META-INF/registryFile.jai (100%) create mode 100644 modules/gis/org.argeo.slc.gis.position.backend/META-INF/spring/backend-osgi.xml create mode 100644 modules/gis/org.argeo.slc.gis.position.backend/META-INF/spring/backend.xml rename modules/gis/{org.argeo.slc.gis.position.ui => org.argeo.slc.gis.position.backend}/build.properties (100%) delete mode 100644 modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui.xml diff --git a/eclipse/plugins/org.argeo.slc.client.gis/.classpath b/eclipse/plugins/org.argeo.slc.client.gis/.classpath new file mode 100644 index 000000000..92f19d2ff --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.gis/.project b/eclipse/plugins/org.argeo.slc.client.gis/.project new file mode 100644 index 000000000..f0dfed9bd --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/.project @@ -0,0 +1,28 @@ + + + org.argeo.slc.client.gis + + + + + + 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.client.gis/.settings/org.eclipse.jdt.core.prefs b/eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..14c8f81cd --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +#Wed Oct 13 08:00:18 CEST 2010 +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.client.gis/META-INF/MANIFEST.MF b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF new file mode 100644 index 000000000..5f4b240df --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Gis +Bundle-SymbolicName: org.argeo.slc.client.gis; singleton:=true +Bundle-Version: 1.0.0.qualifier +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: org.argeo.eclipse.spring, + org.argeo.slc.geotools.swing;version="0.13.0.SNAPSHOT-r3817", + org.argeo.slc.jts;version="0.13.0.SNAPSHOT-r3817", + org.geotools.data, + org.springframework.osgi.util;version="1.2.1" diff --git a/modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui-osgi.xml b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml similarity index 76% rename from modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui-osgi.xml rename to eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml index 9c6e89b4b..5757bd30b 100644 --- a/modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui-osgi.xml +++ b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-osgi.xml @@ -6,8 +6,11 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml new file mode 100644 index 000000000..307115f87 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/META-INF/spring/gisclient-views.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + diff --git a/eclipse/plugins/org.argeo.slc.client.gis/build.properties b/eclipse/plugins/org.argeo.slc.client.gis/build.properties new file mode 100644 index 000000000..89500559a --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/build.properties @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..34fb3c9d8cb7d489681b7f7aee4bdcd7eaf53610 GIT binary patch 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 new file mode 100644 index 000000000..7c2d23563 --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/ClientGisActivator.java @@ -0,0 +1,61 @@ +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 new file mode 100644 index 000000000..c9de6640e --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/GisPerspectiveFactory.java @@ -0,0 +1,19 @@ +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 new file mode 100644 index 000000000..6a7bd021b --- /dev/null +++ b/eclipse/plugins/org.argeo.slc.client.gis/src/main/java/org/argeo/slc/client/gis/views/GeoToolsMapView.java @@ -0,0 +1,52 @@ +package org.argeo.slc.client.gis.views; + +import java.awt.Frame; + +import org.argeo.slc.geotools.swing.GisFieldViewer; +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.data.DataStore; + +public class GeoToolsMapView extends ViewPart { + public static final String ID = "org.argeo.slc.client.gis.views.GeoToolsMapView"; + + private Composite embedded; + + private PositionProvider positionProvider; + + private DataStore postGisDataStore; + + private ClassLoader jaiImageIoClassLoader; + + public void createPartControl(Composite parent) { + embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); + Frame frame = SWT_AWT.new_Frame(embedded); + + GisFieldViewer gisFieldViewer = new GisFieldViewer(frame); + gisFieldViewer.setPostGisDataStore(postGisDataStore); + gisFieldViewer.setPositionProvider(positionProvider); + gisFieldViewer.setJaiImageIoClassLoader(jaiImageIoClassLoader); + gisFieldViewer.afterPropertiesSet(); + } + + public void setFocus() { + if (embedded != null) + embedded.setFocus(); + } + + public void setPositionProvider(PositionProvider positionProvider) { + this.positionProvider = positionProvider; + } + + public void setPostGisDataStore(DataStore postGisDataStore) { + this.postGisDataStore = postGisDataStore; + } + + public void setJaiImageIoClassLoader(ClassLoader jaiImageIoClassLoader) { + this.jaiImageIoClassLoader = jaiImageIoClassLoader; + } + +} \ No newline at end of file diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/build.properties b/eclipse/plugins/org.argeo.slc.client.rcp/build.properties index 8923d2306..8b65761d0 100644 --- a/eclipse/plugins/org.argeo.slc.client.rcp/build.properties +++ b/eclipse/plugins/org.argeo.slc.client.rcp/build.properties @@ -4,4 +4,5 @@ bin.includes = plugin.xml,\ META-INF/,\ .,\ icons/,\ - splash.bmp + splash.bmp,\ + plugin_customization.ini diff --git a/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml b/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml index be1a9c1a1..b7ce60120 100644 --- a/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml +++ b/eclipse/plugins/org.argeo.slc.client.rcp/plugin.xml @@ -19,22 +19,6 @@ id="org.argeo.slc.client.rcp.perspective"> - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/gis/org.argeo.slc.gis.position.ui/build.properties b/modules/gis/org.argeo.slc.gis.position.backend/build.properties similarity index 100% rename from modules/gis/org.argeo.slc.gis.position.ui/build.properties rename to modules/gis/org.argeo.slc.gis.position.backend/build.properties diff --git a/modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui.xml b/modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui.xml deleted file mode 100644 index 80ebc89ab..000000000 --- a/modules/gis/org.argeo.slc.gis.position.ui/META-INF/spring/ui.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/swing/GisFieldViewer.java b/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/swing/GisFieldViewer.java index e3447e053..3e5926d14 100644 --- a/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/swing/GisFieldViewer.java +++ b/runtime/org.argeo.slc.support.gis/src/main/java/org/argeo/slc/geotools/swing/GisFieldViewer.java @@ -17,6 +17,7 @@ package org.argeo.slc.geotools.swing; import java.awt.Color; +import java.awt.Frame; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.AffineTransform; @@ -40,10 +41,10 @@ import org.argeo.slc.geotools.BeanFeatureTypeBuilder; import org.argeo.slc.gis.model.FieldPosition; import org.argeo.slc.jts.PositionProvider; import org.geotools.data.DataStore; -import org.geotools.data.DataStoreFinder; import org.geotools.data.FeatureSource; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.WorldFileReader; +import org.geotools.data.postgis.PostgisNGDataStoreFactory; import org.geotools.factory.CommonFactoryFinder; import org.geotools.gce.image.WorldImageFormat; import org.geotools.geometry.DirectPosition2D; @@ -51,6 +52,7 @@ import org.geotools.geometry.Envelope2D; import org.geotools.map.DefaultMapContext; import org.geotools.map.MapContext; import org.geotools.map.MapLayer; +import org.geotools.renderer.lite.StreamingRenderer; import org.geotools.styling.FeatureTypeStyle; import org.geotools.styling.LineSymbolizer; import org.geotools.styling.RasterSymbolizer; @@ -103,6 +105,7 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { private JMapPane mapPane; private JMapFrame mapFrame; + private Frame awtFrame = null; /** in s */ private Integer positionRefreshPeriod = 1; @@ -113,6 +116,16 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { private DataSource dataSource; + private DataStore postGisDataStore; + + public GisFieldViewer() { + super(); + } + + public GisFieldViewer(Frame awtFrame) { + this.awtFrame = awtFrame; + } + public static void main(String[] args) throws Exception { new GisFieldViewer().afterPropertiesSet(); } @@ -133,18 +146,24 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { MapContext mapContext = new DefaultMapContext(); mapContext.setTitle("GIS Field Viewer"); - // Now display the map - // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - mapFrame = new JMapFrame(mapContext); - mapFrame.enableStatusBar(true); - mapFrame.enableToolBar(false); - mapFrame.enableLayerTable(true); - mapFrame.initComponents(); - mapFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + if (awtFrame == null) { + // Now display the map + // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + mapFrame = new JMapFrame(mapContext); + mapFrame.enableStatusBar(true); + mapFrame.enableToolBar(false); + mapFrame.enableLayerTable(true); + mapFrame.initComponents(); + mapFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - mapFrame.setSize(800, 600); + mapFrame.setSize(800, 600); + + mapPane = mapFrame.getMapPane(); + } else { + mapPane = new JMapPane(new StreamingRenderer(), mapContext); + awtFrame.add(mapPane); + } - mapPane = mapFrame.getMapPane(); // ReferencedEnvelope referencedEnvelope = new // ReferencedEnvelope(sphericalMercator); // mapFrame.getMapContext().setAreaOfInterest(referencedEnvelope); @@ -153,22 +172,23 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { mapPane.addMapPaneListener(new CustomMapPaneListener()); - SwingUtilities.invokeLater(new Runnable() { - public void run() { - // Fullscreen - // GraphicsEnvironment ge = GraphicsEnvironment - // .getLocalGraphicsEnvironment(); - // GraphicsDevice[] devices = ge.getScreenDevices(); - // if (devices.length < 1) - // throw new RuntimeException("No device available"); - // GraphicsDevice gd = devices[0]; - // mapFrame.setUndecorated(true); - // // http://ubuntuforums.org/showthread.php?t=820924 - // mapFrame.setResizable(true); - // gd.setFullScreenWindow(mapFrame); - mapFrame.setVisible(true); - } - }); + if (mapFrame != null) + SwingUtilities.invokeLater(new Runnable() { + public void run() { + // Fullscreen + // GraphicsEnvironment ge = GraphicsEnvironment + // .getLocalGraphicsEnvironment(); + // GraphicsDevice[] devices = ge.getScreenDevices(); + // if (devices.length < 1) + // throw new RuntimeException("No device available"); + // GraphicsDevice gd = devices[0]; + // mapFrame.setUndecorated(true); + // // http://ubuntuforums.org/showthread.php?t=820924 + // mapFrame.setResizable(true); + // gd.setFullScreenWindow(mapFrame); + mapFrame.setVisible(true); + } + }); // Center on position in order to facten first rendering centerOnPosition(); @@ -207,20 +227,25 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { try { Map params = new HashMap(); - params.put("dbtype", "postgis"); - params.put("host", "air"); - params.put("port", new Integer(5432)); - params.put("database", "test_berlin"); - params.put("user", "argeo"); - params.put("passwd", "argeo"); - - DataStore pgDatastore = DataStoreFinder.getDataStore(params); - + // params.put("dbtype", "postgis"); + // params.put("host", "air"); + // params.put("port", new Integer(5432)); + // params.put("database", "test_berlin"); + // params.put("user", "argeo"); + // params.put("passwd", "argeo"); + // + // DataStore pgDatastore = DataStoreFinder.getDataStore(params); + + PostgisNGDataStoreFactory factory = new PostgisNGDataStoreFactory(); // JDBCDataStore pgDatastore = new JDBCDataStore(); // pgDatastore.setDataSource(dataSource); // pgDatastore.setSQLDialect(new PostGISDialect(pgDatastore)); - FeatureSource source = pgDatastore + params.put(PostgisNGDataStoreFactory.DATASOURCE.key, dataSource); + + //JDBCDataStore pgDatastore = factory.createDataStore(params); + + FeatureSource source = postGisDataStore .getFeatureSource("ways"); // log.debug("source CRS: "+source.getBounds().getCoordinateReferenceSystem()); // log.debug("context CRS: "+mapContext.getCoordinateReferenceSystem()); @@ -410,6 +435,10 @@ public class GisFieldViewer implements InitializingBean, DisposableBean { this.dataSource = dataSource; } + public void setPostGisDataStore(DataStore postGisDataStore) { + this.postGisDataStore = postGisDataStore; + } + private class CustomMapPaneListener extends MapPaneAdapter { @Override -- 2.39.2