Annotation Interface StudioComponent


@Target(METHOD) @Inherited public @interface StudioComponent
Meta description that describes component.
  • Field Details

    • EMPTY_INJECTION_IDENTIFIER

      static final String EMPTY_INJECTION_IDENTIFIER
      A constant used to represent an empty or uninitialized injection identifier in the context of Studio component definitions.

      This placeholder value is used when no custom identifier is explicitly specified for XML attributes or injection mechanisms. It signifies that the injection process should interpret the identifier as intentionally left unset or intentionally empty.

      See Also:
  • Element Details

    • name

      String name
      Presentable name that Studio will use in palette.
      Default:
      ""
    • classFqn

      String classFqn
      Fully-qualified name of component class. This will be used as a type of injected field.
      Default:
      ""
    • category

      String category
      Category for Component Palette.
      Default:
      ""
    • injectionIdentifier

      String injectionIdentifier
      XML attribute that should be used as identifier for injection or handler target.

      Default value is id.
      Default:
      "id"
    • isInjectable

      boolean isInjectable
      Determines whether a component can be injected into controller. Default value is true.
      Default:
      true
    • icon

      String icon
      Path to the icon that Studio will use in palette and inspector.
      Default:
      "io/jmix/flowui/kit/meta/icon/unknownComponent.svg"
    • xmlElement

      String xmlElement
      XML tag local name.
      Default:
      ""
    • xmlns

      String xmlns
      FQN of XML namespace schema.
      Default:
      ""
    • xmlnsAlias

      String xmlnsAlias
      XML namespace alias.
      Default:
      ""
    • availablePlaceRegExp

      String availablePlaceRegExp
      Describes the available place in the Component Hierarchy. By default, components can be located inside:
      • view/layout/hasComponents
      • mainView/appLayout/navigationBar/[hasComponents]
      • mainView/appLayout/drawerLayout/[hasComponents]
      • mainView/appLayout/initialLayout/[hasComponents]
      • mainView/appLayout/workArea/initialLayout/[hasComponents] - if mainView from tabbed mode
      • fragment/content

      Notes:

      hasComponents – placeholder for a component inherited from HasComponents.

      [hasComponents] - means that hasComponents is an optional part

      Default:
      "(^(mainView/appLayout)?((/drawerLayout)|(/navigationBar)|(/workArea/initialLayout)|(/initialLayout))$)|(^view/layout$)|(^fragment/content)|((^(mainView/appLayout)?((/drawerLayout)|(/navigationBar)|(/workArea/initialLayout)|(/initialLayout))|(^view/layout)|(^fragment/content))?(/hasComponents)*$)"
    • properties

      StudioProperty[] properties
      Descriptions of the XML attributes.
      Default:
      {}
    • propertiesBindings

      StudioPropertiesBinding[] propertiesBindings
      Descriptions of the XML attributes relationship. For example property and dataContainer
      Default:
      {}
    • supplyHandlers

      StudioSupplyHandler[] supplyHandlers
      Additional non-standard handlers.
      Default:
      {}
    • availableChildren

      StudioAvailableChildrenInfo availableChildren
      Describes the available children information.
      See Also:
      Default:
      @io.jmix.flowui.kit.meta.StudioAvailableChildrenInfo
    • convertStrategy

      StudioConvertStrategy convertStrategy
      Describes the conversion information.
      See Also:
      Default:
      @io.jmix.flowui.kit.meta.StudioConvertStrategy
    • documentationLink

      String documentationLink
      Link to the component documentation.

      It can be of the following types:

      1. The full link (starting with https).
      2. Or part of the jmix documentation link (part after /jmix/).
      Studio also can resolve %VERSION% placeholder.
      Default:
      ""