Project

General

Profile

Download (7.74 KB) Statistics
| Branch: | Tag: | Revision:
1 643bfc6c Patrick Plitzner
/**
2
 * Copyright (C) 2017 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 652496d7 Andreas Müller
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet;
10 643bfc6c Patrick Plitzner
11 501ab766 Patrick Plitzner
import java.util.ArrayList;
12
import java.util.List;
13 a3c56b93 Patrick Plitzner
import java.util.stream.Collectors;
14
15 643bfc6c Patrick Plitzner
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 e7df9bb1 Patrick Plitzner
import org.eclipse.swt.widgets.Button;
20 643bfc6c Patrick Plitzner
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;
24
25 b9dc6bb1 Andreas Müller
import eu.etaxonomy.cdm.model.term.TermType;
26 2fe68f38 Patrick Plitzner
import eu.etaxonomy.cdm.model.description.Character;
27 19ff6869 Andreas Müller
import eu.etaxonomy.cdm.model.term.FeatureTree;
28 f953c7b6 Patrick Plitzner
import eu.etaxonomy.cdm.model.name.Rank;
29 a3c56b93 Patrick Plitzner
import eu.etaxonomy.cdm.persistence.dto.TermDto;
30
import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;
31 87abc2b1 Patrick Plitzner
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
32 b13380e4 Patrick Plitzner
import eu.etaxonomy.taxeditor.featuretree.e4.FeatureTreeEditorComposite;
33 e7df9bb1 Patrick Plitzner
import eu.etaxonomy.taxeditor.model.ImageResources;
34 49aad4b2 Patrick Plitzner
import eu.etaxonomy.taxeditor.ui.combo.TermUuidComboViewer;
35 d8baa72e Patrick Plitzner
import eu.etaxonomy.taxeditor.util.TaxonTreeNodeContentProvider;
36
import eu.etaxonomy.taxeditor.util.TaxonTreeNodeLabelProvider;
37 49aad4b2 Patrick Plitzner
38 643bfc6c Patrick Plitzner
/**
39
 * @author pplitzner
40
 * @since Nov 21, 2017
41
 *
42
 */
43 652496d7 Andreas Müller
public class DescriptiveDataSetComposite extends Composite {
44
    private Text txtDescriptiveDataSet;
45 b13380e4 Patrick Plitzner
    private TermUuidComboViewer comboRankMin;
46
    private TermUuidComboViewer comboRankMax;
47 2fe68f38 Patrick Plitzner
    private FeatureTreeEditorComposite<Character> featureTreeEditorComposite;
48 b13380e4 Patrick Plitzner
    private TreeViewer taxonNodeTree;
49 501ab766 Patrick Plitzner
    private List<TermDto> areas = new ArrayList<>();
50 73f6a95e Patrick Plitzner
    private Text textAreaText;
51 e7df9bb1 Patrick Plitzner
    private Button btnChooseArea;
52 aeef81e4 Patrick Plitzner
    private Button btnRemoveRankMin;
53
    private Button btnRemoveRankMax;
54 643bfc6c Patrick Plitzner
55 652496d7 Andreas Müller
    public DescriptiveDataSetComposite(Composite parent, int style) {
56 643bfc6c Patrick Plitzner
        super(parent, style);
57
58 73f6a95e Patrick Plitzner
        setLayout(new GridLayout(3, false));
59 fba1574a Patrick Plitzner
60 73f6a95e Patrick Plitzner
        Label lblNewLabel = new Label(this, SWT.NONE);
61
        lblNewLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
62 652496d7 Andreas Müller
        lblNewLabel.setText(Messages.DescriptiveDataSetComposite_LABEL);
63 73f6a95e Patrick Plitzner
64 652496d7 Andreas Müller
        txtDescriptiveDataSet = new Text(this, SWT.BORDER);
65
        txtDescriptiveDataSet.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
66 73f6a95e Patrick Plitzner
67 d44ef0c2 Patrick Plitzner
        Label lblNewLabel_1 = new Label(this, SWT.NONE);
68 652496d7 Andreas Müller
        lblNewLabel_1.setText(Messages.DescriptiveDataSetComposite_TAXON_FILTER);
69 b13380e4 Patrick Plitzner
70 643bfc6c Patrick Plitzner
        Label lblNewLabel_2 = new Label(this, SWT.NONE);
71
        lblNewLabel_2.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
72 652496d7 Andreas Müller
        lblNewLabel_2.setText(Messages.DescriptiveDataSetComposite_RANK_MIN);
73 643bfc6c Patrick Plitzner
74 aeef81e4 Patrick Plitzner
        Composite composite_1 = new Composite(this, SWT.NONE);
75
        composite_1.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
76
        GridLayout gl_composite_1 = new GridLayout(2, false);
77
        gl_composite_1.horizontalSpacing = 0;
78
        gl_composite_1.verticalSpacing = 0;
79
        gl_composite_1.marginWidth = 0;
80
        gl_composite_1.marginHeight = 0;
81
        composite_1.setLayout(gl_composite_1);
82
83
        comboRankMin = new TermUuidComboViewer(composite_1, SWT.NONE);
84
        comboRankMin.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
85 b13380e4 Patrick Plitzner
        comboRankMin.setInput(TermType.Rank);
86 aeef81e4 Patrick Plitzner
87
        btnRemoveRankMin = new Button(composite_1, SWT.NONE);
88
        btnRemoveRankMin.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
89
90 73f6a95e Patrick Plitzner
        Tree tree = new Tree(this, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
91
        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4));
92
        taxonNodeTree = new TreeViewer(tree);
93 643bfc6c Patrick Plitzner
94 d44ef0c2 Patrick Plitzner
        taxonNodeTree.setContentProvider(new TaxonTreeNodeContentProvider());
95
        taxonNodeTree.setLabelProvider(new TaxonTreeNodeLabelProvider());
96 643bfc6c Patrick Plitzner
97
        Label lblNewLabel_3 = new Label(this, SWT.NONE);
98
        lblNewLabel_3.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
99 652496d7 Andreas Müller
        lblNewLabel_3.setText(Messages.DescriptiveDataSetComposite_RANK_MAX);
100 643bfc6c Patrick Plitzner
101 aeef81e4 Patrick Plitzner
        Composite composite_2 = new Composite(this, SWT.NONE);
102
        composite_2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
103
        GridLayout gl_composite_2 = new GridLayout(2, false);
104
        gl_composite_2.horizontalSpacing = 0;
105
        gl_composite_2.verticalSpacing = 0;
106
        gl_composite_2.marginWidth = 0;
107
        gl_composite_2.marginHeight = 0;
108
        composite_2.setLayout(gl_composite_2);
109
110
        comboRankMax = new TermUuidComboViewer(composite_2, SWT.NONE);
111
        comboRankMax.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
112 b13380e4 Patrick Plitzner
        comboRankMax.setInput(TermType.Rank);
113 aeef81e4 Patrick Plitzner
114
        btnRemoveRankMax = new Button(composite_2, SWT.NONE);
115
        btnRemoveRankMax.setImage(ImageResources.getImage(ImageResources.TRASH_ICON));
116 643bfc6c Patrick Plitzner
117
        Label lblNewLabel_4 = new Label(this, SWT.NONE);
118 73f6a95e Patrick Plitzner
        lblNewLabel_4.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
119 652496d7 Andreas Müller
        lblNewLabel_4.setText(Messages.DescriptiveDataSetComposite_AREA);
120 643bfc6c Patrick Plitzner
121 e7df9bb1 Patrick Plitzner
        Composite composite = new Composite(this, SWT.NONE);
122
        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
123 a3c56b93 Patrick Plitzner
        GridLayout gl_composite = new GridLayout(2, false);
124 e7df9bb1 Patrick Plitzner
        gl_composite.horizontalSpacing = 0;
125
        gl_composite.verticalSpacing = 0;
126
        gl_composite.marginHeight = 0;
127
        gl_composite.marginWidth = 0;
128
        composite.setLayout(gl_composite);
129
130
        textAreaText = new Text(composite, SWT.BORDER);
131 73f6a95e Patrick Plitzner
        textAreaText.setEditable(false);
132 652496d7 Andreas Müller
        textAreaText.setText(Messages.DescriptiveDataSetComposite_CHOOSE);
133 73f6a95e Patrick Plitzner
        textAreaText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
134 d8baa72e Patrick Plitzner
135 e7df9bb1 Patrick Plitzner
        btnChooseArea = new Button(composite, SWT.NONE);
136
        btnChooseArea.setImage(ImageResources.getImage(ImageResources.BROWSE_ICON));
137
138 2fe68f38 Patrick Plitzner
        featureTreeEditorComposite = new FeatureTreeEditorComposite<Character>(this, SWT.NONE);
139 aeef81e4 Patrick Plitzner
        featureTreeEditorComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
140 643bfc6c Patrick Plitzner
    }
141
142
    @Override
143
    protected void checkSubclass() {
144
        // Disable the check that prevents subclassing of SWT components
145
    }
146
    public Text getTxt_label() {
147 652496d7 Andreas Müller
        return txtDescriptiveDataSet;
148 b13380e4 Patrick Plitzner
    }
149 f953c7b6 Patrick Plitzner
150
    public TermUuidComboViewer getRankMin() {
151 b13380e4 Patrick Plitzner
        return comboRankMin;
152
    }
153 f953c7b6 Patrick Plitzner
    public TermUuidComboViewer getRankMax() {
154 b13380e4 Patrick Plitzner
        return comboRankMax;
155
    }
156 f953c7b6 Patrick Plitzner
157
    public void setRankMin(Rank min) {
158 5cea1626 Patrick Plitzner
        comboRankMin.setElement(min);
159 f953c7b6 Patrick Plitzner
    }
160
    public void setRankMax(Rank max) {
161 5cea1626 Patrick Plitzner
        comboRankMax.setElement(max);
162 f953c7b6 Patrick Plitzner
    }
163
164 2fe68f38 Patrick Plitzner
    public FeatureTreeEditorComposite<Character> getFeatureTreeEditorComposite() {
165 ff58a197 Patrick Plitzner
        return featureTreeEditorComposite;
166
    }
167
168 2fe68f38 Patrick Plitzner
    public FeatureTree<Character> getCharacters(){
169 b13380e4 Patrick Plitzner
        return featureTreeEditorComposite.getFeatureTree();
170
    }
171 2fe68f38 Patrick Plitzner
    public void setCharacters(FeatureTree<Character> characters) {
172 b752be34 Patrick Plitzner
        featureTreeEditorComposite.setSelectedTree(characters);
173 f953c7b6 Patrick Plitzner
    }
174
175 739cbae5 Patrick Plitzner
    public TreeViewer getTaxonNodeTree() {
176
        return taxonNodeTree;
177 f953c7b6 Patrick Plitzner
    }
178 501ab766 Patrick Plitzner
    public List<TermDto> getAreas() {
179 a3c56b93 Patrick Plitzner
        return areas;
180 643bfc6c Patrick Plitzner
    }
181 501ab766 Patrick Plitzner
    public void setAreas(List<TermDto> areas) {
182 a3c56b93 Patrick Plitzner
        this.areas = areas;
183
        textAreaText.setText(areas.stream().map(area->{
184
            area.localize(new TermRepresentation_L10n());
185
            return area.getRepresentation_L10n();
186
        }).collect(Collectors.joining(", ")));
187 e7df9bb1 Patrick Plitzner
    }
188
    public Button getBtnChooseArea() {
189
        return btnChooseArea;
190
    }
191 aeef81e4 Patrick Plitzner
    public Button getBtnRemoveRankMin() {
192
        return btnRemoveRankMin;
193
    }
194
    public Button getBtnRemoveRankMax() {
195
        return btnRemoveRankMax;
196
    }
197 643bfc6c Patrick Plitzner
}