List of usage examples for com.vaadin.v7.data.util.converter Converter Converter
Converter
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); }