2 * Copyright (C) 2017 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.
9 package eu
.etaxonomy
.taxeditor
.editor
.descriptiveDataSet
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
13 import java
.util
.stream
.Collectors
;
15 import org
.eclipse
.jface
.viewers
.TreeViewer
;
16 import org
.eclipse
.swt
.SWT
;
17 import org
.eclipse
.swt
.layout
.GridData
;
18 import org
.eclipse
.swt
.layout
.GridLayout
;
19 import org
.eclipse
.swt
.widgets
.Button
;
20 import org
.eclipse
.swt
.widgets
.Composite
;
21 import org
.eclipse
.swt
.widgets
.Label
;
22 import org
.eclipse
.swt
.widgets
.Text
;
23 import org
.eclipse
.swt
.widgets
.Tree
;
25 import eu
.etaxonomy
.cdm
.model
.common
.TermType
;
26 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
27 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
28 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermDto
;
29 import eu
.etaxonomy
.cdm
.remote
.l10n
.TermRepresentation_L10n
;
30 import eu
.etaxonomy
.taxeditor
.editor
.l10n
.Messages
;
31 import eu
.etaxonomy
.taxeditor
.featuretree
.e4
.FeatureTreeEditorComposite
;
32 import eu
.etaxonomy
.taxeditor
.model
.ImageResources
;
33 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermUuidComboViewer
;
34 import eu
.etaxonomy
.taxeditor
.util
.TaxonTreeNodeContentProvider
;
35 import eu
.etaxonomy
.taxeditor
.util
.TaxonTreeNodeLabelProvider
;
42 public class DescriptiveDataSetComposite
extends Composite
{
43 private Text txtDescriptiveDataSet
;
44 private TermUuidComboViewer comboRankMin
;
45 private TermUuidComboViewer comboRankMax
;
46 private FeatureTreeEditorComposite featureTreeEditorComposite
;
47 private TreeViewer taxonNodeTree
;
48 private List
<TermDto
> areas
= new ArrayList
<>();
49 private Text textAreaText
;
50 private Button btnChooseArea
;
51 private Button btnRemoveRankMin
;
52 private Button btnRemoveRankMax
;
54 public DescriptiveDataSetComposite(Composite parent
, int style
) {
57 setLayout(new GridLayout(3, false));
59 Label lblNewLabel
= new Label(this, SWT
.NONE
);
60 lblNewLabel
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false, 1, 1));
61 lblNewLabel
.setText(Messages
.DescriptiveDataSetComposite_LABEL
);
63 txtDescriptiveDataSet
= new Text(this, SWT
.BORDER
);
64 txtDescriptiveDataSet
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
66 Label lblNewLabel_1
= new Label(this, SWT
.NONE
);
67 lblNewLabel_1
.setText(Messages
.DescriptiveDataSetComposite_TAXON_FILTER
);
69 Label lblNewLabel_2
= new Label(this, SWT
.NONE
);
70 lblNewLabel_2
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false, 1, 1));
71 lblNewLabel_2
.setText(Messages
.DescriptiveDataSetComposite_RANK_MIN
);
73 Composite composite_1
= new Composite(this, SWT
.NONE
);
74 composite_1
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
75 GridLayout gl_composite_1
= new GridLayout(2, false);
76 gl_composite_1
.horizontalSpacing
= 0;
77 gl_composite_1
.verticalSpacing
= 0;
78 gl_composite_1
.marginWidth
= 0;
79 gl_composite_1
.marginHeight
= 0;
80 composite_1
.setLayout(gl_composite_1
);
82 comboRankMin
= new TermUuidComboViewer(composite_1
, SWT
.NONE
);
83 comboRankMin
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
84 comboRankMin
.setInput(TermType
.Rank
);
86 btnRemoveRankMin
= new Button(composite_1
, SWT
.NONE
);
87 btnRemoveRankMin
.setImage(ImageResources
.getImage(ImageResources
.TRASH_ICON
));
89 Tree tree
= new Tree(this, SWT
.H_SCROLL
| SWT
.V_SCROLL
| SWT
.FULL_SELECTION
);
90 tree
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true, 1, 4));
91 taxonNodeTree
= new TreeViewer(tree
);
93 taxonNodeTree
.setContentProvider(new TaxonTreeNodeContentProvider());
94 taxonNodeTree
.setLabelProvider(new TaxonTreeNodeLabelProvider());
96 Label lblNewLabel_3
= new Label(this, SWT
.NONE
);
97 lblNewLabel_3
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false, 1, 1));
98 lblNewLabel_3
.setText(Messages
.DescriptiveDataSetComposite_RANK_MAX
);
100 Composite composite_2
= new Composite(this, SWT
.NONE
);
101 composite_2
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
102 GridLayout gl_composite_2
= new GridLayout(2, false);
103 gl_composite_2
.horizontalSpacing
= 0;
104 gl_composite_2
.verticalSpacing
= 0;
105 gl_composite_2
.marginWidth
= 0;
106 gl_composite_2
.marginHeight
= 0;
107 composite_2
.setLayout(gl_composite_2
);
109 comboRankMax
= new TermUuidComboViewer(composite_2
, SWT
.NONE
);
110 comboRankMax
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
111 comboRankMax
.setInput(TermType
.Rank
);
113 btnRemoveRankMax
= new Button(composite_2
, SWT
.NONE
);
114 btnRemoveRankMax
.setImage(ImageResources
.getImage(ImageResources
.TRASH_ICON
));
116 Label lblNewLabel_4
= new Label(this, SWT
.NONE
);
117 lblNewLabel_4
.setLayoutData(new GridData(SWT
.RIGHT
, SWT
.CENTER
, false, false, 1, 1));
118 lblNewLabel_4
.setText(Messages
.DescriptiveDataSetComposite_AREA
);
120 Composite composite
= new Composite(this, SWT
.NONE
);
121 composite
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, false, false, 1, 1));
122 GridLayout gl_composite
= new GridLayout(2, false);
123 gl_composite
.horizontalSpacing
= 0;
124 gl_composite
.verticalSpacing
= 0;
125 gl_composite
.marginHeight
= 0;
126 gl_composite
.marginWidth
= 0;
127 composite
.setLayout(gl_composite
);
129 textAreaText
= new Text(composite
, SWT
.BORDER
);
130 textAreaText
.setEditable(false);
131 textAreaText
.setText(Messages
.DescriptiveDataSetComposite_CHOOSE
);
132 textAreaText
.setLayoutData(new GridData(SWT
.FILL
, SWT
.CENTER
, true, false, 1, 1));
134 btnChooseArea
= new Button(composite
, SWT
.NONE
);
135 btnChooseArea
.setImage(ImageResources
.getImage(ImageResources
.BROWSE_ICON
));
137 featureTreeEditorComposite
= new FeatureTreeEditorComposite(this, SWT
.NONE
);
138 featureTreeEditorComposite
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true, 2, 1));
142 protected void checkSubclass() {
143 // Disable the check that prevents subclassing of SWT components
145 public Text
getTxt_label() {
146 return txtDescriptiveDataSet
;
149 public TermUuidComboViewer
getRankMin() {
152 public TermUuidComboViewer
getRankMax() {
156 public void setRankMin(Rank min
) {
157 comboRankMin
.setElement(min
);
159 public void setRankMax(Rank max
) {
160 comboRankMax
.setElement(max
);
163 public FeatureTreeEditorComposite
getFeatureTreeEditorComposite() {
164 return featureTreeEditorComposite
;
167 public FeatureTree
getCharacters(){
168 return featureTreeEditorComposite
.getFeatureTree();
170 public void setCharacters(FeatureTree characters
) {
171 featureTreeEditorComposite
.setSelectedTree(characters
);
174 public TreeViewer
getTaxonNodeTree() {
175 return taxonNodeTree
;
177 public List
<TermDto
> getAreas() {
180 public void setAreas(List
<TermDto
> areas
) {
182 textAreaText
.setText(areas
.stream().map(area
->{
183 area
.localize(new TermRepresentation_L10n());
184 return area
.getRepresentation_L10n();
185 }).collect(Collectors
.joining(", ")));
187 public Button
getBtnChooseArea() {
188 return btnChooseArea
;
190 public Button
getBtnRemoveRankMin() {
191 return btnRemoveRankMin
;
193 public Button
getBtnRemoveRankMax() {
194 return btnRemoveRankMax
;