public class ReportBuilder<D> extends Object
ReportBuilder.of("Hotel Report")
.add(Hotel::getName, "Hotel", NAME)
.add(Hotel::getCity, "City", CITY)
.add(Hotel::getStreet, "Street")
.build(ServletRequest, ServletResponse, resource);
| Modifier and Type | Class and Description |
|---|---|
static class |
ReportBuilder.Url
URL constants
|
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
ajaxEnabled
is An AJAX enabled?
|
protected @NotNull HttpParameter |
ajaxRequestParam
AJAX request param
|
protected boolean |
autoSubmmitOnLoad
Call an autosubmit on first load
|
protected ReportBuilderConfig |
config
Table builder config
|
protected @NotNull Injector |
footer
Print an empty text by default
|
protected @NotNull Injector |
formAdditions
Form injector
|
protected @NotNull GridBuilder<D> |
gridBuilder
Grid builder
|
protected @NotNull Injector |
header
Print a config title by default
|
protected @NotNull Injector |
htmlHeader
Extension is empty by default
|
protected @NotNull Supplier<Injector> |
javascritWriter
Javascript writer
|
| Constructor and Description |
|---|
ReportBuilder(@NotNull HtmlConfig config) |
ReportBuilder(@NotNull CharSequence title) |
ReportBuilder(@NotNull ReportBuilderConfig config) |
ReportBuilder(@NotNull ReportBuilderConfig config,
@NotNull GridBuilder<D> builder) |
| Modifier and Type | Method and Description |
|---|---|
<V> @NotNull ReportBuilder<D> |
add(Function<D,V> column) |
<V> @NotNull ReportBuilder<D> |
add(Function<D,V> column,
CharSequence title) |
<V> @NotNull ReportBuilder<D> |
add(Function<D,V> column,
CharSequence title,
@Nullable HttpParameter param) |
<V> @NotNull ReportBuilder<D> |
add(Function<D,V> column,
Injector title) |
<V> @NotNull ReportBuilder<D> |
add(Function<D,V> column,
Injector title,
@Nullable HttpParameter param) |
@NotNull ReportBuilder<D> |
addColumn(@NotNull Column<D> column,
@NotNull CharSequence title) |
@NotNull ReportBuilder<D> |
addColumn(@NotNull Column<D> column,
@NotNull Injector title) |
@NotNull ReportBuilder<D> |
addOrder(@NotNull CharSequence title)
Add new column for a row counting
|
void |
build(@NotNull RContext context,
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
Build the HTML page including a table
|
void |
build(@NotNull RContext context,
@NotNull Stream<D> resource)
Build the HTML page including a table
|
protected void |
doAjax(@NotNull RContext context,
@NotNull JsonBuilder output,
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
Return lighlited text in HTML format according a regular expression
|
ColumnModel<D,?> |
getColumn(int index)
Get column model by index
|
int |
getColumnSize()
Returns a count of columns
|
@NotNull ColumnModel<D,?> |
getSortedColumn()
Get sorted column or a stub if the sorted column not found
|
protected void |
printHtmlBody(@NotNull RContext context,
@NotNull HtmlElement html,
@NotNull Function<GridBuilder<D>,Stream<D>> resource) |
protected void |
printSortedField(Element parent,
RContext context)
The hidden field contains an index of the last sorted column
|
protected void |
printTableBody(@NotNull Element table,
@NotNull RContext context,
@NotNull Function<GridBuilder<D>,Stream<D>> resource) |
ReportBuilder<D> |
setAjaxEnabled(boolean ajaxEnabled)
Enable of disable an AJAX feature, default value si
true |
@NotNull ReportBuilder<D> |
setAjaxRequestParam(@NotNull HttpParameter ajaxRequestParam) |
ReportBuilder<D> |
setEmbeddedIcons(boolean embeddedIcons) |
@NotNull ReportBuilder<D> |
setFooter(@NotNull Injector footer) |
@NotNull ReportBuilder<D> |
setFormItem(@NotNull Injector formItem) |
@NotNull ReportBuilder<D> |
setHeader(@NotNull Injector header) |
@NotNull ReportBuilder<D> |
setHtmlHeader(@NotNull Injector htmlHeader) |
ReportBuilder<D> |
setJavascritWriter(@NotNull Supplier<Injector> javascritWriter) |
protected void |
setSort(@NotNull ColumnModel sort)
Mark a column as sortable
|
<V> @NotNull ReportBuilder<D> |
sortable()
Add a sortable indicator to the last column model
|
<V> @NotNull ReportBuilder<D> |
sortable(@Nullable boolean ascending)
Add a sortable indicator to the last column model
|
<V> @NotNull ReportBuilder<D> |
sortable(@NotNull Direction direction)
Add a sortable indicator to the last column model
|
@NotNull protected final @NotNull GridBuilder<D> gridBuilder
protected final ReportBuilderConfig config
@NotNull protected @NotNull HttpParameter ajaxRequestParam
@NotNull protected @NotNull Injector htmlHeader
@NotNull protected @NotNull Injector header
@NotNull protected @NotNull Injector footer
@NotNull protected @NotNull Injector formAdditions
protected boolean ajaxEnabled
protected boolean autoSubmmitOnLoad
public ReportBuilder(@NotNull
@NotNull CharSequence title)
public ReportBuilder(@NotNull
@NotNull HtmlConfig config)
public ReportBuilder(@NotNull
@NotNull ReportBuilderConfig config)
public ReportBuilder(@NotNull
@NotNull ReportBuilderConfig config,
@NotNull
@NotNull GridBuilder<D> builder)
@NotNull public <V> @NotNull ReportBuilder<D> add(Function<D,V> column)
@NotNull public <V> @NotNull ReportBuilder<D> add(Function<D,V> column, CharSequence title)
@NotNull public <V> @NotNull ReportBuilder<D> add(Function<D,V> column, Injector title)
@NotNull public <V> @NotNull ReportBuilder<D> add(Function<D,V> column, CharSequence title, @Nullable @Nullable HttpParameter param)
@NotNull public <V> @NotNull ReportBuilder<D> add(Function<D,V> column, Injector title, @Nullable @Nullable HttpParameter param)
@NotNull public @NotNull ReportBuilder<D> addColumn(@NotNull @NotNull Column<D> column, @NotNull @NotNull CharSequence title)
@NotNull public @NotNull ReportBuilder<D> addColumn(@NotNull @NotNull Column<D> column, @NotNull @NotNull Injector title)
@NotNull public @NotNull ReportBuilder<D> addOrder(@NotNull @NotNull CharSequence title)
public ColumnModel<D,?> getColumn(int index)
public int getColumnSize()
@NotNull public <V> @NotNull ReportBuilder<D> sortable()
@NotNull public <V> @NotNull ReportBuilder<D> sortable(@Nullable @Nullable boolean ascending)
ascending - Ascending or descending direction of the sort@NotNull public <V> @NotNull ReportBuilder<D> sortable(@NotNull @NotNull Direction direction)
direction - The null value shows an unused sorting action.@NotNull public @NotNull ColumnModel<D,?> getSortedColumn()
@NotNull public @NotNull ReportBuilder<D> setAjaxRequestParam(@NotNull @NotNull HttpParameter ajaxRequestParam)
@NotNull public @NotNull ReportBuilder<D> setHtmlHeader(@NotNull @NotNull Injector htmlHeader)
@NotNull public @NotNull ReportBuilder<D> setHeader(@NotNull @NotNull Injector header)
@NotNull public @NotNull ReportBuilder<D> setFooter(@NotNull @NotNull Injector footer)
@NotNull public @NotNull ReportBuilder<D> setFormItem(@NotNull @NotNull Injector formItem)
public ReportBuilder<D> setAjaxEnabled(boolean ajaxEnabled)
truepublic ReportBuilder<D> setJavascritWriter(@NotNull @NotNull Supplier<Injector> javascritWriter)
public ReportBuilder<D> setEmbeddedIcons(boolean embeddedIcons) throws IllegalStateException
IllegalStateExceptionpublic void build(@NotNull
@NotNull RContext context,
@NotNull
@NotNull Stream<D> resource)
public void build(@NotNull
@NotNull RContext context,
@NotNull
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
protected void setSort(@NotNull
@NotNull ColumnModel sort)
protected void printHtmlBody(@NotNull
@NotNull RContext context,
@NotNull
@NotNull HtmlElement html,
@NotNull
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
protected void printSortedField(Element parent, RContext context)
protected void printTableBody(@NotNull
@NotNull Element table,
@NotNull
@NotNull RContext context,
@NotNull
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
protected void doAjax(@NotNull
@NotNull RContext context,
@NotNull
@NotNull JsonBuilder output,
@NotNull
@NotNull Function<GridBuilder<D>,Stream<D>> resource)
throws IOException
context - servlet contextoutput - A JSON writerIOException - if an I/O error occursCopyright 2015, Pavel Ponec