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>
* @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$
* <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();
- }
}