+ Collection<IE4SavablePart> dirtyParts = EditorUtil.checkForTaxonChanges(null, partService);
+
+ if (dirtyParts != null && !dirtyParts.isEmpty()){
+ String[] buttonLables = {YES, NO,CANCEL};
+ MessageDialog dialog = new MessageDialog(null, Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChanges, null, Messages.SetPublishFlagForSubtreeHandlerE4_UnsavedChangesQuestion, MessageDialog.QUESTION_WITH_CANCEL, buttonLables, 0);
+ dialog.open();
+ int returnCode = dialog.getReturnCode();
+ boolean proceed = false;
+ if (returnCode == 0){
+ proceed = true;
+ }else if (returnCode == 2){
+ return Status.CANCEL_STATUS;
+ }
+
+ Iterator<IE4SavablePart> partIterator = dirtyParts.iterator();
+ while( partIterator.hasNext() ){
+ IE4SavablePart part = partIterator.next();
+ if (proceed) {
+ if (part != null){
+ part.save(new NullProgressMonitor());
+ }
+ }
+ }
+ }
+
+
+ configurator = new PublishForSubtreeConfigurator(taxonNode.getUuid(), false, null);