Project

General

Profile

Download (4.29 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
        String prefValue = PreferencesUtil.getStringValue(PreferencePredicate.CommonNameLanguages.getKey());
104
        String[] prefArray = prefValue.split(";");
105
        List<UUID> uuids = new ArrayList();
106
        for (String uuid: prefArray){
107
            uuids.add(UUID.fromString(uuid));
108
        }
109
        List<Language> preferedTerms = CdmStore.getTermManager().getTerms(uuids, Language.class);
110

    
111
        tableViewer.setCheckedElements(preferedTerms.toArray());
112
    }
113

    
114

    
115

    
116
	@Override
117
    public boolean performOk() {
118
        if(!CdmStore.isActive()) {
119
            return true;
120
        }
121

    
122
        if(super.checkNoneChecked()){
123
            return false;
124
        }
125

    
126
        getConversationHolder().commit(true);
127

    
128
        if(tableViewer!=null){
129
            List<UUID> preferredTermUuids = new ArrayList<UUID>();
130
            for (Object element : tableViewer.getCheckedElements()){
131
                preferredTermUuids.add(((Language)element).getUuid());
132
            }
133

    
134
            String preferredLanguagesString = StringUtils.join(preferredTermUuids, ";");
135
            PreferencesUtil.setStringValue(PreferencePredicate.CommonNameLanguages.getKey(), preferredLanguagesString);
136

    
137

    
138
            PreferencesUtil.firePreferencesChanged(this.getClass());
139
        }
140

    
141
        return super.performOk();
142
    }
143
}
(3-3/22)