Revision 3319e347
Added by Katja Luther about 6 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/ChecklistEditorE4.java | ||
---|---|---|
11 | 11 |
|
12 | 12 |
import java.util.ArrayList; |
13 | 13 |
import java.util.Arrays; |
14 |
import java.util.Collection; |
|
14 | 15 |
import java.util.Collections; |
15 | 16 |
import java.util.HashMap; |
16 | 17 |
import java.util.List; |
... | ... | |
133 | 134 |
private Label statusLabel; |
134 | 135 |
|
135 | 136 |
private ChecklistLabelProvider labelProvider; |
136 |
|
|
137 |
private SortedSet<DefinedTermBase> terms = null;
|
|
137 |
//TODO: maybe it is better to use a hashMap for better handling of adding and removing terms?? |
|
138 |
private HashMap<String, DefinedTermBase> terms = null;
|
|
138 | 139 |
private ToolItem toolItem; |
139 | 140 |
private ChecklistDropdownSelectionListenerE4 dropListener; |
140 | 141 |
private Text searchText; |
... | ... | |
189 | 190 |
|
190 | 191 |
|
191 | 192 |
labelProvider = new ChecklistLabelProvider(this.viewer); |
192 |
|
|
193 |
terms = labelProvider.getNamedAreas(false); |
|
193 |
SortedSet<DefinedTermBase> termSet = labelProvider.getNamedAreas(false); |
|
194 |
terms = new HashMap(); |
|
195 |
for (DefinedTermBase term : termSet){ |
|
196 |
terms.put(term.getTitleCache(), term); |
|
197 |
} |
|
194 | 198 |
if (terms == null){ |
195 | 199 |
MessagingUtils.informationDialog(Messages.ChecklistEditor_NO_AREAS, Messages.ChecklistEditor_NO_AREAS_MESSAGE); |
196 | 200 |
this.dispose(); |
... | ... | |
272 | 276 |
} |
273 | 277 |
|
274 | 278 |
private void createToolbarItems() { |
275 |
dropListener = new ChecklistDropdownSelectionListenerE4(toolItem, this, terms); |
|
279 |
SortedSet<DefinedTermBase> termsList = getLabelProvider().getNamedAreas(false); |
|
280 |
dropListener = new ChecklistDropdownSelectionListenerE4(toolItem, this, termsList); |
|
276 | 281 |
|
277 |
for (DefinedTermBase<DefinedTermBase> term : terms) { |
|
282 |
for (DefinedTermBase<DefinedTermBase> term : termsList) {
|
|
278 | 283 |
if(term!=null){ |
279 | 284 |
dropListener.add(term); |
280 | 285 |
} |
... | ... | |
370 | 375 |
} else{ |
371 | 376 |
columnIndex = 1; |
372 | 377 |
} |
373 |
for (DefinedTermBase<DefinedTermBase> term : terms) {
|
|
378 |
for (DefinedTermBase<DefinedTermBase> term : getLabelProvider().getNamedAreas(false)) {
|
|
374 | 379 |
if(term != null){ |
375 | 380 |
restoreColumnWidth.put(columnIndex, PreferencesUtil.getPreferenceStore().getBoolean(term.getUuid().toString())); |
376 | 381 |
if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){ |
... | ... | |
399 | 404 |
* @return |
400 | 405 |
*/ |
401 | 406 |
private TableViewerColumn addTableViewerColumn(String title, int bound, final int colNumber) { |
407 |
|
|
402 | 408 |
final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); |
403 | 409 |
final TableColumn column = viewerColumn.getColumn(); |
404 | 410 |
column.setText(title); |
... | ... | |
517 | 523 |
//create new Items for Dropdown menue |
518 | 524 |
Table table = viewer.getTable(); |
519 | 525 |
table.setRedraw(false); |
520 |
SortedSet<DefinedTermBase> oldTerms = terms;
|
|
526 |
Collection<DefinedTermBase> oldTerms = terms.values();
|
|
521 | 527 |
|
522 | 528 |
// if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){ |
523 | 529 |
// |
... | ... | |
525 | 531 |
// terms = (SortedSet<DefinedTermBase>) labelProvider.getTermsOrderedByLabels(labelProvider.getNamedAreas(), CdmStore.getDefaultLanguage()); |
526 | 532 |
// } |
527 | 533 |
SortedSet<DefinedTermBase> newTerms = labelProvider.getNamedAreas(true); |
534 |
//terms = newTerms; |
|
528 | 535 |
toolItem.removeSelectionListener(dropListener); |
529 | 536 |
hideDistributionColumns(oldTerms); |
530 | 537 |
createToolbarItems(); |
531 | 538 |
toolItem.addSelectionListener(dropListener); |
532 | 539 |
|
533 |
for(DefinedTermBase term:newTerms){ |
|
534 |
int count = viewer.getTable().getColumnCount(); |
|
535 |
String termLable = term.getTitleCache();; |
|
536 |
if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){ |
|
537 |
if (term.getIdInVocabulary() != null){ |
|
538 |
termLable = term.getIdInVocabulary(); |
|
539 |
} |
|
540 |
} |
|
541 |
addTableViewerColumn(termLable, 200, count); |
|
542 |
acitivateNewColumnInDropDownMenu(term); |
|
540 |
//check which terms are deleted and which are new. |
|
541 |
TableColumn[] columns = viewer.getTable().getColumns() ; |
|
542 |
|
|
543 |
for (DefinedTermBase term:newTerms){ |
|
544 |
boolean isNew = true; |
|
545 |
for (DefinedTermBase oldTerm: oldTerms){ |
|
546 |
if(oldTerm.getTitleCache().equals(term.getTitleCache())){ |
|
547 |
|
|
548 |
isNew = true; |
|
549 |
break; |
|
550 |
} |
|
551 |
|
|
552 |
} |
|
553 |
if (isNew){ |
|
554 |
terms.put(term.getTitleCache(),term); |
|
555 |
String termLable = term.getTitleCache();; |
|
556 |
if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){ |
|
557 |
if (term.getIdInVocabulary() != null){ |
|
558 |
termLable = term.getIdInVocabulary(); |
|
559 |
} |
|
560 |
} |
|
561 |
int count = viewer.getTable().getColumnCount(); |
|
562 |
addTableViewerColumn(termLable, 200, count); |
|
563 |
acitivateNewColumnInDropDownMenu(term); |
|
564 |
} |
|
543 | 565 |
} |
566 |
for (DefinedTermBase oldTerm:oldTerms){ |
|
567 |
boolean delete = true; |
|
568 |
for (DefinedTermBase term: newTerms){ |
|
569 |
if(oldTerm.getTitleCache().equals(term.getTitleCache())){ |
|
570 |
delete = false; |
|
571 |
break; |
|
572 |
} |
|
573 |
|
|
574 |
} |
|
575 |
if (delete){ |
|
576 |
terms.remove(oldTerm); |
|
577 |
for (TableColumn column: columns){ |
|
578 |
if (column.getText().equals(oldTerm.getTitleCache())){ |
|
579 |
column.dispose(); |
|
580 |
} |
|
581 |
} |
|
582 |
} |
|
583 |
} |
|
584 |
|
|
585 |
|
|
586 |
// for(DefinedTermBase term:terms.values()){ |
|
587 |
// int count = viewer.getTable().getColumnCount(); |
|
588 |
// |
|
589 |
// //add new terms |
|
590 |
// for (TableColumn column: columns){ |
|
591 |
// if (terms.){ |
|
592 |
// break; |
|
593 |
// } |
|
594 |
// } |
|
595 |
// |
|
596 |
//// String termLable = term.getTitleCache();; |
|
597 |
//// if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){ |
|
598 |
//// if (term.getIdInVocabulary() != null){ |
|
599 |
//// termLable = term.getIdInVocabulary(); |
|
600 |
//// } |
|
601 |
//// } |
|
602 |
//// addTableViewerColumn(termLable, 200, count); |
|
603 |
//// acitivateNewColumnInDropDownMenu(term); |
|
604 |
// } |
|
544 | 605 |
viewer.setLabelProvider(labelProvider); |
545 | 606 |
// getService().schedule(new ChecklistJob(LOADING_TAXA, selectedTaxonNodes), Job.LONG); |
546 | 607 |
table.setRedraw(true); |
... | ... | |
558 | 619 |
} |
559 | 620 |
} |
560 | 621 |
|
561 |
private void hideDistributionColumns(SortedSet<DefinedTermBase> oldTerms) {
|
|
622 |
private void hideDistributionColumns(Collection<DefinedTermBase> oldTerms) {
|
|
562 | 623 |
TableColumn[] columns = viewer.getTable().getColumns(); |
563 | 624 |
for(int i=4; i<columns.length; i++){ |
564 | 625 |
//remove all columns |
Also available in: Unified diff
minor