ref #4611 some l10n for taxeditor and taxeditor.editor plugin
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / TaxonNameEditor.java
index 02d88917d398171990f385e90d263c8e697cca9f..96dca057e7010c956a6d830ffc4c408792efafd1 100644 (file)
@@ -1,8 +1,8 @@
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -16,20 +16,17 @@ import java.util.Set;
 
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.dnd.DND;
 import org.eclipse.swt.dnd.DropTarget;
 import org.eclipse.swt.dnd.Transfer;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
@@ -38,6 +35,7 @@ import org.eclipse.ui.ISelectionService;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchPartReference;
 import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.ManagedForm;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
@@ -54,10 +52,10 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.IDropTargetable;
 import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage;
 import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
+import eu.etaxonomy.taxeditor.editor.Messages;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
@@ -69,32 +67,32 @@ import eu.etaxonomy.taxeditor.editor.name.container.ContainerFactory;
 import eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup;
 import eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup;
 import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDropTargetListener;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IPartChangeListener;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.security.RequiredPermissions;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
 
 /**
  * <p>
  * TaxonNameEditor class.
  * </p>
- * 
+ *
  * @author p.ciardelli
  * @author n.hoffmann
  * @created 15.05.2008
  * @version 1.0
  */
 public class TaxonNameEditor extends EditorPart implements
-               IMultiPageTaxonEditorPage, IAdaptable, IConversationEnabled,
-               IPostOperationEnabled, IPartContentHasDetails, IPartChangeListener,
+               IMultiPageTaxonEditorPage, IConversationEnabled,
+               IPartContentHasDetails, IPartChangeListener,
                ISelectionListener, IDropTargetable, ISecuredEditor {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon.name"</code> */
-       public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon.name";
+       public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon.name"; //$NON-NLS-1$
 
        private Taxon taxon;
 
@@ -122,11 +120,13 @@ public class TaxonNameEditor extends EditorPart implements
 
        private TaxonBase objectAffectedByLastOperation;
 
+       private ICdmEntitySession cdmEntitySession;
+
        /**
         * <p>
         * Constructor for TaxonNameEditor.
         * </p>
-        * 
+        *
         * @param editor
         *            a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}
         *            object.
@@ -140,7 +140,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getUndoContext
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
         *         object.
         */
@@ -150,7 +150,7 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
         * .Composite)
@@ -171,7 +171,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * createManagedForm
         * </p>
-        * 
+        *
         * @param composite
         *            a {@link org.eclipse.swt.widgets.Composite} object.
         */
@@ -193,8 +193,8 @@ public class TaxonNameEditor extends EditorPart implements
                                        selection = null;
                                        getSite().getSelectionProvider().setSelection(new StructuredSelection());
                                }
-                               
-                               
+
+
                                return super.setInput(input);
                        }
                };
@@ -220,7 +220,7 @@ public class TaxonNameEditor extends EditorPart implements
                layout.horizontalSpacing = 0;
 
                parent.setLayout(layout);
-               parent.setBackground(EditorUtil
+               parent.setBackground(AbstractUtility
                                .getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
 
                createOrUpdateNameComposites();
@@ -236,11 +236,12 @@ public class TaxonNameEditor extends EditorPart implements
         * </p>
         */
        public void createOrUpdateNameComposites() {
-
+//             this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid());
                ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
                ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this);
                ContainerFactory.createOrUpdateMisapplicationsGroup(this);
 
+
                // Redraw composite
                managedForm.reflow(true);
        }
@@ -249,7 +250,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>taxon</code>.
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
         */
        public Taxon getTaxon() {
@@ -267,18 +268,19 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
         */
        /** {@inheritDoc} */
        @Override
        public void setFocus() {
+           PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
                if (getSelectedContainer() == null) {
                        throw new IllegalStateException(
-                                       "There should always be a selected object.");
+                                       Messages.TaxonNameEditor_THERE_SHOULD_ALWAYS_BE);
                }
                getSelectedContainer().setSelected();
-               
+
                // check permissions
                boolean doEnable = permissionsSatisfied();
                setEnabled(doEnable);
@@ -302,7 +304,7 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
         * ()
@@ -311,41 +313,45 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getConversationHolder
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
         *         object.
         */
-       public ConversationHolder getConversationHolder() {
+       @Override
+    public ConversationHolder getConversationHolder() {
                return conversation;
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu
         * .etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
         */
        /** {@inheritDoc} */
-       public void update(CdmDataChangeMap events) {
+       @Override
+    public void update(CdmDataChangeMap events) {
                // redraw();
        }
 
        /**
         * Redraws this editor return true on success
-        * 
+        *
         * @return a boolean.
         */
-       public boolean redraw() {
+       @Override
+    public boolean redraw() {
                return redraw(true);
        }
 
        /**
         * {@inheritDoc}
-        * 
+        *
         * Redraws the editor controls
         */
-       public boolean redraw(boolean focus) {
+       @Override
+    public boolean redraw(boolean focus) {
 
                createOrUpdateNameComposites();
 
@@ -360,7 +366,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getMultiPageTaxonEditor
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}
         *         object.
         */
@@ -370,16 +376,17 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.store.operations.IPostOperationEnabled#postOperation
         * ()
         */
        /** {@inheritDoc} */
-       public boolean postOperation(CdmBase objectAffectedByOperation) {
+       @Override
+    public boolean postOperation(CdmBase objectAffectedByOperation) {
 
                editor.changed(objectAffectedByOperation);
-               
+
                redraw(false);
 
                if (objectAffectedByOperation instanceof TaxonBase) {
@@ -393,7 +400,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>managedForm</code>.
         * </p>
-        * 
+        *
         * @return the managedForm
         */
        public ManagedForm getManagedForm() {
@@ -404,10 +411,11 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getControl
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.swt.widgets.Composite} object.
         */
-       public Composite getControl() {
+       @Override
+    public Composite getControl() {
                return this.getManagedForm().getForm().getBody();
        }
 
@@ -415,7 +423,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>menu</code>.
         * </p>
-        * 
+        *
         * @return the menu
         */
        public Menu getMenu() {
@@ -431,7 +439,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * checkForEmptyNames
         * </p>
-        * 
+        *
         * @return true if there are empty names
         */
        public boolean checkForEmptyNames() {
@@ -461,13 +469,13 @@ public class TaxonNameEditor extends EditorPart implements
        @Override
        public void doSave(IProgressMonitor monitor) {
 
-               monitor.beginTask("Saving names", getGroupedContainers().size());
+               monitor.beginTask(Messages.TaxonNameEditor_SAVING_NAMES, getGroupedContainers().size());
 
                try {
                        // check for empty names
                        for (AbstractGroupedContainer container : getGroupedContainers()) {
 
-                               monitor.subTask("Saving composite: "
+                               monitor.subTask(Messages.TaxonNameEditor_SAVING_COMPOSITES
                                                + container.getTaxonBase().getTitleCache());
                                container.persistName();
 
@@ -497,13 +505,14 @@ public class TaxonNameEditor extends EditorPart implements
        public void init(IEditorSite site, IEditorInput input)
                        throws PartInitException {
 
-               if (!(input instanceof IEditorInput))
-                       throw new PartInitException("Invalid Input: Must be IEditorInput");
+               if (!(input != null)) {
+            throw new PartInitException(Messages.TaxonNameEditor_INVALID_INPUT);
+        }
 
                if (input.getAdapter(Taxon.class) != null) {
-                       taxon = (Taxon) input.getAdapter(Taxon.class);
+                       taxon = CdmBase.deproxy(input.getAdapter(Taxon.class), Taxon.class);
                } else {
-                       throw new PartInitException("Invalid Input: Taxon cannot be null");
+                       throw new PartInitException(Messages.TaxonNameEditor_INVALID_INPUT_TAXON_NULL);
                }
 
                setSite(site);
@@ -515,7 +524,7 @@ public class TaxonNameEditor extends EditorPart implements
 
 
        /**
-        * 
+        *
         */
        private void createDragSupport() {
                // Listen for names being dragged outside of existing homotypic groups -
@@ -533,7 +542,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>acceptedNameContainer</code>.
         * </p>
-        * 
+        *
         * @return a
         *         {@link eu.etaxonomy.taxeditor.editor.name.container.AcceptedNameContainer}
         *         object.
@@ -546,7 +555,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getSynonymGroup
         * </p>
-        * 
+        *
         * @param homotypicalGroup
         *            a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
         * @return a
@@ -568,7 +577,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getDirtyNames
         * </p>
-        * 
+        *
         * @return a Set containing all composites that have been edited
         */
        public Set<AbstractGroupedContainer> getDirtyNames() {
@@ -587,7 +596,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getGroupedContainers
         * </p>
-        * 
+        *
         * @return a {@link java.util.List} object.
         */
        public List<AbstractGroupedContainer> getGroupedContainers() {
@@ -604,7 +613,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getAllGroups
         * </p>
-        * 
+        *
         * @return a {@link java.util.List} object.
         */
        public List<AbstractGroup> getAllGroups() {
@@ -613,9 +622,9 @@ public class TaxonNameEditor extends EditorPart implements
                allGroups.add(getAcceptedGroup());
 
 //             List<HomotypicalSynonymGroup> grps = getHeterotypicSynonymGroups(); // UNUSED => remove
-               
+
                heterotypicSynonymGroups = getHeterotypicSynonymGroups();
-               
+
                if (heterotypicSynonymGroups != null) {
                        allGroups.addAll(heterotypicSynonymGroups);
                }
@@ -629,7 +638,7 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isDirty()
         */
        /** {@inheritDoc} */
@@ -640,18 +649,19 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.WorkbenchPart#dispose()
         */
        /** {@inheritDoc} */
        @Override
        public void dispose() {
+               conversation.unregisterForDataStoreChanges(this);
                super.dispose();
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
         */
        /** {@inheritDoc} */
@@ -662,12 +672,13 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.
         * IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
         */
        /** {@inheritDoc} */
-       public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+       @Override
+    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
 
        }
 
@@ -675,11 +686,12 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getNameEditor
         * </p>
-        * 
+        *
         * @return a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor}
         *         object.
         */
-       public TaxonNameEditor getEditor() {
+       @Override
+    public TaxonNameEditor getEditor() {
                return this;
        }
 
@@ -687,7 +699,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>selectedObject</code>.
         * </p>
-        * 
+        *
         * @return a
         *         {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer}
         *         object.
@@ -714,10 +726,11 @@ public class TaxonNameEditor extends EditorPart implements
         * dragEntered
         * </p>
         */
-       public void dragEntered() {
+       @Override
+    public void dragEntered() {
                // TODO change this
                getControl().setBackground(
-                               EditorUtil.getColor(Resources.COLOR_DRAG_ENTER));
+                               AbstractUtility.getColor(Resources.COLOR_DRAG_ENTER));
        }
 
        /**
@@ -725,9 +738,10 @@ public class TaxonNameEditor extends EditorPart implements
         * dragLeft
         * </p>
         */
-       public void dragLeft() {
+       @Override
+    public void dragLeft() {
                getControl().setBackground(
-                               EditorUtil.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+                               AbstractUtility.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
        }
 
 
@@ -735,7 +749,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * setMisapplicationsGroup
         * </p>
-        * 
+        *
         * @param misappliedGroup
         *            a
         *            {@link eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup}
@@ -747,7 +761,7 @@ public class TaxonNameEditor extends EditorPart implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#isRedrawing()
         */
@@ -755,10 +769,11 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * isRedrawing
         * </p>
-        * 
+        *
         * @return a boolean.
         */
-       public boolean isRedrawing() {
+       @Override
+    public boolean isRedrawing() {
                return false;
        }
 
@@ -766,7 +781,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getToolkit
         * </p>
-        * 
+        *
         * @return a {@link org.eclipse.ui.forms.widgets.FormToolkit} object.
         */
        public FormToolkit getToolkit() {
@@ -777,7 +792,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getHeterotypicSynonymGroups
         * </p>
-        * 
+        *
         * @return a {@link java.util.List} object.
         */
        public List<HomotypicalSynonymGroup> getHeterotypicSynonymGroups() {
@@ -788,7 +803,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * addHeterotypicSynonymGroup
         * </p>
-        * 
+        *
         * @param group
         *            a
         *            {@link eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup}
@@ -802,7 +817,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * getHomotypicSynonymGroup
         * </p>
-        * 
+        *
         * @return a
         *         {@link eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup}
         *         object.
@@ -812,7 +827,7 @@ public class TaxonNameEditor extends EditorPart implements
        }
 
        /**
-        * 
+        *
         * @param acceptedGroup
         */
        public void setAcceptedGroup(AcceptedGroup acceptedGroup) {
@@ -823,7 +838,7 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * Getter for the field <code>misappliedGroup</code>.
         * </p>
-        * 
+        *
         * @return a
         *         {@link eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup}
         *         object.
@@ -837,11 +852,11 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * isActive
         * </p>
-        * 
+        *
         * @return a boolean.
         */
        public boolean isActive() {
-               IWorkbenchPart activePart = EditorUtil.getActivePart();
+               IWorkbenchPart activePart = AbstractUtility.getActivePart();
                return editor.equals(activePart);
        }
 
@@ -849,16 +864,18 @@ public class TaxonNameEditor extends EditorPart implements
         * <p>
         * onComplete
         * </p>
-        * 
+        *
         * @return a boolean.
         */
-       public boolean onComplete() {
+       @Override
+    public boolean onComplete() {
                getContainer(objectAffectedByLastOperation).setSelected();
                return true;
        }
 
        /** {@inheritDoc} */
-       public void partChanged(Integer eventType, IWorkbenchPartReference partRef) {
+       @Override
+    public void partChanged(Integer eventType, IWorkbenchPartReference partRef) {
                if (!partRef.getPart(false).equals(editor)) {
                        // getSelectedObject().colorSelected(AbstractGroupedContainer.SELECTED_NO_FOCUS);
                }
@@ -870,7 +887,7 @@ public class TaxonNameEditor extends EditorPart implements
        public void removeGroup(AbstractGroup group) {
                if (group != null) {
                        group.dispose();
-                       
+
                        //if (heterotypicSynonymGroups != null) {
                        heterotypicSynonymGroups.remove(group);
                        //}
@@ -891,12 +908,13 @@ public class TaxonNameEditor extends EditorPart implements
                }
                return getAcceptedNameContainer();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#setOnError()
         */
-       public void setOnError() {
-               Color disabledColor =  StoreUtil.getColor(Resources.COLOR_EDITOR_ERROR);
+       @Override
+    public void setOnError() {
+               Color disabledColor =  AbstractUtility.getColor(Resources.COLOR_EDITOR_ERROR);
                setEnabled(false, disabledColor);
        }
 
@@ -905,28 +923,33 @@ public class TaxonNameEditor extends EditorPart implements
         */
        @Override
        public void setDisabled(){
-               Color disabledColor =  StoreUtil.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
+               Color disabledColor =  AbstractUtility.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
                setEnabled(false);
        }
-       
+
        protected void setEnabled(boolean enabled, Color background) {
-       
+
                for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
                        groupedContainer.setEnabled(enabled);
                }
-               
+
                // send an empty selection to the current provider - TODO only on error ???
-               getManagedForm().setInput(null);
-               
-               for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
-                       groupedContainer.setBackground(background);
+               if (!enabled) {
+                       getManagedForm().setInput(null);
+
+                       for (AbstractGroupedContainer groupedContainer : getGroupedContainers()) {
+                               groupedContainer.setBackground(background);
+                       }
                }
                getControl().setBackground(background);
        }
-       
+
        @Override
        public void setEnabled(boolean enabled) {
-               Color background =  StoreUtil.getColor(enabled ? Resources.COLOR_COMPOSITE_BACKGROUND : Resources.COLOR_TEXT_DISABLED_BACKGROUND);
+               Color background =  AbstractUtility.getColor(enabled ? Resources.COLOR_COMPOSITE_BACKGROUND : Resources.COLOR_TEXT_DISABLED_BACKGROUND);
                setEnabled(enabled, background);
        }
+
+
+
 }