}\r
\r
protected void createManagedForm(Composite composite) {\r
- \r
+ \r
managedForm = new ManagedForm(composite) {\r
public void dirtyStateChanged() {\r
firePropertyChange(PROP_DIRTY);\r
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
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
\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
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
* Removes the border from <code>borderedComposite</code>.\r
*/\r
public void unpaintBorder() {\r
- logger.warn("unpainting " + borderedComposite);\r
paintBorder(null); \r
}\r
\r
* 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
package eu.etaxonomy.taxeditor.editor;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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;
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>();
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();
}
}
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);
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
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
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
\r
public AcceptedNameComposite(AbstractTaxonEditor editor, Composite groupComposite) {\r
super(editor, groupComposite, editor.getTaxon());\r
+\r
+ initializeComposite();\r
}\r
\r
public void initializeComposite(){\r
this.relatedTaxon = relatedTaxon;\r
this.relationshipType = relationshipType;\r
this.setAcceptedTaxonIsFromTaxon(acceptedTaxonIsFromTaxon);\r
+\r
+ initializeComposite();\r
}\r
\r
/* (non-Javadoc)\r
public MisappliedNameComposite(TaxonNameEditor editor, Composite parent, Taxon misappliedName) {\r
super(editor, parent, misappliedName);\r
\r
+ initializeComposite();\r
}\r
\r
\r
\r
createEmptyViewerPrompt(EMPTY_NAME_PROMPT);\r
\r
- initializeComposite();\r
createParser();\r
}\r
\r
\r
public SynonymComposite(TaxonNameEditor editor, Composite parent, Synonym synonym) {\r
super(editor, parent, synonym);\r
+ \r
+ initializeComposite();\r
}\r
\r
/* (non-Javadoc)\r
\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
}\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
\r
\r
public Composite getMisappliedGroup() {\r
+ if (misappliedGroupComposite == null) {\r
+ misappliedGroupComposite = createMisappliedGroup();\r
+ }\r
return misappliedGroupComposite;\r
}\r
\r
\r
\r
public Composite getConceptGroup() {\r
+ if (conceptGroupComposite == null) {\r
+ conceptGroupComposite = createConceptGroup();\r
+ }\r
return conceptGroupComposite;\r
}\r
\r
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
// 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
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
// 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
}\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
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
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();