2 * Copyright (C) 2019 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
.ui
.dialog
.configurator
;
11 import java
.util
.ArrayList
;
12 import java
.util
.Arrays
;
13 import java
.util
.Collections
;
14 import java
.util
.Comparator
;
15 import java
.util
.List
;
17 import org
.apache
.commons
.lang3
.StringUtils
;
18 import org
.eclipse
.jface
.layout
.GridLayoutFactory
;
19 import org
.eclipse
.jface
.viewers
.ArrayContentProvider
;
20 import org
.eclipse
.jface
.viewers
.CheckStateChangedEvent
;
21 import org
.eclipse
.jface
.viewers
.CheckboxTableViewer
;
22 import org
.eclipse
.jface
.viewers
.ICheckStateListener
;
23 import org
.eclipse
.jface
.viewers
.LabelProvider
;
24 import org
.eclipse
.jface
.wizard
.WizardDialog
;
25 import org
.eclipse
.swt
.SWT
;
26 import org
.eclipse
.swt
.events
.SelectionAdapter
;
27 import org
.eclipse
.swt
.events
.SelectionEvent
;
28 import org
.eclipse
.swt
.events
.SelectionListener
;
29 import org
.eclipse
.swt
.layout
.GridData
;
30 import org
.eclipse
.swt
.layout
.GridLayout
;
31 import org
.eclipse
.swt
.widgets
.Button
;
32 import org
.eclipse
.swt
.widgets
.Combo
;
33 import org
.eclipse
.swt
.widgets
.Composite
;
34 import org
.eclipse
.swt
.widgets
.Event
;
35 import org
.eclipse
.swt
.widgets
.Label
;
36 import org
.eclipse
.swt
.widgets
.Listener
;
37 import org
.osgi
.service
.component
.annotations
.ConfigurationPolicy
;
39 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
40 import eu
.etaxonomy
.cdm
.api
.service
.IClassificationService
;
41 import eu
.etaxonomy
.cdm
.api
.service
.ITermTreeService
;
42 import eu
.etaxonomy
.cdm
.api
.service
.description
.AggregationMode
;
43 import eu
.etaxonomy
.cdm
.api
.service
.description
.AggregationSourceMode
;
44 import eu
.etaxonomy
.cdm
.api
.service
.description
.DistributionAggregation
;
45 import eu
.etaxonomy
.cdm
.api
.service
.description
.DistributionAggregationConfiguration
;
46 import eu
.etaxonomy
.cdm
.filter
.LogicFilter
;
47 import eu
.etaxonomy
.cdm
.model
.location
.NamedAreaLevel
;
48 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
49 import eu
.etaxonomy
.cdm
.model
.reference
.OriginalSourceType
;
50 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
51 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonNode
;
52 import eu
.etaxonomy
.cdm
.model
.term
.TermTree
;
53 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
54 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
55 import eu
.etaxonomy
.taxeditor
.model
.AbstractUtility
;
56 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
57 import eu
.etaxonomy
.taxeditor
.ui
.combo
.OriginalSourceTypeComparator
;
58 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.SuperAreaSelectionWizard
;
64 public class DistributionAggregationWizardPage
65 extends AggregationConfigurationWizardPage
<DistributionAggregation
,DistributionAggregationConfiguration
>
66 implements Listener
, SelectionListener
{
68 private Button buttonSuperArea
;
69 private Combo comboAreaLevel
;
70 private Combo comboStatusOrder
;
72 private Combo comboClassificationSelection
;
73 private List
<Classification
> classifications
;
74 private Classification selectedClassification
;
78 private Object
[] checkedElements
;
80 public DistributionAggregationWizardPage(DistributionAggregationConfiguration configurator
) {
81 super(Messages
.DistributionAggregationWizardPage_TITLE
);
82 this.configurator
= configurator
;
84 this.setDescription(Messages
.DistributionAggregationWizardPage_DESCRIPTION
);
88 public void createControl(Composite parent
) {
89 final Composite composite
= new Composite(parent
, SWT
.NULL
);
91 String taxonStr
= ""; //$NON-NLS-1$
92 int count
= configurator
.getTaxonNodeFilter().getSubtreeFilter().size();
93 boolean areaChecked
= configurator
.getAggregationModes().contains(AggregationMode
.WithinTaxon
);
94 boolean toParentChecked
= configurator
.getAggregationModes().contains(AggregationMode
.ToParent
);
95 for (LogicFilter
<TaxonNode
> filter
: configurator
.getTaxonNodeFilter().getSubtreeFilter()){
96 subTreeNode
= CdmApplicationState
.getCurrentAppConfig().getTaxonNodeService().load(filter
.getUuid());
98 if (subTreeNode
.hasTaxon()){
99 taxonStr
+= subTreeNode
.getTaxon().getName().getTitleCache();
101 taxonStr
+= ", "; //$NON-NLS-1$
105 if (StringUtils
.isNotBlank(taxonStr
)){
106 checkUseSelectedSubtree
= new Button(composite
, SWT
.RADIO
);
107 checkUseSelectedSubtree
.setText(Messages
.AggregationWizardPage_SUBTREE
+ " "+ taxonStr
);
108 checkUseSelectedSubtree
.addListener(SWT
.Selection
, new Listener() {
110 public void handleEvent(Event e
) {
111 Button b
= (Button
) e
.widget
;
112 GridData data
= (GridData
) comboClassificationSelection
.getLayoutData();
113 data
.exclude
= b
.getSelection();
114 comboClassificationSelection
.setEnabled(!data
.exclude
);
116 updateHigherRankCombo();
120 checkUseSelectedTaxonNode
= new Button(composite
, SWT
.RADIO
);
121 checkUseSelectedTaxonNode
.setText(Messages
.AggregationWizardPage_SINGLE_TAXON
+ " " + taxonStr
+ " "+Messages
.AggregationWizardPage_WITHOUT_CHILDREN
);
122 checkUseSelectedTaxonNode
.addListener(SWT
.Selection
, new Listener() {
124 public void handleEvent(Event e
) {
125 Button b
= (Button
) e
.widget
;
126 GridData data
= (GridData
) comboClassificationSelection
.getLayoutData();
127 data
.exclude
= b
.getSelection();
128 comboClassificationSelection
.setEnabled(!data
.exclude
);
129 updateHigherRankCombo();
133 checkUseHigherLevel
= new Button(composite
, SWT
.RADIO
);
134 checkUseHigherLevel
.setText(Messages
.DistributionAggregationWizardPage_CLASSIFICATION
);
135 checkUseHigherLevel
.addListener(SWT
.Selection
, new Listener() {
137 public void handleEvent(Event e
) {
138 Button b
= (Button
) e
.widget
;
139 GridData data
= (GridData
) comboClassificationSelection
.getLayoutData();
140 data
.exclude
= b
.getSelection();
141 comboClassificationSelection
.setEnabled(data
.exclude
);
142 updateHigherRankCombo();
146 GridLayoutFactory
.fillDefaults();
148 if (subTreeNode
!= null){
149 selectedClassification
= subTreeNode
.getClassification();
151 GridData gridDataClassificationCombo
= new GridData();
152 gridDataClassificationCombo
= new GridData(GridData
.BEGINNING
, GridData
.CENTER
, true, false);
153 gridDataClassificationCombo
.horizontalIndent
= 5;
155 comboClassificationSelection
= new Combo(composite
, SWT
.BORDER
| SWT
.READ_ONLY
);
156 comboClassificationSelection
.setLayoutData(gridDataClassificationCombo
);
157 classifications
= CdmStore
.getService(IClassificationService
.class).list(null, null, null, null, null);
158 Collections
.sort(classifications
, new Comparator
<Classification
>() {
161 public int compare(Classification o1
, Classification o2
) {
165 int result
= o1
.getTitleCache().compareTo(o2
.getTitleCache());
167 return o1
.getUuid().compareTo(o2
.getUuid());
172 for(Classification tree
: classifications
){
173 comboClassificationSelection
.add(tree
.getName().getText(), classifications
.indexOf(tree
));
176 comboClassificationSelection
.select(classifications
.indexOf(selectedClassification
));
177 comboClassificationSelection
.addSelectionListener(this);
179 if (StringUtils
.isNotBlank(taxonStr
)){
180 checkUseSelectedSubtree
.setSelection(true);
181 comboClassificationSelection
.setEnabled(false);
183 checkUseHigherLevel
.setSelection(true);
185 Label separator
= new Label(composite
, SWT
.HORIZONTAL
| SWT
.SEPARATOR
);
186 GridData gridData
= new GridData(GridData
.FILL_HORIZONTAL
);
187 gridData
.horizontalSpan
= 2;
188 gridData
.verticalIndent
= 5;
189 separator
.setLayoutData(gridData
);
191 GridLayout gridLayout
= new GridLayout();
192 gridLayout
.numColumns
= 1;
194 composite
.setLayout(gridLayout
);
195 final Composite control
= new Composite(composite
, SWT
.NULL
);
196 GridLayout gridLayoutControl
= new GridLayout();
197 gridLayoutControl
.numColumns
= 2;
198 control
.setLayout(gridLayoutControl
);
199 control
.setLayoutData(new GridData(SWT
.FILL
, SWT
.LEFT
, true, true));
201 Label higherRankLabel
= new Label(control
, SWT
.NULL
);
202 higherRankLabel
.setText(Messages
.DistributionAggregationWizardPage_HIGHEST_RANK
);
204 comboHigherRank
= new Combo(control
, SWT
.BORDER
| SWT
.READ_ONLY
);
205 updateHigherRankCombo();
206 setConfigValueToRankCombo(comboHigherRank
);
207 comboHigherRank
.addListener(SWT
.Selection
, this);
209 Label lowerRankLabel
= new Label(control
, SWT
.NULL
);
210 lowerRankLabel
.setText(Messages
.DistributionAggregationWizardPage_LOWEST_RANK
);
211 comboLowerRank
= new Combo(control
, SWT
.BORDER
| SWT
.READ_ONLY
);
212 updateLowerRankCombo();
214 setConfigValueToRankCombo(comboLowerRank
);
215 comboLowerRank
.addListener(SWT
.Selection
, this);
217 separator
= new Label(composite
, SWT
.HORIZONTAL
| SWT
.SEPARATOR
);
218 gridData
= new GridData(GridData
.FILL_HORIZONTAL
);
219 gridData
.horizontalSpan
= 2;
220 gridData
.verticalIndent
= 5;
221 separator
.setLayoutData(gridData
);
223 Label aggregationModeLabel
= new Label(control
, SWT
.NULL
);
224 aggregationModeLabel
.setText(Messages
.DistributionAggregationWizardPage_AGGREGATION_MODE
);
225 aggregationModeLabel
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_AGGR_MODE
);
226 aggregationModeViewer
= CheckboxTableViewer
.newCheckList(control
, SWT
.BORDER
| SWT
.SINGLE
);
227 aggregationModeViewer
.setContentProvider(new ArrayContentProvider());
228 aggregationModeViewer
.setLabelProvider(new LabelProvider(){
230 public String
getText(Object element
){
231 if (element
instanceof AggregationMode
){
232 if (((AggregationMode
)element
).equals(AggregationMode
.ToParent
)){
233 return Messages
.DistributionAggregationWizardPage_CHILD_PARENT
;
235 if (((AggregationMode
)element
).equals(AggregationMode
.WithinTaxon
)){
236 return Messages
.DistributionAggregationWizardPage_AREA
;
243 List
<AggregationMode
> aggregationModeList
= new ArrayList
<>();
244 for (AggregationMode mode
: AggregationMode
.values()){
245 aggregationModeList
.add(mode
);
248 aggregationModeViewer
.setInput(aggregationModeList
);
250 for (AggregationMode mode
: configurator
.getAggregationModes()){
251 if (mode
instanceof AggregationMode
){
252 aggregationModeViewer
.setChecked(mode
, true);
257 aggregationModeViewer
.addCheckStateListener(new ICheckStateListener(){
259 public void checkStateChanged( CheckStateChangedEvent event
){
260 Object
[] checked
=aggregationModeViewer
.getCheckedElements();
261 boolean areachecked
= false;
262 boolean toParentChecked
= false;
263 for (int i
= 0; i
<checked
.length
;i
++){
264 if (checked
[i
] instanceof AggregationMode
){
265 if (((AggregationMode
)checked
[i
]).equals(AggregationMode
.WithinTaxon
)){
268 if (((AggregationMode
)checked
[i
]).equals(AggregationMode
.ToParent
)){
269 toParentChecked
= true;
273 comboAreaLevel
.setEnabled(areachecked
);
274 buttonSuperArea
.setEnabled(areachecked
);
275 comboSourceModeWithinTaxon
.setEnabled(areachecked
);
276 comboSourceModeChildParent
.setEnabled(toParentChecked
);
277 AggregationSourceMode areaMode
= (AggregationSourceMode
)comboSourceModeWithinTaxon
.getData(comboSourceModeWithinTaxon
.getText());
278 AggregationSourceMode taxonMode
= (AggregationSourceMode
)comboSourceModeChildParent
.getData(comboSourceModeChildParent
.getText());
279 sourceTypeViewer
.getTable().setEnabled(((areachecked
&& (areaMode
.equals(AggregationSourceMode
.ALL
) || areaMode
.equals(AggregationSourceMode
.ALL_SAMEVALUE
) ) )|| toParentChecked
&& (taxonMode
.equals(AggregationSourceMode
.ALL
) || taxonMode
.equals(AggregationSourceMode
.ALL_SAMEVALUE
) )) );
280 getWizard().getContainer().updateButtons();
283 Label areaLevelLabel
= new Label(control
, SWT
.NULL
);
284 areaLevelLabel
.setText(Messages
.DistributionAggregationWizardPage_AREA_LEVEL
);
285 areaLevelLabel
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_AREA_LEVEL
);
286 comboAreaLevel
= new Combo(control
, SWT
.BORDER
| SWT
.READ_ONLY
);
287 List
<NamedAreaLevel
> namedAreaLevels
= CdmStore
.getTermManager().getAllTerms(TermType
.NamedAreaLevel
, null);
288 for (NamedAreaLevel level
: namedAreaLevels
) {
289 comboAreaLevel
.add(level
.getLabel());
290 comboAreaLevel
.setData(level
.getLabel(), level
);
292 comboAreaLevel
.addSelectionListener(this);
293 comboAreaLevel
.setEnabled(areaChecked
);
296 GridData gridData2
= new GridData();
297 gridData2
.horizontalSpan
= 2;
298 gridData2
.horizontalAlignment
= SWT
.LEFT
;
300 buttonSuperArea
= new Button(control
, SWT
.PUSH
);
301 buttonSuperArea
.setLayoutData(gridData2
);
302 buttonSuperArea
.setEnabled(configurator
.getAggregationModes().contains(AggregationMode
.WithinTaxon
));
303 buttonSuperArea
.setText(Messages
.DistributionAggregationWizardPage_SELECT_AREA
);
304 buttonSuperArea
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_AREA_SELECTION
);
305 buttonSuperArea
.addSelectionListener(new SelectionAdapter() {
307 public void widgetSelected(SelectionEvent event
) {
308 SuperAreaSelectionWizard availableDistributionWizard
= new SuperAreaSelectionWizard(configurator
, (NamedAreaLevel
)comboAreaLevel
.getData(comboAreaLevel
.getText()));
309 WizardDialog dialog
= new WizardDialog(AbstractUtility
.getShell(),
310 availableDistributionWizard
);
311 int open
= dialog
.open();
315 Label sourceModeLabel
= new Label(control
, SWT
.NULL
);
317 sourceModeLabel
.setText(Messages
.DistributionAggregationWizardPage_SOURCEMODE_CHILD_PARENT
);
318 sourceModeLabel
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_CHILD_PARENT
);
319 comboSourceModeChildParent
= new Combo(control
, SWT
.BORDER
| SWT
.READ_ONLY
);
320 comboSourceModeChildParent
.setText(Messages
.DistributionAggregationWizardPage_AGGREGATION_MODE
);
322 for (AggregationSourceMode mode
:AggregationSourceMode
.values()){
323 comboSourceModeChildParent
.add(mode
.getLabel());
324 comboSourceModeChildParent
.setData(mode
.getLabel(), mode
);
327 comboSourceModeChildParent
.addSelectionListener(this);
328 comboSourceModeChildParent
.setEnabled(toParentChecked
);
330 if (configurator
.getToParentSourceMode() == null ){
331 comboSourceModeChildParent
.select(index
);
333 for (String text
:comboSourceModeChildParent
.getItems()){
334 if (comboSourceModeChildParent
.getData(text
).equals(configurator
.getToParentSourceMode())){
335 comboSourceModeChildParent
.select(index
);
341 Label sourceModeLabelSuperArea
= new Label(control
, SWT
.NULL
);
342 sourceModeLabelSuperArea
.setText(Messages
.DistributionAggregationWizardPage_SOURCE_MODE_AREA
);
343 sourceModeLabelSuperArea
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_SOURCEMODE_AREA
);
344 comboSourceModeWithinTaxon
= new Combo(control
, SWT
.BORDER
| SWT
.READ_ONLY
);
345 comboSourceModeWithinTaxon
.setText(Messages
.DistributionAggregationWizardPage_AGGREGATION_MODE
);
347 for (AggregationSourceMode mode
:AggregationSourceMode
.values()){
348 comboSourceModeWithinTaxon
.add(mode
.getLabel());
349 comboSourceModeWithinTaxon
.setData(mode
.getLabel(), mode
);
352 comboSourceModeWithinTaxon
.addSelectionListener(this);
353 comboSourceModeWithinTaxon
.setEnabled(configurator
.getAggregationModes().contains(AggregationMode
.WithinTaxon
));
356 if (configurator
.getWithinTaxonSourceMode() == null ){
357 comboSourceModeWithinTaxon
.select(index
);
359 for (String text
:comboSourceModeWithinTaxon
.getItems()){
360 if (comboSourceModeWithinTaxon
.getData(text
).equals(configurator
.getWithinTaxonSourceMode())){
361 comboSourceModeWithinTaxon
.select(index
);
369 Label sourceTypeLabel
= new Label(control
, SWT
.NULL
);
370 sourceTypeLabel
.setText(Messages
.DistributionAggregationWizardPage_SOURCE_TYPE
);
371 sourceTypeLabel
.setToolTipText(Messages
.DistributionAggregationWizardPage_TOOLTIP_SOURCE_TYPE
);
372 sourceTypeViewer
= CheckboxTableViewer
.newCheckList(control
, SWT
.BORDER
| SWT
.SINGLE
);
373 sourceTypeViewer
.setContentProvider(new ArrayContentProvider());
375 sourceTypeViewer
.addCheckStateListener(new ICheckStateListener(){
377 public void checkStateChanged( CheckStateChangedEvent event
){
378 checkedElements
=sourceTypeViewer
.getCheckedElements();
379 getWizard().getContainer().updateButtons();
383 List
<String
> typeStrings
= new ArrayList
<>();
384 OriginalSourceType
[] typeArray
= OriginalSourceType
.values();
385 Arrays
.sort(typeArray
, new OriginalSourceTypeComparator(null));
386 Arrays
.stream(typeArray
).forEach(p
->typeMap
.put(p
.getLabel(), p
));
387 Arrays
.stream(typeArray
).forEach(p
->typeStrings
.add(p
.getLabel()));
388 sourceTypeViewer
.setInput(typeStrings
);
389 for (OriginalSourceType sourceType
: configurator
.getAggregatingSourceTypes()){
390 sourceTypeViewer
.setChecked(sourceType
.getLabel(), true);
392 // sourceTypeViewer.setChecked(OriginalSourceType.PrimaryTaxonomicSource.getLabel(), true);
393 // sourceTypeViewer.getTable().setEnabled(false);
394 AggregationSourceMode taxonMode
= configurator
.getToParentSourceMode();
395 AggregationSourceMode areaMode
= configurator
.getWithinTaxonSourceMode();
396 sourceTypeViewer
.getTable().setEnabled(((areaChecked
&& (areaMode
.equals(AggregationSourceMode
.ALL
) || areaMode
.equals(AggregationSourceMode
.ALL_SAMEVALUE
) ) )|| toParentChecked
&& (taxonMode
.equals(AggregationSourceMode
.ALL
) || taxonMode
.equals(AggregationSourceMode
.ALL_SAMEVALUE
) )) );
400 Label selectStatusLabel
= new Label(control
, SWT
.NULL
);
401 selectStatusLabel
.setText(Messages
.DistributionAggregationWizardPage_STATUS_ORDER
);
402 comboStatusOrder
= new Combo(control
, SWT
.PUSH
);
403 comboStatusOrder
.add(Messages
.DistributionAggregationWizardPage_DEFAULT
);
404 comboStatusOrder
.setData(Messages
.DistributionAggregationWizardPage_DEFAULT
, null);
405 for (TermTree
<?
> tree
: CdmStore
.getService(ITermTreeService
.class).list(TermType
.PresenceAbsenceTerm
, null, 0, null,null)){
406 comboStatusOrder
.add(tree
.getTitleCache());
407 comboStatusOrder
.setData(tree
.getTitleCache(), tree
);
410 comboStatusOrder
.addSelectionListener(this);
412 if (configurator
.getStatusOrder() == null ){
413 comboStatusOrder
.select(index
);
415 for (String text
:comboStatusOrder
.getItems()){
416 if (text
.equals(configurator
.getStatusOrder().getTitleCache())){
417 comboStatusOrder
.select(index
);
423 checkIncludeUnpublishedTaxa
= new Button(composite
, SWT
.CHECK
);
424 checkIncludeUnpublishedTaxa
.setText(Messages
.DistributionAggregationWizardPage_EXPORT_UNPUBLISHED
);
425 checkIncludeUnpublishedTaxa
.setSelection(true);
427 GridLayoutFactory
.fillDefaults();
429 setControl(composite
);
434 public void widgetSelected(SelectionEvent e
) {
436 if (e
.getSource().equals(comboSourceModeChildParent
) || e
.getSource().equals(comboSourceModeWithinTaxon
)){
437 AggregationSourceMode modeChild
= (AggregationSourceMode
)comboSourceModeChildParent
.getData(comboSourceModeChildParent
.getText());
438 AggregationSourceMode modeArea
= (AggregationSourceMode
)comboSourceModeWithinTaxon
.getData(comboSourceModeWithinTaxon
.getText());
439 if ((comboSourceModeChildParent
.isEnabled() && (modeChild
!= null && modeChild
.equals(AggregationSourceMode
.ALL
) || modeChild
.equals(AggregationSourceMode
.ALL_SAMEVALUE
))) ||(comboSourceModeWithinTaxon
.isEnabled() && (modeArea
!= null && modeArea
.equals(AggregationSourceMode
.ALL
) || modeArea
.equals(AggregationSourceMode
.ALL_SAMEVALUE
)))){
440 sourceTypeViewer
.getTable().setEnabled(true);
442 sourceTypeViewer
.getTable().setEnabled(false);
446 if (e
.getSource().equals(comboAreaLevel
)){
447 buttonSuperArea
.setEnabled(StringUtils
.isNotBlank(comboAreaLevel
.getText()));
452 public void widgetDefaultSelected(SelectionEvent e
) {
453 // TODO Auto-generated method stub
457 public void handleEvent(Event event
) {
458 if (event
.widget
.equals(comboHigherRank
)){
459 updateLowerRankCombo();
461 if (event
.widget
.equals(comboClassificationSelection
)){
462 updateHigherRankCombo();
463 updateLowerRankCombo();
465 if (event
.widget
.equals(this.checkUseHigherLevel
)){
466 updateHigherRankCombo();
467 updateLowerRankCombo();
469 if (event
.widget
.equals(this.checkUseSelectedSubtree
)){
470 updateHigherRankCombo();
471 updateLowerRankCombo();
473 if (event
.widget
.equals(this.checkUseSelectedTaxonNode
)){
474 updateHigherRankCombo();
475 updateLowerRankCombo();
479 public TermTree
getStatusOrder(){
480 if (StringUtils
.isNotBlank(comboStatusOrder
.getText())){
481 return (TermTree
<?
>)comboStatusOrder
.getData(comboStatusOrder
.getText());
486 public boolean useUnpublishedData(){
487 return checkIncludeUnpublishedTaxa
.getSelection();
490 public Classification
getSelectedClassification() {
491 return selectedClassification
;
494 public TaxonNode
getSubTreeNode() {