Merge branch 'release/5.3.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / AbstractCdmDetailElement.java
index 0c2ba37276a6a37d77c486136113375d4037a0ff..6ed49262a0ba7bd39ed7c9ba9443367f9fa33ca2 100644 (file)
@@ -47,14 +47,14 @@ import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
  * @author n.hoffmann
  * @created Feb 26, 2010
  */
-public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements ICdmDetailElement<T>, Observer {
+public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement implements ICdmDetailElement<T>, Observer, IEnableableFormElement{
 
        private T entity;
 
        private boolean irrelevant;
 
-       private boolean enabled;
-       
+       private boolean enabled = true;
+
        private LabelElement warnForReferencedObjects;
 
        private EnumSet<CRUD> requiredCrud = null;
@@ -104,8 +104,8 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
         */
        protected void updateContent() {
                removeElements();
-               createControls(this, entity, SWT.WRAP);
-               reflowParentScrolledForm(true);
+               createControls(this, entity, SWT.NONE);
+               StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
 
                updateControlStates();
        }
@@ -241,7 +241,6 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                if (isRelevant) {
                        ((AbstractIdentifiableEntityDetailElement) this)
                                        .updateToggleableCacheField();
-                       updateParentSection();
                }
        }
 
@@ -249,7 +248,8 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                if (getParentElement() instanceof AbstractCdmDetailSection) {
                        ((AbstractCdmDetailSection) getParentElement()).updateTitle();
                }
-               reflowParentScrolledForm(true);
+               //NOTE: This slows down the rendering of the details view
+//             StoreUtil.reflowParentScrolledForm(getLayoutComposite(), true);
        }
 
        /**
@@ -310,19 +310,19 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
        public void setWarnForReferencedObjects(LabelElement warnForReferencedObjects) {
                this.warnForReferencedObjects = warnForReferencedObjects;
        }
-       
+
        public void setWarnForReferencingObjects(ICdmFormElement formElement){
            if (getEntity() instanceof CdmBase){
                CdmBase cdmBase = (CdmBase) getEntity();
                if (cdmBase.getId() != 0){
-                       Integer referencingObjectsCount = CdmStore.getCommonService().getReferencingObjectsCount(cdmBase);
-       
+                       long referencingObjectsCount = CdmStore.getCommonService().getReferencingObjectsCount(cdmBase);
+
                        if (referencingObjectsCount > 1){
-                               setWarnForReferencedObjects(formFactory.createLabel(formElement, CdmUtils.Nz("The reference is referenced by " + referencingObjectsCount+ " objects, if you change it, it is changed for all these objects")));
+                               setWarnForReferencedObjects(formFactory.createLabel(formElement, CdmUtils.Nz("The "+ cdmBase.getUserFriendlyTypeName()+" is referenced by " + referencingObjectsCount+ " objects, if you change it, it is changed for all these objects")));
                                getWarnForReferencedObjects().setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
                                getWarnForReferencedObjects().setLayout(LayoutConstants.FILL(2, 3));
                                getWarnForReferencedObjects().setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
-                               
+
                        }
                }
            }
@@ -333,5 +333,5 @@ public abstract class AbstractCdmDetailElement<T> extends AbstractCdmFormElement
                        getWarnForReferencedObjects().setVisible(isVisible);
                }
        }
-       
+
 }