performed javacscript:fix and worked on documentation
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / editor / name / AbstractGroup.java
index 8d038546abcfe5e4b7b876e4008c26ef871c4692..6c3ed6176fb49ee167a91e6fae170ad9deae7bdd 100644 (file)
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.taxeditor.editor.name;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.dnd.DND;\r
-import org.eclipse.swt.dnd.DropTarget;\r
-import org.eclipse.swt.dnd.DropTargetListener;\r
-import org.eclipse.swt.dnd.Transfer;\r
-import org.eclipse.swt.graphics.Color;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.ui.forms.widgets.TableWrapData;\r
-import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
-\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;\r
-import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
-import eu.etaxonomy.taxeditor.editor.IDropTargetable;\r
-import eu.etaxonomy.taxeditor.preference.Resources;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @author n.hoffmann\r
- * @created 25.06.2008\r
- * @version 1.0\r
- */\r
-public abstract class AbstractGroup<T extends TaxonBase> implements IDropTargetable{\r
-       private static final Logger logger = Logger.getLogger(AbstractGroup.class);\r
-       \r
-       private Composite control;\r
-       \r
-       private List<AbstractGroupedContainer<T>> groupedContainers = new ArrayList<AbstractGroupedContainer<T>>(); \r
-       \r
-       protected TaxonNameEditor editor;\r
-       \r
-       private DropTarget target;\r
-       private DropTargetListener dropListener;\r
-\r
-       public AbstractGroup(TaxonNameEditor editor){\r
-               this.editor = editor;\r
-               \r
-               createControl();\r
-               \r
-               // Drop functionality\r
-               this.setDroppable(true);\r
-\r
-       }\r
-       \r
-       protected void createControl() {\r
-               control = editor.getToolkit().createComposite(editor.getControl());\r
-               \r
-               control.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
-               TableWrapLayout layout = new TableWrapLayout();\r
-               \r
-               layout.topMargin = 0;\r
-               layout.rightMargin = 0;\r
-               layout.bottomMargin = 1;\r
-               layout.leftMargin = 0;\r
-               \r
-               layout.verticalSpacing = 0;\r
-               layout.horizontalSpacing = 0;\r
-               control.setLayout(layout);\r
-       \r
-               control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));\r
-       }\r
-       \r
-       public void add(AbstractGroupedContainer groupedContainer){\r
-               groupedContainers.add(groupedContainer);\r
-               groupedContainer.setGroup(this);\r
-       }\r
-       \r
-       public void remove(AbstractGroupedContainer groupedContainer){\r
-               deleteContainer(groupedContainer);\r
-               groupedContainers.remove(groupedContainer);\r
-               \r
-               editor.getManagedForm().reflow(true);\r
-       }\r
-       \r
-       public void removeAllContainers() {\r
-               for(AbstractGroupedContainer container : groupedContainers){\r
-                       deleteContainer(container);\r
-               }\r
-               \r
-               groupedContainers.clear();\r
-       }\r
-       \r
-       public void clearContainers(){\r
-               groupedContainers.clear();\r
-       }\r
-       \r
-       public void deleteContainer(AbstractGroupedContainer groupedContainer){\r
-               groupedContainer.setMenu(null);\r
-               groupedContainer.getControl().dispose();\r
-       }\r
-       \r
-       public void clear(){\r
-               control.setMenu(null);\r
-               control.dispose();\r
-       }\r
-       \r
-       public List<AbstractGroupedContainer<T>> getGroupedContainers(){\r
-               return groupedContainers;\r
-       }\r
-       \r
-       \r
-       public void setDroppable(boolean droppable) {\r
-               if (droppable) {\r
-                       Transfer[] types = new Transfer[] {CdmDataTransfer.getInstance()};      \r
-                       int operations = DND.DROP_MOVE;\r
-                       target = new DropTarget(control, operations);\r
-                       target.setTransfer(types);\r
-                       dropListener = new NameEditorDropTargetListener(this);\r
-                       target.addDropListener(dropListener);\r
-                       \r
-                       target.setDropTargetEffect(new NameEditorDropTargetEffect(control));\r
-                       \r
-               } else {\r
-                       if (dropListener != null) {\r
-                               target.removeDropListener(dropListener);\r
-                       }\r
-               }\r
-       }\r
-       \r
-       public Composite getControl(){\r
-               return control;\r
-       }\r
-\r
-       public TaxonNameEditor getNameEditor() {\r
-               return editor;\r
-       }\r
-\r
-       public void dragEntered() {\r
-               Color color = EditorUtil.getColor(Resources.COLOR_DRAG_ENTER);\r
-               \r
-               for(AbstractGroupedContainer container : groupedContainers){\r
-                       container.setBackground(color);\r
-               }               \r
-       }\r
-\r
-       public void dragLeft() {\r
-               for(AbstractGroupedContainer container : groupedContainers){\r
-                       container.restoreColor();\r
-               }\r
-       }\r
-       \r
-       public boolean postOperation(CdmBase objectAffectedByOperation) {\r
-               editor.getMultiPageTaxonEditor().changed(null);\r
-               redraw();\r
-               return true;\r
-       }\r
-\r
-       public abstract void redraw();\r
-}\r
+/**
+* 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.editor.name;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTarget;
+import org.eclipse.swt.dnd.DropTargetListener;
+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.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.IDropTargetable;
+import eu.etaxonomy.taxeditor.preference.Resources;
+
+/**
+ * <p>Abstract AbstractGroup class.</p>
+ *
+ * @author p.ciardelli
+ * @author n.hoffmann
+ * @created 25.06.2008
+ * @version 1.0
+ */
+public abstract class AbstractGroup<T extends TaxonBase> implements IDropTargetable{
+       private static final Logger logger = Logger.getLogger(AbstractGroup.class);
+       
+       private Composite control;
+       
+       private List<AbstractGroupedContainer<T>> groupedContainers = new ArrayList<AbstractGroupedContainer<T>>(); 
+       
+       protected TaxonNameEditor editor;
+       
+       private DropTarget target;
+       private DropTargetListener dropListener;
+
+       /**
+        * <p>Constructor for AbstractGroup.</p>
+        *
+        * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
+        * @param <T> a T object.
+        */
+       public AbstractGroup(TaxonNameEditor editor){
+               this.editor = editor;
+               
+               createControl();
+               
+               // Drop functionality
+               this.setDroppable(true);
+
+       }
+       
+       /**
+        * <p>createControl</p>
+        */
+       protected void createControl() {
+               control = editor.getToolkit().createComposite(editor.getControl());
+               
+               control.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
+               TableWrapLayout layout = new TableWrapLayout();
+               
+               layout.topMargin = 0;
+               layout.rightMargin = 0;
+               layout.bottomMargin = 1;
+               layout.leftMargin = 0;
+               
+               layout.verticalSpacing = 0;
+               layout.horizontalSpacing = 0;
+               control.setLayout(layout);
+       
+               control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
+       }
+       
+       /**
+        * <p>add</p>
+        *
+        * @param groupedContainer a {@link eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer} object.
+        */
+       public void add(AbstractGroupedContainer groupedContainer){
+               groupedContainers.add(groupedContainer);
+               groupedContainer.setGroup(this);
+       }
+       
+       /**
+        * <p>remove</p>
+        *
+        * @param groupedContainer a {@link eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer} object.
+        */
+       public void remove(AbstractGroupedContainer groupedContainer){
+               deleteContainer(groupedContainer);
+               groupedContainers.remove(groupedContainer);
+               
+               editor.getManagedForm().reflow(true);
+       }
+       
+       /**
+        * <p>removeAllContainers</p>
+        */
+       public void removeAllContainers() {
+               for(AbstractGroupedContainer container : groupedContainers){
+                       deleteContainer(container);
+               }
+               
+               groupedContainers.clear();
+       }
+       
+       /**
+        * <p>clearContainers</p>
+        */
+       public void clearContainers(){
+               groupedContainers.clear();
+       }
+       
+       /**
+        * <p>deleteContainer</p>
+        *
+        * @param groupedContainer a {@link eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer} object.
+        */
+       public void deleteContainer(AbstractGroupedContainer groupedContainer){
+               groupedContainer.setMenu(null);
+               groupedContainer.getControl().dispose();
+       }
+       
+       /**
+        * <p>clear</p>
+        */
+       public void clear(){
+               control.setMenu(null);
+               control.dispose();
+       }
+       
+       /**
+        * <p>Getter for the field <code>groupedContainers</code>.</p>
+        *
+        * @return a {@link java.util.List} object.
+        */
+       public List<AbstractGroupedContainer<T>> getGroupedContainers(){
+               return groupedContainers;
+       }
+       
+       
+       /**
+        * <p>setDroppable</p>
+        *
+        * @param droppable a boolean.
+        */
+       public void setDroppable(boolean droppable) {
+               if (droppable) {
+                       Transfer[] types = new Transfer[] {CdmDataTransfer.getInstance()};      
+                       int operations = DND.DROP_MOVE;
+                       target = new DropTarget(control, operations);
+                       target.setTransfer(types);
+                       dropListener = new NameEditorDropTargetListener(this);
+                       target.addDropListener(dropListener);
+                       
+                       target.setDropTargetEffect(new NameEditorDropTargetEffect(control));
+                       
+               } else {
+                       if (dropListener != null) {
+                               target.removeDropListener(dropListener);
+                       }
+               }
+       }
+       
+       /**
+        * <p>Getter for the field <code>control</code>.</p>
+        *
+        * @return a {@link org.eclipse.swt.widgets.Composite} object.
+        */
+       public Composite getControl(){
+               return control;
+       }
+
+       /**
+        * <p>getNameEditor</p>
+        *
+        * @return a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
+        */
+       public TaxonNameEditor getNameEditor() {
+               return editor;
+       }
+
+       /**
+        * <p>dragEntered</p>
+        */
+       public void dragEntered() {
+               Color color = EditorUtil.getColor(Resources.COLOR_DRAG_ENTER);
+               
+               for(AbstractGroupedContainer container : groupedContainers){
+                       container.setBackground(color);
+               }               
+       }
+
+       /**
+        * <p>dragLeft</p>
+        */
+       public void dragLeft() {
+               for(AbstractGroupedContainer container : groupedContainers){
+                       container.restoreColor();
+               }
+       }
+       
+       /** {@inheritDoc} */
+       public boolean postOperation(CdmBase objectAffectedByOperation) {
+               editor.getMultiPageTaxonEditor().changed(null);
+               redraw();
+               return true;
+       }
+
+       /**
+        * <p>redraw</p>
+        */
+       public abstract void redraw();
+}