Example usage for com.vaadin.v7.data.util.converter Converter Converter

List of usage examples for com.vaadin.v7.data.util.converter Converter Converter

Introduction

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

Prototype

Converter

Source Link

Usage

From source file:de.symeda.sormas.ui.configuration.outbreak.OutbreakOverviewGrid.java

License:Open Source License

public OutbreakOverviewGrid() {
    super();/*from  ww  w . ja v a  2s  . c  o m*/
    setSizeFull();
    setSelectionMode(SelectionMode.NONE);

    user = UserProvider.getCurrent().getUser();

    addColumn(REGION, RegionReferenceDto.class).setMaximumWidth(200);
    getColumn(REGION).setHeaderCaption(I18nProperties.getCaption(Captions.region));

    for (Disease disease : FacadeProvider.getDiseaseConfigurationFacade().getAllActivePrimaryDiseases()) {
        addColumn(disease, OutbreakRegionConfiguration.class).setMaximumWidth(200)
                .setHeaderCaption(disease.toShortString())
                .setConverter(new Converter<String, OutbreakRegionConfiguration>() {
                    @Override
                    public OutbreakRegionConfiguration convertToModel(String value,
                            Class<? extends OutbreakRegionConfiguration> targetType, Locale locale)
                            throws ConversionException {
                        throw new UnsupportedOperationException(
                                "Can only convert from OutbreakRegionConfiguration to String");
                    }

                    @Override
                    public String convertToPresentation(OutbreakRegionConfiguration value,
                            Class<? extends String> targetType, Locale locale) throws ConversionException {

                        boolean styleAsButton = UserProvider.getCurrent()
                                .hasUserRight(UserRight.OUTBREAK_CONFIGURE_ALL)
                                || (UserProvider.getCurrent()
                                        .hasUserRight(UserRight.OUTBREAK_CONFIGURE_RESTRICTED)
                                        && UserProvider.getCurrent().getUser().getRegion()
                                                .equals(value.getRegion()));
                        boolean moreThanHalfOfDistricts = value.getAffectedDistricts()
                                .size() >= value.getTotalDistricts() / 2.0f;

                        String styles;
                        if (styleAsButton) {
                            if (moreThanHalfOfDistricts) {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_BUTTON,
                                        CssStyles.BUTTON_CRITICAL);
                            } else if (!value.getAffectedDistricts().isEmpty()) {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_BUTTON,
                                        CssStyles.BUTTON_WARNING);
                            } else {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_BUTTON);
                            }

                        } else {
                            if (moreThanHalfOfDistricts) {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_LABEL,
                                        CssStyles.LABEL_CRITICAL);
                            } else if (!value.getAffectedDistricts().isEmpty()) {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_LABEL,
                                        CssStyles.LABEL_WARNING);
                            } else {
                                styles = CssStyles.buildVaadinStyle(CssStyles.VAADIN_LABEL);
                            }
                        }
                        return LayoutUtil.divCss(styles, value.toString());
                    }

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

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

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

    setCellDescriptionGenerator(cell -> getCellDescription(cell));

    setCellStyleGenerator(new CellStyleGenerator() {
        @Override
        public String getStyle(CellReference cell) {
            if (cell.getProperty().getValue() instanceof OutbreakRegionConfiguration) {
                return CssStyles.ALIGN_CENTER;
            }
            return null;
        }
    });

    addItemClickListener(this);
}

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//ww  w  . j  a  v  a2s  .  c o m
        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.SpellerTestTab.java

public SpellerTestTab(DBService service_) {
    this.service = service_;
    this.setSizeFull();
    hl = new HorizontalLayout();
    startDate = new DateField();
    startDate.setResolution(Resolution.DAY);
    endDate = new DateField();
    endDate.setResolution(Resolution.DAY);
    hl.addComponent(startDate);/*  w ww . j  a  va  2 s.co m*/
    hl.addComponent(endDate);

    checkButton = new Button("");
    checkButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            Date dateEndValue = null;
            if (endDate.getValue() != null) {
                Calendar cal = Calendar.getInstance();
                cal.setTime(endDate.getValue());
                cal.add(Calendar.DAY_OF_YEAR, 1);
                dateEndValue = cal.getTime();
            }
            hc = service.getTextForSpellCheck(startDate.getValue(), dateEndValue, hc);
            try {
                SpellService yservice = new SpellService();
                SpellServiceSoap port = yservice.getSpellServiceSoap12();
                List<Object> parentIds = new ArrayList<>();
                for (Object itemId : hc.getItemIds()) {
                    parentIds.add(itemId);
                }
                for (Object itemId : parentIds) {
                    CheckTextRequest parameters = new CheckTextRequest();
                    parameters.setLang("ru");
                    parameters.setText((String) hc.getItem(itemId).getItemProperty("textRu").getValue());
                    parameters.setFormat("plain");
                    parameters.setOptions(0);
                    CheckTextResponse result = port.checkText(parameters);
                    if (result != null && result.getSpellResult() != null
                            && result.getSpellResult().getError() != null) {
                        for (SpellError error : result.getSpellResult().getError()) {

                            SPELLER_ERROR e = SPELLER_ERROR.valueOf(error.getCode());
                            String word = error.getWord();
                            boolean existSpellerWord = service.isExistSpellerWord(word);
                            if (!((e == SPELLER_ERROR.ERROR_UNKNOWN_WORD) && (existSpellerWord))) {
                                Item item = hc.addItem(error);

                                item.getItemProperty("errorType").setValue(e);
                                item.getItemProperty("word").setValue(error.getWord());
                                item.getItemProperty("s").setValue(error.getS());
                                hc.setParent(error, itemId);
                                hc.setChildrenAllowed(error, false);
                            }

                        }
                    }

                    resultTable.setCollapsed(itemId, false);
                }

                excludeWithoutErrors();

            } catch (Exception ex) {
                LOG.log(Level.INFO, null, ex);
            }

        }
    });
    hl.addComponent(checkButton);
    this.addComponent(hl);
    hc = new HierarchicalContainer();
    hc.addContainerProperty("textEn", String.class, null);
    hc.addContainerProperty("textRu", String.class, null);
    hc.addContainerProperty("catalogType", String.class, null);
    hc.addContainerProperty("translator", String.class, null);
    hc.addContainerProperty("errorType", SPELLER_ERROR.class, null);
    hc.addContainerProperty("word", String.class, null);
    hc.addContainerProperty("s", List.class, null);
    resultTable = new TreeTable();
    resultTable.setContainerDataSource(hc);
    resultTable.setWidth(100f, Unit.PERCENTAGE);

    resultTable.addGeneratedColumn("actionsColumn", new Table.ColumnGenerator() {

        @Override
        public Object generateCell(Table source, Object itemId, Object columnId) {
            if (itemId instanceof SpellError) {
                Button b = new Button("  ??");
                b.addClickListener(new WordAddClickListener(service,
                        (String) source.getItem(itemId).getItemProperty("word").getValue(),
                        (SpellError) itemId));
                return b;
            } else {
                Button b = new Button("");
                b.addClickListener(new SaveItemListener(itemId));
                return b;
            }

        }
    });
    resultTable.setVisibleColumns(new Object[] { "textEn", "textRu", "catalogType", "translator", "errorType",
            "word", "s", "actionsColumn" });
    resultTable.setColumnHeaders(new String[] { "", "", " ",
            "", " ", "", "", "" });
    Page.Styles styles = Page.getCurrent().getStyles();
    styles.add(".v-table-cell-wrapper {\n" + "    /* Do not specify any margins, paddings or borders here */\n"
            + "    white-space: normal;\n" + "    /*overflow: hidden;*/\n" + "}");
    resultTable.addStyleName("v-table-cell-wrapper");
    resultTable.setColumnExpandRatio("textEn", 3f);
    resultTable.setColumnExpandRatio("textRu", 3f);
    resultTable.setColumnExpandRatio("catalogType", 1f);
    resultTable.setColumnExpandRatio("translator", 0.7f);
    resultTable.setColumnExpandRatio("errorType", 1f);
    resultTable.setColumnExpandRatio("word", 1f);
    resultTable.setColumnExpandRatio("s", 1f);
    resultTable.setColumnExpandRatio("actionsColumn", 1.2f);
    resultTable.setConverter("s", new Converter<String, List>() {

        @Override
        public List convertToModel(String value, Class<? extends List> targetType, Locale locale)
                throws Converter.ConversionException {
            if (value != null && !value.isEmpty()) {
                String[] split = value.split("\n");
                return new ArrayList(Arrays.asList(split));
            }
            return null;
        }

        @Override
        public String convertToPresentation(List value, Class<? extends String> targetType, Locale locale)
                throws Converter.ConversionException {
            StringBuilder sb = new StringBuilder("");
            if (value != null) {
                for (int i = 0; i < value.size(); i++) {
                    sb.append(value.get(i));
                    if (i != value.size() - 1) {
                        sb.append("\n");
                    }
                }
            }

            String joined = sb.toString();
            return joined;
        }

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

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

    });
    resultTable.setTableFieldFactory(new TableFieldFactory() {

        @Override
        public Field<?> createField(Container container, Object itemId, Object propertyId,
                Component uiContext) {
            Field result = null;
            if (!(itemId instanceof SpellError) && propertyId.equals("textRu")) {
                result = new TextArea();
                result.setPropertyDataSource(container.getItem(itemId).getItemProperty(propertyId));
                result.setSizeFull();
            }
            if (!(itemId instanceof SpellError) && propertyId.equals("textEn")) {
                result = new TextArea();
                result.setPropertyDataSource(container.getItem(itemId).getItemProperty(propertyId));
                result.setReadOnly(true);
                result.setSizeFull();
            }
            return result;
        }
    });
    resultTable.setEditable(true);
    this.addComponent(resultTable);
}