From: Mathieu Baudier Date: Sat, 25 Jun 2011 08:29:05 +0000 (+0000) Subject: Adapt for GeoTools 2.7.2 X-Git-Tag: argeo-commons-2.1.30~1216 X-Git-Url: https://git.argeo.org/?a=commitdiff_plain;h=deacc416c7b87f8f872f00b2882fc83ddbf2e870;p=lgpl%2Fargeo-commons.git Adapt for GeoTools 2.7.2 git-svn-id: https://svn.argeo.org/commons/trunk@4602 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/gis/plugins/org.argeo.gis.ui.rcp.swing/src/main/java/org/argeo/gis/ui/rcp/swing/SwingMapViewer.java b/gis/plugins/org.argeo.gis.ui.rcp.swing/src/main/java/org/argeo/gis/ui/rcp/swing/SwingMapViewer.java index 41c03ab21..b2f21489a 100644 --- a/gis/plugins/org.argeo.gis.ui.rcp.swing/src/main/java/org/argeo/gis/ui/rcp/swing/SwingMapViewer.java +++ b/gis/plugins/org.argeo.gis.ui.rcp.swing/src/main/java/org/argeo/gis/ui/rcp/swing/SwingMapViewer.java @@ -19,6 +19,7 @@ import org.geotools.data.FeatureSource; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.map.DefaultMapContext; import org.geotools.map.DefaultMapLayer; +import org.geotools.map.MapContext; import org.geotools.map.MapLayer; import org.geotools.renderer.lite.StreamingRenderer; import org.geotools.styling.Style; @@ -42,7 +43,10 @@ public class SwingMapViewer extends AbstractMapViewer { embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND); Frame frame = SWT_AWT.new_Frame(embedded); - mapPane = new JMapPane(new StreamingRenderer(), new DefaultMapContext()); + MapContext mapContext = new DefaultMapContext(); + // dummy call to make sure that the layers are initialized + mapContext.layers(); + mapPane = new JMapPane(new StreamingRenderer(), mapContext); versatileZoomTool = new VersatileZoomTool(); mapPane.setCursorTool(versatileZoomTool); mapPane.setBackground(Color.WHITE); diff --git a/gis/runtime/org.argeo.gis.geotools/src/main/java/org/argeo/geotools/jdbc/PostgisDataStoreFactory.java b/gis/runtime/org.argeo.gis.geotools/src/main/java/org/argeo/geotools/jdbc/PostgisDataStoreFactory.java new file mode 100644 index 000000000..f7c850686 --- /dev/null +++ b/gis/runtime/org.argeo.gis.geotools/src/main/java/org/argeo/geotools/jdbc/PostgisDataStoreFactory.java @@ -0,0 +1,30 @@ +package org.argeo.geotools.jdbc; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.sql.DataSource; + +import org.argeo.ArgeoException; +import org.geotools.data.DataStore; +import org.geotools.data.postgis.PostgisNGDataStoreFactory; + +/** + * Simplified data store to avoid issues with Spring and OSGi when Springs scans + * for all available factory methods. + */ +public class PostgisDataStoreFactory { + private PostgisNGDataStoreFactory wrappedFactory = new PostgisNGDataStoreFactory(); + + @SuppressWarnings({ "unchecked", "rawtypes" }) + public DataStore createDataStore(DataSource dataSource) { + try { + Map params = new HashMap(); + params.put(PostgisNGDataStoreFactory.DATASOURCE.key, dataSource); + return wrappedFactory.createDataStore(params); + } catch (IOException e) { + throw new ArgeoException("Cannot create PostGIS data store", e); + } + } +}