Class ColumnDef

All Implemented Interfaces:
Serializable, DynamicAttributes, IterationTag, JspTag, Tag, DynamicActionAttributes

public class ColumnDef extends StylableTag
This tag defines a column in the table. It should be placed directly after the <tbl:table> tag.

Syntax:

   <tbl:columndef
      id=...
      clazz=...
      style=...
      property=...
      sortproperty=...
      filterproperty=...
      exportproperty=...
      datatype=int|long|float|double|string|date|boolean
      annotation=true|false
      enumeration=...
      smartenum=true|false
      title=...
      sortable=true|false
      filterable=true|false
      exportable=true|false
      show=always|never|auto
      tooltip=...
      formatter=...
      unit=...
      subtitle=...
   >
Tag attributes
Attribute Default value Required Description
id - yes The ID of the column. Should be unique among the columns in the table. Do not use all as an ID since it is has a special meaning. The value of this attribute goes directly into the standard HTML id attribute. This means that if you need a reference to the table object in your own JavaScript code, you may for example use the following code:
column = document.getElementById('<id>');
The ID is also used for cross-referencing between the different tags. For example, <tbl:data columns="..."> and <tbl:cell column="...">.
clazz columnheader no The value if this attribute goes directly into the standard HTML class attribute. This allows you to apply different styles to different tables.
style - no The value if this attribute goes directly into the standard HTML style attribute. This allows you to apply different styles to different tables.
property - no The name of the property on the item objects of this column. If the property isn't a property of the root item, prepend the value with a dollar sign ($) to indicate that the root alias should not be used when using this property in a query.
sortproperty - no The name of the property to sort on when sorting on this column. If not specified, it takes the same value as the property value.
filterproperty - no The name of the property to filter on when filtering on this column. If not specified, it takes the same value as the property value.
exportproperty - no The name of the property to export on when exporting on this column. If not specified, it takes the same value as the property value.
title - no The title of the column. The value is displayed in the header row.
title - no As subtitle of the column. The value is displayed in a header row below the filter row.
sortable false no If the table can be sorted by this column or not. If a true value is specified the title will be linked to a function that resubmits the page with the new sort order information.
filterable false no If the table can be filtered by this column or not.
exportable no no If values in this column can be exported or not.
show auto no Specify if this column should be visible or hidden. If the value is always the column is always shown, if the value is never the column is never shown, if the value is auto it is only shown if it appears in the columns attribute of the <tbl:data> tag.
enumeration - no A Enumeration<String, String> object containing the possible values of this property. This is used to generate a selection list for the filter.
smartenum false no If the filter for an enumeration column should be displayed as a free text field or a selection list. Default is to use a selection list. Use this option only if both the hidden key and the displayed value of the enumeration is the same. The "smartness" of this options is that as the user types text, the browser will dynamically display a list of options matching the entered text.
multiple true no If it should be possible to select multiple options for an 'enumeration' or only a single option. The default value is true.
formatter - no A Formatter that formats the values in this column. If no formatter is specified the value is ouput as is. Values that should be formated must be specified in the <cell value="..."> attribute. Any tag content is outputted as entered.
unit - no An options Unit object that should be unit the values are stored with in the database. Setting this property enables filter expressions with units.

This tag has no subtags.

Version:
2.0
Author:
Nicklas
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • table

      private Table table
      The parent <tbl:table> tag.
    • property

      private String property
      The name of the property on the item class.
    • isAnnotation

      private boolean isAnnotation
      If the property is an annotation or not.
    • sortProperty

      private String sortProperty
      Optional property used for sorting.
    • filterProperty

      private String filterProperty
      Optional property used for filtering.
    • exportProperty

      private String exportProperty
      Optional property used for exporting.
    • valueType

      private Type valueType
      The type of data in the property.
    • title

      private String title
      The title of the column.
    • exportTitle

      private String exportTitle
      Alternate title to use when exporting.
      Since:
      3.19.12
    • subtitle

      private String subtitle
      The subtitle of the column.
      Since:
      3.18
    • show

      private String show
      If the column should be visible or not. Valid values are: always, never, auto
    • sortable

      private boolean sortable
      If the column is sortable or not
    • filterable

      private boolean filterable
      If the column is filterable or not
    • filterText

      private String filterText
      Text to display in the filter cell when the column is not filterable.
      Since:
      3.20
    • filterClass

      private String filterClass
      Extra CSS class to add to the filter table cell.
      Since:
      3.20
    • exportable

      private boolean exportable
      If the column is exportable or not
    • tooltip

      private String tooltip
      A tooltip with explaining text.
    • enumeration

      private Enumeration<String,String> enumeration
      Options for enum.
    • smartEnum

      private boolean smartEnum
    • multiple

      private boolean multiple
    • formatter

      private transient Formatter<?> formatter
    • unit

      private transient Unit unit
    • jspContext

      private JspContext jspContext
    • extensions

      private ExtensionsInvoker<ListColumnAction<?,?>> extensions
  • Constructor Details

    • ColumnDef

      public ColumnDef()
  • Method Details

    • setProperty

      public void setProperty(String property)
    • getProperty

      public String getProperty()
    • setAnnotation

      public void setAnnotation(boolean isAnnotation)
    • isAnnotation

      public boolean isAnnotation()
    • setSortproperty

      public void setSortproperty(String sortProperty)
    • getSortproperty

      public String getSortproperty()
    • setFilterproperty

      public void setFilterproperty(String filterProperty)
    • getFilterproperty

      public String getFilterproperty()
    • setExportproperty

      public void setExportproperty(String exportProperty)
    • getExportproperty

      public String getExportproperty()
    • setDatatype

      public void setDatatype(String dataType)
    • getDatatype

      public String getDatatype()
    • setValueType

      public void setValueType(Type valueType)
    • getValueType

      public Type getValueType()
    • setTitle

      public void setTitle(String title)
    • getTitle

      public String getTitle()
    • setExporttitle

      public void setExporttitle(String title)
    • getExporttitle

      public String getExporttitle()
    • setSubtitle

      public void setSubtitle(String subtitle)
      Since:
      3.18
    • getSubtitle

      public String getSubtitle()
      Since:
      3.18
    • setShow

      public void setShow(String show)
    • getShow

      public String getShow()
    • setSortable

      public void setSortable(boolean sortable)
    • isSortable

      public boolean isSortable()
    • setFilterable

      public void setFilterable(boolean filterable)
    • isFilterable

      public boolean isFilterable()
    • setFiltertext

      public void setFiltertext(String filterText)
      Since:
      3.20
    • getFiltertext

      public String getFiltertext()
    • setFilterclass

      public void setFilterclass(String filterClass)
      Since:
      3.20
    • getFilterclass

      public String getFilterclass()
    • setExportable

      public void setExportable(boolean exportable)
    • isExportable

      public boolean isExportable()
    • setTooltip

      public void setTooltip(String tooltip)
    • getTooltip

      public String getTooltip()
    • setEnumeration

      public void setEnumeration(Enumeration<String,String> enumeration)
    • getEnumeration

      public Enumeration<String,String> getEnumeration()
    • setMultiple

      public void setMultiple(boolean multiple)
      Since:
      2.8
    • setSmartenum

      public void setSmartenum(boolean smartEnum)
      Since:
      2.7
    • setFormatter

      public void setFormatter(Formatter<?> formatter)
    • getFormatter

      public Formatter<?> getFormatter()
    • setUnit

      public void setUnit(Unit unit)
      Since:
      2.9
    • getUnit

      public Unit getUnit()
      Since:
      2.9
    • setJspcontext

      public void setJspcontext(JspContext jspContext)
      Since:
      3.2
    • setExtensions

      public <I> void setExtensions(ExtensionsInvoker<ListColumnAction<I,?>> extensions)
      Since:
      3.2
    • getIdPrefix

      protected String getIdPrefix()
      Description copied from class: StylableTag
      Optional prefix to include in the 'id' attribute. See StylableTag.addIdAndStyles(StringBuilder, String...).
      Overrides:
      getIdPrefix in class StylableTag
      Returns:
      The default implementation return an empty string
    • asJsonObject

      public org.json.simple.JSONObject asJsonObject()
      Get a JSON representation of this column definition.
      Since:
      3.3
    • doStartTag

      public int doStartTag() throws JspException
      Specified by:
      doStartTag in interface Tag
      Overrides:
      doStartTag in class TagSupport
      Throws:
      JspException
    • appendPermissionOption

      private void appendPermissionOption(StringBuilder sb, Permission selected, Permission toAdd, String display)