Project

General

Profile

Download (4.47 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.preference.menu;
11

    
12
import java.util.ArrayList;
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import org.apache.commons.lang.StringUtils;
17
import org.eclipse.jface.viewers.ITableLabelProvider;
18
import org.eclipse.jface.viewers.LabelProvider;
19
import org.eclipse.jface.viewers.ViewerComparator;
20
import org.eclipse.swt.graphics.Image;
21
import org.eclipse.swt.widgets.Composite;
22
import org.eclipse.swt.widgets.Control;
23

    
24
import eu.etaxonomy.cdm.model.common.Language;
25
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26
import eu.etaxonomy.cdm.model.term.TermType;
27
import eu.etaxonomy.taxeditor.l10n.Messages;
28
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
30

    
31
/**
32
 * <p>LanguageMenuPreferences class.</p>
33
 *
34
 * @author p.ciardelli
35
 * @created 24.08.2009
36
 * @version 1.0
37
 */
38
public class CommonNameLanguagePreferences extends AbstractMenuPreferences<Language> {
39

    
40
	/** Constant <code>ID="eu.etaxonomy.taxeditor.preferences.lang"{trunked}</code> */
41
	public final static String ID = "eu.etaxonomy.taxeditor.preferences.languages"; //$NON-NLS-1$
42

    
43
	/**
44
	 * <p>Constructor for LanguageMenuPreferences.</p>
45
	 */
46
	public CommonNameLanguagePreferences() {
47
		super("Language Preferences", //$NON-NLS-1$
48
				Messages.CommonNameLanguageMenuPreferences_configure,
49
				false);
50
	}
51

    
52
	/* (non-Javadoc)
53
	 * @see eu.etaxonomy.taxeditor.preference.AbstractMenuPreferences#createContents(org.eclipse.swt.widgets.Composite)
54
	 */
55
	/** {@inheritDoc} */
56
	@Override
57
	public Control createContents(Composite parent) {
58
		Control control = super.createContents(parent);
59

    
60
		tableViewer.setLabelProvider(new LanguagePreferenceLabelProvider());
61
		tableViewer.setComparator(new ViewerComparator());
62

    
63
		return control;
64
	}
65

    
66
	class LanguagePreferenceLabelProvider extends LabelProvider implements ITableLabelProvider{
67

    
68
		/* (non-Javadoc)
69
		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
70
		 */
71
		@Override
72
        public Image getColumnImage(Object element, int columnIndex) {
73
			return null;
74
		}
75

    
76
		/* (non-Javadoc)
77
		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
78
		 */
79
		@Override
80
        public String getColumnText(Object element, int columnIndex) {
81
			String description = ((Language)element).getDescription();
82
			if (description == null) {
83
				description = ((Language)element).getLabel() + Messages.LanguageMenuPreferences_warning;
84
			}
85
			return description;
86
		}
87

    
88
		}
89

    
90
	/* (non-Javadoc)
91
	 * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
92
	 */
93
	/** {@inheritDoc} */
94
	@Override
95
	protected TermType getTermType() {
96
		return TermType.Language;
97
	}
98

    
99

    
100
	@Override
101
	protected void refresh(List<Language> definedTerms) {
102
        tableViewer.setInput(definedTerms);
103
        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.CommonNameLanguages.getKey());
104
        List<Language> preferedTerms = CdmStore.getTermManager().getTerms(uuids, Language.class);
105

    
106
        tableViewer.setCheckedElements(preferedTerms.toArray());
107
    }
108

    
109

    
110

    
111
	@Override
112
    public boolean performOk() {
113
        if(!CdmStore.isActive()) {
114
            return true;
115
        }
116

    
117
        if(super.checkNoneChecked()){
118
            return false;
119
        }
120

    
121
        if(tableViewer!=null){
122
            List<UUID> preferredTermUuids = new ArrayList<UUID>();
123
            if (tableViewer.getCheckedElements().length == tableViewer.getTable().getItemCount()){
124
                PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), "");
125
            }else{
126
                for (Object element : tableViewer.getCheckedElements()){
127
                    preferredTermUuids.add(((Language)element).getUuid());
128
                }
129

    
130
                String preferredLanguagesString = StringUtils.join(preferredTermUuids, ";");
131
                PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), preferredLanguagesString);
132
                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.CommonNameLanguages.getKey()), true);
133
            }
134

    
135
            PreferencesUtil.firePreferencesChanged(this.getClass());
136
        }
137

    
138
        return super.performOk();
139
    }
140
}
(3-3/21)