}
Collection<MPart> parts = partService.getParts();
- MPart part = null;
//check if part is already opened
- for (MPart mPart : parts) {
- if(mPart.getObject() instanceof TaxonNameEditorE4
- && ((TaxonNameEditorE4) mPart.getObject()).getTaxon()!=null
- && ((TaxonNameEditorE4) mPart.getObject()).getTaxon().equals(input.getTaxon())){
- part = mPart;
+ for (MPart part : parts) {
+ if(part.getObject() instanceof TaxonNameEditorE4
+ && ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
+ && ((TaxonNameEditorE4) part.getObject()).getTaxon().equals(input.getTaxon())){
+ //close part to invoke refresh for new part
+ partService.hidePart(part);
break;
}
}
- if(part==null){
- part = partService.createPart(NAME_EDITOR_ID);
-
- MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
- if(editorAreaPartStack!=null){
- editorAreaPartStack.getChildren().add(part);
- }
- part = partService.showPart(part, PartState.ACTIVATE);
+ MPart part = partService.createPart(NAME_EDITOR_ID);
- TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
- editor.init(input);
- }
- else{
- part = partService.showPart(part, PartState.ACTIVATE);
+ MPartStack editorAreaPartStack = WorkbenchUtility.getEditorAreaPartStack(application, modelService);
+ if(editorAreaPartStack!=null){
+ editorAreaPartStack.getChildren().add(part);
}
+ part = partService.showPart(part, PartState.ACTIVATE);
+
+ TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
+ editor.init(input);
}
/**
@Inject
private MApplication application;
+ @Inject
+ private MPart activePart;
+
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection,
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell, EPartService partService,
UISynchronize sync) {
+ this.activePart = activePart;
this.partService = partService;
editor = (TaxonNameEditorE4) activePart.getObject();
@Override
public boolean onComplete() {
+ partService.hidePart(activePart);
EditorUtil.openTaxonNodeE4(newParentNode.getUuid(), modelService, partService, application);
return true;
}