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%2FMapFormPage.java;fp=gis%2Fplugins%2Forg.argeo.gis.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fgis%2Fui%2Feditors%2FMapFormPage.java;h=c84816571c4a79c07eab21d91f49e1203ec243cc;hb=7fe4a16dad045373bb014724733c1bbb175d44b5;hp=0000000000000000000000000000000000000000;hpb=d2ed44a6c5968200c6ba18809dc0845749072b7f;p=lgpl%2Fargeo-commons.git diff --git a/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/MapFormPage.java b/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/MapFormPage.java new file mode 100644 index 000000000..c84816571 --- /dev/null +++ b/gis/plugins/org.argeo.gis.ui/src/main/java/org/argeo/gis/ui/editors/MapFormPage.java @@ -0,0 +1,72 @@ +package org.argeo.gis.ui.editors; + +import javax.jcr.Node; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.argeo.gis.ui.MapControlCreator; +import org.argeo.gis.ui.MapViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.editor.FormEditor; +import org.eclipse.ui.forms.editor.FormPage; +import org.eclipse.ui.forms.widgets.FormToolkit; + +/** A form editor page to edit geographical data. */ +public class MapFormPage extends FormPage { + private final static Log log = LogFactory.getLog(MapFormPage.class); + + private Node context; + private MapViewer mapViewer; + private MapControlCreator mapControlCreator; + + public MapFormPage(FormEditor editor, String id, String title, + Node context, MapControlCreator mapControlCreator) { + super(editor, id, title); + this.context = context; + this.mapControlCreator = mapControlCreator; + } + + @Override + protected void createFormContent(IManagedForm managedForm) { + Composite parent = managedForm.getForm().getBody(); + parent.setLayout(new FillLayout()); + + FormToolkit tk = managedForm.getToolkit(); + + Composite mapArea = new Composite(parent, SWT.NONE); + GridLayout layout = new GridLayout(); + layout.marginHeight = 0; + layout.marginWidth = 0; + mapArea.setLayout(layout); + mapViewer = mapControlCreator.createMapControl(context, mapArea); + tk.adapt(mapViewer.getControl()); + } + + public void featureSelected(String layerId, String featureId) { + if (log.isDebugEnabled()) + log.debug("Selected feature '" + featureId + "' of layer '" + + layerId + "'"); + + } + + public void featureUnselected(String layerId, String featureId) { + if (log.isDebugEnabled()) + log.debug("Unselected feature '" + featureId + "' of layer '" + + layerId + "'"); + + } + + public void setFocus() { + super.setFocus(); + mapViewer.getControl().setFocus(); + } + + public MapViewer getMapViewer() { + return mapViewer; + } + +}