Download Latest Version tsl3-beanui-core-0.0.2-SNAPSHOT.jar (228.2 kB)
Email in envelope

Get an email when there's a new version of beanui-core

Home / 0.0.2
Name Modified Size InfoDownloads / Week
Parent folder
tsl3-beanui-core-0.0.2-SNAPSHOT.jar 2026-04-26 228.2 kB
README.md 2026-04-19 4.9 kB
Totals: 2 Items   233.1 kB 119

minimized bean dynamizer and parser

provides a bean framework to be involved by dynamic web applications.

reference project: tsl3.beanui (generic bean/entity, server side rendered, single page web application)

features

  • persistable (json/xml/yaml) bean attributes/properties, presentation and actions
  • configurable attributes
  • order (predefined to type (container/data/simple) and name)
  • id attribute
  • constraints
  • presenter (with table column definitions)
  • configurable value expression as string representation (able to parse human readable strings to entities)
  • presentable entity actions through method prefix or annoation
  • plugins on bean and attributes to define external behavour through annotations

Example:

{
  "id": "de.tsl3.beanui.entities.User",
  "name": "User",
  "type": { "name": "de.tsl3.beanui.entities.User" },
  "idAttribute": {
    "name": "id",
    "declaringType": "java.lang.Class@1",
    "constraints": {
      "type": { "name": "long" },
      "id": true,
      "required": false
    },
    "presenter": {
      "label": "id",
      "description": "id",
      "icon": "/id.png",
      "elementType": "input",
      "subType": "number",
      "width": 1,
      "height": 1,
      "enabled": true,
      "enabledFor": ".*",
      "visible": true,
      "visibleFor": ".*",
      "column": {
        "index": 0,
        "sortIndex": 0,
        "isUpDirection": true,
        "isVisible": true,
        "isSearchable": true
      }
    }
  },
  "valueExpression": {},
  "presenter": {
    "label": "User",
    "description": "User",
    "icon": "/user.png",
    "elementType": "select",
    "subType": "text",
    "width": 1,
    "height": 1,
    "enabled": true,
    "enabledFor": ".*",
    "visible": true,
    "visibleFor": ".*"
  },
  "attributes": [
    "de.tsl3.beanui.core.BeanUI$MemberUI@2",
    {
      "name": "name",
      "declaringType": "java.lang.Class@1",
      "constraints": {
        "type": { "name": "java.lang.String" },
        "id": false,
        "required": false
      },
      "presenter": {
        "label": "name",
        "description": "name",
        "icon": "/name.png",
        "elementType": "input",
        "subType": "text",
        "width": 1,
        "height": 1,
        "enabled": true,
        "enabledFor": ".*",
        "visible": true,
        "visibleFor": ".*",
        "column": {
          "index": 1,
          "sortIndex": 1,
          "isUpDirection": true,
          "isVisible": true,
          "isSearchable": true
        }
      }
    },
    {
      "name": "role",
      "declaringType": "java.lang.Class@1",
      "constraints": {
        "type": { "name": "de.tsl3.beanui.entities.Role" },
        "id": false,
        "required": false
      },
      "presenter": {
        "label": "role",
        "description": "role",
        "icon": "/role.png",
        "elementType": "input",
        "subType": "list",
        "width": 1,
        "height": 1,
        "enabled": true,
        "enabledFor": ".*",
        "visible": true,
        "visibleFor": ".*",
        "column": {
          "index": 2,
          "sortIndex": 2,
          "isUpDirection": true,
          "isVisible": true,
          "isSearchable": true
        }
      }
    },
    {
      "name": "children",
      "declaringType": "java.lang.Class@1",
      "constraints": {
        "type": { "name": "java.util.Collection" },
        "id": false,
        "required": false
      },
      "presenter": {
        "label": "children",
        "description": "children",
        "icon": "/children.png",
        "elementType": "textarea",
        "subType": "text",
        "width": 1,
        "height": 1,
        "enabled": false,
        "enabledFor": ".*",
        "visible": true,
        "visibleFor": ".*",
        "column": {
          "index": 3,
          "sortIndex": 3,
          "isUpDirection": true,
          "isVisible": false,
          "isSearchable": false
        }
      }
    },
    {
      "name": "properties",
      "declaringType": "java.lang.Class@1",
      "constraints": {
        "type": { "name": "java.util.Map" },
        "id": false,
        "required": false
      },
      "presenter": {
        "label": "properties",
        "description": "properties",
        "icon": "/properties.png",
        "elementType": "textarea",
        "subType": "text",
        "width": 1,
        "height": 1,
        "enabled": false,
        "enabledFor": ".*",
        "visible": true,
        "visibleFor": ".*",
        "column": {
          "index": 4,
          "sortIndex": 4,
          "isUpDirection": true,
          "isVisible": false,
          "isSearchable": false
        }
      }
    }
  ]
}
Source: README.md, updated 2026-04-19