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.layout.GridData;\r
-import org.eclipse.swt.layout.GridLayout;\r
import org.eclipse.swt.widgets.Composite;\r
import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.ui.forms.IManagedForm;\r
-import org.eclipse.ui.forms.widgets.FormToolkit;\r
+import org.eclipse.ui.forms.widgets.TableWrapData;\r
+import org.eclipse.ui.forms.widgets.TableWrapLayout;\r
\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.controller.TaxonTransfer;\r
-import eu.etaxonomy.taxeditor.view.NameEditorPage;\r
-import eu.etaxonomy.taxeditor.view.NameEditorView;\r
+import eu.etaxonomy.taxeditor.controller.WidgetTransfer;\r
\r
public class GroupComposite extends Composite {\r
\r
- Taxon taxon;\r
HomotypicalGroup homotypicalGroup;\r
boolean acceptedGroup;\r
- private NameEditorView nameEditor;\r
- private IManagedForm managedForm;\r
\r
- public void setTaxon(Taxon taxon) {\r
- this.taxon = taxon;\r
- }\r
- \r
- public GroupComposite(Composite parent) {\r
+ public GroupComposite(Composite parent, HomotypicalGroup homotypicalGroup) {\r
super(parent, SWT.NONE);\r
- \r
+ \r
+ this.homotypicalGroup = homotypicalGroup;\r
+ \r
// Graphic layout of composite\r
- GridLayout gridLayout = new GridLayout();\r
- gridLayout.verticalSpacing = 0;\r
- gridLayout.marginHeight = 3;\r
- this.setLayout(gridLayout);\r
- this.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));\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[] {TaxonTransfer.getInstance()};\r
+// Transfer[] types = new Transfer[] {TaxonTransfer.getInstance()};\r
+ Transfer[] types = new Transfer[] {WidgetTransfer.getInstance()}; \r
int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT;\r
DropTarget target = new DropTarget(this, operations);\r
target.setTransfer(types);\r
target.addDropListener(new DropTargetAdapter() {\r
\r
public void dragEnter(DropTargetEvent event) {\r
- showBorder();\r
+ GroupComposite.this.notifyListeners(SWT.FocusIn, null);\r
}\r
\r
public void dragLeave(DropTargetEvent event) {\r
- hideBorder();\r
+ GroupComposite.this.notifyListeners(SWT.FocusOut, null);\r
}\r
\r
public void drop(DropTargetEvent event) {\r
- Synonym synonym = (Synonym) event.data; \r
- \r
- GroupComposite dropTargetComposite = \r
- (GroupComposite) ((DropTarget) \r
- event.getSource()).getControl();\r
\r
- new NameComposite(dropTargetComposite, synonym, taxon).\r
- setNameEditorView(dropTargetComposite.getNameEditorView());\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
- protected void hideBorder() {\r
- if (!(managedForm == null)) {\r
- this.setData(FormToolkit.KEY_DRAW_BORDER, null);\r
- managedForm.getToolkit().paintBordersFor(nameEditor.getComposite());\r
- managedForm.getForm().reflow(true);\r
- }\r
- }\r
-\r
- protected void showBorder() {\r
- if (!(managedForm == null)) {\r
- \r
- // To cut down on flickering, only draw border as necessary\r
- if (this.getData(FormToolkit.KEY_DRAW_BORDER) == FormToolkit.TEXT_BORDER) return;\r
- \r
- this.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);\r
- managedForm.getToolkit().paintBordersFor(nameEditor.getComposite());\r
- managedForm.getForm().reflow(true);\r
- }\r
- }\r
- \r
public HomotypicalGroup getHomotypicalGroup() {\r
return homotypicalGroup;\r
}\r
-\r
- public void setHomotypicalGroup(HomotypicalGroup homotypicalGroup) {\r
- this.homotypicalGroup = homotypicalGroup;\r
- }\r
- \r
- public boolean isAcceptedGroup() {\r
- return acceptedGroup;\r
- }\r
- \r
- public void setAcceptedGroup(boolean acceptedGroup) {\r
- this.acceptedGroup = acceptedGroup;\r
- }\r
-\r
- public void setNameEditorView(NameEditorView nameEditorView) {\r
- this.nameEditor = nameEditorView;\r
- this.managedForm = nameEditorView.getManagedForm();\r
- }\r
- \r
- public NameEditorView getNameEditorView() {\r
- return nameEditor;\r
- } \r
}\r