2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.preference
;
12 import java
.util
.List
;
14 import org
.eclipse
.jface
.viewers
.ISelectionChangedListener
;
15 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
16 import org
.eclipse
.jface
.viewers
.ListViewer
;
17 import org
.eclipse
.jface
.viewers
.SelectionChangedEvent
;
18 import org
.eclipse
.jface
.viewers
.StructuredSelection
;
19 import org
.eclipse
.swt
.SWT
;
20 import org
.eclipse
.swt
.custom
.CLabel
;
21 import org
.eclipse
.swt
.layout
.GridData
;
22 import org
.eclipse
.swt
.layout
.GridLayout
;
23 import org
.eclipse
.swt
.widgets
.Composite
;
24 import org
.eclipse
.swt
.widgets
.Control
;
25 import org
.eclipse
.ui
.IWorkbench
;
26 import org
.eclipse
.ui
.IWorkbenchPreferencePage
;
28 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureTreeService
;
29 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
30 import eu
.etaxonomy
.taxeditor
.featuretree
.FeatureTreeContentProvider
;
31 import eu
.etaxonomy
.taxeditor
.featuretree
.FeatureTreeLabelProvider
;
32 import eu
.etaxonomy
.taxeditor
.model
.MessagingUtils
;
33 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
34 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
37 * <p>DefaultFeatureTreePreferenecs class.</p>
40 * @created Sep 16, 2010
43 public class DefaultFeatureTreePreferenecs
extends CdmPreferencePage
implements IWorkbenchPreferencePage
{
45 private FeatureTree defaultFeatureTreeForTextualDescription
;
46 private FeatureTree defaultFeatureTreeForStructuredDescription
;
49 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
53 protected Control
createContents(Composite parent
) {
54 defaultFeatureTreeForTextualDescription
= PreferencesUtil
.getDefaultFeatureTreeForTextualDescription();
55 defaultFeatureTreeForStructuredDescription
= PreferencesUtil
.getDefaultFeatureTreeForStructuredDescription();
57 Composite composite
= new Composite(parent
, SWT
.NULL
);
58 composite
.setLayout(new GridLayout());
59 if(!CdmStore
.isActive()) {
60 MessagingUtils
.noDataSourceWarningDialog(null);
62 createTextTreeSelection(composite
);
63 createStructureTreeSelection(composite
);
69 private void createTextTreeSelection(Composite parent
){
70 final CLabel label
= new CLabel(parent
, SWT
.NONE
);
71 label
.setText("Deafult Feature Tree to be used for textual descriptions");
73 final ListViewer viewer
= new ListViewer(parent
);
74 viewer
.getControl().setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
76 viewer
.setContentProvider(new FeatureTreeContentProvider());
77 viewer
.setLabelProvider(new FeatureTreeLabelProvider());
79 viewer
.addSelectionChangedListener(new ISelectionChangedListener() {
82 public void selectionChanged(SelectionChangedEvent arg0
) {
83 IStructuredSelection selection
= (IStructuredSelection
) viewer
.getSelection();
85 defaultFeatureTreeForTextualDescription
= (FeatureTree
) selection
.getFirstElement();
89 List
<FeatureTree
> input
= CdmStore
.getService(IFeatureTreeService
.class).list(FeatureTree
.class, null, null, null, null);
91 viewer
.setInput(input
);
93 if(defaultFeatureTreeForTextualDescription
!= null){
94 IStructuredSelection selection
= new StructuredSelection(defaultFeatureTreeForTextualDescription
);
95 viewer
.setSelection(selection
, true);
99 private void createStructureTreeSelection(Composite parent
){
100 final CLabel label
= new CLabel(parent
, SWT
.NONE
);
101 label
.setText("Deafult Feature Tree to be used for structured descriptions");
103 final ListViewer viewer
= new ListViewer(parent
);
104 viewer
.getControl().setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
106 viewer
.setContentProvider(new FeatureTreeContentProvider());
107 viewer
.setLabelProvider(new FeatureTreeLabelProvider());
109 viewer
.addSelectionChangedListener(new ISelectionChangedListener() {
112 public void selectionChanged(SelectionChangedEvent arg0
) {
113 IStructuredSelection selection
= (IStructuredSelection
) viewer
.getSelection();
115 defaultFeatureTreeForStructuredDescription
= (FeatureTree
) selection
.getFirstElement();
119 List
<FeatureTree
> input
= CdmStore
.getService(IFeatureTreeService
.class).list(FeatureTree
.class, null, null, null, null);
121 viewer
.setInput(input
);
123 if(defaultFeatureTreeForStructuredDescription
!= null){
124 IStructuredSelection selection
= new StructuredSelection(defaultFeatureTreeForStructuredDescription
);
125 viewer
.setSelection(selection
, true);
131 public void init(IWorkbench workbench
) {
132 setPreferenceStore(PreferencesUtil
.getPreferenceStore());
137 public boolean performOk() {
138 String defaultFeatureTreeForTextualDescriptionUuid
= "";
139 String defaultFeatureTreeForStructuredDescriptionUuid
= "";
141 if(defaultFeatureTreeForTextualDescription
!= null){
142 defaultFeatureTreeForTextualDescriptionUuid
= defaultFeatureTreeForTextualDescription
.getUuid().toString();
144 if(defaultFeatureTreeForStructuredDescription
!= null){
145 defaultFeatureTreeForStructuredDescriptionUuid
= defaultFeatureTreeForStructuredDescription
.getUuid().toString();
148 getPreferenceStore().setValue(IPreferenceKeys
.FEATURE_TREE_DEFAULT_TEXT
, defaultFeatureTreeForTextualDescriptionUuid
);
149 getPreferenceStore().setValue(IPreferenceKeys
.FEATURE_TREE_DEFAULT_STRUCTURE
, defaultFeatureTreeForStructuredDescriptionUuid
);
151 return super.performOk();