*/
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.handler;
-import eu.etaxonomy.cdm.model.common.MarkerType;
+import javax.inject.Named;
+
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
+import org.eclipse.e4.ui.services.IServiceConstants;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
+import eu.etaxonomy.cdm.model.description.DescriptionType;
+import eu.etaxonomy.cdm.model.description.DescriptiveDataSet;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.CharacterMatrixPart;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author pplitzner
public class CreateDefaultTaxonDescriptionHandler extends CreateTaxonDescriptionHandler{
@Override
- protected boolean getMarkerFlag() {
- return true;
+ protected DescriptionType getDescriptionType() {
+ return DescriptionType.DEFAULT_VALUES_FOR_AGGREGATION;
}
@Override
- protected MarkerType getMarkerType() {
- return MarkerType.USE();
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
+ MHandledMenuItem menuItem){
+ boolean canExecute = super.canExecute(activePart, menuItem);
+ if(canExecute){
+ CharacterMatrixPart matrixPart = (CharacterMatrixPart) activePart.getObject();
+ DescriptiveDataSet descriptiveDataSet = matrixPart.getDescriptiveDataSet();
+ IStructuredSelection selection = ((CharacterMatrixPart)activePart.getObject()).getSelection();
+ TaxonNodeDto taxonNodeDto = (TaxonNodeDto) selection.getFirstElement();
+
+ TaxonDescription defaultTaxonDescription = CdmStore.getService(IDescriptiveDataSetService.class)
+ .findTaxonDescriptionByDescriptionType(descriptiveDataSet.getUuid(), taxonNodeDto.getUuid(), getDescriptionType());
+ canExecute = defaultTaxonDescription==null;
+ menuItem.setVisible(canExecute);
+ }
+
+ return canExecute;
}
}