public interface XMLContentBuilder extends ContentBuilder, ExtendedXMLBuilder
ContentBuilder
and ExtendedXMLBuilder
for a web context where ContentBuilder
is implemented as html.
most of the ContentBuilder
methods (those that only rely on the ExtendedXMLBuilder
interface)
are implemented as default methods
so different ExtendedXMLBuilder
sub-classes can
share a single implementation.Modifier and Type | Field and Description |
---|---|
static Feature |
STREAM_BUILDER_FEATURE |
Modifier and Type | Method and Description |
---|---|
default void |
addActionButtons(Form f,
java.lang.String legend,
java.util.Set<java.lang.String> actions)
A a set of action buttons to the content
|
default void |
addButton(AppContext conn,
java.lang.String text,
FormResult action)
Add an action button to the Content
|
default void |
addButton(AppContext conn,
java.lang.String text,
java.lang.String hover,
FormResult action)
Add an action button to the Content
|
default <C,R> void |
addColumn(AppContext conn,
Table<C,R> t,
C col)
Add the data from a single column of a
Table formatted in
2 columns (key and data). |
default <I,T> void |
addFormInput(AppContext conn,
Field<I> f,
T item)
Add the input for a form
Field
If the input is a RadioButtonInput then the item parameter
selects which item the input is for. |
default <I,T> void |
addFormLabel(AppContext conn,
Field<I> f,
T item)
Add the label for a form
Field |
default void |
addFormTable(AppContext conn,
java.lang.Iterable<Field> form)
Add a set of
Field s as a table of labels and inputs. |
default void |
addHeading(int level,
java.lang.String text)
Convenience routine to add a heading containing unformatted text.
|
default void |
addImage(AppContext conn,
java.lang.String alt,
java.lang.String hover,
java.lang.Integer width,
java.lang.Integer height,
ServeDataResult image)
Add an image served by a
ServeDataResult |
default void |
addLink(AppContext conn,
java.lang.String text,
FormResult action)
Add an action link to the Content
|
default void |
addLink(AppContext conn,
java.lang.String text,
java.lang.String hover,
FormResult action)
Add an action link to the Content
|
default <X> void |
addList(java.lang.Iterable<X> list)
add a bullet list of objects to the content.
|
default <X> void |
addList(java.util.Map<java.lang.String,java.lang.String> attr,
java.lang.Iterable<X> list)
add a bullet list of objects to the content.
|
default <X> void |
addList(X[] list)
add a bullet list of objects to the content.
|
default <X> void |
addNumberedList(int start,
java.lang.Iterable<X> list)
add a numbered list of objects to the content.
|
default <X> void |
addObject(X target)
Add an object depending on its type.
|
default <C,R> void |
addTable(AppContext conn,
java.text.NumberFormat nf,
Table<C,R> t)
Add a table to the content.
|
default <C,R> void |
addTable(AppContext conn,
Table<C,R> t)
Add a table to the content.
|
default <C,R> void |
addTable(AppContext conn,
Table<C,R> t,
java.text.NumberFormat nf,
java.lang.String style)
Add a table to the content.
|
default <C,R> void |
addTable(AppContext conn,
Table<C,R> t,
java.lang.String style)
Add a table to the content.
|
default void |
addText(java.lang.String text)
Add unformatted text.
|
void |
append(XMLPrinter target) |
default <X> boolean |
canAdd(X target)
Does this ContentBuilder have special handling for the object
beyond adding the string representation.
|
default void |
closeDetails()
finish a section started by
ContentBuilder.getDetails(Object)
this may be a no-op if expended section are not supported |
default ContentBuilder |
getDetails(java.lang.Object summary_text)
get an expanding/folding section if supported
This method can either return a new
ContentBuilder or
the current object. |
HtmlFormPolicy |
getFormPolicy() |
Logger |
getLogger(AppContext conn) |
boolean |
setNewTab(boolean new_tab) |
boolean |
useNewTab() |
addActionButtons, addFormLabel, addParent, cleanFormatted, getHeading, getPanel, getSpan, getSpan, getText
addClass, br, nbs
appendParent, attr, attr, clean, clean, clean, close, getNested, getParent, open, open, setEscapeUnicode
static final Feature STREAM_BUILDER_FEATURE
default <I,T> void addFormLabel(AppContext conn, Field<I> f, T item)
ContentBuilder
Field
addFormLabel
in interface ContentBuilder
f
- Fielditem
- item (only used by RadioInputs)default <I,T> void addFormInput(AppContext conn, Field<I> f, T item)
ContentBuilder
Field
If the input is a RadioButtonInput
then the item parameter
selects which item the input is for. If item is null then
a RadioButtonInput
will output all inputs in a block.addFormInput
in interface ContentBuilder
conn
- AppContextf
- Fielditem
- item (only used by RadioInputs)default <X> void addList(java.lang.Iterable<X> list)
ContentBuilder
UIGenerator
s will generate their content otherwise
a suitable text representation will be used.addList
in interface ContentBuilder
default <X> void addList(java.util.Map<java.lang.String,java.lang.String> attr, java.lang.Iterable<X> list)
ContentBuilder
UIGenerator
s will generate their content otherwise
a suitable text representation will be used.addList
in interface ContentBuilder
default <X> void addNumberedList(int start, java.lang.Iterable<X> list)
ContentBuilder
UIGenerator
s will generate their content otherwise
a suitable text representation will be used.addNumberedList
in interface ContentBuilder
default <X> void addObject(X target)
ContentBuilder
ContentBuilder.addParent()
on child objects.addObject
in interface ContentBuilder
addObject
in interface SimpleXMLBuilder
target
- default <X> boolean canAdd(X target)
ContentBuilder
canAdd
in interface ContentBuilder
void append(XMLPrinter target)
Logger getLogger(AppContext conn)
boolean useNewTab()
boolean setNewTab(boolean new_tab)
HtmlFormPolicy getFormPolicy()
default <X> void addList(X[] list)
ContentBuilder
UIGenerator
s will generate their content otherwise
a suitable text representation will be used.addList
in interface ContentBuilder
default void addButton(AppContext conn, java.lang.String text, FormResult action)
ContentBuilder
addButton
in interface ContentBuilder
conn
- AppContextdefault void addButton(AppContext conn, java.lang.String text, java.lang.String hover, FormResult action)
ContentBuilder
addButton
in interface ContentBuilder
conn
- AppContexthover
- tooltip textdefault void addLink(AppContext conn, java.lang.String text, FormResult action)
ContentBuilder
addLink
in interface ContentBuilder
conn
- AppContexttext
- link textaction
- FormResult to navigate to.default void addLink(AppContext conn, java.lang.String text, java.lang.String hover, FormResult action)
ContentBuilder
addLink
in interface ContentBuilder
conn
- AppContexttext
- link texthover
- tooltip textaction
- FormResult to navigate to.default void addImage(AppContext conn, java.lang.String alt, java.lang.String hover, java.lang.Integer width, java.lang.Integer height, ServeDataResult image)
ContentBuilder
ServeDataResult
addImage
in interface ContentBuilder
width
- (optional, ignored if <= 0)height
- (optional, ignored if <= 0)default <C,R> void addTable(AppContext conn, Table<C,R> t, java.lang.String style)
ContentBuilder
UIGenerator
should be added via UIGenerator.addContent(ContentBuilder)
addTable
in interface ContentBuilder
default <C,R> void addColumn(AppContext conn, Table<C,R> t, C col)
ContentBuilder
Table
formatted in
2 columns (key and data).addColumn
in interface ContentBuilder
default void addText(java.lang.String text)
ContentBuilder
ContentBuilder.getText()
.clean(text).appendParent().addText
in interface ContentBuilder
text
- string to add to contentdefault void addHeading(int level, java.lang.String text)
ContentBuilder
ContentBuilder.getHeading(int)
.addText(text).addHeading
in interface ContentBuilder
default <C,R> void addTable(AppContext conn, Table<C,R> t)
ContentBuilder
UIGenerator
should be added via UIGenerator.addContent(ContentBuilder)
addTable
in interface ContentBuilder
default <C,R> void addTable(AppContext conn, java.text.NumberFormat nf, Table<C,R> t)
ContentBuilder
UIGenerator
should be added via UIGenerator.addContent(ContentBuilder)
addTable
in interface ContentBuilder
default <C,R> void addTable(AppContext conn, Table<C,R> t, java.text.NumberFormat nf, java.lang.String style)
ContentBuilder
UIGenerator
should be added via UIGenerator.addContent(ContentBuilder)
addTable
in interface ContentBuilder
default void addFormTable(AppContext conn, java.lang.Iterable<Field> form)
ContentBuilder
Field
s as a table of labels and inputs.addFormTable
in interface ContentBuilder
default void addActionButtons(Form f, java.lang.String legend, java.util.Set<java.lang.String> actions)
ContentBuilder
addActionButtons
in interface ContentBuilder
f
- Form
legend
- optional legend for the button setactions
- Set
of action namesdefault ContentBuilder getDetails(java.lang.Object summary_text)
ContentBuilder
ContentBuilder
or
the current object. Once content has been added the ContentBuilder.closeDetails()
method should be called on whichever object was returned which will
perform any additional actions necessary.
If expanded/folding sections are not supported this will map to
ContentBuilder.addObject(Object)
on the summary text
and the current ContentBuilder
will be returned.getDetails
in interface ContentBuilder
default void closeDetails()
ContentBuilder
ContentBuilder.getDetails(Object)
this may be a no-op if expended section are not supportedcloseDetails
in interface ContentBuilder