1 package eu
.etaxonomy
.taxeditor
.view
.nameviewersupport
;
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
;
14 import eu
.etaxonomy
.cdm
.model
.name
.HomotypicalGroup
;
15 import eu
.etaxonomy
.taxeditor
.controller
.WidgetTransfer
;
17 public class GroupComposite
extends Composite
{
19 HomotypicalGroup homotypicalGroup
;
20 boolean acceptedGroup
;
22 public GroupComposite(Composite parent
, HomotypicalGroup homotypicalGroup
) {
23 super(parent
, SWT
.NONE
);
25 this.homotypicalGroup
= homotypicalGroup
;
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
));
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() {
40 public void dragEnter(DropTargetEvent event
) {
41 GroupComposite
.this.notifyListeners(SWT
.FocusIn
, null);
44 public void dragLeave(DropTargetEvent event
) {
45 GroupComposite
.this.notifyListeners(SWT
.FocusOut
, null);
48 public void drop(DropTargetEvent event
) {
50 if (event
.data
instanceof Composite
) {
51 Composite composite
= (Composite
) event
.data
;
52 if ( ! composite
.getParent().equals(GroupComposite
.this)) {
53 composite
.setParent(GroupComposite
.this);
59 public HomotypicalGroup
getHomotypicalGroup() {
60 return homotypicalGroup
;