import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
/**
* Context menu for the creation of derivates in the derivate hierarchy.
*/
@Override
public void widgetSelected(SelectionEvent e) {
+ DerivateView derivateView = null;
+ if(AbstractUtility.getActivePart() instanceof DerivateView){
+ derivateView = (DerivateView) AbstractUtility.getActivePart();
+ }
+ if(derivateView!=null){
+ if(derivateView.isDirty()){
+ e.doit = false;
+ MessagingUtils.warningDialog("View has unsaved changes", this, "You need to save before performing this action");
+ return;
+ }
+ }
+
Object createdElement = null;
Object selectedDerivate = selectedNode.getValue();
if(selectedDerivate instanceof DnaSample && ((DnaSample) selectedDerivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
}
//refresh view
- IWorkbenchPart activePart = AbstractUtility.getActivePart();
- if(activePart instanceof DerivateView){
- DerivateView derivateView = (DerivateView)activePart;
- derivateView.changed(null);
+ if(derivateView!=null){
+ derivateView.getConversationHolder().commit();
derivateView.refreshTree(createdElement);
}
}