X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=gis%2Fplugins%2Forg.argeo.gis.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fgis%2Fui%2Feditors%2FDefaultMapEditor.java;fp=gis%2Fplugins%2Forg.argeo.gis.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fgis%2Fui%2Feditors%2FDefaultMapEditor.java;h=e9311b9dbce7e68afced827da0993e432e246bc2;hb=77eaf70d8b929dab68211d6a01f68eeb71a1dceb;hp=0000000000000000000000000000000000000000;hpb=ab41c59dc92ba8bbc4b64f8f619ac30bfe4c4630;p=lgpl%2Fargeo-commons.git diff --git a/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/DefaultMapEditor.java b/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/DefaultMapEditor.java new file mode 100644 index 000000000..e9311b9db --- /dev/null +++ b/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/DefaultMapEditor.java @@ -0,0 +1,91 @@ +package org.argeo.gis.ui.editors; + +import org.argeo.gis.ui.MapContextProvider; +import org.argeo.gis.ui.MapControlCreator; +import org.argeo.gis.ui.views.LayersView; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.part.EditorPart; +import org.geotools.data.FeatureSource; +import org.geotools.map.MapContext; +import org.opengis.feature.simple.SimpleFeature; +import org.opengis.feature.simple.SimpleFeatureType; + +/** A generic map editor */ +public class DefaultMapEditor extends EditorPart implements MapContextProvider { + public final static String ID = "org.argeo.gis.ui.defaultMapEditor"; + + private MapContext mapContext; + private Composite map; + private MapControlCreator mapControlCreator; + + @Override + public void init(IEditorSite site, IEditorInput input) + throws PartInitException { + if (input instanceof MapContextProvider) { + mapContext = ((MapContextProvider) input).getMapContext(); + setSite(site); + setInput(input); + setPartName(input.getName()); + } else { + throw new PartInitException("Support only " + + MapContextProvider.class + " inputs"); + } + } + + @Override + public void createPartControl(Composite parent) { + Composite mapArea = new Composite(parent, SWT.NONE); + GridLayout layout = new GridLayout(); + layout.marginHeight = 0; + layout.marginWidth = 0; + mapArea.setLayout(layout); + map = mapControlCreator.createMapControl(mapArea, this); + } + + public void addLayer( + FeatureSource featureSource) { + // TODO: deal with style + mapContext.addLayer(featureSource, null); + } + + @Override + public void doSave(IProgressMonitor monitor) { + } + + @Override + public void doSaveAs() { + } + + @Override + public boolean isDirty() { + return false; + } + + @Override + public boolean isSaveAsAllowed() { + return false; + } + + @Override + public void setFocus() { + LayersView layersView = (LayersView) getEditorSite() + .getWorkbenchWindow().getActivePage().findView(LayersView.ID); + layersView.setMapContext(getMapContext()); + map.setFocus(); + } + + public MapContext getMapContext() { + return mapContext; + } + + public void setMapControlCreator(MapControlCreator mapControlCreator) { + this.mapControlCreator = mapControlCreator; + } + +}