Removed all CDM object manipulation from drag and drop part in NameComponent and...
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / view / nameviewersupport / GroupComposite.java
1 package eu.etaxonomy.taxeditor.view.nameviewersupport;
2
3 import org.eclipse.swt.SWT;
4 import org.eclipse.swt.dnd.DND;
5 import org.eclipse.swt.dnd.DropTarget;
6 import org.eclipse.swt.dnd.DropTargetAdapter;
7 import org.eclipse.swt.dnd.DropTargetEvent;
8 import org.eclipse.swt.dnd.Transfer;
9 import org.eclipse.swt.widgets.Composite;
10 import org.eclipse.swt.widgets.Display;
11 import org.eclipse.ui.forms.widgets.TableWrapData;
12 import org.eclipse.ui.forms.widgets.TableWrapLayout;
13
14 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
15 import eu.etaxonomy.taxeditor.controller.WidgetTransfer;
16
17 public class GroupComposite extends Composite {
18
19 HomotypicalGroup homotypicalGroup;
20 boolean acceptedGroup;
21
22 public GroupComposite(Composite parent, HomotypicalGroup homotypicalGroup) {
23 super(parent, SWT.NONE);
24
25 this.homotypicalGroup = homotypicalGroup;
26
27 // Graphic layout of composite
28 this.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
29 this.setLayout(new TableWrapLayout());
30 this.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
31
32 // Drop functionality
33 // Transfer[] types = new Transfer[] {TaxonTransfer.getInstance()};
34 Transfer[] types = new Transfer[] {WidgetTransfer.getInstance()};
35 int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;
36 DropTarget target = new DropTarget(this, operations);
37 target.setTransfer(types);
38 target.addDropListener(new DropTargetAdapter() {
39
40 public void dragEnter(DropTargetEvent event) {
41 GroupComposite.this.notifyListeners(SWT.FocusIn, null);
42 }
43
44 public void dragLeave(DropTargetEvent event) {
45 GroupComposite.this.notifyListeners(SWT.FocusOut, null);
46 }
47
48 public void drop(DropTargetEvent event) {
49
50 if (event.data instanceof Composite) {
51 Composite composite = (Composite) event.data;
52 if ( ! composite.getParent().equals(GroupComposite.this)) {
53 composite.setParent(GroupComposite.this);
54 }
55 }
56 }
57 });
58 }
59 public HomotypicalGroup getHomotypicalGroup() {
60 return homotypicalGroup;
61 }
62 }