*
* @author n.hoffmann
* @created Jun 22, 2010
- * @version 1.0
*/
public class NameEditorMenuPropertyTester extends PropertyTester {
private static final String ACCEPTED = "isAcceptedTaxon"; //$NON-NLS-1$
private static final String NOT_ACCEPTED = "isNotAcceptedTaxon"; //$NON-NLS-1$
private static final String SYNONYM = "isSynonym"; //$NON-NLS-1$
+ private static final String NOT_SYNONYM = "isNotSynonym"; //$NON-NLS-1$
private static final String MISAPPLICATION = "isMisapplication"; //$NON-NLS-1$
+ private static final String NOT_MISAPPLICATION = "isNotMisapplication"; //$NON-NLS-1$
+ private static final String PROPARTE_SYNONYM = "isProparteSynonym";//$NON-NLS-1$
+ private static final String NOT_PROPARTE_SYNONYM = "isNotProparteSynonym"; //$NON-NLS-1$
private static final String TAXONBASE = "isTaxonBase"; //$NON-NLS-1$
private static final String CONCEPT = "isConceptRelation"; //$NON-NLS-1$
private static final String EMPTY_NAMES = "hasEmptyNames"; //$NON-NLS-1$
private static final String ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS = "isAcceptedAndHasNoHomotypicSynonyms"; //$NON-NLS-1$
private static final String NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED = "isNotHomotypicSynonymOfAcceptedTaxon"; //$NON-NLS-1$
private static final String SYNONYM_WITH_HOMOTYPIC_SYNONYMS = "isSynonymInHomotypicalGroupWithMoreSynonyms"; //$NON-NLS-1$
- private static final String IS_ORPHANED = "isOrphaned"; //$NON-NLS-1$
+ private static final String IS_ORPHANED = "isOrphaned";
/**
* <p>Constructor for NameEditorMenuPropertyTester.</p>
public NameEditorMenuPropertyTester() {
}
- /** {@inheritDoc} */
@Override
public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {
CdmBase cdmBase = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
selectedElement = cdmBase;
}
- if(NOT_ACCEPTED.equals(property)){
+ if(EMPTY_NAMES.equals(property)){
+ return hasEmptyNames(receiver);
+ }
+ else if(!(selectedElement instanceof TaxonBase)){
+ return false;
+ }
+ else if(NOT_ACCEPTED.equals(property)){
return !isAccepted(selectedElement);
}
- if(ACCEPTED.equals(property)){
+ else if(ACCEPTED.equals(property)){
return isAccepted(selectedElement);
}
else if(SYNONYM.equals(property)){
return isSynonym(selectedElement);
}
+ else if(NOT_SYNONYM.equals(property)){
+ return isNotSynonym(selectedElement);
+ }
else if(MISAPPLICATION.equals(property)){
return isMisapplication(selectedElement);
}
+ else if(PROPARTE_SYNONYM.equals(property)){
+ return isProparteSynonym(selectedElement);
+ }
+ else if(NOT_PROPARTE_SYNONYM.equals(property)){
+ return isNotProparteSynonym(selectedElement);
+ }
+ else if(NOT_MISAPPLICATION.equals(property)){
+ return isNotMisapplication(selectedElement);
+ }
else if(TAXONBASE.equals(property)){
return isTaxonBase(selectedElement);
}
else if(CONCEPT.equals(property)){
return isRelatedConcept(selectedElement);
}
- else if(EMPTY_NAMES.equals(property)){
- return hasEmptyNames(receiver);
- }
else if(ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS.equals(property)){
return isAcceptedAndHasNoHomotypicSynonyms(selectedElement);
}
return isNotHomotypicSynonymOfAcceptedTaxon(selectedElement);
}
else if (SYNONYM_WITH_HOMOTYPIC_SYNONYMS.equals(property)){
- return isSynonymInHomotypicalGroupWithMoreSynonyms(selectedElement);
+ return isSynonymOrTaxonInHomotypicalGroupWithMoreSynonyms(selectedElement);
}
else if (IS_ORPHANED.equals(property)){
return isOrphaned(selectedElement);
}
-
}
-
return false;
}
return !isAccepted(selectedElement);
}
- public static boolean isSynonymInHomotypicalGroupWithMoreSynonyms(Object selectedElement) {
- if (isSynonym(selectedElement)){
- Synonym synonym = (Synonym) selectedElement;
+ public static boolean isNotMisapplication(Object selectedElement) {
+
+ return !isMisapplication(selectedElement);
+ }
+
+ public static boolean isSynonymOrTaxonInHomotypicalGroupWithMoreSynonyms(Object selectedElement) {
+ if (isSynonym(selectedElement) || isAccepted(selectedElement)){
+ TaxonBase<?> synonym = (TaxonBase<?>) selectedElement;
return synonym.getHomotypicGroup().getTypifiedNames().size()>1;
}
return false;
}
public static boolean isRelatedConcept(Object selectedElement) {
- if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isRelatedConcept()){
+ if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isRelatedConcept() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
return true;
}
return false;
}
public static boolean isMisapplication(Object selectedElement) {
- if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication()){
+ if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
return true;
}
return false;
}
+ public static boolean isProparteSynonym(Object selectedElement) {
+ if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isProparteSynonym() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+ return true;
+ }
+ return false;
+ }
+ public static boolean isNotProparteSynonym(Object selectedElement) {
+ if (selectedElement instanceof Synonym){
+ return true;
+ }
+ if(((Taxon) selectedElement).isProparteSynonym() && !((TaxonNameEditorE4) EventUtility.getTaxonEditor()).getTaxon().equals(selectedElement)){
+ return false;
+ }
+ return true;
+ }
+
public static boolean isSynonym(Object selectedElement) {
return (selectedElement instanceof Synonym) ? true : false;
}
+ public static boolean isNotSynonym(Object selectedElement) {
+ return !isSynonym(selectedElement);
+ }
public static boolean isAccepted(Object selectedElement) {
- return (selectedElement instanceof Taxon && ! ((Taxon) selectedElement).isMisapplication()) ? true : false;
+ TaxonNameEditorE4 editor = (TaxonNameEditorE4) EventUtility.getTaxonEditor();
+ Taxon accepted = editor.getTaxon();
+ return (selectedElement instanceof Taxon && accepted.equals(selectedElement)) ? true : false;
}
public static boolean isOrphaned(Object selectedElement) {
}
return false;
}
+
+ /**
+ * @param selectedElement
+ * @return
+ */
+ public static boolean isProParteSynonym(Object selectedElement) {
+ if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isProparteSynonym()){
+ return true;
+ }
+ return false;
+ }
+
}