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