Foreword about Block DSL, before digging in other DSLs

The Block DSL enables the specification of page layout by defining blocks that contain other graphical elements. A block can be an AJAX block, which can be updated by AJAX actions. AJAX blocks can be targeted using their ID. Blocks can also be nested.

For more information, please refer to the dedicated page on Block DSL. PDFs have their own block management through Printable Blocks, while the table and show DSLs are also applicable (charts will be available later).

UiBlockSpecifier b = new UiBlockSpecifier()             (1)
b.ui {
    modal {                                             (2)
        ajaxBlock "userForm", {                         (3)
            form "User Form", f, BlockSpec.Width.MAX    (4)
        }
    }
}
  1. Create the block, constructed via the ui method

  2. This block will contain a modal window (which is also a block)

  3. This modal window will contain 1 ajax block with the ID userForm

  4. This ajax block will contain one form, with the captation User Form

Form inside a modal Window.

screenshot dsl user form 800h

Block Elements DSLs

  • Form DSL: Allows defining a form to be included in a block

  • Show DSL: Allows showing an object summary. It supports limited field edition

  • Table and Table filter DSL: a Table is associated to one or zero filter. Filters cannot be displayed without a table.

    • Table DSL allows grouping and sorting columns

    • Pagination is included

    • Table can also represent a tree

  • Chart DSL: Allows drawing graphs into a block

  • Custom DSL: Allows inserting custom HTML code into a block.