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
index 6b1d7e09ee565dba36c7357f2ba399f8a671d01c..fd5d52f21c75c1c4f56902f4a37ac48034001afb 100644 (file)
@@ -6,113 +6,57 @@ import org.eclipse.swt.dnd.DropTarget;
 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