eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/EditorGroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/EditorGroupedComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/ErrorAnnotation.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupedComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/IDataDisposer.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/IParentDataAdapter.java -text
--- /dev/null
+/**\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.view.nameviewersupport;\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.DropTargetAdapter;\r
+import org.eclipse.swt.dnd.DropTargetEvent;\r
+import org.eclipse.swt.dnd.Transfer;\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.taxeditor.actions.WidgetTransfer;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 25.06.2008\r
+ * @version 1.0\r
+ */\r
+public class GroupComposite extends Composite {\r
+ private static final Logger logger = Logger.getLogger(GroupComposite.class);\r
+ \r
+ private DropTarget target;\r
+ \r
+ public GroupComposite(Composite parent, Object data) {\r
+ this(parent);\r
+ setData(data);\r
+ }\r
+ \r
+ public GroupComposite(Composite parent) {\r
+ super(parent, SWT.NONE);\r
+\r
+ // Graphic layout of composite\r
+ this.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));\r
+ this.setLayout(new TableWrapLayout());\r
+ this.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
+ \r
+ // Drop functionality\r
+ Transfer[] types = new Transfer[] {WidgetTransfer.getInstance()}; \r
+ int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;\r
+ target = new DropTarget(this, operations);\r
+ target.setTransfer(types);\r
+ target.addDropListener(new DropTargetAdapter() {\r
+ \r
+ public void dragEnter(DropTargetEvent event) {\r
+ GroupComposite.this.notifyListeners(SWT.FocusIn, null);\r
+ }\r
+ \r
+ public void dragLeave(DropTargetEvent event) {\r
+ GroupComposite.this.notifyListeners(SWT.FocusOut, null);\r
+ }\r
+ \r
+ public void drop(DropTargetEvent event) {\r
+ \r
+ if (event.data instanceof Composite) {\r
+ Composite composite = (Composite) event.data; \r
+ if ( ! composite.getParent().equals(GroupComposite.this)) {\r
+ composite.setParent(GroupComposite.this);\r
+ }\r
+ }\r
+ }\r
+ });\r
+ }\r
+}\r