From: Patrick Plitzner Date: Mon, 22 Jun 2015 12:38:25 +0000 (+0200) Subject: - update parent scroll form on property change (fixes #4881) X-Git-Tag: 3.7.0~1^2~55 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/92e4b107a7509eb50c62d5fd48e9140796df6aba?ds=sidebyside - update parent scroll form on property change (fixes #4881) --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java index 9d3a362b4..950452bd3 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailElement.java @@ -21,6 +21,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.events.DisposeEvent; import org.eclipse.swt.events.DisposeListener; import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.forms.widgets.ScrolledForm; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; @@ -106,11 +107,6 @@ public abstract class AbstractCdmDetailElement extends AbstractCdmFormElement updateContent(); } - /* - * (non-Javadoc) - * - * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity() - */ /** *

* Getter for the field entity. @@ -129,17 +125,23 @@ public abstract class AbstractCdmDetailElement extends AbstractCdmFormElement protected void updateContent() { removeElements(); createControls(this, entity, SWT.WRAP); - getLayoutComposite().layout(); + reflowParentScrolledForm(true); updateControlStates(); } - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.forms.ISelectableComposite#setSelected(boolean) - */ + protected void reflowParentScrolledForm(boolean flushCashes){ + ScrolledForm scrolledForm = null; + Composite parent = getLayoutComposite().getParent(); + while(parent!=null && !(parent instanceof ScrolledForm)){ + parent = parent.getParent(); + } + scrolledForm = (ScrolledForm)parent; + if(scrolledForm!=null){ + scrolledForm.reflow(flushCashes); + } + } + /** {@inheritDoc} */ @Override public void setSelected(boolean selected) { @@ -171,9 +173,6 @@ public abstract class AbstractCdmDetailElement extends AbstractCdmFormElement } } - /* (non-Javadoc) - * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled() - */ @Override public boolean isEnabled() { return enabled; @@ -283,6 +282,7 @@ public abstract class AbstractCdmDetailElement extends AbstractCdmFormElement if (getParentElement() instanceof AbstractCdmDetailSection) { ((AbstractCdmDetailSection) getParentElement()).updateTitle(); } + reflowParentScrolledForm(true); } /**