GridUtil
Toolkit to simplify the use of the grid and adds missing features
This toolkil simplify the use of the grid and adds missing features
- introduce a easy way to build a filterrow
- add renderers that allows to display a combination of button and value within one cell (missing view/edit/delete button)
- shorten the lines of code for writing StringConverter
- add missing css-settings for cell alignment
The GridCellFilter-Component contains filters for the following types:
- String
- Date
- Number (checks if Integer, Long, Double...)
- Objects / Enums (via ComboBox with Equals-Filter)
- allows to add custom Filters and Components
For detailed code-example please take a look in the github demo-application. There I've tried to structure my code so that you can understand the usage and the features...
Sample code
package org.vaadin.gridutil.demo; import java.text.DateFormat; import java.util.Arrays; import java.util.Date; import java.util.Locale; import javax.servlet.annotation.WebServlet; import org.vaadin.gridutil.GridUtil; import org.vaadin.gridutil.cell.*; import org.vaadin.gridutil.converter.SimpleStringConverter; import org.vaadin.gridutil.demo.data.*; import org.vaadin.gridutil.renderer.*; import org.vaadin.gridutil.renderer.EditDeleteButtonValueRenderer.EditDeleteButtonClickListener; import com.vaadin.*; @Theme("valo") public class DemoUI extends UI { private GridCellFilter filter; @Override protected void init(final VaadinRequest request) { Grid grid = genGrid(); this.filter = new GridCellFilter(grid); this.filter.setNumberFilter("id"); // set gender Combo with custom icons ComboBox genderCombo = this.filter.setComboBoxFilter("gender", Arrays.asList(Gender.MALE, Gender.FEMALE)); genderCombo.setItemIcon(Gender.MALE, FontAwesome.MALE); genderCombo.setItemIcon(Gender.FEMALE, FontAwesome.FEMALE); // simple filters this.filter.setTextFilter("name", true, true); this.filter.setNumberFilter("bodySize"); this.filter.setDateFilter("birthday"); this.filter.setBooleanFilter("onFacebook"); // set country combo with custom caption ComboBox countryCombo = this.filter.setComboBoxFilter("country", DummyDataGen.COUNTRIES); countryCombo.setItemCaptionMode(ItemCaptionMode.PROPERTY); countryCombo.setItemCaptionPropertyId("name"); setContent(grid); } }
package org.vaadin.gridutil.demo; import java.text.DateFormat; import java.util.Arrays; import java.util.Date; import java.util.Locale; import javax.servlet.annotation.WebServlet; import org.vaadin.gridutil.GridUtil; import org.vaadin.gridutil.cell.*; import org.vaadin.gridutil.converter.SimpleStringConverter; import org.vaadin.gridutil.demo.data.*; import org.vaadin.gridutil.renderer.*; import org.vaadin.gridutil.renderer.EditDeleteButtonValueRenderer.EditDeleteButtonClickListener; import com.vaadin.*; @Theme("valo") public class DemoUI extends UI { private GridCellFilter filter; @Override protected void init(final VaadinRequest request) { Grid grid = genGrid(); grid.getColumn("id") .setRenderer(new EditDeleteButtonValueRenderer(new EditDeleteButtonClickListener() { @Override public void onEdit(final RendererClickEvent event) { Notification.show(event.getItemId() .toString() + " want's to get edited", Type.HUMANIZED_MESSAGE); } @Override public void onDelete(final com.vaadin.ui.renderers.ClickableRenderer.RendererClickEvent event) { Notification.show(event.getItemId() .toString() + " want's to get delete", Type.WARNING_MESSAGE); }; })) .setWidth(150); grid.getColumn("bodySize") .setWidth(150); grid.getColumn("birthday") .setRenderer(new DateRenderer(DateFormat.getDateInstance())) .setWidth(210); grid.getColumn("onFacebook") .setRenderer(new BooleanRenderer()) .setWidth(130); setContent(grid); } }
package org.vaadin.gridutil.demo; import java.text.DateFormat; import java.util.Arrays; import java.util.Date; import java.util.Locale; import javax.servlet.annotation.WebServlet; import org.vaadin.gridutil.GridUtil; import org.vaadin.gridutil.cell.*; import org.vaadin.gridutil.converter.SimpleStringConverter; import org.vaadin.gridutil.demo.data.*; import org.vaadin.gridutil.renderer.*; import org.vaadin.gridutil.renderer.EditDeleteButtonValueRenderer.EditDeleteButtonClickListener; import com.vaadin.*; @Theme("valo") public class DemoUI extends UI { private GridCellFilter filter; @Override protected void init(final VaadinRequest request) { Grid grid = genGrid(); grid.getColumn("country") .setConverter(new SimpleStringConverter<Country>(Country.class) { @Override public String convertToPresentation(final Country value, final Class<? extends String> targetType, final Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException { return String.format("%s <i>(%d)</i>", value.getName(), value.getPopulation()); } }); setContent(grid); } }
Links
Compatibility
Was this helpful? Need more help?
Leave a comment or a question below. You can also join
the chat on Discord or
ask questions on StackOverflow.
Version
- support getValueProvider thx to @oguzakp
- GridCellFilter without beanType thx to @Flamenco
- Released
- 2018-03-07
- Maturity
- EXPERIMENTAL
- License
- MIT License
Compatibility
- Framework
- Vaadin 8.1+
- Vaadin 7.4+ in 1.1.0
- Browser
- Browser Independent
GridUtil - Vaadin Add-on Directory
Toolkit to simplify the use of the grid and adds missing featuresThis toolkil simplify the use of the grid and adds missing features
- introduce a easy way to build a filterrow
- add renderers that allows to display a combination of button and value within one cell (missing view/edit/delete button)
- shorten the lines of code for writing StringConverter
- add missing css-settings for cell alignment
The GridCellFilter-Component contains filters for the following types:
- String
- Date
- Number (checks if Integer, Long, Double...)
- Objects / Enums (via ComboBox with Equals-Filter)
- allows to add custom Filters and Components
For detailed code-example please take a look in the github demo-application. There I've tried to structure my code so that you can understand the usage and the features...