]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/views/FeatureSourcesView.java
Improve GIS
[lgpl/argeo-commons.git] / gis / plugins / org.argeo.gis.ui / src / main / java / org / argeo / gis / ui / views / FeatureSourcesView.java
index 76ea5dd5600dace7af4fc04c6cbc0f0f77aad68e..a534d4745f8dcb797737c1098ef1579b687bc427 100644 (file)
@@ -6,8 +6,8 @@ import javax.jcr.Session;
 
 import org.argeo.ArgeoException;
 import org.argeo.eclipse.ui.jcr.SimpleNodeContentProvider;
-import org.argeo.geotools.jcr.GeoJcrMapper;
 import org.argeo.gis.ui.editors.DefaultMapEditor;
+import org.argeo.gis.ui.editors.MapFormPage;
 import org.argeo.jcr.gis.GisTypes;
 import org.eclipse.jface.viewers.DoubleClickEvent;
 import org.eclipse.jface.viewers.IDoubleClickListener;
@@ -17,10 +17,9 @@ import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.IFormPage;
 import org.eclipse.ui.part.ViewPart;
-import org.geotools.data.FeatureSource;
-import org.opengis.feature.simple.SimpleFeature;
-import org.opengis.feature.simple.SimpleFeatureType;
 
 public class FeatureSourcesView extends ViewPart implements
                IDoubleClickListener {
@@ -32,14 +31,14 @@ public class FeatureSourcesView extends ViewPart implements
 
        private TreeViewer viewer;
 
-       private GeoJcrMapper geoJcrMapper;
-
        @Override
        public void createPartControl(Composite parent) {
                viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
                String[] basePaths = { dataStoresBasePath };
-               viewer.setContentProvider(new SimpleNodeContentProvider(session,
-                               basePaths));
+               SimpleNodeContentProvider sncp = new SimpleNodeContentProvider(session,
+                               basePaths);
+               sncp.setMkdirs(true);
+               viewer.setContentProvider(sncp);
                viewer.setLabelProvider(new MapsLabelProvider());
                viewer.setInput(getViewSite());
                viewer.addDoubleClickListener(this);
@@ -52,18 +51,22 @@ public class FeatureSourcesView extends ViewPart implements
                        if (obj instanceof Node) {
                                Node node = (Node) obj;
                                try {
-                                       if (!node.getPrimaryNodeType().isNodeType(
-                                                       GisTypes.GIS_FEATURE_SOURCE))
+                                       if (!node.isNodeType(GisTypes.GIS_FEATURE_SOURCE))
                                                return;
                                } catch (RepositoryException e) {
                                        throw new ArgeoException("Cannot check type of " + node, e);
                                }
-                               FeatureSource<SimpleFeatureType, SimpleFeature> featureSource = geoJcrMapper
-                                               .getFeatureSource(node);
                                IEditorPart ed = getSite().getWorkbenchWindow().getActivePage()
                                                .getActiveEditor();
                                if (ed instanceof DefaultMapEditor) {
-                                       ((DefaultMapEditor) ed).addLayer(featureSource);
+                                       ((DefaultMapEditor) ed).getMapViewer().addLayer(node);
+                               } else if (ed instanceof FormEditor) {
+                                       IFormPage activePage = ((FormEditor) ed)
+                                                       .getActivePageInstance();
+                                       if (activePage instanceof MapFormPage) {
+                                               ((MapFormPage) activePage).getMapViewer()
+                                                               .addLayer(node);
+                                       }
                                }
                        }
 
@@ -71,10 +74,6 @@ public class FeatureSourcesView extends ViewPart implements
 
        }
 
-       public void setGeoJcrMapper(GeoJcrMapper geoJcrMapper) {
-               this.geoJcrMapper = geoJcrMapper;
-       }
-
        @Override
        public void setFocus() {
                viewer.getTree().setFocus();