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;h=e6b5984f7c23d4f366cbd2e0f974da688059596e;hb=78a52c7ee4e476b3fe366346ed26315f7237a6bb;hp=c84816571c4a79c07eab21d91f49e1203ec243cc;hpb=7fe4a16dad045373bb014724733c1bbb175d44b5;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..e6b5984f7 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,13 @@ 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.GridData; 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 +46,15 @@ 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 + "'"); + mapViewer.getControl().setLayoutData( + new GridData(SWT.FILL, SWT.FILL, true, true)); - } - - 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 +66,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(); + } + + } }