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;
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 {
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);
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);
+ }
}
}
}
- public void setGeoJcrMapper(GeoJcrMapper geoJcrMapper) {
- this.geoJcrMapper = geoJcrMapper;
- }
-
@Override
public void setFocus() {
viewer.getTree().setFocus();