<children xsi:type="menu:Menu" xmi:id="_yzFmYJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new" label="%menu.label">
<children xsi:type="menu:HandledMenuItem" xmi:id="_wzftMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.taxon" label="%command.label.2" command="_Nx06MJIvEeeJAdt8ZUxyaw"/>
<children xsi:type="menu:MenuSeparator" xmi:id="_33c4IJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.0"/>
- <children xsi:type="menu:HandledMenuItem" xmi:id="_4dTXMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.classification" label="%command.label.3" command="_Vco-4JIxEeeJAdt8ZUxyaw"/>
+ <children xsi:type="menu:HandledMenuItem" xmi:id="_4dTXMJIvEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menu.new.classification" label="%command.label.3" command="_Vco-4JIxEeeJAdt8ZUxyaw">
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_wlrJYNMPEeiXranio7VdMQ" coreExpressionId="noClassificationExists"/>
+ </children>
</children>
<children xsi:type="menu:MenuSeparator" xmi:id="_24NMMJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.menuseparator.5"/>
<children xsi:type="menu:DynamicMenuContribution" xmi:id="_3d1BwJIwEeeJAdt8ZUxyaw" elementId="eu.etaxonomy.taxeditor.navigation.dynamicmenucontribution.openInCdmViewer" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.view.CdmViewerContextMenuE4"/>
class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester"
id="eu.etaxonomy.taxeditor.navigation.navigator.navigatorPropertyTester"
namespace="eu.etaxonomy.taxeditor.navigation.navigator.navigatorPropertyTester"
- properties="hasSynonyms,isClassification,isUnplaced,isExcluded"
+ properties="hasSynonyms,isClassification,isUnplaced,isExcluded,noClassificationExists"
type="java.lang.Object">
</propertyTester>
property="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester.isExcluded">
</test>
</definition>
+ <definition
+ id="noClassificationExists">
+ <test
+ property="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester.noClassificationExists">
+ </test>
+ </definition>
</extension>
+ <definition
+ id="noClassificationExists">
+ <not>
+ <reference
+ definitionId="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester.noClassificationExists">
+ </reference>
+ </not>
+ </definition>
<extension
id="eu.etaxonomy.taxeditor.navigation.workbench.model"
name="Navigation Workbench Model"
import org.eclipse.core.expressions.PropertyTester;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
+import eu.etaxonomy.taxeditor.store.CdmStore;
public class TaxonNodePropertyTester extends PropertyTester {
private static final Object HAS_SYNONYMS = "hasSynonyms"; //$NON-NLS-1$
private static final Object IS_CLASSIFICATION = "isClassification"; //$NON-NLS-1$
private static final Object IS_UNPLACED = "isUnplaced";
private static final Object IS_EXCLUDED = "isExcluded";
+ private static final Object NO_CLASSIFICATION_EXIST = "noClassificationExist";
/** {@inheritDoc} */
@Override
public boolean test(Object receiver, String property, Object[] args,
TaxonNodeDto node = (TaxonNodeDto) receiver;
return node.isExcluded();
}
+ if (NO_CLASSIFICATION_EXIST.equals(property)) {
+ return 0 == CdmStore.getService(IClassificationService.class).count(Classification.class);
+ }
return false;
}
+
+ public static boolean noClassifiactionExists(){
+ int count = CdmStore.getService(IClassificationService.class).count(Classification.class);
+ return 0 == count;
+ }
}
canExecute = selection.size()==1
&& selection.getFirstElement() instanceof TaxonNode
&& ((TaxonNode) selection.getFirstElement()).getTaxon()==null
- && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES);
+ && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)
+ && !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
menuItem.setVisible(canExecute);
return canExecute;
}
canExecute = selection.size()==1
&& selection.getFirstElement() instanceof TaxonNode
&& ((TaxonNode) selection.getFirstElement()).getTaxon()==null
- && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES);
+ && PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)
+ && !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
menuItem.setVisible(canExecute);
return canExecute;
}
import javax.inject.Named;
+import org.eclipse.e4.core.di.annotations.CanExecute;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Shell;
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester;
import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
*
dialog.open();
}
+
+ @CanExecute
+ private boolean canExecute(MHandledMenuItem menuItem){
+ boolean canExecute = false;
+
+ canExecute = TaxonNodePropertyTester.noClassifiactionExists() || !PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
+ menuItem.setVisible(canExecute);
+ return canExecute;
+ }
}
public static final String SHOW_TAXONNODE_WIZARD = "eu.etaxonomy.taxeditor.menu.showTaxonNodeWizard";
public static final String IS_SEARCH_FOR_IDENTIFIER_AS_DEFAULT = "eu.etaxonomy.taxeditor.search.reference.defaultIdentifier";
public static final String SEARCH_FOR_IDENTIFIER_AND_TITLECACHE = "eu.etaxonomy.taxeditor.search.reference.identifierAndTitleCache";
+ public static final String DISABLE_MULTI_CLASSIFICATION = "eu.etaxonomy.taxeditor.classification.multi";
+
+ public static final String SHOW_ID_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.IdInSource";
+ public static final String SHOW_NAME_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.nameInSource";
+
getPreferenceStore().setDefault(FILTER_COMMON_NAME_REFERENCES, false);
getPreferenceStore().setDefault(SHOW_SPECIMEN, true);
- getPreferenceStore().setDefault(SHOW_TAXONNODE_WIZARD, false);
+ getPreferenceStore().setDefault(SHOW_TAXONNODE_WIZARD, true);
+ getPreferenceStore().setDefault(SHOW_NAME_IN_SOURCE, true);
+ getPreferenceStore().setDefault(SHOW_ID_IN_SOURCE, true);
+ getPreferenceStore().setDefault(DISABLE_MULTI_CLASSIFICATION, false);
}
}
}
+ preference = getPreferenceFromDB(PreferencePredicate.UseOnlyReferencesWithCommonNameMarker);
+ if (preference != null){
+ if (!prefStore.getBoolean(FILTER_COMMON_NAME_REFERENCES) || !preference.isAllowOverride()){
+ prefStore.setValue(FILTER_COMMON_NAME_REFERENCES, preference.getValue());
+ }
+ }
+
+
preference = getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);
if (preference != null){
if (!prefStore.getBoolean(SHOW_TAXONNODE_WIZARD) || !preference.isAllowOverride()){
}
}
+ preference = getPreferenceFromDB(PreferencePredicate.ShowIdInSource);
+ if (preference != null){
+ if (!prefStore.getBoolean(SHOW_ID_IN_SOURCE) || !preference.isAllowOverride()){
+ prefStore.setValue(SHOW_ID_IN_SOURCE, preference.getValue());
+ }
+ }
+
+ preference = getPreferenceFromDB(PreferencePredicate.ShowNameInSource);
+ if (preference != null){
+ if (!prefStore.getBoolean(SHOW_NAME_IN_SOURCE) || !preference.isAllowOverride()){
+ prefStore.setValue(SHOW_NAME_IN_SOURCE, preference.getValue());
+ }
+ }
+
+ preference = getPreferenceFromDB(PreferencePredicate.DisableMultiClassification);
+ if (preference != null){
+ if (!prefStore.getBoolean(DISABLE_MULTI_CLASSIFICATION) || !preference.isAllowOverride()){
+ prefStore.setValue(DISABLE_MULTI_CLASSIFICATION, preference.getValue());
+ }
+ }
+
}