import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.navigator.CommonViewer;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
* @param selectedObject a {@link eu.etaxonomy.cdm.model.common.CdmBase} object.
*/
public static void openEditor(UuidAndTitleCache uuidAndTitleCache){
- TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
- if(taxonBase==null){
- MessagingUtils.warn(NavigationUtil.class, "No taxon stored with UUID "+uuidAndTitleCache.getUuid());
- return;
+ Class type = uuidAndTitleCache.getType();
+ if(type.equals(Classification.class)){
+ Classification classification = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid());
+ openEditor(classification);
+ }
+ else if(type.equals(TaxonNode.class)){
+ TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(uuidAndTitleCache.getUuid());
+ openEditor(taxonNode);
+ }
+ else if(type.equals(TaxonBase.class)){
+ TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
+ openEditor(taxonBase);
+ }
+ else if(type.equals(TaxonNameBase.class)){
+ TaxonNameBase nameBase = CdmStore.getService(INameService.class).load(uuidAndTitleCache.getUuid());
+ openEditor(nameBase);
+ }
+ else{
+ MessagingUtils.warningDialog("Unknown type", NavigationUtil.class, "There is no editor available to open this object.");
}
- openEditor(taxonBase);
}
+
public static void openEditor(ICdmBase selectedObject){
UUID entityUuid = selectedObject.getUuid();
try {