ref #9307: add preference page for termtrees and adapt label provider
authorKatja Luther <k.luther@bgbm.org>
Fri, 20 Nov 2020 10:51:14 +0000 (11:51 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 20 Nov 2020 10:51:14 +0000 (11:51 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/TermDtoLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/FeatureTreeLabelProvider.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/e4/AbstractTermTreeEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/e4/out/cdmlight/CdmLightExportWizardE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TermTreePreference.java [new file with mode: 0755]

index aee3e4dd78189ed31c18c28ee4a6e95a73c89418..43754a79022e9d6eaf40a1d0fabdc594f4352fe0 100644 (file)
@@ -49,8 +49,8 @@ public class TermDtoLabelProvider extends StyledCellLabelProvider {
     @Override
     public void update(ViewerCell cell) {
         Object element = cell.getElement();
-
-        String text = getText(element);
+        boolean showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true);
+        String text = getText(element, showIdInVoc);
         cell.setText(text);
 
         Styler styler = null;
@@ -69,15 +69,14 @@ public class TermDtoLabelProvider extends StyledCellLabelProvider {
         super.update(cell);
     }
 
-    public String getText(Object element) {
+    public String getText(Object element, boolean showIdInVocabulary) {
         String label = null;
         if(element instanceof AbstractTermDto){
             AbstractTermDto termDto = (AbstractTermDto)element;
             termDto.localize(new TermRepresentation_L10n());
             label = termDto.getRepresentation_L10n();
 
-            if(PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS, true)
-                    && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
+            if(showIdInVocabulary && element instanceof TermDto && ((TermDto) termDto).getIdInVocabulary()!=null){
                 label = CdmUtils.concat(" : ", ((TermDto) termDto).getIdInVocabulary(), label);
             }
         }
index 6d2a5c7aa11d7b3d9643cd76377a34fe500ade82..9ef9384556007f67e3c3ebfd4ab0a7789bddb146 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.taxeditor.featuretree;
 
 import java.util.ArrayList;
 
-import org.eclipse.jface.viewers.LabelProvider;
-
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
 import eu.etaxonomy.cdm.model.term.Representation;
@@ -21,6 +19,8 @@ import eu.etaxonomy.cdm.model.term.TermTree;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
 import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
+import eu.etaxonomy.taxeditor.editor.definedterm.TermDtoLabelProvider;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -29,21 +29,18 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @created Aug 5, 2010
  * @version 1.0
  */
-public class FeatureTreeLabelProvider extends LabelProvider {
+public class FeatureTreeLabelProvider extends TermDtoLabelProvider{
 
        /** {@inheritDoc} */
        @Override
-       public String getText(Object element) {
+       public String getText(Object element, boolean showIdInVoc) {
                if(element instanceof TermTreeDto){
                        return ((TermTreeDto) element).getRepresentation_L10n() != null? ((TermTreeDto) element).getRepresentation_L10n() :((TermTreeDto) element).getTitleCache()  ;
                }else if(element instanceof TermNodeDto){
                    TermDto term = ((TermNodeDto) element).getTerm();
                    if(term!=null){
-                       String rep = term.getRepresentation_L10n();
-//                     if (rep == null){
-//                         rep = term.getPreferredRepresentation(new ArrayList<Language>());
-//                     }
-                       return rep != null? rep : term.getTitleCache();
+                       showIdInVoc = PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR, true);
+                       return super.getText(term, showIdInVoc);
                    }
 
                }else if(element instanceof TermNode){
index 7b9bd2641a278e1c38227b4c4ae71294afdd3cda..9d9a40d1213bde720e947da060463adfb02f97f7 100644 (file)
@@ -280,6 +280,7 @@ public abstract class AbstractTermTreeEditor<T extends DefinedTermBase> implemen
         }
 
         // commit the conversation and start a new transaction immediately
+        Object[] expandedElements = this.viewer.getExpandedElements();
         conversation.commit(true);
         if (operationList != null && !operationList.isEmpty()){
             for (AbstractPostOperation<TermNode> operation: operationList){
@@ -301,6 +302,7 @@ public abstract class AbstractTermTreeEditor<T extends DefinedTermBase> implemen
 //        initializeTrees();
 
         this.setDirty(false);
+        this.viewer.setExpandedElements(expandedElements);
        }
 
     private void initializeTrees() {
index e52853716b71c2f0ea92802d93f92fd8792c81a7..17362d6a949bbac482a757c756236aca75564764 100644 (file)
@@ -61,13 +61,10 @@ AbstractExportWizardE4<CdmLightExportConfigurator> {
     @Override
     public void init() {
         configurator = new CdmLightExportConfigurator(null);
-//        configurator.setCreateCondensedDistributionString(PreferencesUtil.getBooleanValue(PreferencePredicate.CdmLightExportCondensedDistributionString.getKey()));
-//        if (configurator.isCreateCondensedDistributionString()){
         String recipeString = PreferencesUtil.getStringValue(PreferencePredicate.CondensedDistributionRecipe.getKey());
         if (StringUtils.isNotBlank(recipeString)){
             configurator.setCondensedDistributionRecipe(CondensedDistributionRecipe.valueOf(recipeString));
         }
-//        }
         if (selection instanceof TreeSelection && !selection.isEmpty() &&  selection.getFirstElement() instanceof TaxonNodeDto){
             selectedNode = (TaxonNodeDto)selection.getFirstElement();
 
index 99a5d73904d7c26afba4fb266cc1253c805347ef..084568b9ce79c03b7aa75011a001a9640eafe224 100644 (file)
@@ -54,6 +54,10 @@ public interface IPreferenceKeys {
         * Whether to show vocabulary of the term when displaying it's label.
         */
        public static final String SHOW_VOCABULARY_ID_FOR_TERM_LABELS = "eu.etaxonomy.taxeditor.showVocabularyIdForTermLabels";
+       /**
+     * Whether to show vocabulary of the term when displaying it's label.
+     */
+    public static final String SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR = "eu.etaxonomy.taxeditor.showVocabularyIdForTermLabelsInTreeEditor";
 
        /**
         *
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TermTreePreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/TermTreePreference.java
new file mode 100755 (executable)
index 0000000..fd34a0d
--- /dev/null
@@ -0,0 +1,30 @@
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
+
+/**
+ * @author k.luther
+ * @since Nov 20, 2020
+ */
+public class TermTreePreference extends FieldEditorPreferencePageE4 {
+
+    @Override
+    protected void createFieldEditors() {
+        addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS_IN_TREE_EDITOR),
+                Messages.DescriptionPreferences_1,
+                getFieldEditorParent()));
+
+    }
+
+}