automated build configuration is on its way
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / preference / menu / RankMenuPreferences.java
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 package eu.etaxonomy.taxeditor.preference.menu;
10
11 import java.util.List;
12
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.events.SelectionAdapter;
15 import org.eclipse.swt.events.SelectionEvent;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.ui.IWorkbenchPreferencePage;
19
20 import eu.etaxonomy.cdm.model.name.Rank;
21 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
22 import eu.etaxonomy.taxeditor.store.TermStore;
23
24 /**
25 * Allows the user to choose which <code>Rank</code>s to display in the
26 * <code>PropertySheet</code> drop-down menu for <code>TaxonNameBase</code>.
27 *
28 * @author p.ciardelli
29 * @author n.hoffmann
30 * @created 17.09.2008
31 * @version 1.0
32 */
33 public class RankMenuPreferences extends AbstractMenuPreferences<Rank> implements
34 IWorkbenchPreferencePage {
35
36 /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.rank"{trunked}</code> */
37 public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.ranks";
38
39 /**
40 * <p>Constructor for RankMenuPreferences.</p>
41 */
42 public RankMenuPreferences() {
43 super("Rank Preferences",
44 "Choose which ranks to display in the property sheet drop-down menu.",
45 false);
46 }
47
48 /* (non-Javadoc)
49 * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#createAdditionalContent(org.eclipse.swt.widgets.Composite)
50 */
51 /** {@inheritDoc} */
52 @Override
53 protected void createAdditionalContent(Composite container) {
54
55 // TODO create option to sort ranks either alphabetically or hierarchically (asc- or descending)
56
57 final Button checkbox = new Button(container, SWT.CHECK);
58 checkbox.setText("Sort ranks hierarchically (default is alphabetically)");
59
60 checkbox.setSelection(PreferencesUtil.getSortRanksHierarchichally());
61
62 checkbox.addSelectionListener(new SelectionAdapter() {
63 /* (non-Javadoc)
64 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
65 */
66 @Override
67 public void widgetSelected(SelectionEvent e) {
68 PreferencesUtil.setSortRanksHierarchichally(checkbox.getSelection());
69 refresh(TermStore.getRanks());
70 }
71 });
72
73 }
74
75 /* (non-Javadoc)
76 * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTermClass()
77 */
78 /** {@inheritDoc} */
79 @Override
80 protected Class<Rank> getTermClass() {
81 return Rank.class;
82 }
83
84 /* (non-Javadoc)
85 * @see eu.etaxonomy.taxeditor.preference.menu.AbstractMenuPreferences#getTerms()
86 */
87 @Override
88 protected List<Rank> getTerms() {
89 return TermStore.getRanks();
90 }
91
92 }