+ public static void openEditor(UuidAndTitleCache uuidAndTitleCache, Shell shell, EModelService modelService, EPartService partService, MApplication application){
+ Class<?> type = uuidAndTitleCache.getType();
+ ICdmBase cdmBase = null;
+ if(uuidAndTitleCache instanceof TaxonNodeDto){
+ EditorUtil.openTaxonNodeE4(uuidAndTitleCache.getUuid(), modelService, partService, application);
+ return;
+ }
+ else if(type.equals(Classification.class)){
+ cdmBase = CdmStore.getService(IClassificationService.class).load(uuidAndTitleCache.getUuid());
+ }
+ else if(type.equals(TaxonNode.class)){
+ cdmBase = CdmStore.getService(ITaxonNodeService.class).load(uuidAndTitleCache.getUuid());
+ }
+ else if(TaxonBase.class.isAssignableFrom(type)){
+ cdmBase = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
+ }
+ else if(type.equals(TaxonName.class)){
+ cdmBase = CdmStore.getService(INameService.class).load(uuidAndTitleCache.getUuid());
+ }
+ else{
+ MessagingUtils.warningDialog(Messages.NavigationUtil_UNKNOWN_TYPE, NavigationUtil.class, Messages.NavigationUtil_UNKNOWN_TYPE_MESSAGE);
+ }
+ if(cdmBase!=null){
+ openEditor(cdmBase, shell, modelService, partService, application);
+ }
+ else{
+ MessagingUtils.warningDialog(Messages.NavigationUtil_NOT_FOUND, NavigationUtil.class, Messages.NavigationUtil_NOT_FOUND_MESSAGE);
+ }
+ }
+
+ public static void openEditor(ICdmBase selectedObject, Shell shell, EModelService modelService, EPartService partService, MApplication application){
+ UUID entityUuid = selectedObject.getUuid();
+ try {