- simplified code/refactoring
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / AbstractCdmFormElement.java
index c0d3ca65a0ea018e0763d8d7d9556e4325662261..6d71b98a8ec2ebf6df372fe70029f773b650470f 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
@@ -16,7 +16,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.forms.widgets.Section;
 
-import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
 
 /**
  * <p>Abstract AbstractCdmFormElement class.</p>
@@ -24,22 +24,22 @@ import eu.etaxonomy.taxeditor.store.StoreUtil;
  * @author n.hoffmann
  * @version $Id: $
  */
-public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter, ICdmFormElement {
+public abstract class AbstractCdmFormElement implements ICdmFormElement {
 
        protected CdmFormFactory formFactory;
 
        private List<IPropertyChangeListener> propertyChangeListeners;
 
        private Composite layoutComposite;
-       
-       private Set<Control> controls = new HashSet<Control>();
-       
-       private Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
+
+       private final Set<Control> controls = new HashSet<Control>();
+
+       private final Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
        private ICdmFormElement parentElement;
 
        private Color persistentBackgroundColor;
-       
-       
+
+
        /**
         * <p>Constructor for AbstractCdmFormElement.</p>
         *
@@ -50,7 +50,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                this.layoutComposite = layoutComposite;
                this.formFactory = formFactory;
        }
-       
+
        /**
         * <p>Constructor for AbstractCdmFormElement.</p>
         *
@@ -62,7 +62,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                this.parentElement = formElement;
 //             addControl(layoutComposite);
        }
-       
+
        /**
         * <p>Getter for the field <code>formFactory</code>.</p>
         *
@@ -71,23 +71,24 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        public CdmFormFactory getFormFactory() {
                return formFactory;
        }
-       
+
        /**
         * Delegates the focus to <code>this</code> elements main input control
         */
        public void setFocus(){
-               // Override in subclasses where needed 
+               // Override in subclasses where needed
        }
-       
+
        /**
         * Returns all Controls that are managed by this element
         *
         * @return a {@link java.util.Set} object.
         */
-       public Set<Control> getControls(){
+       @Override
+    public Set<Control> getControls(){
                return controls;
        }
-       
+
        /**
         * adds the control to the set of controls that are managed by this element
         *
@@ -96,7 +97,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void addControl(Control child){
                controls.add(child);
        }
-       
+
        /**
         * <p>removeControl</p>
         *
@@ -105,30 +106,33 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void removeControl(Control child){
                controls.remove(child);
        }
-       
+
        /**
         * <p>Getter for the field <code>elements</code>.</p>
         *
         * @return a {@link java.util.Set} object.
         */
-       public Set<ICdmFormElement> getElements(){
+       @Override
+    public Set<ICdmFormElement> getElements(){
                return elements;
        }
-       
+
        /**
         * <p>Getter for the field <code>parentElement</code>.</p>
         *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
-       public ICdmFormElement getParentElement(){
+       @Override
+    public ICdmFormElement getParentElement(){
                return parentElement;
        }
-       
+
        /** {@inheritDoc} */
-       public void addElement(ICdmFormElement element){
+       @Override
+    public void addElement(ICdmFormElement element){
                elements.add(element);
        }
-       
+
        /**
         * <p>removeElement</p>
         *
@@ -137,15 +141,16 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        protected void removeElement(ICdmFormElement element){
                elements.remove(element);
        }
-       
+
        /**
         * <p>removeElements</p>
         */
-       public void removeElements(){
+       @Override
+    public void removeElements(){
                for(ICdmFormElement childElement : getElements()){
                        // recursion
                        childElement.removeElements();
-                       
+
                        // unregister selection arbitrator
                        if(childElement instanceof ISelectableElement){
                                SelectionArbitrator selectionArbitrator = ((ISelectableElement) childElement).getSelectionArbitrator();
@@ -153,19 +158,17 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                                        formFactory.destroySelectionArbitrator(selectionArbitrator);
                                }
                        }
-                       
+
                        // unregister from property changes
-                       if(childElement instanceof IPropertyChangeListener){
-                               formFactory.removePropertyChangeListener((IPropertyChangeListener) childElement); 
-                       }
-                       
+                       formFactory.removePropertyChangeListener(childElement);
+
                        // dispose of the controls
                        removeControls(childElement);
                }
                removeControls(this);
                elements.clear();
        }
-       
+
        private void removeControls(ICdmFormElement element){
                if(element instanceof Section){
                        ((Section) element).dispose();
@@ -183,16 +186,17 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        }
                }
        }
-       
+
        /**
         * <p>Getter for the field <code>layoutComposite</code>.</p>
         *
         * @return a {@link org.eclipse.swt.widgets.Composite} object.
         */
-       public Composite getLayoutComposite() {
+       @Override
+    public Composite getLayoutComposite() {
                return layoutComposite;
        }
-       
+
        /**
         * <p>Setter for the field <code>layoutComposite</code>.</p>
         *
@@ -201,7 +205,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        public void setLayoutComposite(Composite layoutComposite){
                this.layoutComposite = layoutComposite;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#getPropertyChangeListeners()
         */
@@ -210,18 +214,20 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         *
         * @return a {@link java.util.Set} object.
         */
-       public List<IPropertyChangeListener> getPropertyChangeListeners() {
+       @Override
+    public List<IPropertyChangeListener> getPropertyChangeListeners() {
                return propertyChangeListeners;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#setPropertyChangeListeners(org.eclipse.core.runtime.ListenerList)
         */
        /** {@inheritDoc} */
-       public void setPropertyChangeListeners(List<IPropertyChangeListener> propertyChangeListeners){
+       @Override
+    public void setPropertyChangeListeners(List<IPropertyChangeListener> propertyChangeListeners){
                this.propertyChangeListeners = propertyChangeListeners;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.IPropertyChangeEmitter#firePropertyChangeEvent()
         */
@@ -229,7 +235,8 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormComposite#firePropertyChangeEvent(org.eclipse.jface.util.PropertyChangeEvent)
         */
        /** {@inheritDoc} */
-       public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
+       @Override
+    public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
                Assert.isNotNull(propertyChangeListeners, "Property change listeners are not present");
 
                try{
@@ -237,34 +244,34 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                                ((IPropertyChangeListener)listener).propertyChange(event);
                        }
                }catch(ConcurrentModificationException e){
-                       // There are two cases that produce a CME. 
+                       // There are two cases that produce a CME.
                        // Described here: http://dev.e-taxonomy.eu/trac/ticket/2363#comment:2
                        // and here: http://dev.e-taxonomy.eu/trac/ticket/2438
                        // Ignoring the CME because nothing bad is happening
-                       StoreUtil.warn(getClass(), "ConcurrentModificationException. Can be ignored.");
+                       AbstractUtility.warn(getClass(), "ConcurrentModificationException. Can be ignored.");
                }
        }
-       
+
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source.
-        *  
+        *
         * @param object the object on which the property changed
         */
        public void firePropertyChangeEvent(Object object){
                firePropertyChangeEvent(object, null);
        }
-       
+
        /**
         * Fires a {@link CdmPropertyChangeEvent} with the given object as source also containing the
         * originating event
-        * 
+        *
         * @param object the object on which the property changed
         * @param originatingEvent the originating event
         */
        public void firePropertyChangeEvent(Object object, PropertyChangeEvent originatingEvent){
                firePropertyChangeEvent(new CdmPropertyChangeEvent(object, originatingEvent));
        }
-       
+
 
        /**
         * {@inheritDoc}
@@ -275,12 +282,14 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
         * Implementations should also check for null PropertyChangeEvents and return immediately in that case.
         * @see eu.etaxonomy.taxeditor.ui.element.ICdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
         */
-       public void propertyChange(PropertyChangeEvent event) {
+       @Override
+    public void propertyChange(PropertyChangeEvent event) {
                // implement in subclasses
        }
-       
+
        /** {@inheritDoc} */
-       public boolean containsFormElement(ICdmFormElement formElement){
+       @Override
+    public boolean containsFormElement(ICdmFormElement formElement){
                if(formElement == this){
                        return true;
                }else{
@@ -293,7 +302,7 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        return false;
                }
        }
-       
+
        /*
         * (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#refresh()
@@ -301,10 +310,11 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
        /**
         * <p>refresh</p>
         */
-       public void refresh() {
-               // empty default implementation 
+       @Override
+    public void refresh() {
+               // empty default implementation
        }
-       
+
 
        /** {@inheritDoc} */
        @Override
@@ -313,19 +323,19 @@ public abstract class AbstractCdmFormElement implements IPropertyChangeEmitter,
                        element.setBackground(color);
                }
        }
-       
+
        @Override
        public void setPersistentBackground(Color color) {
                persistentBackgroundColor = color;
                setBackground(color);
        }
-       
+
        @Override
        public Color getPersistentBackground() {
                return persistentBackgroundColor;
        }
-       
+
        public Color getColor(String colorId){
-               return StoreUtil.getColor(colorId);
+               return AbstractUtility.getColor(colorId);
        }
 }