ref #8488: adapt all term related preferences, abcd preference page
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / menu / CommonNameLanguagePreferences.java
index 28e9969fa973a4a4b912f76da57791ce6a746330..7321816ad3ab5a7a7e9a2b69b4422ad993f52cb2 100755 (executable)
@@ -9,24 +9,9 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.term.TermType;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
 
 /**
  * <p>LanguageMenuPreferences class.</p>
@@ -35,7 +20,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 24.08.2009
  * @version 1.0
  */
-public class CommonNameLanguagePreferences extends AbstractMenuPreferences<Language> {
+public class CommonNameLanguagePreferences extends GeneralTermPreference {
 
        /** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
        public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
@@ -44,97 +29,11 @@ public class CommonNameLanguagePreferences extends AbstractMenuPreferences<Langu
         * <p>Constructor for LanguageMenuPreferences.</p>
         */
        public CommonNameLanguagePreferences() {
-               super("Language Preferences", //$NON-NLS-1$
-                               Messages.CommonNameLanguageMenuPreferences_configure,
-                               false);
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createContents(org.eclipse.swt.widgets.Composite)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public Control createContents(Composite parent) {
-               Control control = super.createContents(parent);
-
-               tableViewer.setLabelProvider(new LanguagePreferenceLabelProvider());
-               tableViewer.setComparator(new ViewerComparator());
-
-               return control;
+           super();
+        setLocalPref(true);
+        setPredicate(PreferencePredicate.CommonNameLanguages);
+        type = TermType.Language;
        }
 
-       class LanguagePreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
-                */
-               @Override
-        public Image getColumnImage(Object element, int columnIndex) {
-                       return null;
-               }
-
-               /* (non-Javadoc)
-                * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
-                */
-               @Override
-        public String getColumnText(Object element, int columnIndex) {
-                       String description = ((Language)element).getDescription();
-                       if (description == null) {
-                               description = ((Language)element).getLabel() + Messages.LanguageMenuPreferences_warning;
-                       }
-                       return description;
-               }
-
-               }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected TermType getTermType() {
-               return TermType.Language;
-       }
-
-
-       @Override
-       protected void refresh(List<Language> definedTerms) {
-        tableViewer.setInput(definedTerms);
-        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.CommonNameLanguages.getKey(), true);
-        List<Language> preferedTerms = CdmStore.getTermManager().getTerms(uuids, Language.class);
-
-        tableViewer.setCheckedElements(preferedTerms.toArray());
-    }
-
-
-
-       @Override
-    public boolean performOk() {
-        if(!CdmStore.isActive()) {
-            return true;
-        }
-
-        if(super.checkNoneChecked()){
-            return false;
-        }
-
-        if(tableViewer!=null){
-            List<UUID> preferredTermUuids = new ArrayList<UUID>();
-            if (tableViewer.getCheckedElements().length == tableViewer.getTable().getItemCount()){
-                PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), "");
-            }else{
-                for (Object element : tableViewer.getCheckedElements()){
-                    preferredTermUuids.add(((Language)element).getUuid());
-                }
-
-                String preferredLanguagesString = StringUtils.join(preferredTermUuids, ";");
-                PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), preferredLanguagesString);
-                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.CommonNameLanguages.getKey()), true);
-            }
-
-            PreferencesUtil.firePreferencesChanged(this.getClass());
-        }
 
-        return super.performOk();
-    }
 }