JFaster Reference Index
This document provides a complete reference of all XML elements and attributes available in JFaster source files.
Element Index
Core Elements
| Element | Description |
|---|---|
<entity> | Defines a data entity (table) |
<property> | Defines a field/column within an entity |
<enumset> | Defines a set of enumeration values |
<enum> | Defines a single enumeration value |
Data Filtering
| Element | Description |
|---|---|
<subset> | Defines a filtered subset of entity records |
<filter> | Defines a filter control for listings |
<condition> | Specifies a simple filter condition |
<restriction> | Specifies a complex HQL/SQL condition |
<and> | Combines conditions with AND logic |
<or> | Combines conditions with OR logic |
<param> | Declares a parameter for subsets, conditions, or dynamic values |
Display & Layout
| Element | Description |
|---|---|
<listing> | Configures entity list view |
<tab> | Defines a tab (in forms or listings) |
<embeddedlisting> | Embeds a related entity's listing in a form |
<box> | Layout container for form elements |
<row> | Horizontal layout container |
<column> | Vertical layout container |
<html> | Embeds custom HTML content |
<displayset> | Defines which properties to display |
Actions & Navigation
| Element | Description |
|---|---|
<action> | Defines a button/link action |
<actiongroup> | Groups multiple actions in a dropdown |
<defaultset> | Defines default values for new records |
<default> | Sets a default value for a property |
<next> | Defines what happens after form submission |
Dynamic Behavior
| Element | Description |
|---|---|
<dynamicvalue> | Computes a property value dynamically |
<displaycondition> | Controls element visibility based on expression |
<visiblecondition> | Controls property visibility |
<disabledcondition> | Controls property disabled state |
<readonlycondition> | Controls property read-only state |
<suggest> | Provides suggestions for a property |
<foreach> | Iterates over a collection |
<dynamicforeach> | Dynamic iteration with parameters |
Security
| Element | Description |
|---|---|
<restrict> | Restricts access to entity/element |
<allow> | Grants specific privilege access |
Configuration
| Element | Description |
|---|---|
<config> | Application configuration |
<labels> | Label/translation definitions |
<label> | Single label definition |
<include> | Includes another file |
<usescript> | Includes a JavaScript file |
<usestylesheet> | Includes a CSS file |
<usewidget> | Configures a custom widget |
<useview> | Configures a custom view |
<theme> | Theme configuration |
<macro> | Defines a reusable macro |
<processor> | Defines a custom processor |
Panels & Dashboards
| Element | Description |
|---|---|
<panel> | Defines a dashboard panel |
<form> | Embedded form in panel |
<chart> | Chart visualization |
<crosstab> | Cross-tabulation report |
<report> | Report definition |
<accordeon> | Accordion container |
<accordeonitem> | Accordion item |
Other
| Element | Description |
|---|---|
<description> | Entity description text |
<reference> | External reference |
<key> | Composite key definition |
<import> | Import external resource |
Element Reference
<entity>
Defines a data entity, which maps to a database table and generates forms, listings, services, and DAOs.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Entity name (PascalCase) |
label | No | string | Display label |
plural | No | string | Plural form of label |
menu | No | string | Menu group name |
stereotype | No | string | Entity stereotype (e.g., "Async", "Email") |
size | No | large | Marks entity as large |
defaultlisting | No | string | Default listing name |
transient | No | fixed: "transient" | Entity is not persisted to database |
order | No | string | Default sort order (e.g., "name asc") |
icon | No | string | Icon code |
comboproperty | No | string | Property to show in combo boxes |
auditlevel | No | string | Audit logging level |
optimisticlock | No | string | Enable optimistic locking |
exclusivelock | No | string | Enable exclusive locking |
navigator | No | string | Navigator configuration |
crosstab | No | string | Crosstab configuration |
cache | No | string | Caching configuration |
encrypt | No | string | Encryption configuration |
usestyle | No | string | Custom style |
noadd | No | fixed: "noadd" | Disable adding new records |
noremove | No | fixed: "noremove" | Disable removing records |
publicform | No | string | Make form publicly accessible |
table | No | string | Custom database table name |
displayactions | No | string | Actions to display (comma-separated) |
displayactiongroups | No | string | Action groups to display |
mainaction | No | string | Default action on double-click |
schema | No | string | Database schema |
idgenerator | No | string | ID generation strategy |
Child Elements: <restrict>, <description>, <usescript>, <usestylesheet>, <subset>, <displayset>, <listing>, <defaultset>, <actiongroup>, <property>, <supertab>, <tab>, <box>, <column>, <row>, <html>, <embeddedlisting>, <filter>, <action>, <next>
Example:
Person @CRM defaultlisting="main" order="lastName asc"
name d r
lastName d r
email
<property>
Defines a field/property within an entity.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Property name (camelCase) |
label | No | string | Display label |
type | No | enum | Data type: boolean, short, integer, long, float, double, string, text, longtext, enum, date, datetime, time, file, image, password, email, phone, url |
entity | No | string | Related entity name (for relationships) |
collection | No | enum | Collection type: set, list, sortedset |
display | No | enum | Display mode: primary, secondary |
required | No | fixed: "required" | Field is mandatory |
readonly | No | fixed: "readonly" | Field is read-only |
fixed | No | fixed: "fixed" | Field displays as text, not input |
hidden | No | fixed: "hidden" | Field is hidden from form |
invisible | No | fixed: "invisible" | Field is completely hidden |
disabled | No | fixed: "disabled" | Field is disabled |
transient | No | fixed: "transient" | Field is not persisted |
unique | No | string | Field value must be unique |
index | No | string | Create database index |
default | No | string | Default value |
subset | No | string | Subset to filter related entity options |
subsetparams | No | string | Parameters for the subset |
style | No | string | Inline CSS styles |
class | No | string | CSS class |
description | No | string | Field description |
tooltip | No | string | Hover tooltip text |
widget | No | string | Custom widget (e.g., jdatepicker, html, select, checkbox) |
comboproperty | No | string | Property to display in combo |
maxlength | No | string | Maximum input length |
minlength | No | string | Minimum input length |
mask | No | string | Input mask pattern |
hint | No | string | Input hint text |
placeholder | No | string | Input placeholder text |
width | No | string | Element width |
height | No | string | Element height |
pattern | No | string | Validation pattern |
enumset | No | string | Enumset name (for enum type) |
embedded | No | enum | Embed mode: inline, detail, grid |
childproperty | No | string | Back-reference property in child entity |
extendable | No | fixed: "extendable" | Allow adding rows (for embedded) |
sortable | No | fixed: "sortable" | Allow sorting rows |
maxrows | No | string | Maximum embedded rows |
minrows | No | string | Minimum embedded rows |
listindex | No | string | List index property name |
listunique | No | string | List uniqueness constraint |
setorder | No | string | Set ordering expression |
sort | No | string | Comparator class for sortedset |
sortexpr | No | string | Sort expression |
where | No | string | WHERE clause for filtering |
whennotinsubset | No | enum | Behavior when not in subset: donotshow, show, shownotvalid |
expr | No | string | Client-side calculated expression |
calculated | No | string | Server-side calculated expression |
calculatedtrigger | No | enum | When to calculate: onload, onchange, onchangenew |
formula | No | string | Hibernate formula (SQL) |
displayif | No | string | Show condition |
visibleif | No | string | Visibility condition |
disabledif | No | string | Disabled condition |
readonlyif | No | string | Read-only condition |
checkif | No | string | Validation condition |
checkifmessage | No | string | Validation error message |
displayproperties | No | string | Properties to display for related entity |
labelposition | No | enum | Label position: top, fieldset, left, none |
dimension | No | enum | Crosstab dimension: row, column |
gridheader | No | string | Grid header text |
gridvalue | No | string | Grid value expression |
columns | No | string | Number of columns |
column | No | string | Database column name |
fromyear | No | string | Date range start year |
toyear | No | string | Date range end year |
autosuggest | No | fixed: "autosuggest" | Enable autocomplete |
encrypt | No | string | Encryption configuration |
cache | No | fixed: "cache" | Enable caching |
rememberlast | No | fixed: "rememberlast" | Remember last value |
table | No | string | Custom join table name |
imagecopyof | No | string | Copy image from another property |
primarykey | No | fixed: "primarykey" | Mark as primary key |
jqueryoptions | No | string | jQuery widget options |
processor | No | string | Custom processor class |
Child Elements: <restrict>, <enum>, <dynamicvalue>, <displaycondition>, <visiblecondition>, <disabledcondition>, <readonlycondition>, <suggest>, <foreach>, <dynamicforeach>, <action>, <actiongroup>
Examples:
name d r // Simple required string with display
age integer // Integer field
birthDate date widget="jdatepicker" // Date with picker
company Company subset="active" // Relationship with subset
emails set // Multi-valued string set
addresses Address set ei x childproperty="person" // Master-detail
status enum enumset="Status" default="active" // Enum field
<enumset>
Defines a set of enumeration values that can be used in properties.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Enumset identifier |
privileges | No | string | Required privileges |
Child Elements: <enum>
Example:
<enumset name="Priority">
<enum value="low">Low</enum>
<enum value="medium">Medium</enum>
<enum value="high">High</enum>
</enumset>
<enum>
Defines a single enumeration value within an <enumset> or <filter>.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
value | No | string | Internal value |
Content: Display label text
Example:
<enum value="active">Active</enum>
<subset>
Defines a filtered subset of entity records.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Subset identifier |
basesubset | No | string | Parent subset to extend |
displayproperties | No | string | Properties to display (comma-separated) |
displayset | No | string | Display set name |
order | No | string | Sort order (e.g., "name asc") |
hints | No | string | Query hints |
Child Elements: <restrict>, <param>, <condition>, <and>, <or>, <restriction>
Example:
<subset name="forCompany" order="lastName asc">
<param name="company" entity="Company" />
<condition field="company" value="company" />
<condition field="active" value="true" />
</subset>
<filter>
Defines a filter control for entity listings.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Filter identifier |
property | No | string | Property to filter |
label | No | string | Display label |
placeholder | No | string | Input placeholder |
display | No | string | Display mode: "primary", "secondary" |
type | No | string | Data type |
entity | No | string | Entity for relationship filter |
subset | No | string | Subset for options |
subsetparams | No | string | Subset parameters |
widget | No | string | Custom widget |
comboproperty | No | string | Property for combo display |
collection | No | enum | Collection type: set, list, sortedset |
enumset | No | string | Enumset for enum filter |
flag | No | enum | Filter flag: contains, exact |
key | No | string | Filter key |
Child Elements: <enum>, <condition>, <and>, <or>, <restriction>
Examples:
<!-- Simple property filter -->
<filter name="name" property="name" label="Name" display="primary" />
<!-- Date filter with widget -->
<filter name="dateFrom" type="date" label="From" display="primary" widget="jdatepicker">
<condition field="date" ge="dateFrom" />
</filter>
<!-- LIKE filter -->
<filter name="search" label="Search" display="primary">
<condition field="name" like="concat('%', search, '%')" />
</filter>
<!-- Entity filter -->
<filter name="category" property="category" entity="Category" display="primary" />
<condition>
Specifies a simple filter condition.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
field | No | string | Property/field to compare |
value | No | string | Equals value |
ne | No | string | Not equals value |
gt | No | string | Greater than |
ge | No | string | Greater than or equal |
lt | No | string | Less than |
le | No | string | Less than or equal |
like | No | string | SQL LIKE pattern |
in | No | string | Value in list |
contains | No | string | Collection contains value |
isnull | No | fixed: "isnull" | Field is null |
isnotnull | No | fixed: "isnotnull" | Field is not null |
Examples:
<condition field="active" value="true" />
<condition field="age" ge="18" />
<condition field="name" like="concat('%', searchTerm, '%')" />
<condition field="status" in="('pending', 'approved')" />
<condition field="deletedAt" isnull="isnull" />
<condition field="participants" contains="User:find(userId)" />
<restriction>
Specifies a complex HQL/SQL condition.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | Yes | string | HQL/SQL expression (use ? for parameters, me for current entity) |
usedistinct | No | string | Use DISTINCT in query |
Child Elements: <param>
Examples:
<!-- EXISTS subquery -->
<restriction expr="EXISTS (FROM OrderLine ol WHERE ol.order = me AND ol.product = ?)">
<param value="product" />
</restriction>
<!-- NOT EXISTS -->
<restriction expr="NOT EXISTS (FROM Email e WHERE e.lead = me AND e.template = ?)">
<param value="template" />
</restriction>
<!-- Custom SQL -->
<restriction expr="LOWER(name) LIKE LOWER(?)">
<param value="concat('%', searchTerm, '%')" />
</restriction>
<and>
Combines conditions with AND logic (all must be true).
Child Elements: <condition>, <and>, <or>, <restriction>
Example:
<and>
<condition field="active" value="true" />
<condition field="verified" value="true" />
</and>
<or>
Combines conditions with OR logic (at least one must be true).
Child Elements: <condition>, <and>, <or>, <restriction>
Example:
<or>
<condition field="role" value="admin" />
<condition field="role" value="manager" />
<condition field="owner" value="User:find(userId)" />
</or>
<param>
Declares a parameter for subsets, defaultsets, conditions, or dynamic expressions.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Parameter name |
entity | No | string | Entity type |
type | No | string | Primitive type (if not entity) |
collection | No | enum | Collection type: set, list, sortedset |
value | No | string | Value expression (for dynamicvalue/displaycondition) |
Examples:
<!-- Subset parameter -->
<param name="company" entity="Company" />
<!-- Collection parameter -->
<param name="items" entity="Product" collection="set" />
<!-- Primitive parameter -->
<param name="minAge" type="integer" />
<!-- Dynamic value parameter -->
<param name="product" entity="Product" value="product" />
<listing>
Configures entity list view with tabs and display options.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Listing identifier |
label | No | string | Display label |
menu | No | string | Menu placement |
subset | No | string | Default subset |
view | No | string | Custom view |
layout | No | string | Layout type (e.g., "simple") |
displayproperties | No | string | Properties to display |
displayfilters | No | string | Filters to display |
displayset | No | string | Display set name |
entity | No | string | Entity name |
listing | No | string | Base listing |
noadd | No | fixed: "noadd" | Hide add button |
noremove | No | fixed: "noremove" | Hide remove button |
displayactions | No | string | Actions to display |
displayactiongroups | No | string | Action groups to display |
mainaction | No | string | Default row action |
panelheight | No | string | Height in panel |
subsetparams | No | string | Subset parameters |
defaultset | No | string | Default set for new records |
defaultsetparams | No | string | Default set parameters |
title | No | string | Listing title |
Child Elements: <restrict>, <tab>
Example:
<listing name="main" noadd="noadd">
<tab name="all" label="All" />
<tab name="active" label="Active" subset="active" />
<tab name="archived" label="Archived" subset="archived" displayactions="restore" />
</listing>
<tab>
Defines a tab in forms or listings.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Tab identifier |
label | No | string | Display label |
subset | No | string | Subset filter (for listing tabs) |
displayif | No | string | Display condition |
displayactions | No | string | Actions to display |
displayactiongroups | No | string | Action groups |
mainaction | No | string | Default action |
displayproperties | No | string | Properties to display |
displayset | No | string | Display set |
class | No | string | CSS class |
crosstab | No | string | Crosstab configuration |
chart | No | string | Chart configuration |
Child Elements: <displaycondition>, <box>, <column>, <row>, <property>, <embeddedlisting>, <html>
Examples:
<!-- Listing tab -->
<tab name="active" label="Active" subset="active" displayactions="deactivate" />
<!-- Form tab (using shorthand) -->
#tab label="Personal Info"
name d r
email
phone
<embeddedlisting>
Embeds a related entity's listing within a form. See embeddedlisting.md for detailed documentation.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Identifier |
entity | Yes | string | Entity to display |
label | No | string | Section label |
listing | No | string | Listing configuration to use |
subset | No | string | Subset filter |
subsetparams | No | string | Subset parameters (. for current entity) |
defaultset | No | string | Default set for new records |
defaultsetparams | No | string | Default set parameters |
displayif | No | string | Display condition |
Child Elements: <displaycondition>
Example:
<embeddedlisting
name="orders"
entity="Order"
subset="forCustomer"
subsetparams="."
defaultset="newForCustomer"
defaultsetparams="." />
<box>
Layout container for organizing form elements.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Identifier |
class | No | string | CSS class (e.g., "cols" for columns) |
style | No | string | Inline CSS |
label | No | string | Section label |
id | No | string | HTML id |
displayif | No | string | Display condition |
Child Elements: <displaycondition>, <box>, <column>, <property>, <html>, <embeddedlisting>
Example:
<box class="cols">
<box>
firstName d r
lastName d r
</box>
<box>
email
phone
</box>
</box>
<row>
Horizontal layout container.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Identifier |
displayif | No | string | Display condition |
Child Elements: <displaycondition>, <box>, <column>, <property>, <html>, <embeddedlisting>
<column>
Vertical layout container with optional width/span settings.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Identifier |
label | No | string | Column label |
displayif | No | string | Display condition |
width | No | string | Column width |
colspan | No | string | Column span |
rowspan | No | string | Row span |
Child Elements: <displaycondition>, <box>, <row>, <property>, <html>, <embeddedlisting>, <accordeon>, <listing>, <form>, <chart>, <crosstab>
<html>
Embeds custom HTML content in forms.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Identifier |
displayif | No | string | Display condition |
height | No | string | Element height |
title | No | string | Title |
panelheight | No | string | Height in panel |
Content: HTML content (use CDATA for complex HTML)
Example:
<html><![CDATA[<h3>Contact Information</h3><hr/>]]></html>
<displayset>
Defines a named set of properties to display.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Identifier |
displayproperties | Yes | string | Properties (comma-separated) |
Example:
<displayset name="simpleDisplay" displayproperties="name,code" />
<action>
Defines a button or link action.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Action identifier |
label | No | string | Display text |
type | Yes | enum | Action type: openentity, relatedentity, javascript, report, relatedlisting |
location | No | string | Placement: form, listing, local, main (comma-separated) |
description | No | string | Action description |
entity | No | string | Target entity (for entity actions) |
listing | No | string | Target listing |
subset | No | string | Subset filter |
subsetparams | No | string | Subset parameters |
defaultset | No | string | Default set for new record |
defaultsetparams | No | string | Default set parameters |
function | No | string | JavaScript function name |
functionparams | No | string | Function parameters |
report | No | string | Report name |
pdf | No | string | PDF report configuration |
icon | No | string | Icon code |
displayclass | No | string | CSS class for conditional display |
widget | No | enum | Widget type: button, link |
multiple | No | enum | Allow multiple selection: true, false |
Examples:
<!-- Related entity action -->
<action name="sendEmail" label="Send Email" type="relatedentity"
entity="SendEmail" location="local" defaultset="forPerson" icon="f0e0" />
<!-- JavaScript action -->
<action name="print" label="Print" type="javascript"
function="printRecord" location="local,form" />
<!-- JavaScript with parameters -->
<action name="viewMap" label="View Map" type="javascript"
function="viewOnMap" functionparams="address" location="local" />
<!-- Open entity action (property action) -->
customer Customer \
<action type="openentity" label="View" />
<!-- Batch action -->
<action name="deactivate" label="Deactivate Selected" type="relatedentity"
entity="DeactivateItems" location="listing" defaultset="forItems" />
<actiongroup>
Groups multiple actions in a dropdown menu.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Group identifier |
label | No | string | Dropdown label |
location | No | string | Placement (required except for property action groups) |
widget | No | enum | Widget type: select, div, button, link |
Child Elements: <action>
Example:
<actiongroup name="actions" label="Actions" location="local">
<action name="edit" label="Edit" type="javascript" function="editRecord" />
<action name="clone" label="Clone" type="relatedentity" entity="CloneItem" defaultset="forItem" />
<action name="delete" label="Delete" type="relatedentity" entity="DeleteItem" defaultset="forItem" />
</actiongroup>
<defaultset>
Defines default values when creating new records from a related context.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Identifier |
unique | No | string | Unique constraint |
Child Elements: <restrict>, <param>, <default>, <key>, <foreach>
Example:
<defaultset name="newForCompany">
<param name="company" entity="Company" />
<default name="company" value="company" />
<default name="country" value="company.country" />
<default name="active" value="true" />
</defaultset>
<!-- Collection parameter -->
<defaultset name="forItems">
<param name="items" entity="Product" collection="set" />
<default name="items" value="items" />
</defaultset>
<default>
Sets a default value for a property within a defaultset.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Property name |
value | No | string | Default value expression |
Examples:
<default name="company" value="company" />
<default name="date" value="now" />
<default name="status" value="'pending'" />
<default name="email" value="person.email" />
<next>
Defines what happens after form submission.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
type | Yes | enum | Next action type: message, function, report, entity, panel, form |
function | No | string | JavaScript function name |
report | No | string | Report name |
pdf | No | string | PDF configuration |
entity | No | string | Entity to open |
defaultset | No | string | Default set for entity |
panel | No | string | Panel to open |
message | No | string | Message to display |
Examples:
<next type="function" function="showConfirmation" />
<next type="message" message="Record saved successfully" />
<next type="entity" entity="Invoice" defaultset="forOrder" />
<dynamicvalue>
Computes a property value dynamically based on other fields.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Expression to compute value |
trigger | No | enum | When to compute: onload, onchange, onchangenew |
Child Elements: <param>
Example:
total double \
<dynamicvalue expr="quantity * unitPrice">
<param name="quantity" type="integer" value="quantity" />
<param name="unitPrice" type="double" value="unitPrice" />
</dynamicvalue>
customerEmail \
<dynamicvalue expr="customer.email">
<param name="customer" entity="Customer" value="customer" />
</dynamicvalue>
<displaycondition>
Controls element visibility based on a server-side expression.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Boolean expression |
Child Elements: <param>
Example:
phones set \
<displaycondition expr="company.active == true">
<param name="company" entity="Company" value="company" />
</displaycondition>
<visiblecondition>
Controls property visibility based on expression.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Boolean expression |
Child Elements: <param>
<disabledcondition>
Controls property disabled state based on expression.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Boolean expression |
Child Elements: <param>
<readonlycondition>
Controls property read-only state based on expression.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Boolean expression |
Child Elements: <param>
<suggest>
Provides value suggestions for a property.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
expr | No | string | Expression to generate suggestions |
Child Elements: <param>
<foreach>
Iterates over a collection to set property values.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
select | Yes | string | Collection to iterate |
setproperty | Yes | string | Property to set |
property | No | string | Source property |
<dynamicforeach>
Dynamic iteration with parameters.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
select | Yes | string | Collection expression |
setproperty | Yes | string | Property to set |
trigger | No | enum | When to execute: onload, onchange, onchangenew |
Child Elements: <param>
<restrict>
Restricts access to entity or element based on privileges.
Child Elements: <allow>
Example:
<restrict>
<allow privilege="ADMIN" />
<allow privilege="MANAGER" action="view" />
</restrict>
<allow>
Grants specific privilege access within a restrict block.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
privilege | Yes | string | Required privilege |
action | No | string | Specific action allowed |
<config>
Application-level configuration.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
largeentitywidget | No | string | Widget for large entities |
smallentitywidget | No | string | Widget for small entities |
base | No | string | Base path |
uploadpath | No | string | File upload path |
Child Elements: <labels>, <usescript>, <usestylesheet>, <usewidget>, <useview>, <restrict>, <theme>, <macro>, <processor>
<labels>
Container for label/translation definitions.
Child Elements: <label>
<label>
Defines a label/translation.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
key | Yes | string | Label key |
value | Yes | string | Label value |
<include>
Includes another source file.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
file | Yes | string | File path to include |
<usescript>
Includes a JavaScript file.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
location | Yes | string | Script file path |
<usestylesheet>
Includes a CSS stylesheet.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
location | Yes | string | Stylesheet file path |
media | No | enum | Media type: screen, tty, tv, projection, handheld, print, braille, aural, all |
<usewidget>
Configures a custom widget.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Widget name |
jquery | No | string | jQuery plugin name |
jqueryoptions | No | string | jQuery plugin options |
Child Elements: <usescript>, <usestylesheet>
<useview>
Configures a custom view.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | View name |
Child Elements: <usescript>, <usestylesheet>
<theme>
Theme configuration.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
tags | Yes | string | Theme tags |
layout | Yes | string | Layout configuration |
listing | Yes | string | Listing configuration |
forms | Yes | string | Forms configuration |
<macro>
Defines a reusable macro.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Macro name |
interface | No | string | Interface to implement |
<processor>
Defines a custom processor.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Processor name |
class | Yes | string | Java class name |
<panel>
Defines a dashboard panel.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Panel identifier |
title | No | string | Panel title |
menu | No | string | Menu placement |
icon | No | string | Icon code |
sidebar | No | string | Sidebar configuration |
<form>
Embedded form in a panel.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Form identifier |
entity | No | string | Entity name |
defaultset | No | string | Default set |
defaultsetparams | No | string | Default set parameters |
panelheight | No | string | Height in panel |
title | No | string | Form title |
<chart>
Chart visualization configuration.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Chart identifier |
title | No | string | Chart title |
chart | No | string | Chart type |
entity | No | string | Data entity |
rows | No | string | Row dimension |
columns | No | string | Column dimension |
measure | No | string | Measure field |
panelheight | No | string | Height in panel |
onechart | No | string | Single chart mode |
vertical | No | string | Vertical orientation |
stacked | No | string | Stacked bars |
<crosstab>
Cross-tabulation report configuration.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Crosstab identifier |
title | No | string | Title |
entity | No | string | Data entity |
rows | No | string | Row dimension |
columns | No | string | Column dimension |
measure | No | string | Measure field |
panelheight | No | string | Height in panel |
<report>
Report definition.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Report name |
file | No | string | Report file |
location | No | enum | File location: application, repository, template |
title | No | string | Report title |
panelheight | No | string | Height in panel |
Child Elements: <restrict>
<accordeon>
Accordion container for collapsible sections.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
nonexclusive | No | string | Allow multiple open sections |
Child Elements: <accordeonitem>
<accordeonitem>
Individual accordion section.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | No | string | Item identifier |
title | No | string | Section title |
visible | No | string | Initially visible |
icon | No | string | Icon code |
<description>
Entity description text.
Content: Description text
<reference>
External reference definition.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Reference name |
file | No | string | Reference file |
<key>
Composite key definition within a defaultset.
Child Elements: <default>
<import>
Import external resource.
Attributes:
| Attribute | Required | Type | Description |
|---|---|---|---|
url | No | string | Resource URL |
name | No | string | Import name |
title | No | string | Import title |
Preprocessor Shorthand Reference
JFaster source files (.txt) are preprocessed before being converted to XML. The preprocessor supports various shorthand notations that make the source files more concise and readable.
Property Shortcuts
| Shorthand | Expands To | Description |
|---|---|---|
r | required="required" | Field is mandatory |
required | required="required" | Field is mandatory (alternative) |
d | display="primary" | Show in listings and as entity description |
ds | display="secondary" | Show in listings only |
hidden | hidden="hidden" | Hide from forms |
invisible | invisible="invisible" | Completely hidden (not in HTML) |
fixed | fixed="fixed" | Display as text, not editable |
disabled | disabled="disabled" | Show disabled input |
readonly | readonly="readonly" | Read-only input |
transient | transient="transient" | Not persisted to database |
autosuggest | autosuggest="autosuggest" | Enable autocomplete |
ei | embedded="inline" | Embed child entity inline |
x | extendable="extendable" | Allow adding rows |
set | collection="set" | Multi-valued Set collection |
list | collection="list" | Multi-valued List collection |
sortedset | collection="sortedset" | Multi-valued SortedSet collection |
Property Type Shortcuts
When a type keyword appears, it expands to type="...":
| Shorthand | Expands To |
|---|---|
integer | type="integer" |
long | type="long" |
double | type="double" |
float | type="float" |
boolean | type="boolean" |
date | type="date" |
datetime | type="datetime" |
text | type="text" |
longtext | type="longtext" |
file | type="file" |
image | type="image" |
enum | type="enum" |
password | type="password" |
email | type="email" |
phone | type="phone" |
Property Label and Entity Shortcuts
| Pattern | Expands To | Description |
|---|---|---|
"Label Text" | label="Label Text" | Custom label (underscores become spaces) |
EntityName | entity="EntityName" | Any PascalCase word becomes an entity reference |
Property Line Continuation
End a property line with \ to add child elements:
company Company \
<action type="openentity" label="View" />
Entity Shortcuts
| Shorthand | Expands To | Description |
|---|---|---|
@MenuName | menu="MenuName" | Place entity in menu (underscores become spaces) |
@ | menu="" | Entity with no menu (hidden from navigation) |
&LabelText | label="LabelText" | Custom entity label (underscores become spaces) |
transient | transient="transient" | Entity is not persisted |
If no @ is specified, the entity defaults to menu="Administración".
If no & is specified, the label is auto-generated from the entity name using camelCase splitting (e.g., InvoiceLine → "Invoice Line").
Form Layout Shortcuts
| Shorthand | Description |
|---|---|
#tab Label | Start a new tab |
#tab label="Label" | Tab with explicit attribute |
#box className | Layout box with CSS class |
## | Line is ignored |
!Title Text | Section title |
CSS Class Shortcuts
These class names are recognized as class="..." attributes:
| Class | Description |
|---|---|
d0 | Display class 0 |
d1 | Display class 1 |
a0 | Alignment class 0 |
a1 | Alignment class 1 |
m50 | Margin/width 50% |
m33 | Margin/width 33% |
Complete Examples
Entity definition:
Person @CRM &People order="lastName asc"
name d r
lastName "Last Name" d r
age integer
email
company Company subset="active"
addresses Address set ei x childproperty="person"
Company @CRM
name d r
active boolean default="true"
<subset name="active">
<condition field="active" value="true" />
</subset>
Expands to:
<entity menu="CRM" name="Person" label="People" order="lastName asc">
<property name="name" display="primary" required="required" label="Name" />
<property name="lastName" display="primary" required="required" label="Last Name" />
<property name="age" type="integer" label="Age" />
<property name="email" label="Email" />
<property name="company" entity="Company" subset="active" label="Company" />
<property name="addresses" entity="Address" collection="set" embedded="inline" extendable="extendable" childproperty="person" label="Addresses" />
</entity>
<entity menu="CRM" name="Company" label="Company">
<property name="name" display="primary" required="required" label="Name" />
<property name="active" type="boolean" default="true" label="Active" />
<subset name="active">
<condition field="active" value="true" />
</subset>
</entity>
Transient entity:
SendEmail @ transient="transient"
person Person fixed
recipient r
subject r
body text
Property with child elements:
customer Customer d \
<action type="openentity" label="View Details" />
Form with tabs:
Invoice @Sales
#tab Main
invoiceNumber d fixed
invoiceDate date ds
customer Customer d r
#tab Lines
lines InvoiceLine set ei x childproperty="invoice"