Project

General

Profile

« Previous | Next » 

Revision 218fbd04

Added by Cherian Mathew about 9 years ago

CdmProgressComponent : Component which indicates progress via text and a progress bar
NewTaxonBaseComposite, StatusComposite : Added taxon name field for synonym creation and using new operation and progress component objects
StatusComposite : Corrections
CdmSQLContainer, LeafNodeTaxonContainer : Moved non-generic methods from CdmSQLContainer to LeafNodeTaxonContainer
StatusPresenter, IStatusComposite : added id filter methods as well as methods to remove all dynamic filters and to refresh the synonym cache
SelectionService : using UI.access to update ui
CdmQueryFactory : removed rank inner join for taxon base query
CdmVaadinOperation : Class which handles async and sync operations
CdmVaadinUtilities : Added methods to run new CdmVaadinOperation objects and to recursively enable / disable components

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/component/StatusComposite.java
105 105

  
106 106
    private Object currentClickedTaxonItemId;
107 107

  
108
    private final boolean taxaTreeTableMultiSelectMode = true;
108 109

  
109 110
    private static final String SELECT_FILTER = "Select filter ...";
110 111
    private static final String SELECT_CLASSIFICATION = "Select classification ...";
......
173 174
    private void initTaxaTable(int classificationId) {
174 175

  
175 176
        taxaTreeTable.setSelectable(true);
176
        taxaTreeTable.setMultiSelect(true);
177
        taxaTreeTable.setMultiSelect(taxaTreeTableMultiSelectMode);
177 178
        taxaTreeTable.setImmediate(false);
178 179

  
179 180
        if(listener != null) {
......
390 391
                    CdmVaadinSessionUtilities.getCurrentSelectionService()
391 392
                    .fireSelectionEvent(new SelectionEvent(Arrays.asList((Object)taxonUuid), StatusComposite.class), true);
392 393
                }
394
                taxaTreeTable.setValue(itemId);
393 395
            }
394 396
        });
395 397

  
398

  
399

  
396 400
    }
397 401

  
398 402
    private void addAddComboBoxListener() {
......
410 414

  
411 415
                            Object selectedItemId = null;
412 416
                            IdAndUuid accTaxonIdUuid = null;
417
                            String accTaxonName = null;
413 418
                            if(selected.equals(ADD_SYNONYM)) {
414 419
                                Set<Object> selectedIds = (Set<Object>)taxaTreeTable.getValue();
415 420
                                // if zero or more than one items (taxa / synonyms) are selected
416 421
                                // throw a warning
417
                                if(selectedIds.size() == 0) {
422
                                if(selectedIds.size() != 1) {
418 423
                                    Notification.show("Multiple or No selection", "Please select a single Taxon", Type.WARNING_MESSAGE);
419 424
                                    return;
420 425
                                }
426
                                selectedItemId = selectedIds.iterator().next();
421 427
                                // if a synonym is selected then throw warning
422
                                if(listener.isSynonym(selected)) {
428
                                if(listener.isSynonym(selectedItemId)) {
423 429
                                    Notification.show("Synonym selected", "Please choose a Taxon", Type.WARNING_MESSAGE);
424 430
                                    return;
425 431
                                }
426 432
                                windowTitle = "Add New Synonym";
427
                                selectedItemId = selectedIds.iterator().next();
428 433
                                accTaxonIdUuid = new IdAndUuid(selectedItemId, listener.getCurrentLeafNodeTaxonContainer().getUuid(selectedItemId));
434
                                accTaxonName = (String)listener.getCurrentLeafNodeTaxonContainer().getProperty(selectedItemId, LeafNodeTaxonContainer.NAME_ID).getValue();
429 435
                            } else {
430 436
                                windowTitle = "Add New Taxon";
431 437
                            }
......
443 449
                                        new NewTaxonBaseComposite(dialog,
444 450
                                                new NewTaxonBasePresenter(),
445 451
                                                accTaxonIdUuid,
452
                                                accTaxonName,
446 453
                                                classificationIdUuid);
447 454
                                dialog.setContent(newTaxonComponent);
448 455
                            } catch (SQLException e) {
......
478 485

  
479 486
            @Override
480 487
            public void buttonClick(ClickEvent event) {
481
               listener.removeNameFilter();
482
               searchTextField.setValue(FILTER_TAXA_INPUT);
488
               clearDynamicFilters();
483 489
               updateInViewLabel();
484 490
            }
485 491

  
486 492
        });
487 493
    }
488 494

  
495
    private void clearDynamicFilters() {
496
        listener.removeDynamicFilters();
497
        searchTextField.setValue(FILTER_TAXA_INPUT);
498
        for(Object itemId : filterTable.getItemIds()) {
499
            filterTable.getItem(itemId).getItemProperty(PROPERTY_SELECTED_ID).setValue(false);
500
        }
501
    }
502

  
489 503
    private void addRemoveButtonListener() {
490 504
        removeButton.addClickListener(new Button.ClickListener() {
491 505

  
......
574 588
    }
575 589

  
576 590

  
591
    /* (non-Javadoc)
592
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onCreate(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
593
     */
594
    @Override
595
    public void onCreate(CdmChangeEvent event) {
596
        if(event.getSourceType().equals(NewTaxonBaseComposite.class)) {
597
            Object itemId = event.getChangedObjects().get(0);
598
            try {
599
                taxaTreeTable.setMultiSelect(false);
600
                if(listener.getCurrentLeafNodeTaxonContainer().isSynonym(itemId)) {
601
                    taxaTreeTable.setCollapsed(taxaTreeTable.getValue(), false);
602
                    listener.refresh();
603
                    taxaTreeTable.setValue(itemId);
604
                } else {
605
                    clearDynamicFilters();
606
                    listener.setIdFilter(itemId);
607
                    taxaTreeTable.setValue(itemId);
608
                }
609
            } finally {
610
                taxaTreeTable.setMultiSelect(taxaTreeTableMultiSelectMode);
611
            }
612
        }
613
    }
614

  
615
    /* (non-Javadoc)
616
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onUpdate(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
617
     */
618
    @Override
619
    public void onUpdate(CdmChangeEvent event) {
620
        // TODO Auto-generated method stub
621

  
622
    }
623

  
624
    /* (non-Javadoc)
625
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onDelete(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
626
     */
627
    @Override
628
    public void onDelete(CdmChangeEvent event) {
629
        // TODO Auto-generated method stub
630

  
631
    }
632

  
633
    /* (non-Javadoc)
634
     * @see com.vaadin.navigator.View#enter(com.vaadin.navigator.ViewChangeListener.ViewChangeEvent)
635
     */
636
    @Override
637
    public void enter(ViewChangeEvent event) {
638
        // TODO Auto-generated method stub
639

  
640
    }
641

  
577 642
    @AutoGenerated
578 643
    private GridLayout buildMainLayout() {
579 644
        // common part: create layout
......
582 647
        mainLayout.setWidth("340px");
583 648
        mainLayout.setHeight("840px");
584 649
        mainLayout.setMargin(true);
585
        mainLayout.setSpacing(true);
586 650
        mainLayout.setRows(6);
587 651

  
588 652
        // top-level component properties
......
615 679
        taxaTreeTable = new TreeTable();
616 680
        taxaTreeTable.setImmediate(false);
617 681
        taxaTreeTable.setWidth("100.0%");
618
        taxaTreeTable.setHeight("534px");
682
        taxaTreeTable.setHeight("580px");
619 683
        mainLayout.addComponent(taxaTreeTable, 0, 4);
620 684
        mainLayout.setComponentAlignment(taxaTreeTable, new Alignment(20));
621 685

  
......
720 784
        return searchHorizontalLayout;
721 785
    }
722 786

  
723
    /* (non-Javadoc)
724
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onCreate(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
725
     */
726
    @Override
727
    public void onCreate(CdmChangeEvent event) {
728
        if(event.getSourceType().equals(NewTaxonBaseComposite.class)) {
729
            Object itemId = event.getChangedObjects().get(0);
730
            listener.getCurrentLeafNodeTaxonContainer().removeTaxonFromCache(itemId);
731

  
732
            // FIXME : need to figure out how to programmatically select an item in the
733
            // table
734

  
735
            listener.getCurrentLeafNodeTaxonContainer().getItem(itemId);
736
            listener.refresh();
737
            taxaTreeTable.select(itemId);
738
        }
739

  
740
    }
741

  
742
    /* (non-Javadoc)
743
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onUpdate(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
744
     */
745
    @Override
746
    public void onUpdate(CdmChangeEvent event) {
747
        // TODO Auto-generated method stub
748

  
749
    }
750

  
751
    /* (non-Javadoc)
752
     * @see eu.etaxonomy.cdm.vaadin.session.ICdmChangeListener#onDelete(eu.etaxonomy.cdm.vaadin.session.CdmChangeEvent)
753
     */
754
    @Override
755
    public void onDelete(CdmChangeEvent event) {
756
        // TODO Auto-generated method stub
757

  
758
    }
759

  
760
    /* (non-Javadoc)
761
     * @see com.vaadin.navigator.View#enter(com.vaadin.navigator.ViewChangeListener.ViewChangeEvent)
762
     */
763
    @Override
764
    public void enter(ViewChangeEvent event) {
765
        // TODO Auto-generated method stub
766

  
767
    }
768

  
769 787
}

Also available in: Unified diff