X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;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=5c454d2c9d9531551fe46a96ab3f1eeb6fce0f13;hb=3cd76e9fb547b4e839931c96264f0edc3ec315b6;hp=c84816571c4a79c07eab21d91f49e1203ec243cc;hpb=af5f77f80fbf95da1f48d57e440c9e2cdca3c3a2;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 index c84816571..5c454d2c9 100644 --- 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 @@ -6,10 +6,12 @@ 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.argeo.gis.ui.MapViewerListener; 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.AbstractFormPart; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; @@ -43,21 +45,13 @@ public class MapFormPage extends FormPage { 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 + "'"); + // form part + MapFormPart mapFormPart = new MapFormPart(); + getManagedForm().addPart(mapFormPart); + mapViewer.addMapViewerListener(mapFormPart); + tk.adapt(mapViewer.getControl()); } public void setFocus() { @@ -69,4 +63,23 @@ public class MapFormPage extends FormPage { return mapViewer; } + private static class MapFormPart extends AbstractFormPart implements + MapViewerListener { + + public void featureSelected(String layerId, String featureId) { + if (log.isDebugEnabled()) + log.debug("Selected feature '" + featureId + "' of layer '" + + layerId + "'"); + markDirty(); + } + + public void featureUnselected(String layerId, String featureId) { + if (log.isDebugEnabled()) + log.debug("Unselected feature '" + featureId + "' of layer '" + + layerId + "'"); + + markDirty(); + } + + } }