About to redo createPartControl() and createManagedForm(). Checking in in case rollba...
authorp.ciardelli <p.ciardelli@localhost>
Thu, 5 Feb 2009 10:14:22 +0000 (10:14 +0000)
committerp.ciardelli <p.ciardelli@localhost>
Thu, 5 Feb 2009 10:14:22 +0000 (10:14 +0000)
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/AbstractTaxonEditor.java
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java

index 5ca7a3b1cfb20ac8259e9a8f62dbe26052b8d9f3..a59bc876d1d2a6a0178fadb088dc5b497970eff4 100644 (file)
@@ -73,7 +73,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements
         * <code>defaultPropertyObject</code> is displayed in the property sheet.\r
         */\r
        \r
-       protected IManagedForm managedForm;\r
+       protected ManagedForm managedForm;\r
        protected ScrolledForm scrolledForm; \r
        protected Composite parent;\r
        protected ISelectionProvider provider;\r
index f885bca3f87bb836772eed1aae725d57448617f0..f23bc67af856ef2ca5b29723f476dd20f0c7ff10 100644 (file)
@@ -70,7 +70,9 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                                firePropertyChange(PROP_DIRTY);\r
                        }\r
                }\r
-       };              \r
+       };\r
+\r
+       private Composite partComposite;\r
        \r
        @Override\r
        public void doSave(IProgressMonitor monitor) {}\r
@@ -106,6 +108,8 @@ public class TaxonNameEditor extends AbstractTaxonEditor
        @Override\r
        public void createPartControl(final Composite composite) {\r
 \r
+               this.partComposite = composite;\r
+               \r
                super.createPartControl(composite);\r
                \r
                Taxon taxon = getTaxon();\r
@@ -131,57 +135,7 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                        }\r
                                                        \r
                        FreeTextElementFactory.getDefault().createConcept(taxon, relationship);\r
-               }\r
-               \r
-//             // Create a homotypic group composite for the accepted taxon\r
-//             HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup();\r
-//             EditorGroupComposite homotypicGroupComposite = new EditorGroupComposite(parent, managedForm, homotypicGroup);   \r
-//             homotypicGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
-//             \r
-//             NameComposite nameCompositeWithWarning = null;\r
-//             \r
-//             // Add accepted taxon to the group\r
-//             NameComposite acceptedNameComposite = new NameComposite(homotypicGroupComposite, managedForm, NameComposite.ACCEPTED_TAXON, taxon);\r
-//             \r
-//             warnIfNameConflictWithParent(acceptedNameComposite);\r
-//             \r
-//             IterableSynonymyList synonymyList = new IterableSynonymyList(taxon);\r
-//             HomotypicalGroup lastHeterotypicGroup = null;\r
-//             HomotypicalGroup currentHeterotypicGroup = null;\r
-//             EditorGroupComposite heterotypicGroupComposite = null;\r
-//             EditorGroupComposite misappliedNameGroupComposite = null;\r
-//                             \r
-//             for (TaxonBase synonymOrMisName : synonymyList) {\r
-//                     if (synonymOrMisName instanceof Synonym) {\r
-//                             \r
-//                             Synonym synonym = (Synonym) synonymOrMisName;\r
-//                             currentHeterotypicGroup = synonym.getHomotypicGroup();\r
-//                             \r
-//                             if (currentHeterotypicGroup.equals(homotypicGroup)) {\r
-//                                     \r
-//                                     NameComposite homotypicSynonymComposite = new NameComposite(homotypicGroupComposite, managedForm, NameComposite.HOMOTYPIC_SYNONYM, synonym);\r
-//                                     \r
-//                             } else {\r
-//                                     \r
-//                                     if (!currentHeterotypicGroup.equals(lastHeterotypicGroup)) {\r
-//                                             \r
-//                                             // Create a new group composite\r
-//                                             heterotypicGroupComposite = new EditorGroupComposite(parent, managedForm, currentHeterotypicGroup);\r
-//                                             heterotypicGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
-//                                             lastHeterotypicGroup = currentHeterotypicGroup;\r
-//                                     }\r
-//                                     \r
-//                                     NameComposite heterotypicSynonymComposite = new NameComposite(heterotypicGroupComposite, managedForm, NameComposite.HETEROTYPIC_SYNONYM, synonym);\r
-//                             }\r
-//                     } else {\r
-//                             \r
-//                             Taxon misappliedName = (Taxon) synonymOrMisName;\r
-//                             if (UiUtil.getMisappliedNameGroupComposite(managedForm) == null) {\r
-//                                     misappliedNameGroupComposite = UiUtil.createMisappliedNameGroupComposite(managedForm);\r
-//                             }\r
-//                             NameComposite misappliedNameComposite = new NameComposite(misappliedNameGroupComposite, managedForm, NameComposite.MISAPPLIED_NAME, misappliedName);\r
-//                     }\r
-//             }\r
+               }               \r
                        \r
                // Listen for names being dragged outside of existing homotypic groups -\r
                //  user wants to create a new group\r
@@ -227,53 +181,19 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                setSelection(acceptedNameComposite);\r
                acceptedNameComposite.drawBorder();\r
        }\r
-       \r
-       private void recursiveDisposeChildren(Composite composite) {\r
-               for (Control child : composite.getChildren()) {\r
-                       if (child instanceof Composite) {\r
-                               recursiveDisposeChildren((Composite) child);\r
-                       }\r
-                       try {\r
-                               child.dispose();\r
-                       } catch (RuntimeException e) {\r
-                               // TODO Auto-generated catch block\r
-                               e.printStackTrace();\r
-                       }\r
-               }\r
-       }\r
-       \r
+               \r
        public boolean redraw(){\r
+                               \r
+               managedForm.getForm().dispose();\r
                \r
-//             managedForm = new ManagedForm(composite) {\r
-//                     public void dirtyStateChanged() {\r
-//                             firePropertyChange(PROP_DIRTY);\r
-//                     }\r
-//                     public boolean setInput(Object input) {\r
-//                             if (input instanceof IHasPropertySource) {\r
-//                                     setSelection((IHasPropertySource)input);\r
-//                             }\r
-//                             return super.setInput(input); \r
-//                     } \r
-//             };\r
-//             scrolledForm = managedForm.getForm();\r
-//             parent = scrolledForm.getBody();\r
+               createManagedForm(partComposite);\r
                \r
                Taxon taxon = getTaxon();\r
-               \r
-//             Composite bla = managedForm.getForm().getParent();\r
-//             managedForm.getForm().dispose();\r
-//             managedForm = null;\r
-//             \r
-//             createManagedForm(bla);\r
-               for (Control child : parent.getChildren()){\r
-                       child.dispose();\r
-               }\r
-//             recursiveDisposeChildren(parent);\r
-               \r
+                               \r
                this.selectedObject = null;\r
                \r
                // Create accepted name\r
-               FreeTextElementFactory.getDefault().\r
+               NameComposite acceptedNameComposite = (NameComposite) FreeTextElementFactory.getDefault().\r
                                createAcceptedTaxon(managedForm, taxon);\r
                                \r
                for (TaxonBase taxonBase : new IterableSynonymyList(taxon)) {\r
@@ -295,65 +215,14 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                        FreeTextElementFactory.getDefault().createConcept(taxon, relationship);\r
                }\r
                \r
-               scrolledForm.reflow(true);\r
-                               \r
+               acceptedNameComposite.drawBorder();\r
+               \r
+               partComposite.layout();\r
+               \r
                return true;\r
        }\r
        \r
-       private NameComposite warnIfNameConflictWithParent(NameComposite nameComposite) {\r
 \r
-               // TODO put this into annotations\r
-               \r
-               String message = null;\r
-               Taxon taxon = getTaxon();\r
-               \r
-               if (nameComposite.getData() instanceof Taxon) {\r
-                       taxon = (Taxon) nameComposite.getData();\r
-                       Taxon parentTaxon = taxon.getTaxonomicParent();\r
-                       \r
-                       if (parentTaxon != null && taxon.getName() instanceof NonViralName \r
-                                       && parentTaxon.getName() instanceof NonViralName) {\r
-                               NonViralName name = (NonViralName) taxon.getName();\r
-                               NonViralName parentName = (NonViralName) parentTaxon.getName();\r
-                               \r
-                               Rank rank = name.getRank();\r
-                               if (rank != null) {\r
-                                       if (rank.equals(Rank.SPECIES())) {\r
-                                               String genus = name.getGenusOrUninomial();\r
-                                               String parentGenus = parentName.getGenusOrUninomial();\r
-\r
-                                               // If either taxon has a problem, name fields will be null\r
-                                               if (genus != null && parentGenus != null) {\r
-                                                       if (!parentGenus.equals(genus)) {\r
-                                                               message = "Warning: taxon's genus does not match parent taxon's genus.";\r
-                                                       }\r
-                                               }\r
-                                       }\r
-       \r
-                                       if (rank.equals(Rank.SUBSPECIES())) {\r
-                                               String specificEpithet = name.getSpecificEpithet();\r
-                                               String parentSpecificEpithet = parentName.getSpecificEpithet();\r
-                                               \r
-                                               // If either taxon has a problem, name fields will be null\r
-                                               if (specificEpithet != null && parentSpecificEpithet != null) {\r
-                                                       if (!parentSpecificEpithet.equals(specificEpithet)) {\r
-                                                               message = "Warning: taxon's specific epithet does not match parent taxon's specific epithet.";\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                               }\r
-                               \r
-                       }\r
-               }\r
-               \r
-               if (message != null && nameComposite.getTextViewer() != null) {\r
-                       managedForm.getMessageManager().addMessage\r
-                                       ("TEST2", message, null, IMessageProvider.WARNING, \r
-                                                       nameComposite.getTextViewer().getTextWidget());\r
-                       scrolledForm.setMessage(null, 0, null);\r
-               }\r
-               return nameComposite;\r
-       }\r
 \r
        \r
        private HashSet<Composite> getAllComposites(){\r
@@ -457,4 +326,59 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                }\r
                return null;\r
        }\r
+       \r
+       private NameComposite warnIfNameConflictWithParent(NameComposite nameComposite) {\r
+\r
+               // TODO put this into annotations\r
+               \r
+               String message = null;\r
+               Taxon taxon = getTaxon();\r
+               \r
+               if (nameComposite.getData() instanceof Taxon) {\r
+                       taxon = (Taxon) nameComposite.getData();\r
+                       Taxon parentTaxon = taxon.getTaxonomicParent();\r
+                       \r
+                       if (parentTaxon != null && taxon.getName() instanceof NonViralName \r
+                                       && parentTaxon.getName() instanceof NonViralName) {\r
+                               NonViralName name = (NonViralName) taxon.getName();\r
+                               NonViralName parentName = (NonViralName) parentTaxon.getName();\r
+                               \r
+                               Rank rank = name.getRank();\r
+                               if (rank != null) {\r
+                                       if (rank.equals(Rank.SPECIES())) {\r
+                                               String genus = name.getGenusOrUninomial();\r
+                                               String parentGenus = parentName.getGenusOrUninomial();\r
+\r
+                                               // If either taxon has a problem, name fields will be null\r
+                                               if (genus != null && parentGenus != null) {\r
+                                                       if (!parentGenus.equals(genus)) {\r
+                                                               message = "Warning: taxon's genus does not match parent taxon's genus.";\r
+                                                       }\r
+                                               }\r
+                                       }\r
+       \r
+                                       if (rank.equals(Rank.SUBSPECIES())) {\r
+                                               String specificEpithet = name.getSpecificEpithet();\r
+                                               String parentSpecificEpithet = parentName.getSpecificEpithet();\r
+                                               \r
+                                               // If either taxon has a problem, name fields will be null\r
+                                               if (specificEpithet != null && parentSpecificEpithet != null) {\r
+                                                       if (!parentSpecificEpithet.equals(specificEpithet)) {\r
+                                                               message = "Warning: taxon's specific epithet does not match parent taxon's specific epithet.";\r
+                                                       }\r
+                                               }\r
+                                       }\r
+                               }\r
+                               \r
+                       }\r
+               }\r
+               \r
+               if (message != null && nameComposite.getTextViewer() != null) {\r
+                       managedForm.getMessageManager().addMessage\r
+                                       ("TEST2", message, null, IMessageProvider.WARNING, \r
+                                                       nameComposite.getTextViewer().getTextWidget());\r
+                       scrolledForm.setMessage(null, 0, null);\r
+               }\r
+               return nameComposite;\r
+       }\r
 }
\ No newline at end of file