Project

General

Profile

« Previous | Next » 

Revision 3423aff4

Added by Katja Luther about 6 years ago

improve table reload after selecting new areas

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/ChecklistEditorE4.java
368 368
	private Map<Integer, Boolean> restoreValuesForColumnWidth(List<String> titles,
369 369
			List<Integer> bounds) {
370 370
		Map<Integer, Boolean> restoreColumnWidth = new HashMap<Integer, Boolean>();
371
		if (terms != null) {
371
		if (labelProvider.getNamedAreas(false) != null) {
372 372
		    int columnIndex;
373 373
		    if (PreferencesUtil.isShowRankInChecklistEditor()){
374 374
		        columnIndex = 2;
......
523 523
    	//create new Items for Dropdown menue
524 524
    	Table table = viewer.getTable();
525 525
    	table.setRedraw(false);
526
    	Collection<DefinedTermBase> oldTerms = terms.values();
526
    	Collection<DefinedTermBase> oldTerms = labelProvider.getNamedAreas(false);
527 527

  
528 528
//    	if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
529 529
//
......
533 533
    	SortedSet<DefinedTermBase> newTerms = labelProvider.getNamedAreas(true);
534 534
    	//terms = newTerms;
535 535
    	toolItem.removeSelectionListener(dropListener);
536
    	hideDistributionColumns(oldTerms);
536
//    	hideDistributionColumns(oldTerms);
537 537
    	createToolbarItems();
538 538
    	toolItem.addSelectionListener(dropListener);
539 539

  
540 540
    	//check which terms are deleted and which are new.
541 541
    	TableColumn[] columns = viewer.getTable().getColumns() ;
542
    	int index = 0;
543
    	for (TableColumn column: columns){
544
    	    if ((!PreferencesUtil.isShowRankInChecklistEditor() && index > 0) || (index > 1)) {
545
                column.dispose();
546
            }
547
    	    index++;
548
    	}
542 549

  
543 550
    	for (DefinedTermBase term:newTerms){
544 551
    	    boolean isNew = true;
545 552
    	    for (DefinedTermBase oldTerm: oldTerms){
546 553
    	           if(oldTerm.getTitleCache().equals(term.getTitleCache())){
547

  
548
    	               isNew = true;
554
    	               isNew = false;
549 555
    	               break;
550 556
    	           }
551 557

  
552 558
    	    }
553 559
    	    if (isNew){
554 560
    	        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);
561

  
564 562
    	    }
563
    	    String termLable = term.getTitleCache();;
564
            if (PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
565
                if (term.getIdInVocabulary() != null){
566
                    termLable = term.getIdInVocabulary();
567
                }
568
            }
569
            int count = viewer.getTable().getColumnCount();
570
            TableViewerColumn column= addTableViewerColumn(termLable, 200, count);
571
            acitivateNewColumnInDropDownMenu(term);
565 572
    	}
566 573
    	for (DefinedTermBase oldTerm:oldTerms){
567 574
    	    boolean delete = true;
......
574 581
            }
575 582
            if (delete){
576 583
                terms.remove(oldTerm);
577
                for (TableColumn column: columns){
578
                    if (column.getText().equals(oldTerm.getTitleCache())){
579
                        column.dispose();
580
                    }
581
                }
584

  
582 585
            }
583 586
        }
584 587

  
......
602 605
////    		addTableViewerColumn(termLable, 200, count);
603 606
////    		acitivateNewColumnInDropDownMenu(term);
604 607
    //	}
608

  
605 609
        viewer.setLabelProvider(labelProvider);
606 610
//        getService().schedule(new ChecklistJob(LOADING_TAXA, selectedTaxonNodes), Job.LONG);
607 611
        table.setRedraw(true);

Also available in: Unified diff