Project

General

Profile

« Previous | Next » 

Revision 3319e347

Added by Katja Luther about 6 years ago

minor

View differences:

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