X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/185eb33bd906d1c761bb71b4cbc3e3882a2f70df..0122459a91ef7cbb53ebefcae5d20b8721810158:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java index 26dbe71b3..aa93223b9 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java @@ -8,18 +8,22 @@ */ package eu.etaxonomy.taxeditor.handler.defaultHandler.e4; -import java.util.UUID; +import java.util.Collection; import org.eclipse.e4.core.contexts.ContextInjectionFactory; +import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.workbench.modeling.EPartService; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.widgets.Shell; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; -import eu.etaxonomy.cdm.model.taxon.TaxonNode; +import eu.etaxonomy.cdm.model.metadata.PreferencePredicate; +import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto; +import eu.etaxonomy.taxeditor.editor.ITaxonEditor; import eu.etaxonomy.taxeditor.event.EventUtility; import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants; -import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.section.classification.EditTaxonNodeWizard; @@ -29,27 +33,51 @@ import eu.etaxonomy.taxeditor.ui.section.classification.EditTaxonNodeWizard; * @date 22.03.2016 * */ -public class DefaultOpenTaxonNodeWizardHandlerE4 extends DefaultOpenHandlerBaseE4 { +public class DefaultOpenTaxonNodeWizardHandlerE4 extends DefaultOpenHandlerBaseE4 { - @Override - protected TaxonNode getEntity(UUID uuid) { - return CdmStore.getService(ITaxonNodeService.class).load(uuid); - } +// @Override +// protected TaxonNode getEntity(UUID uuid) { +// return CdmStore.getService(ITaxonNodeService.class).load(uuid); +// } @Override - protected void open(TaxonNode entity, Shell shell, EPartService partService) { + protected void open(TaxonNodeDto entity, Shell shell, EPartService partService) { + Collection dirtyParts = partService.getDirtyParts(); + if (!dirtyParts.isEmpty()){ + + for (MPart dirtyPart: dirtyParts){ + if (dirtyPart.getElementId().equals("eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4") && ((ITaxonEditor)dirtyPart.getObject()).getTaxonNode().getUuid().equals(entity.getUuid())){ + boolean doSave = MessageDialog + .openConfirm(shell, "The taxonnode is in an unsaved mode", + "Do you want to save?"); + + if (!doSave) { + return ; + } + + partService.savePart(dirtyPart, false); + } + + } + } EditTaxonNodeWizard taxonNodeWizard = ContextInjectionFactory.make(EditTaxonNodeWizard.class, context); taxonNodeWizard.init(null, null); - taxonNodeWizard.setEntity(entity); + taxonNodeWizard.setEntity(CdmStore.getService(ITaxonNodeService.class).load(entity.getUuid())); WizardDialog dialog = new WizardDialog(shell, taxonNodeWizard); dialog.open(); - EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true); + EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, entity); + EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, entity.getTaxonUuid()); } @Override - public boolean canExecute(TaxonNode entity) { - return entity.getTaxon()!=null && PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey()); + public boolean canExecute(Object selection) { + if (((IStructuredSelection)selection).getFirstElement() instanceof TaxonNodeDto && ((IStructuredSelection)selection).size() == 1){ + return ((TaxonNodeDto)((IStructuredSelection)selection).getFirstElement()).getTaxonUuid()!=null && PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey()); + } + return false; } + + } \ No newline at end of file