fixes #888 and #889
authorn.hoffmann <n.hoffmann@localhost>
Tue, 11 Aug 2009 13:55:32 +0000 (13:55 +0000)
committern.hoffmann <n.hoffmann@localhost>
Tue, 11 Aug 2009 13:55:32 +0000 (13:55 +0000)
13 files changed:
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/AbstractTaxonEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/CompositeBorderDecorator.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/DuplicateArbitrator.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/description/TaxonDescriptionEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/images/TaxonImageEditor.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/AcceptedNameComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/ConceptComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/NameComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java
taxeditor-editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/dialogs/LoginDialog.java

index 14735bec873abe12154e72f1aba4b363ed167df8..7657f3d6dbbc1127e780b685b9ddcaf65c537174 100644 (file)
@@ -221,7 +221,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements IAdaptab
        }\r
        \r
        protected void createManagedForm(Composite composite) {\r
-               \r
+                               \r
                managedForm = new ManagedForm(composite) {\r
                        public void dirtyStateChanged() {\r
                                firePropertyChange(PROP_DIRTY);\r
@@ -250,7 +250,7 @@ public abstract class AbstractTaxonEditor extends EditorPart implements IAdaptab
                parent.setLayout(new TableWrapLayout());                \r
                parent.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));\r
        }\r
-       \r
+\r
        @SuppressWarnings("unchecked")\r
        public Object getAdapter(Class type) {\r
            if (type == IPropertySheetPage.class) {\r
@@ -410,7 +410,8 @@ public abstract class AbstractTaxonEditor extends EditorPart implements IAdaptab
                isRedrawing = true;\r
                \r
                this.selectedObject = null;\r
-               managedForm.getForm().dispose();                \r
+               managedForm.getForm().dispose();\r
+               this.resetGroupComposites();\r
                createManagedForm(partComposite);\r
                \r
                setFocus();\r
@@ -421,7 +422,12 @@ public abstract class AbstractTaxonEditor extends EditorPart implements IAdaptab
                \r
        }\r
        \r
-       public boolean getIsRedrawing() {\r
+       /**\r
+        * \r
+        */\r
+       protected abstract void resetGroupComposites();\r
+\r
+       public boolean isRedrawing() {\r
                return isRedrawing;\r
        }\r
        \r
index d6b07eb8582359baa3509f72431eed919c89be65..ee9f70290ce2bd230c71a5e5a42b14077ecfe0d7 100644 (file)
@@ -18,8 +18,6 @@ import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.widgets.FormToolkit;\r
 import org.eclipse.ui.forms.widgets.ScrolledForm;\r
 \r
-import eu.etaxonomy.taxeditor.editor.description.DescriptionElementComposite;\r
-\r
 /**\r
  * Draws a border on a Composite on an IManagedForm when it gets focus, \r
  *  undraws it when the Composite loses focus.\r
@@ -85,7 +83,6 @@ public class CompositeBorderDecorator implements FocusListener {
         * Removes the border from <code>borderedComposite</code>.\r
         */\r
        public void unpaintBorder() {\r
-               logger.warn("unpainting " + borderedComposite);\r
                paintBorder(null);              \r
        }\r
        \r
@@ -93,7 +90,6 @@ public class CompositeBorderDecorator implements FocusListener {
         * Adds a border to <code>borderedComposite</code>.\r
         */\r
        public void paintBorder() {\r
-               logger.warn("painting " + borderedComposite.getParent());\r
                paintBorder(FormToolkit.TEXT_BORDER);\r
        }\r
        \r
index e14efe859406f91917269b3fb24e9372700a6248..02a5f399d4f7759287b352b8d13dad43cf7c5abd 100644 (file)
@@ -9,6 +9,7 @@
 
 package eu.etaxonomy.taxeditor.editor;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -16,11 +17,14 @@ import java.util.Set;
 
 import org.apache.log4j.Logger;
 
+import eu.etaxonomy.cdm.api.service.ICommonService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NonViralName;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
+import eu.etaxonomy.cdm.model.reference.StrictReferenceBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.taxeditor.editor.name.NameComposite;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -50,12 +54,16 @@ public class DuplicateArbitrator {
 
        private Map<TaxonBase, TaxonNameBase> duplicateNames;
 
+       private ICommonService commonService;
+
        /**
         * @param adaptableObject
         */
        public DuplicateArbitrator(MultiPageTaxonEditor editor) {
                this.editor = editor;
                
+               commonService = CdmStore.getCommonService();
+               
                nameEditor = (TaxonNameEditor) editor.getPage(Page.NAME);
                
                duplicateReferences = new HashMap<TaxonBase, ReferenceBase>();
@@ -121,17 +129,22 @@ public class DuplicateArbitrator {
                NonViralName name = getName(taxonBase);
                
                try{
-                       ReferenceBase referenceBase = name.getNomenclaturalReference();
+                       StrictReferenceBase referenceBase = (StrictReferenceBase) name.getNomenclaturalReference();
+                       
+                       List<StrictReferenceBase> matches = commonService.findMatching(referenceBase, null);
                        
-                       // query datasource for the reference
-                       List<ReferenceBase> result = CdmStore.getReferenceService().getReferencesByTitle(referenceBase.getTitleCache());
+//                     // query datasource for the reference
+//                     List<ReferenceBase> result = CdmStore.getReferenceService().getReferencesByTitle(referenceBase.getTitleCache());
                        
                        // if query delivers results, place possible duplicate in map
-                       for(ReferenceBase duplicateReference : result){
+                       for(ReferenceBase duplicateReference : matches){
                                duplicateReferences.put(taxonBase, duplicateReference);
                        }
                }catch(NullPointerException e){
                        logger.warn("Name has no nomenclatural reference");
+               } catch (MatchException e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
                }
                
        }
@@ -149,7 +162,7 @@ public class DuplicateArbitrator {
        private void checkDuplicateLatinNames(TaxonBase taxonBase) {
                NonViralName name = getName(taxonBase);
                
-               List<NonViralName> result = CdmStore.getNameService().findNamesByTitle(name.getTitleCache());
+               List<NonViralName> result = new ArrayList(); //commonService.findMatching(name, null);
                
                for(Object object: result ){
                        TaxonNameBase duplicateName = HibernateProxyHelper.deproxy(object, TaxonNameBase.class);
index afadeb49554f10fbd6b16e54274a85a129307d40..2b8e3462004a0abdb76023629622a4af8625d46c 100644 (file)
@@ -106,7 +106,8 @@ public class MultiPageTaxonEditor extends MultiPageEditorPart implements IConver
                DuplicateArbitrator duplicateArbitrator = (DuplicateArbitrator) getAdapter(DuplicateArbitrator.class);\r
                \r
                if(duplicateArbitrator != null){\r
-                       duplicateArbitrator.arbitrate();\r
+                       // disable for now because of transaction problems.\r
+//                     duplicateArbitrator.arbitrate();\r
                }\r
                \r
                \r
index 231af1c508caed07b8575dc1fd7e370bffd2c3f9..8839280b09ec92da74069b1d490bd20e3d0daef3 100644 (file)
@@ -225,4 +225,13 @@ public class TaxonDescriptionEditor extends AbstractTaxonEditor
        public String getID() {\r
                return TaxonDescriptionEditor.ID;\r
        }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor#resetGroupComposites()\r
+        */\r
+       @Override\r
+       protected void resetGroupComposites() {\r
+               // TODO Auto-generated method stub\r
+               \r
+       }\r
 }\r
index 43ffad6adf6b6f7338c6aab1e01adfae87ff0f75..3974e820111257c20ca2b32595eece18642f5728 100644 (file)
@@ -119,4 +119,13 @@ public class TaxonImageEditor extends AbstractTaxonEditor {
        public String getID() {\r
                return TaxonImageEditor.ID;\r
        }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor#resetGroupComposites()\r
+        */\r
+       @Override\r
+       protected void resetGroupComposites() {\r
+               // TODO Auto-generated method stub\r
+               \r
+       }\r
 }
\ No newline at end of file
index 4058b477312b9df448970fc3de11830e454cc0a9..09f54aedbdd67323c456a7a963d1ee1ae89b64d7 100644 (file)
@@ -30,6 +30,8 @@ public class AcceptedNameComposite extends NameComposite<Taxon> {
        \r
        public AcceptedNameComposite(AbstractTaxonEditor editor, Composite groupComposite) {\r
                super(editor, groupComposite, editor.getTaxon());\r
+\r
+               initializeComposite();\r
        }\r
        \r
        public void initializeComposite(){\r
index e213376870ae678d4f74e899ebaa3f07ad1ffda3..1514c6e71f79d18ed8994932c6412d6ac4830444 100644 (file)
@@ -47,6 +47,8 @@ public class ConceptComposite extends NameComposite<Taxon> {
                this.relatedTaxon = relatedTaxon;\r
                this.relationshipType = relationshipType;\r
                this.setAcceptedTaxonIsFromTaxon(acceptedTaxonIsFromTaxon);\r
+\r
+               initializeComposite();\r
        }\r
        \r
        /* (non-Javadoc)\r
index b532e2b4b18864e47e2a971548d7cad851bf429c..72b853f1192483ac949798a4a5fa5b7da0dfeb24 100644 (file)
@@ -31,6 +31,7 @@ public class MisappliedNameComposite extends NameComposite<Taxon> {
        public MisappliedNameComposite(TaxonNameEditor editor, Composite parent, Taxon misappliedName) {\r
                super(editor, parent, misappliedName);\r
 \r
+               initializeComposite();\r
        }\r
        \r
 \r
index 3264e1398ea6da98457cbcfc13421424a4261b7c..4b2b10349bf14b29418c12475e72fe09f7b3b38f 100644 (file)
@@ -149,7 +149,6 @@ public abstract class NameComposite<T extends TaxonBase> extends GroupedComposit
                \r
                createEmptyViewerPrompt(EMPTY_NAME_PROMPT);\r
                \r
-               initializeComposite();\r
                createParser();\r
        }\r
        \r
index ad5fb4612dc843d2f5dc68c94671ff316bad1fde..adf29f4f948221579ec988a02bdc8289e887fd90 100644 (file)
@@ -36,6 +36,8 @@ public class SynonymComposite extends NameComposite<Synonym> {
        \r
        public SynonymComposite(TaxonNameEditor editor, Composite parent, Synonym synonym) {\r
                super(editor, parent, synonym);\r
+               \r
+               initializeComposite();\r
        }\r
        \r
        /* (non-Javadoc)\r
index 062d1eedb6156515f79a210fccee1848d4ce25e5..945a72f8d3bd9cb413947090a3330ad4d62cd61d 100644 (file)
@@ -63,8 +63,14 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                \r
        private static final String ID = "eu.etaxonomy.taxeditor.taxonNameEditor";\r
 \r
+       private Map<HomotypicalGroup, HomotypicalGroupComposite> homotypicGroupComposites;\r
+\r
+       private MisappliedGroupComposite misappliedGroupComposite;\r
+\r
+       private ConceptGroupComposite conceptGroupComposite;\r
+       \r
        public TaxonNameEditor(MultiPageTaxonEditor editor){\r
-               super(editor);\r
+               super(editor);  \r
        }\r
        \r
        /**\r
@@ -78,12 +84,6 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                        }\r
                }\r
        };\r
-\r
-       private Map<HomotypicalGroup, HomotypicalGroupComposite> homotypicGroupComposites;\r
-\r
-       private MisappliedGroupComposite misappliedGroupComposite;\r
-\r
-       private ConceptGroupComposite conceptGroupComposite;\r
        \r
        @Override\r
        public void doSave(IProgressMonitor monitor) {}\r
@@ -266,6 +266,9 @@ public class TaxonNameEditor extends AbstractTaxonEditor
 \r
        \r
        public Composite getMisappliedGroup() {\r
+               if (misappliedGroupComposite == null) {\r
+                       misappliedGroupComposite = createMisappliedGroup();\r
+               }\r
                return misappliedGroupComposite;\r
        }\r
 \r
@@ -296,6 +299,9 @@ public class TaxonNameEditor extends AbstractTaxonEditor
 \r
        \r
        public Composite getConceptGroup() {\r
+               if (conceptGroupComposite == null) {\r
+                       conceptGroupComposite = createConceptGroup();\r
+               }\r
                return conceptGroupComposite;\r
        }\r
 \r
@@ -359,7 +365,9 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                groupComposite.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);\r
                getManagedForm().getToolkit().paintBordersFor(groupComposite.getParent());\r
                \r
-               getHomotypicGroups().put(group, groupComposite);\r
+               Map<HomotypicalGroup, HomotypicalGroupComposite> groups = getHomotypicGroups();\r
+               \r
+               groups.put(group, groupComposite);\r
                \r
                return groupComposite;\r
        }\r
@@ -387,9 +395,6 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                // If there is no composite for misapplied names, \r
                //      create one and add it to the repository\r
                Composite groupComposite = getMisappliedGroup();\r
-               if (groupComposite == null) {\r
-                       groupComposite = createMisappliedGroup();\r
-               }\r
                \r
                // Create the name's composite\r
                Composite composite = new MisappliedNameComposite(this, groupComposite, misappliedName);\r
@@ -404,7 +409,6 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                misappliedGroupComposite.addFocusListener(new CompositeBorderDecorator(misappliedGroupComposite, this.getManagedForm()));\r
                \r
                // Put the group composite before concept group composite, if any\r
-               Composite conceptGroupComposite = this.getConceptGroup();\r
                if (conceptGroupComposite != null) {\r
                        misappliedGroupComposite.moveAbove(conceptGroupComposite);\r
                }\r
@@ -417,9 +421,6 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                // If there is no composite for misapplied names, \r
                //      create one and add it to the repository\r
                Composite groupComposite = this.getConceptGroup();\r
-               if (groupComposite == null) {\r
-                       groupComposite = createConceptGroup();\r
-               }\r
                \r
                // Create the name's composite\r
                Composite composite = ConceptComposite.getNewInstance(this, groupComposite, relationship);\r
@@ -428,13 +429,12 @@ public class TaxonNameEditor extends AbstractTaxonEditor
        }\r
 \r
        \r
-       public Composite createConceptGroup() {\r
+       public ConceptGroupComposite createConceptGroup() {\r
                // Create the group composite\r
                conceptGroupComposite = new ConceptGroupComposite(this, this.getTopLevelComposite());\r
                conceptGroupComposite.addFocusListener(new CompositeBorderDecorator(conceptGroupComposite, this.getManagedForm()));\r
                \r
                // Put the group composite after misapplied group composite, if any\r
-               Composite misappliedGroupComposite = this.getMisappliedGroup();\r
                if (misappliedGroupComposite != null) {\r
                        conceptGroupComposite.moveBelow(misappliedGroupComposite);\r
                }\r
@@ -442,4 +442,14 @@ public class TaxonNameEditor extends AbstractTaxonEditor
                return conceptGroupComposite;\r
 \r
        }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor#resetGroupComposites()\r
+        */\r
+       @Override\r
+       protected void resetGroupComposites() {\r
+               conceptGroupComposite = null;\r
+               misappliedGroupComposite = null;\r
+               homotypicGroupComposites = null;\r
+       }\r
 }
\ No newline at end of file
index 73f0abce5758a5b3d07a4c79fadc14c045dd96cb..c7a3e041f80b41646a837d10dc7aa75b9ef72153 100644 (file)
@@ -112,12 +112,13 @@ public class LoginDialog extends Dialog {
                        CdmStore.getLoginManager().authenticate(token);                 
                }catch(BadCredentialsException e){
                        logger.error("Bad credentials", e);
-                       StoreUtil.warningDialog("Could not authenticate. Reason: Bad Credentials");
+                       StoreUtil.warningDialog("Could not authenticate. Reason: Bad Credentials.");
                }catch(LockedException e){
                        logger.error("Account is locked", e);
-                       StoreUtil.warningDialog("Could not authenticate. Reason: Account is locked");
+                       StoreUtil.warningDialog("Could not authenticate. Reason: Account is locked.");
                }catch(IllegalArgumentException e){
                        logger.error("Null argument for either user or password", e);
+                       StoreUtil.warningDialog("Could not authenticate. Reason: Username and/or Password empty.");
                }
                
                super.okPressed();