Example usage for com.vaadin.v7.data.util BeanItemContainer BeanItemContainer

List of usage examples for com.vaadin.v7.data.util BeanItemContainer BeanItemContainer

Introduction

In this page you can find the example usage for com.vaadin.v7.data.util BeanItemContainer BeanItemContainer.

Prototype

@SuppressWarnings("unchecked")
@Deprecated
public BeanItemContainer(Collection<? extends BEANTYPE> collection) throws IllegalArgumentException 

Source Link

Document

Constructs a BeanItemContainer and adds the given beans to it.

Usage

From source file:com.haulmont.cuba.web.widgets.renderers.componentrenderer.grid.ComponentGrid.java

License:Apache License

public ComponentGrid(Class<T> typeOfRows) {
    super();/*from ww  w. j  ava2 s  .  c  o  m*/
    setContainerDataSource(new BeanItemContainer<T>(typeOfRows));
    componentGridDecorator = new ComponentGridDecorator<T>(this, typeOfRows);
}

From source file:de.symeda.sormas.ui.dashboard.DiseaseBurdenGrid.java

License:Open Source License

public DiseaseBurdenGrid() {
    setSizeFull();//from  w  ww  .  j  av a 2  s  . c o  m

    BeanItemContainer<DiseaseBurdenDto> container = new BeanItemContainer<DiseaseBurdenDto>(
            DiseaseBurdenDto.class);
    GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container);
    setContainerDataSource(generatedContainer);

    setColumns(/* VIEW_DETAILS_BTN_ID, */
            DiseaseBurdenDto.DISEASE, DiseaseBurdenDto.CASE_COUNT, DiseaseBurdenDto.PREVIOUS_CASE_COUNT,
            DiseaseBurdenDto.CASES_DIFFERENCE_PERCENTAGE, DiseaseBurdenDto.EVENT_COUNT,
            DiseaseBurdenDto.OUTBREAK_DISTRICT_COUNT, DiseaseBurdenDto.CASE_DEATH_COUNT,
            DiseaseBurdenDto.CASE_FATALITY_RATE);

    for (Column column : getColumns()) {
        if (column.getPropertyId().equals(VIEW_DETAILS_BTN_ID)) {
            column.setHeaderCaption("");
        } else {
            column.setHeaderCaption(I18nProperties.getPrefixCaption(DiseaseBurdenDto.I18N_PREFIX,
                    column.getPropertyId().toString(), column.getHeaderCaption()));
        }
    }

    getColumn(DiseaseBurdenDto.CASES_DIFFERENCE_PERCENTAGE).setHeaderCaption(
            I18nProperties.getPrefixCaption(DiseaseBurdenDto.I18N_PREFIX, DiseaseBurdenDto.CASES_DIFFERENCE));

    // format columns
    getColumn(DiseaseBurdenDto.CASE_FATALITY_RATE).setRenderer(new PercentageRenderer());

    // format casesGrowth column with chevrons
    getColumn(DiseaseBurdenDto.CASES_DIFFERENCE_PERCENTAGE).setConverter(new StringToFloatConverter() {
        @Override
        public String convertToPresentation(Float value, Class<? extends String> targetType, Locale locale)
                throws ConversionException {

            String stringRepresentation = super.convertToPresentation(value, targetType, locale);
            String chevronType = "";
            String criticalLevel = "";

            if (value > 0) {
                chevronType = VaadinIcons.CHEVRON_UP.getHtml();
                criticalLevel = CssStyles.LABEL_CRITICAL;
            } else if (value < 0) {
                chevronType = VaadinIcons.CHEVRON_DOWN.getHtml();
                criticalLevel = CssStyles.LABEL_POSITIVE;
            } else {
                chevronType = VaadinIcons.CHEVRON_RIGHT.getHtml();
                criticalLevel = CssStyles.LABEL_IMPORTANT;
            }

            String strValue = "" + Math.abs(value);
            if (strValue.equals("100.0"))
                strValue = "100";
            //            or use below to remove insignificant decimals
            //            if (strValue.endsWith(".0"))
            //               strValue = strValue.substring(0, strValue.length() - 3);

            stringRepresentation = "<div style=\"width:100%\">"
                    + "<div class=\"\" style=\"display: inline-block;margin-top: 2px;width: 70%;text-align:left;\">"
                    + strValue + "%" + "</div>" + "<div class=\"v-label v-widget " + criticalLevel + " v-label-"
                    + criticalLevel
                    + " align-center v-label-align-center bold v-label-bold large v-label-large v-has-width\" "
                    + " style=\"width: 15px;width: 30%;text-align: left;\">"
                    + "<span class=\"v-icon\" style=\"font-family: VaadinIcons;\">" + chevronType + "</span>"
                    + "</div>" + "</div>";

            return stringRepresentation;
        }
    }).setRenderer(new HtmlRenderer());

    setSelectionMode(SelectionMode.NONE);
}

From source file:de.symeda.sormas.ui.dashboard.map.CasePopupGrid.java

License:Open Source License

public CasePopupGrid(Window window, FacilityReferenceDto facility,
        DashboardMapComponent dashboardMapComponent) {
    this.facility = facility;
    this.dashboardMapComponent = dashboardMapComponent;
    setWidth(960, Unit.PIXELS);//from w  w w .  j a va2  s  .co  m
    setHeightUndefined();

    setSelectionMode(SelectionMode.NONE);

    BeanItemContainer<CaseDataDto> container = new BeanItemContainer<CaseDataDto>(CaseDataDto.class);
    GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container);
    setContainerDataSource(generatedContainer);

    generatedContainer.addGeneratedProperty(DISEASE_SHORT, new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            CaseDataDto caseDataDto = (CaseDataDto) itemId;
            String diseaseName = caseDataDto.getDisease().getName();
            return Disease.valueOf(diseaseName).toShortString();
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    generatedContainer.addGeneratedProperty(FIRST_NAME, new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            CaseDataDto caseDataDto = (CaseDataDto) itemId;
            PersonDto personDto = FacadeProvider.getPersonFacade()
                    .getPersonByUuid(caseDataDto.getPerson().getUuid());
            return personDto.getFirstName();
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    generatedContainer.addGeneratedProperty(LAST_NAME, new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            CaseDataDto caseDataDto = (CaseDataDto) itemId;
            PersonDto personDto = FacadeProvider.getPersonFacade()
                    .getPersonByUuid(caseDataDto.getPerson().getUuid());
            return personDto.getLastName();
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    setColumns(CaseDataDto.UUID, DISEASE_SHORT, CaseDataDto.CASE_CLASSIFICATION, FIRST_NAME, LAST_NAME,
            CaseDataDto.REPORT_DATE, CaseDataDto.HEALTH_FACILITY_DETAILS);

    getColumn(CaseDataDto.UUID).setRenderer(new V7UuidRenderer());
    getColumn(CaseDataDto.REPORT_DATE).setRenderer(new DateRenderer(DateHelper.getLocalDateTimeFormat()));

    if (facility == null || !FacilityHelper.isOtherOrNoneHealthFacility(facility.getUuid())) {
        getColumn(CaseDataDto.HEALTH_FACILITY_DETAILS).setHidden(true);
    }

    for (Column column : getColumns()) {
        column.setHeaderCaption(I18nProperties.getPrefixCaption(CaseDataDto.I18N_PREFIX,
                column.getPropertyId().toString(), column.getHeaderCaption()));
    }

    addItemClickListener(e -> {
        window.close();
        ControllerProvider.getCaseController().navigateToCase(((CaseDataDto) e.getItemId()).getUuid(), true);
    });

    reload();
}

From source file:de.symeda.sormas.ui.person.PersonGrid.java

License:Open Source License

private void buildGrid() {
    setSizeFull();//  w  w  w  . j  a v a2s  .c  om
    setSelectionMode(SelectionMode.SINGLE);
    setHeightMode(HeightMode.ROW);

    BeanItemContainer<PersonIndexDto> container = new BeanItemContainer<PersonIndexDto>(PersonIndexDto.class);
    GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container);
    setContainerDataSource(generatedContainer);

    generatedContainer.addGeneratedProperty(CASE_LOC, new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            PersonIndexDto person = (PersonIndexDto) itemId;
            if (person.getCaseDisease() != null) {
                return "<a href='" + Page.getCurrent().getLocation() + "/data/" + person.getCaseUuid()
                        + "' target='_blank'>" + person.getCaseDisease().toShortString() + " ("
                        + DateHelper.formatLocalShortDate(person.getCaseDiseaseStartDate()) + ")</a>";
            } else {
                return "";
            }
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    setColumns(PersonIndexDto.FIRST_NAME, PersonIndexDto.LAST_NAME, PersonIndexDto.NICKNAME,
            PersonIndexDto.APPROXIMATE_AGE, PersonIndexDto.SEX, PersonIndexDto.PRESENT_CONDITION,
            PersonIndexDto.DISTRICT_NAME, PersonIndexDto.COMMUNITY_NAME, PersonIndexDto.CITY, CASE_LOC);

    for (Column column : getColumns()) {
        column.setHeaderCaption(I18nProperties.getPrefixCaption(PersonIndexDto.I18N_PREFIX,
                column.getPropertyId().toString(), column.getHeaderCaption()));
    }

    getColumn(PersonIndexDto.FIRST_NAME).setMinimumWidth(150);
    getColumn(PersonIndexDto.LAST_NAME).setMinimumWidth(150);
    getColumn(CASE_LOC).setRenderer(new HtmlRenderer());
    getColumn(CASE_LOC).setHeaderCaption(I18nProperties.getPrefixCaption(PersonIndexDto.I18N_PREFIX,
            associatedCase == null ? PersonIndexDto.LAST_DISEASE : PersonIndexDto.MATCHING_CASE));
}

From source file:de.symeda.sormas.ui.reports.WeeklyReportInformantsGrid.java

License:Open Source License

public WeeklyReportInformantsGrid(UserReferenceDto officerRef, EpiWeek epiWeek) {
    this.officerRef = officerRef;
    this.epiWeek = epiWeek;
    setSizeFull();/*from  w  w  w .java2s .co  m*/

    setSelectionMode(SelectionMode.NONE);

    BeanItemContainer<WeeklyReportInformantSummary> container = new BeanItemContainer<WeeklyReportInformantSummary>(
            WeeklyReportInformantSummary.class);
    setContainerDataSource(container);

    setColumns(WeeklyReportInformantSummary.INFORMANT, WeeklyReportInformantSummary.COMMUNITY,
            WeeklyReportInformantSummary.FACILITY, WeeklyReportInformantSummary.INFORMANT_REPORT_DATE,
            WeeklyReportInformantSummary.TOTAL_CASE_COUNT);

    for (Column column : getColumns()) {
        column.setHeaderCaption(I18nProperties.getPrefixCaption(WeeklyReportInformantSummary.I18N_PREFIX,
                column.getPropertyId().toString(), column.getHeaderCaption()));
    }

    getColumn(WeeklyReportInformantSummary.INFORMANT_REPORT_DATE)
            .setRenderer(new HtmlRenderer(I18nProperties.getCaption(Captions.weeklyReportNoReport)));

    setCellStyleGenerator(new WeeklyReportGridCellStyleGenerator());

    reload();
}

From source file:de.symeda.sormas.ui.reports.WeeklyReportOfficersGrid.java

License:Open Source License

public WeeklyReportOfficersGrid() {
    setSizeFull();//from  w ww.  ja  v a2  s  . co  m

    BeanItemContainer<WeeklyReportOfficerSummaryDto> container = new BeanItemContainer<WeeklyReportOfficerSummaryDto>(
            WeeklyReportOfficerSummaryDto.class);
    GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container);
    setContainerDataSource(generatedContainer);

    generatedContainer.addGeneratedProperty(VIEW_DETAILS_BTN_ID, new PropertyValueGenerator<String>() {
        @Override
        public String getValue(Item item, Object itemId, Object propertyId) {
            if (((WeeklyReportOfficerSummaryDto) itemId).getInformants() > 0) {
                return VaadinIcons.EYE.getHtml();
            } else {
                return "";
            }
        }

        @Override
        public Class<String> getType() {
            return String.class;
        }
    });

    setColumns(VIEW_DETAILS_BTN_ID, WeeklyReportOfficerSummaryDto.OFFICER,
            WeeklyReportOfficerSummaryDto.DISTRICT, WeeklyReportOfficerSummaryDto.OFFICER_REPORT_DATE,
            WeeklyReportOfficerSummaryDto.TOTAL_CASE_COUNT, WeeklyReportOfficerSummaryDto.INFORMANTS,
            WeeklyReportOfficerSummaryDto.INFORMANT_REPORTS,
            WeeklyReportOfficerSummaryDto.INFORMANT_REPORT_PERCENTAGE,
            WeeklyReportOfficerSummaryDto.INFORMANT_ZERO_REPORTS);

    for (Column column : getColumns()) {
        if (column.getPropertyId().equals(VIEW_DETAILS_BTN_ID)) {
            column.setHeaderCaption("");
        } else {
            column.setHeaderCaption(I18nProperties.getPrefixCaption(WeeklyReportOfficerSummaryDto.I18N_PREFIX,
                    column.getPropertyId().toString(), column.getHeaderCaption()));
        }
    }

    HeaderRow headerRow = getHeaderRow(0);
    headerRow.getCell(WeeklyReportOfficerSummaryDto.INFORMANTS).setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportOfficerSummaryDto.INFORMANT_REPORTS).setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportOfficerSummaryDto.INFORMANT_REPORT_PERCENTAGE)
            .setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportOfficerSummaryDto.INFORMANT_ZERO_REPORTS)
            .setStyleName(CssStyles.GRID_CELL_ODD);

    HeaderRow preHeaderRow = prependHeaderRow();
    HeaderCell preHeaderCell = preHeaderRow.join(WeeklyReportOfficerSummaryDto.INFORMANTS,
            WeeklyReportOfficerSummaryDto.INFORMANT_REPORTS,
            WeeklyReportOfficerSummaryDto.INFORMANT_REPORT_PERCENTAGE,
            WeeklyReportOfficerSummaryDto.INFORMANT_ZERO_REPORTS);
    preHeaderCell.setHtml(I18nProperties.getCaption(Captions.weeklyReportOfficerInformants));
    preHeaderCell.setStyleName(CssStyles.GRID_CELL_ODD);

    getColumn(VIEW_DETAILS_BTN_ID).setRenderer(new HtmlRenderer());
    getColumn(VIEW_DETAILS_BTN_ID).setWidth(60);

    getColumn(WeeklyReportOfficerSummaryDto.OFFICER_REPORT_DATE)
            .setRenderer(new HtmlRenderer(I18nProperties.getCaption(Captions.weeklyReportNoReport)));
    getColumn(WeeklyReportOfficerSummaryDto.INFORMANT_REPORT_PERCENTAGE).setRenderer(new PercentageRenderer());

    setCellStyleGenerator(new WeeklyReportGridCellStyleGenerator());

    setSelectionMode(SelectionMode.NONE);
    addItemClickListener(this);
}

From source file:de.symeda.sormas.ui.reports.WeeklyReportRegionsGrid.java

License:Open Source License

public WeeklyReportRegionsGrid() {
    setSizeFull();//from   w w  w. j  a  v a  2 s.  c om

    BeanItemContainer<WeeklyReportRegionSummaryDto> container = new BeanItemContainer<WeeklyReportRegionSummaryDto>(
            WeeklyReportRegionSummaryDto.class);
    GeneratedPropertyContainer generatedContainer = new GeneratedPropertyContainer(container);
    VaadinUiUtil.addIconColumn(generatedContainer, VIEW_DETAILS_BTN_ID, VaadinIcons.EYE);
    setContainerDataSource(generatedContainer);

    setColumns(VIEW_DETAILS_BTN_ID, WeeklyReportRegionSummaryDto.REGION, WeeklyReportRegionSummaryDto.OFFICERS,
            WeeklyReportRegionSummaryDto.OFFICER_REPORTS,
            WeeklyReportRegionSummaryDto.OFFICER_REPORT_PERCENTAGE,
            WeeklyReportRegionSummaryDto.OFFICER_ZERO_REPORTS, WeeklyReportRegionSummaryDto.INFORMANTS,
            WeeklyReportRegionSummaryDto.INFORMANT_REPORTS,
            WeeklyReportRegionSummaryDto.INFORMANT_REPORT_PERCENTAGE,
            WeeklyReportRegionSummaryDto.INFORMANT_ZERO_REPORTS);

    for (Column column : getColumns()) {
        if (column.getPropertyId().equals(VIEW_DETAILS_BTN_ID)) {
            column.setHeaderCaption("");
        } else {
            column.setHeaderCaption(I18nProperties.getPrefixCaption(WeeklyReportRegionSummaryDto.I18N_PREFIX,
                    column.getPropertyId().toString(), column.getHeaderCaption()));
        }
    }

    HeaderRow headerRow = getHeaderRow(0);
    headerRow.getCell(WeeklyReportRegionSummaryDto.OFFICERS).setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportRegionSummaryDto.OFFICER_REPORTS).setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportRegionSummaryDto.OFFICER_REPORT_PERCENTAGE)
            .setStyleName(CssStyles.GRID_CELL_ODD);
    headerRow.getCell(WeeklyReportRegionSummaryDto.OFFICER_ZERO_REPORTS).setStyleName(CssStyles.GRID_CELL_ODD);

    HeaderRow preHeaderRow = prependHeaderRow();
    HeaderCell preHeaderCell = preHeaderRow.join(WeeklyReportRegionSummaryDto.OFFICERS,
            WeeklyReportRegionSummaryDto.OFFICER_REPORTS,
            WeeklyReportRegionSummaryDto.OFFICER_REPORT_PERCENTAGE,
            WeeklyReportRegionSummaryDto.OFFICER_ZERO_REPORTS);
    preHeaderCell.setHtml(I18nProperties.getCaption(Captions.weeklyReportRegionOfficers));
    preHeaderCell.setStyleName(CssStyles.GRID_CELL_ODD);

    preHeaderRow
            .join(WeeklyReportRegionSummaryDto.INFORMANTS, WeeklyReportRegionSummaryDto.INFORMANT_REPORTS,
                    WeeklyReportRegionSummaryDto.INFORMANT_REPORT_PERCENTAGE,
                    WeeklyReportRegionSummaryDto.INFORMANT_ZERO_REPORTS)
            .setHtml(I18nProperties.getCaption(Captions.weeklyReportRegionInformants));

    getColumn(VIEW_DETAILS_BTN_ID).setRenderer(new HtmlRenderer());
    getColumn(VIEW_DETAILS_BTN_ID).setWidth(60);

    getColumn(WeeklyReportRegionSummaryDto.OFFICER_REPORT_PERCENTAGE).setRenderer(new PercentageRenderer());
    getColumn(WeeklyReportRegionSummaryDto.INFORMANT_REPORT_PERCENTAGE).setRenderer(new PercentageRenderer());

    setCellStyleGenerator(new WeeklyReportGridCellStyleGenerator());

    setSelectionMode(SelectionMode.NONE);
    addItemClickListener(this);
}

From source file:org.esn.esobase.view.tab.ImportTab.java

public void Init() {
    NewConversationsReceiver newReceiver = new NewConversationsReceiver(service);
    ItemInfoReceiver itemInfoReceiver = new ItemInfoReceiver();
    uploadNewFormat = new Upload("  ConversationsQQ.lua", newReceiver);
    uploadNewFormat.addSucceededListener(newReceiver);
    uploadNewFormat.setImmediate(true);/*from   w  w  w.jav a2 s.  c  o m*/
    this.addComponent(uploadNewFormat);
    if (SpringSecurityHelper.hasRole("ROLE_ADMIN")) {
        updateIndexes = new Button(" ?", new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                LOG.info("Search index...");
                service.generateSearchIndex();
                service.generateJournalEntrySearchIndex();
                service.generateQuestDirectionSearchIndex();
                service.generateQuestDescriptionSearchIndex();
                LOG.info("Search index complete");
            }
        });
        this.addComponent(updateIndexes);
        updateAbilityDescriptions = new Button(" ?? ???");
        updateAbilityDescriptions.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateAbilityDescriptions();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateAbilityDescriptions);
        updateAchievements = new Button(" ??");
        updateAchievements.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateAchievements();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateAchievements);
        updateAchievementDescriptions = new Button(" ?? ?");
        updateAchievementDescriptions.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateAchievementDescriptions();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateAchievementDescriptions);
        updateActivators = new Button(" ");
        updateActivators.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateActivators();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateActivators);
        updateCollectibles = new Button("  ");
        updateCollectibles.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateCollectibles();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateCollectibles);
        updateCollectibleDescriptions = new Button(
                " ??  ");
        updateCollectibleDescriptions.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateCollectibleDescriptions();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateCollectibleDescriptions);
        updateItemDescriptions = new Button(" ?? ");
        updateItemDescriptions.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateItemDescriptions();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateItemDescriptions);
        updateItemNames = new Button(" ? ");
        updateItemNames.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateItemNames();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateItemNames);
        updateJournalEntrys = new Button(" ? ");
        updateJournalEntrys.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateJournalEntrys();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateJournalEntrys);
        updateLoadscreens = new Button("  ?");
        updateLoadscreens.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateLoadscreens();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateLoadscreens);
        updateLocationNames = new Button(" ? ");
        updateLocationNames.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateLocationNames();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateLocationNames);
        updateNotes = new Button(" ?");
        updateNotes.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateNotes();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateNotes);
        updateNpcNames = new Button("  NPC");
        updateNpcNames.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateNpcNames();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateNpcNames);
        updateNpcPhrases = new Button("  NPC");
        updateNpcPhrases.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateNpcPhrases();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateNpcPhrases);
        updatePlayerPhrases = new Button("  ");
        updatePlayerPhrases.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updatePlayerPhrases();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updatePlayerPhrases);
        updateQuestDescriptions = new Button(" ?? ?");
        updateQuestDescriptions.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateQuestDescriptions();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateQuestDescriptions);
        updateQuestDirections = new Button("  ?");
        updateQuestDirections.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateQuestDirections();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateQuestDirections);
        updateQuestNames = new Button(" ? ?");
        updateQuestNames.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateQuestNames();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateQuestNames);
        updateQuestStartTips = new Button("  ");
        updateQuestStartTips.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateQuestStartTips();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateQuestStartTips);
        updateQuestEndTips = new Button("  ");
        updateQuestEndTips.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                try {
                    tableUpdateService.updateQuestEndTips();
                } catch (Exception ex) {
                    Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });
        this.addComponent(updateQuestEndTips);
        /*importPlayerPhrasesFromG = new Button("    -");
        importPlayerPhrasesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsPlayerPhrase> playerPhrases = docsService.getPlayerPhrases();
            service.loadPlayerPhrasesFromSpreadSheet(playerPhrases);
        }
        });
        this.addComponent(importPlayerPhrasesFromG);
                
        importNpcPhrasesFromG = new Button("  NPC  -");
        importNpcPhrasesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            try {
                GoogleDocsService docsService = new GoogleDocsService();
                List<GSpreadSheetsNpcPhrase> npcPhrases = docsService.getNpcPhrases();
                service.loadNpcPhrasesFromSpreadSheet(npcPhrases);
            } catch (Exception ex) {
                Logger.getLogger(ImportTab.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        });
        this.addComponent(importNpcPhrasesFromG);
        importLocationNamesFromG = new Button("   -");
        importLocationNamesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsLocationName> locationsNames = docsService.getLocationsNames();
            service.loadLocationNamesFromSpreadSheet(locationsNames);
        }
        });
        this.addComponent(importLocationNamesFromG);
                
        importQuestNamesFromG = new Button("  ?  -");
        importQuestNamesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsQuestName> items = docsService.getQuestNames();
            service.loadQuestNamesFromSpreadSheet(items);
        }
        });
        this.addComponent(importQuestNamesFromG);
                
        importQuestDescriptionsFromG = new Button(" ? ?  -");
        importQuestDescriptionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsQuestDescription> items = docsService.getQuestDescriptions();
            service.loadQuestDesciptionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importQuestDescriptionsFromG);
                
        importQuestDirectionsFromG = new Button("  ?  -");
        importQuestDirectionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsQuestDirection> items = docsService.getQuestDirections();
            service.loadQuestDirectionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importQuestDirectionsFromG);
                
        importItemNamesFromG = new Button("    -");
        importItemNamesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsItemName> items = docsService.getItemNames();
            service.loadItemNamesFromSpreadSheet(items);
        }
        });
        this.addComponent(importItemNamesFromG);
                
        importItemDescriptionsFromG = new Button(" ?   -");
        importItemDescriptionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsItemDescription> items = docsService.getItemDescriptions();
            service.loadItemDesciptionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importItemDescriptionsFromG);
                
        importJournalEntriesFromG = new Button(" ?   -");
        importJournalEntriesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsJournalEntry> items = docsService.getJournaleEntries();
            service.loadJournalEntriesFromSpreadSheet(items);
        }
        });
        this.addComponent(importJournalEntriesFromG);
                
        importActiivatorsFromG = new Button("   -");
        importActiivatorsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsActivator> items = docsService.getActivators();
            service.loadActivatorsFromSpreadSheet(items);
        }
        });
        this.addComponent(importActiivatorsFromG);
                
        importAchievementsFromG = new Button(" ?  -");
        importAchievementsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsAchievement> items = docsService.getAchievements();
            service.loadAchievementsFromSpreadSheet(items);
        }
        });
        this.addComponent(importAchievementsFromG);
                
        importAchievementDescriptionsFromG = new Button(" ? ?  -");
        importAchievementDescriptionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsAchievementDescription> items = docsService.getAchievementDescriptions();
            service.loadAchievementDescriptionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importAchievementDescriptionsFromG);
                
        importNotesFromG = new Button(" ?  -");
        importNotesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsNote> items = docsService.getNotes();
            service.loadNotesFromSpreadSheet(items);
        }
        });
        this.addComponent(importNotesFromG);
        importAbilityDescriptionsFromG = new Button(" ? ???  -");
        importAbilityDescriptionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsAbilityDescription> items = docsService.getAbilityDescriptions();
            service.loadAbilityDescriptionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importAbilityDescriptionsFromG);
                
        importCollectiblesFromG = new Button("    -");
        importCollectiblesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsCollectible> items = docsService.getCollectibles();
            service.loadCollectiblesFromSpreadSheet(items);
        }
        });
        this.addComponent(importCollectiblesFromG);
                
        importCollectibleDescriptionsFromG = new Button(" ?    -");
        importCollectibleDescriptionsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsCollectibleDescription> items = docsService.getCollectibleDescriptions();
            service.loadCollectibleDescriptionsFromSpreadSheet(items);
        }
        });
        this.addComponent(importCollectibleDescriptionsFromG);
                
        importLoadscreensFromG = new Button("  ?  -");
        importLoadscreensFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsLoadscreen> items = docsService.getLoadscreens();
            service.loadLoadscreensFromSpreadSheet(items);
        }
        });
        this.addComponent(importLoadscreensFromG);
                
        importNpcNamesFromG = new Button(" NPC  -");
        importNpcNamesFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsNpcName> npcNames = docsService.getNpcNames();
            service.loadNpcNamesFromSpreadSheet(npcNames);
        }
        });
        this.addComponent(importNpcNamesFromG);
                
        importQuestStartTipsFromG = new Button(" ?  ");
        importQuestStartTipsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsQuestStartTip> items = docsService.getQuestStartTips();
            service.loadQuestStartTipsFromSpreadSheet(items);
        }
        });
        this.addComponent(importQuestStartTipsFromG);
        importQuestEndTipsFromG = new Button("   ");
        importQuestEndTipsFromG.addClickListener(new Button.ClickListener() {
                
        @Override
        public void buttonClick(Button.ClickEvent event) {
            GoogleDocsService docsService = new GoogleDocsService();
            List<GSpreadSheetsQuestEndTip> items = docsService.getQuestEndTips();
            service.loadQuestEndTipsFromSpreadSheet(items);
        }
        });
        this.addComponent(importQuestEndTipsFromG); */
        fillLocationsAndNpc = new Button("    NPC");
        fillLocationsAndNpc.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                service.fillLocationsAndNpcs();
            }
        });
        this.addComponent(fillLocationsAndNpc);
        assignPhrases = new Button("? ");
        assignPhrases.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                service.mergeLocations();
                service.mergeNpcs();
                //service.generateSearchIndex();
                service.assignToSpreadSheetPhrases();
                service.mergeSubtitles();
                service.mergeTopics();
            }
        });
        this.addComponent(assignPhrases);
        gatherQuestStatistics = new Button("? ? ?");
        gatherQuestStatistics.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                service.gatherQuestStatistics();
            }
        });
        this.addComponent(gatherQuestStatistics);
        calculateNpcStatistics = new Button("? ? NPC");
        calculateNpcStatistics.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                BeanItemContainer<Npc> c = new BeanItemContainer<>(Npc.class);
                c = service.getNpcs(c, null, null, false);
                ThreadPoolTaskExecutor taskExecutor = (ThreadPoolTaskExecutor) executor;
                for (Npc n : c.getItemIds()) {
                    taskExecutor.execute(new CalculateNpcProgressTask(n));
                    LOG.log(Level.INFO, "Active Threads : {0} Queue size:{1}", new Object[] {
                            executor.getActiveCount(), executor.getThreadPoolExecutor().getQueue().size() });
                }
                for (;;) {
                    int count = executor.getActiveCount();
                    LOG.log(Level.INFO, "Active Threads : {0} Queue size:{1}",
                            new Object[] { count, executor.getThreadPoolExecutor().getQueue().size() });
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException ex) {
                        LOG.log(Level.SEVERE, null, ex);
                    }
                    if (count == 0) {
                        break;
                    }
                }
            }
        });
        this.addComponent(calculateNpcStatistics);
        calculateLocationStatistics = new Button("? ? ");
        calculateLocationStatistics.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                List<Location> locs = service.getLocations();
                for (Location l : locs) {
                    if (l.getNpcs() != null && !l.getNpcs().isEmpty()) {
                        service.calculateLocationProgress(l);
                    }
                }
            }
        });
        this.addComponent(calculateLocationStatistics);
        RaswStringReceiverEn raswStringReceiverEn = new RaswStringReceiverEn(service);
        uploadXlsEn = new Upload(" en- xlsx", raswStringReceiverEn);
        uploadXlsEn.addSucceededListener(raswStringReceiverEn);
        uploadXlsEn.setImmediate(true);
        this.addComponent(uploadXlsEn);
        RaswStringReceiverFr raswStringReceiverFr = new RaswStringReceiverFr(service);
        uploadXlsFr = new Upload(" f- xlsx", raswStringReceiverFr);
        uploadXlsFr.addSucceededListener(raswStringReceiverFr);
        uploadXlsFr.setImmediate(true);
        this.addComponent(uploadXlsFr);
        RaswStringReceiverDe raswStringReceiverDe = new RaswStringReceiverDe(service);
        uploadXlsDe = new Upload(" de- xlsx", raswStringReceiverDe);
        uploadXlsDe.addSucceededListener(raswStringReceiverDe);
        uploadXlsDe.setImmediate(true);
        this.addComponent(uploadXlsDe);
        RaswStringReceiverJp raswStringReceiverJp = new RaswStringReceiverJp(service);
        uploadXlsJp = new Upload(" jp- xlsx", raswStringReceiverJp);
        uploadXlsJp.addSucceededListener(raswStringReceiverJp);
        uploadXlsJp.setImmediate(true);
        this.addComponent(uploadXlsJp);
        RaswStringReceiverRu raswStringReceiverRu = new RaswStringReceiverRu(service);
        uploadXlsRu = new Upload(" ru- xlsx", raswStringReceiverRu);
        uploadXlsRu.addSucceededListener(raswStringReceiverRu);
        uploadXlsRu.setImmediate(true);
        this.addComponent(uploadXlsRu);
        DictionaryReceiver dictionaryReceiver = new DictionaryReceiver();
        uploadDictionary = new Upload(" ?? TES", dictionaryReceiver);
        uploadDictionary.addSucceededListener(dictionaryReceiver);
        uploadDictionary.setImmediate(true);
        this.addComponent(uploadDictionary);
        assignTablesToRaw = new Button("? ?   ? raw");
        assignTablesToRaw.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                for (int i = 0; i < 1; i++) {
                    service.assignSpreadSheetRowsToRawStrings();
                }

            }
        });
        this.addComponent(assignTablesToRaw);
        updateGspreadSheetsWithRawText = new Button(
                " ? ?   raw");
        updateGspreadSheetsWithRawText.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                for (int i = 0; i < 1; i++) {
                    service.updateGspreadSheetTextEn();
                }

            }
        });
        this.addComponent(updateGspreadSheetsWithRawText);
        InterfaceLuaReceiver interfaceLuaReceiver = new InterfaceLuaReceiver(service);
        uploadInterfaceLua = new Upload(" lua- ?",
                interfaceLuaReceiver);
        uploadInterfaceLua.addSucceededListener(interfaceLuaReceiver);
        uploadInterfaceLua.setImmediate(true);
        this.addComponent(uploadInterfaceLua);
        InterfaceRuLuaReceiver interfaceRuLuaReceiver = new InterfaceRuLuaReceiver(service);
        uploadRuInterfaceLua = new Upload(
                "  ? ?? ? ?",
                interfaceRuLuaReceiver);
        uploadRuInterfaceLua.addSucceededListener(interfaceRuLuaReceiver);
        uploadRuInterfaceLua.setImmediate(true);
        this.addComponent(uploadRuInterfaceLua);

        assignActivatorsWithItems = new Button(
                "    ? ");
        assignActivatorsWithItems.addClickListener(new Button.ClickListener() {

            @Override
            public void buttonClick(Button.ClickEvent event) {
                service.assignActivatorsToItems();
            }
        });
        this.addComponent(assignActivatorsWithItems);
        loadAllBooks = new Button("   ? ?");
        loadAllBooks.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                service.loadBooks();
            }
        });
        this.addComponent(loadAllBooks);
        updateTTCNpcNames = new Button(" NPC  TTC");
        updateTTCNpcNames.addClickListener(new Button.ClickListener() {
            @Override
            public void buttonClick(Button.ClickEvent event) {
                GoogleDocsService docsService = new GoogleDocsService();
                docsService.updateTTCNpcTranslations(service);
            }
        });
        this.addComponent(updateTTCNpcNames);
        uploadItemInfo = new Upload("  ItemDump.lua", itemInfoReceiver);
        uploadItemInfo.addSucceededListener(itemInfoReceiver);
        uploadItemInfo.setImmediate(true);
        this.addComponent(uploadItemInfo);

    }
}

From source file:org.esn.esobase.view.tab.QuestsTab.java

public QuestsTab(DBService service) {
    this.service = service;
    actions = new HorizontalLayout();
    refreshButton = new Button("");
    refreshButton.addClickListener(new Button.ClickListener() {

        @Override//  w ww . ja va 2 s .com
        public void buttonClick(Button.ClickEvent event) {
            LoadTable();
            CloseForm();
        }
    });
    actions.addComponent(refreshButton);
    addButton = new Button("");
    addButton.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            AddItem();
        }
    });
    actions.addComponent(addButton);
    this.addComponent(actions);
    tableAndForm = new HorizontalLayout();
    tableAndForm.setSizeFull();
    table = new Table();
    table.setSizeFull();
    container = new BeanItemContainer<>(Quest.class);
    table.setContainerDataSource(container);

    table.setVisibleColumns(new Object[] { "name", "nameRu", "progress" });
    table.setColumnHeaders(new String[] { "?", " ?",
            "? " });
    table.setConverter("progress", new Converter<String, BigDecimal>() {

        @Override
        public BigDecimal convertToModel(String value, Class<? extends BigDecimal> targetType, Locale locale)
                throws Converter.ConversionException {
            return null;
        }

        @Override
        public String convertToPresentation(BigDecimal value, Class<? extends String> targetType, Locale locale)
                throws Converter.ConversionException {
            String r = "";
            if (value != null) {
                r = value.multiply(BigDecimal.valueOf(100L).setScale(2, RoundingMode.HALF_DOWN))
                        .setScale(0, RoundingMode.HALF_UP).toString() + "%";
            }
            return r;
        }

        @Override
        public Class<BigDecimal> getModelType() {
            return BigDecimal.class;
        }

        @Override
        public Class<String> getPresentationType() {
            return String.class;
        }

    });
    table.addItemClickListener(new TableClickListener());
    LoadTable();
    table.sort(new Object[] { "name" }, new boolean[] { true });
    tableAndForm.addComponent(table);
    tableAndForm.setExpandRatio(table, 0.2f);
    form = new FormLayout();
    form.setSizeFull();
    name = new TextField("?");
    name.setNullRepresentation("");
    name.setRequired(true);
    form.addComponent(name);
    nameRu = new TextField(" ?");
    nameRu.setNullRepresentation("");
    nameRu.setRequired(false);
    form.addComponent(nameRu);

    npcs = new TwinColSelect("NPC");
    npcsContainer = new BeanItemContainer<>(Npc.class);
    npcsContainer = service.loadBeanItems(npcsContainer);
    npcsContainer.sort(new Object[] { "name" }, new boolean[] { true });
    npcsContainer.addNestedContainerProperty("location.name");
    npcsContainer.addNestedContainerProperty("location.nameRu");
    npcs.setContainerDataSource(npcsContainer);
    npcs.setWidth(900f, Unit.PIXELS);
    Page.Styles styles = Page.getCurrent().getStyles();
    styles.add(".v-font-size {\n" + "    font-size: 11px;\n" + "}");
    npcs.addStyleName("v-font-size");
    npcFilter = new TextField(" ?? NPC");
    npcFilter.setNullRepresentation("");
    npcFilter.setImmediate(true);
    npcFilter.setTextChangeEventMode(AbstractTextField.TextChangeEventMode.TIMEOUT);
    npcFilter.setTextChangeTimeout(500);
    npcFilter.addTextChangeListener(new FieldEvents.TextChangeListener() {

        @Override
        public void textChange(FieldEvents.TextChangeEvent event) {
            npcsContainer.removeAllContainerFilters();
            if (event.getText() != null && !event.getText().isEmpty()) {
                try {
                    npcsContainer
                            .addContainerFilter(new Or(new Like("name", "%" + event.getText() + "%", false),
                                    new Like("nameRu", "%" + event.getText() + "%", false),
                                    new Like("location.name", "%" + event.getText() + "%", false),
                                    new Like("location.nameRu", "%" + event.getText() + "%", false)));
                } catch (UnsupportedFilterException | PatternSyntaxException ex) {

                }
            }
        }
    });
    form.addComponent(npcFilter);
    form.addComponent(npcs);
    saveButton = new Button("");
    saveButton.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            SaveForm();
        }
    });
    cancelButton = new Button("");
    cancelButton.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            CloseForm();
            LoadTable();
        }
    });
    HorizontalLayout actions = new HorizontalLayout(cancelButton, saveButton);
    form.addComponent(actions);
    form.setVisible(false);
    tableAndForm.addComponent(form);
    tableAndForm.setExpandRatio(form, 0.75f);
    this.addComponent(tableAndForm);
}

From source file:org.esn.esobase.view.tab.TranslateTab.java

public void Init() {
    removeAllComponents();//from   w  ww.  j  a v a 2  s . co m
    TopicNpcColumnGenerator topicNpcColumnGenerator = new TopicNpcColumnGenerator();
    TopicPlayerColumnGenerator topicPlayerColumnGenerator = new TopicPlayerColumnGenerator();
    SubtitleColumnGenerator subtitleColumnGenerator = new SubtitleColumnGenerator();
    TranslationColumnGenerator translationColumnGenerator = new TranslationColumnGenerator();
    FilterChangeListener filterChangeListener = new FilterChangeListener();
    this.setSizeFull();
    this.setSpacing(false);
    this.setMargin(false);
    npcListlayout = new HorizontalLayout();
    npcListlayout.setSpacing(false);
    npcListlayout.setMargin(false);
    npcListlayout.setSizeFull();
    npcTable = new ComboBox("NPC");
    npcTable.setPageLength(30);
    npcTable.setScrollToSelectedItem(true);
    npcTable.setWidth(100f, Unit.PERCENTAGE);
    npcTable.addValueChangeListener(new NpcSelectListener());
    npcTable.setScrollToSelectedItem(true);
    npcTable.setEmptySelectionAllowed(true);
    locationTable = new ComboBox("?");
    locationTable.setPageLength(30);
    locationTable.setScrollToSelectedItem(true);
    locationTable.setWidth(100f, Unit.PERCENTAGE);
    locationTable.addValueChangeListener(filterChangeListener);
    locationTable.setDataProvider(new ListDataProvider<>(locations));
    locationTable.setEmptySelectionAllowed(true);

    subLocationTable = new ComboBox("?");
    subLocationTable.setPageLength(30);
    subLocationTable.setScrollToSelectedItem(true);
    subLocationTable.setWidth(100f, Unit.PERCENTAGE);
    subLocationTable.addValueChangeListener(filterChangeListener);
    subLocationTable.setDataProvider(new ListDataProvider<>(subLocations));
    subLocationTable.setEmptySelectionAllowed(true);
    questTable = new ComboBox("?");
    questTable.setPageLength(30);
    questTable.setScrollToSelectedItem(true);

    questTable.setWidth(100f, Unit.PERCENTAGE);
    questTable.addValueChangeListener(filterChangeListener);
    questTable.setDataProvider(new ListDataProvider<>(questList));
    npcTable.setDataProvider(new ListDataProvider<>(npcList));

    FormLayout locationAndNpc = new FormLayout(questTable, locationTable, subLocationTable, npcTable);
    locationAndNpc.addStyleName(ValoTheme.FORMLAYOUT_LIGHT);
    locationAndNpc.setSizeFull();

    npcListlayout.addComponent(locationAndNpc);

    translateStatus = new ComboBoxMultiselect("? ",
            Arrays.asList(TRANSLATE_STATUS.values()));
    translateStatus.setClearButtonCaption("?");
    translateStatus.addValueChangeListener(new Property.ValueChangeListener() {
        @Override
        public void valueChange(Property.ValueChangeEvent event) {
            LoadFilters();
            LoadNpcContent();
        }
    });
    translateStatus.setPageLength(20);
    noTranslations = new CheckBox("?  ?");
    noTranslations.setValue(Boolean.FALSE);
    noTranslations.addValueChangeListener(new HasValue.ValueChangeListener<Boolean>() {
        @Override
        public void valueChange(HasValue.ValueChangeEvent<Boolean> event) {
            LoadFilters();
            LoadNpcContent();
        }
    });

    emptyTranslations = new CheckBox("?  ");
    emptyTranslations.setValue(Boolean.FALSE);
    emptyTranslations.addValueChangeListener(new HasValue.ValueChangeListener<Boolean>() {
        @Override
        public void valueChange(HasValue.ValueChangeEvent<Boolean> event) {
            LoadFilters();
            LoadNpcContent();
        }
    });
    HorizontalLayout checkBoxlayout = new HorizontalLayout(noTranslations, emptyTranslations);
    translatorBox = new ComboBox("");
    translatorBox.setPageLength(15);
    translatorBox.setScrollToSelectedItem(true);
    translatorBox.setDataProvider(new ListDataProvider(service.getSysAccounts()));
    translatorBox.addValueChangeListener(new HasValue.ValueChangeListener() {
        @Override
        public void valueChange(HasValue.ValueChangeEvent event) {
            LoadFilters();
            LoadNpcContent();
        }
    });
    refreshButton = new Button("");
    refreshButton.addClickListener(new Button.ClickListener() {

        @Override
        public void buttonClick(Button.ClickEvent event) {
            LoadFilters();
            LoadNpcContent();
        }
    });
    countLabel = new Label();
    searchField = new TextField("?? ?");
    searchField.setSizeFull();
    searchField.addValueChangeListener(new HasValue.ValueChangeListener<String>() {
        @Override
        public void valueChange(HasValue.ValueChangeEvent<String> event) {
            LoadFilters();
            LoadNpcContent();
        }
    });

    FormLayout questAndWithNewTranslations = new FormLayout(translateStatus, translatorBox, checkBoxlayout,
            searchField);
    questAndWithNewTranslations.addStyleName(ValoTheme.FORMLAYOUT_LIGHT);
    questAndWithNewTranslations.setSizeFull();
    npcListlayout.addComponent(questAndWithNewTranslations);
    npcListlayout.addComponent(refreshButton);
    npcListlayout.addComponent(countLabel);
    npcListlayout.setExpandRatio(locationAndNpc, 0.4f);
    npcListlayout.setExpandRatio(questAndWithNewTranslations, 0.4f);
    npcListlayout.setExpandRatio(refreshButton, 0.1f);
    npcListlayout.setExpandRatio(countLabel, 0.1f);
    npcContentLayout = new VerticalLayout();
    npcContentLayout.setSizeFull();
    npcContentLayout.setSpacing(false);
    npcContentLayout.setMargin(false);
    npcTabSheet = new TabSheet();
    npcTabSheet.setSizeFull();
    npcTabLayout = new VerticalLayout();
    locationName = new TextField("? ");
    npcTabLayout.addComponent(locationName);
    locationNameRu = new TextField(" ? ");
    npcTabLayout.addComponent(locationNameRu);
    npcName = new TextField("? NPC");
    npcTabLayout.addComponent(npcName);
    npcNameRu = new TextField("  NPC");
    npcTabLayout.addComponent(npcNameRu);
    npcTab = npcTabSheet.addTab(npcTabLayout, "");
    npcTopicsTable = new Table();
    npcTopicsTable.addStyleName(ValoTheme.TABLE_COMPACT);
    npcTopicsTable.setSizeFull();
    npcTopicsTable.setPageLength(0);
    topicsContainer = new BeanItemContainer<>(Topic.class);
    npcTopicsTable.setContainerDataSource(topicsContainer);
    npcTopicsTable.addGeneratedColumn("npcTextG", topicNpcColumnGenerator);
    npcTopicsTable.addGeneratedColumn("playerTextG", topicPlayerColumnGenerator);
    npcTopicsTable.removeGeneratedColumn("playerTranslations");
    npcTopicsTable.addGeneratedColumn("playerTranslations", translationColumnGenerator);
    npcTopicsTable.removeGeneratedColumn("npcTranslations");
    npcTopicsTable.addGeneratedColumn("npcTranslations", translationColumnGenerator);
    npcTopicsTable.setVisibleColumns(
            new Object[] { "playerTextG", "playerTranslations", "npcTextG", "npcTranslations" });
    npcTopicsTable.setColumnHeaders(new String[] { " ", "",
            " NPC", "" });
    npcTopicsTable.setColumnExpandRatio("playerTextG", 1f);
    npcTopicsTable.setColumnExpandRatio("playerTranslations", 1.5f);
    npcTopicsTable.setColumnExpandRatio("npcTextG", 1.5f);
    npcTopicsTable.setColumnExpandRatio("npcTranslations", 1.5f);
    npcTopicsTable.setColumnWidth("actions", 150);
    npcSubtitlesTable = new Table();
    npcSubtitlesTable.addStyleName(ValoTheme.TABLE_COMPACT);
    npcSubtitlesTable.setSizeFull();
    npcSubtitlesTable.setPageLength(0);
    subtitlesContainer = new BeanItemContainer<>(Subtitle.class);
    npcSubtitlesTable.setContainerDataSource(subtitlesContainer);
    npcSubtitlesTable.addGeneratedColumn("textG", subtitleColumnGenerator);
    npcSubtitlesTable.removeGeneratedColumn("translations");
    npcSubtitlesTable.addGeneratedColumn("translations", translationColumnGenerator);
    npcSubtitlesTable.setVisibleColumns(new Object[] { "textG", "translations" });
    npcSubtitlesTable.setColumnHeaders(new String[] { "", "" });
    npcSubtitlesTable.setColumnExpandRatio("textG", 1f);
    npcSubtitlesTable.setColumnExpandRatio("translations", 1f);
    npcSubtitlesTable.setColumnWidth("actions", 150);

    npcTopicsTab = npcTabSheet.addTab(npcTopicsTable, "");
    npcSubtitlesTab = npcTabSheet.addTab(npcSubtitlesTable, "");
    npcContentLayout.addComponent(npcTabSheet);
    this.addComponent(npcListlayout);
    this.addComponent(npcContentLayout);
    this.npcListlayout.setHeight(105f, Unit.PIXELS);
    this.setExpandRatio(npcContentLayout, 1f);
    LoadFilters();
    new NoAutcompleteComboBoxExtension(questTable);
    new NoAutcompleteComboBoxExtension(locationTable);
    new NoAutcompleteComboBoxExtension(subLocationTable);
    new NoAutcompleteComboBoxExtension(npcTable);
    new NoAutcompleteComboBoxExtension(translatorBox);
}