From 494bda5dd53607e6d804a0799fd6c03b2f8f0927 Mon Sep 17 00:00:00 2001
From: "p.ciardelli"
Date: Wed, 25 Jun 2008 13:08:16 +0000
Subject: [PATCH] Created EditorGroupComponent, which has an IManagedForm. If
an EditorGroupedComponent is dragged onto a different view, it will be
assigned the IManagedForm of its new home.
---
.gitattributes | 1 +
.../nameviewersupport/GroupComposite.java | 75 +++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java
diff --git a/.gitattributes b/.gitattributes
index f73571aa8..2e4e3ab5a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -465,6 +465,7 @@ eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewe
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
diff --git a/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java
new file mode 100644
index 000000000..50f184179
--- /dev/null
+++ b/eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/view/nameviewersupport/GroupComposite.java
@@ -0,0 +1,75 @@
+/**
+* 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.view.nameviewersupport;
+
+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.DropTargetAdapter;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.Transfer;
+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.taxeditor.actions.WidgetTransfer;
+
+/**
+ * @author p.ciardelli
+ * @created 25.06.2008
+ * @version 1.0
+ */
+public class GroupComposite extends Composite {
+ private static final Logger logger = Logger.getLogger(GroupComposite.class);
+
+ private DropTarget target;
+
+ public GroupComposite(Composite parent, Object data) {
+ this(parent);
+ setData(data);
+ }
+
+ public GroupComposite(Composite parent) {
+ super(parent, SWT.NONE);
+
+ // Graphic layout of composite
+ this.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
+ this.setLayout(new TableWrapLayout());
+ this.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
+
+ // Drop functionality
+ Transfer[] types = new Transfer[] {WidgetTransfer.getInstance()};
+ int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;
+ target = new DropTarget(this, operations);
+ target.setTransfer(types);
+ target.addDropListener(new DropTargetAdapter() {
+
+ public void dragEnter(DropTargetEvent event) {
+ GroupComposite.this.notifyListeners(SWT.FocusIn, null);
+ }
+
+ public void dragLeave(DropTargetEvent event) {
+ GroupComposite.this.notifyListeners(SWT.FocusOut, null);
+ }
+
+ public void drop(DropTargetEvent event) {
+
+ if (event.data instanceof Composite) {
+ Composite composite = (Composite) event.data;
+ if ( ! composite.getParent().equals(GroupComposite.this)) {
+ composite.setParent(GroupComposite.this);
+ }
+ }
+ }
+ });
+ }
+}
--
2.34.1