Merge branch 'release/5.19.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / AbstractFormSection.java
index 1ef071eac9e2459747c492f0427ad7c43b04acee..b20c74e73da1556731fa7fb25e5d3b8e9b79b41c 100644 (file)
@@ -1,10 +1,16 @@
 /**
+ * Copyright (C) 2007 EDIT
+ * 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.
  */
 package eu.etaxonomy.taxeditor.ui.element;
 
 import java.util.ConcurrentModificationException;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -25,7 +31,6 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.TypedListener;
 import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.eclipse.ui.forms.widgets.ToggleHyperlink;
@@ -46,11 +51,11 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  *
  * @author n.hoffmann
  * @created Feb 22, 2010
- * @version 1.0
- * @param <T>
  */
 //TODO shouldn't ENTITY be bound with super class ICdmBase for example (AbstractFormSection<ENTITY extends ICdmBase>)?
-public abstract class AbstractFormSection<ENTITY> extends Section implements ISelectionChangedListener, IEntityElement<ENTITY>, IConversationEnabled {
+public abstract class AbstractFormSection<ENTITY>
+        extends Section
+        implements ISelectionChangedListener, IEntityElement<ENTITY>, IConversationEnabled {
 
     /**
      * The default number of columns in detail sections
@@ -61,7 +66,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
 
        private ENTITY entity;
 
-       private final Set<ICdmFormElement> elements = new HashSet<ICdmFormElement>();
+       private final Set<ICdmFormElement> elements = new HashSet<>();
 
        protected CdmFormFactory formFactory;
 
@@ -72,22 +77,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        private Color persistentBackgroundColor;
 
        /**
-        * <p>
         * Constructor for AbstractFormSection.
-        * </p>
-        *
-        * @param conversation
-        *            TODO
-        * @param style
-        *            a int.
-        * @param formFactory
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-        *            object.
-        * @param parentElement
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        * @param <ENTITY>
-        *            a ENTITY object.
         */
     protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, int style) {
                super(parentElement.getLayoutComposite(), style);
@@ -109,27 +99,10 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                client.setLayout(layout);
 
                this.setClient(client);
-
        }
 
-           /**
-     * <p>
+       /**
      * Constructor for AbstractFormSection.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param conversation
-     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *            object.
-     * @param parentElement
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-     *            object.
-     * @param selectionProvider
-     *            a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
-     * @param style
-     *            a int.
      */
     protected AbstractFormSection(CdmFormFactory formFactory, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
         this(formFactory, parentElement, style);
@@ -137,18 +110,13 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
     }
 
        /**
-        * <p>
         * Getter for the field <code>propertyChangeListeners</code>.
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
         */
        @Override
     public List<IPropertyChangeListener> getPropertyChangeListeners() {
                return propertyChangeListeners;
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setPropertyChangeListeners(
                        List<IPropertyChangeListener> propertyChangeListeners) {
@@ -156,28 +124,14 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Setter for the field <code>entity</code>.
-        * </p>
-        *
-        * @param entity
-        *            a ENTITY object.
         */
        public void setEntity(ENTITY entity) {
                this.entity = entity;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.forms.IEntityElement#getEntity()
-        */
        /**
-        * <p>
         * Getter for the field <code>entity</code>.
-        * </p>
-        *
-        * @return a ENTITY object.
         */
        @Override
     public ENTITY getEntity() {
@@ -185,36 +139,19 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * getToggle
-        * </p>
-        *
-        * @return a {@link org.eclipse.ui.forms.widgets.ToggleHyperlink} object.
         */
        public ToggleHyperlink getToggle() {
                return this.toggle;
        }
 
        /**
-        * <p>
         * getSection
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *         object.
         */
        public AbstractFormSection<ENTITY> getSection() {
                return this;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * eu.etaxonomy.taxeditor.forms.IPropertyChangeEmitter#firePropertyChangeEvent
-        * ()
-        */
-       /** {@inheritDoc} */
        @Override
     public void firePropertyChangeEvent(CdmPropertyChangeEvent event) {
         Assert.isNotNull(propertyChangeListeners, "No property change listeners.");
@@ -253,38 +190,16 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                                originatingEvent));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see org.eclipse.swt.widgets.Composite#setFocus()
-        */
-       /** {@inheritDoc} */
        @Override
        public boolean setFocus() {
                return getClient().setFocus();
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
-        * .jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
     public void propertyChange(PropertyChangeEvent event) {
                firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics
-        * .Color)
-        */
-       /** {@inheritDoc} */
        @Override
        public void setBackground(Color color) {
                for (ICdmFormElement element : getElements()) {
@@ -305,15 +220,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                return persistentBackgroundColor;
        }
 
-
-       /**
-        * <p>
-        * widgetSelected
-        * </p>
-        *
-        * @param e
-        *            a {@link org.eclipse.swt.events.SelectionEvent} object.
-        */
        public void widgetSelected(SelectionEvent e) {
         Widget widget = e.widget;
 
@@ -343,7 +249,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /** {@inheritDoc} */
        @Override
     public void setSelected(boolean selected) {
                if (selected) {
@@ -354,7 +259,6 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /** {@inheritDoc} */
        @Override
     public void selectionChanged(SelectionChangedEvent event) {
                if (event.getSelection() == CdmFormFactory.EMPTY_SELECTION) {
@@ -372,57 +276,27 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                }
        }
 
-       /**
-        * <p>
-        * addSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
        public void addSelectionListener(SelectionListener listener) {
                addListener(SWT.Selection, new TypedListener(listener));
        }
 
-       /**
-        * <p>
-        * removeSelectionListener
-        * </p>
-        *
-        * @param listener
-        *            a {@link org.eclipse.swt.events.SelectionListener} object.
-        */
        public void removeSelectionListener(SelectionListener listener) {
                removeListener(SWT.Selection, listener);
        }
 
-       /** {@inheritDoc} */
        @Override
     public void addElement(ICdmFormElement element) {
                elements.add(element);
        }
 
-       /**
-        * <p>
-        * removeElement
-        * </p>
-        *
-        * @param element
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
-        *            object.
-        */
        protected void removeElement(ICdmFormElement element) {
                elements.remove(element);
        }
 
-       /**
-        * <p>
-        * removeElements
-        * </p>
-        */
        @Override
     public void removeElements() {
-               for (ICdmFormElement childElement : getElements()) {
+               for (Iterator<ICdmFormElement> formElementIterator = getElements().iterator();formElementIterator.hasNext();) {
+                   ICdmFormElement childElement = formElementIterator.next();
                        // recursion
                        childElement.removeElements();
 
@@ -439,7 +313,8 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                        formFactory.removePropertyChangeListener(childElement);
 
                        // dispose of the controls
-                       for (Control control : childElement.getControls()) {
+                       for (Iterator<Control> controlIterator = childElement.getControls().iterator();controlIterator.hasNext();) {
+                           Control control = controlIterator.next();
                                // we added the layoutComposite of the parental element as the
                                // layout composite to this formElement
                                // but we do not want to destroy it.
@@ -456,11 +331,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>parentElement</code>.
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         */
        @Override
     public ICdmFormElement getParentElement() {
@@ -468,27 +339,16 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>elements</code>.
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
         */
        @Override
     public Set<ICdmFormElement> getElements() {
                return elements;
        }
 
-       /**
-        * <p>
-        * getControls
-        * </p>
-        *
-        * @return a {@link java.util.Set} object.
-        */
        @Override
     public Set<Control> getControls() {
-               Set<Control> controls = new HashSet<Control>();
+               Set<Control> controls = new HashSet<>();
 
                for (Control control : getChildren()) {
                        controls.add(control);
@@ -497,26 +357,17 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
                return controls;
        }
 
-       /** {@inheritDoc} */
        @Override
        public void dispose() {
                removeElements();
                super.dispose();
        }
 
-       /**
-        * <p>
-        * getLayoutComposite
-        * </p>
-        *
-        * @return a {@link org.eclipse.swt.widgets.Composite} object.
-        */
        @Override
     public Composite getLayoutComposite() {
                return (Composite) getClient();
        }
 
-       /** {@inheritDoc} */
        @Override
     public boolean containsFormElement(ICdmFormElement formElement) {
                if (formElement == this) {
@@ -533,41 +384,18 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
        }
 
        /**
-        * <p>
         * Getter for the field <code>formFactory</code>.
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         */
        @Override
     public CdmFormFactory getFormFactory() {
                return formFactory;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see eu.etaxonomy.taxeditor.forms.ICdmFormElement#refresh()
-        */
-       /**
-        * <p>
-        * refresh
-        * </p>
-        */
        @Override
     public void refresh() {
                // empty default implementation
-
        }
 
-       /**
-        * <p>
-        * getConversationHolder
-        * </p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-        *         object.
-        */
        @Override
     public ConversationHolder getConversationHolder() {
            if(AbstractUtility.getActivePart() instanceof IConversationEnabled){
@@ -575,7 +403,7 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
         }
            if(getParentElement() instanceof RootElement || getParentElement() == null){
 
-               IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+               Object activeEditor = AbstractUtility.getActiveEditor();
                if(activeEditor instanceof IConversationEnabled){
                    ConversationHolder conversation = ((IConversationEnabled) AbstractUtility.getActiveEditor()).getConversationHolder();
                    return conversation;
@@ -583,19 +411,15 @@ public abstract class AbstractFormSection<ENTITY> extends Section implements ISe
            }else if(getParentElement() instanceof IConversationEnabled){
                return ((IConversationEnabled) getParentElement()).getConversationHolder();
            }
-               MessagingUtils.messageDialog("Could not get conversation for AbstractFormSection",
-                               getClass(), "There is an error in the implementation. There should have been an active editor but it wasn't",
+               MessagingUtils.error(getClass(), "Could not get conversation for AbstractFormSection. There is an error in the implementation. There should have been an active editor but it wasn't",
                                new IllegalArgumentException());
                return null;
 
        }
 
-       /** {@inheritDoc} */
-
        @Override
     public void update(CdmDataChangeMap changeEvents) {
 
        }
 
-
 }