Interface IXItemBasic

    • Method Detail

      • getAutoReRender

        default boolean getAutoReRender()
        Returns:
        true to render the item automatically in the designer, or false otherwise. When set to false, you will need to display the item via JavaScript yourself.
      • getAvailableProperties

        ArrayList<XItemPropertyDesc> getAvailableProperties​(Locale locale)
        Gets a list of base properties available for this item.

        Note that plugins may extend these properties. Use de.xima.fc.web.common.fd2.XItemPropertiesHelper#getAvailableProperties to get a list of all properties, including properties added by plugins.

        Note: Caching the properties returned by this method is not required. Just create the list of properties and return it.

        Parameters:
        locale - The current locale that can be used for locale dependent properties.
        Returns:
        A list of all base properties available for this item.
      • getIcon

        String getIcon()
        Returns:
        The CSS class for the icon of this form item, such as for example ico-fc-XCheckbox.
      • getPrefix

        String getPrefix()
        Finds the prefix for form items of this type, such as cb for checkboxes or tf for input fields. This prefix is used, for example, in the designer to generate a default name for newly added form items (tf-1, cb-2).
        Returns:
        The prefix for form items of this type.
      • isShouldRenderUnit

        default boolean isShouldRenderUnit​(XItemRenderData renderData)
        Whether the XPropertyEnum.unit should be rendered. Note that the unit is rendered only when the item contains the property XPropertyEnum.unit and its value is not empty. However, some elements may sometimes not support a unit. For example, XSelect only support a unit when the it is rendered as a combo box, but not when rendered as a list of checkboxes. In these cases, you can override this method with an appropriate implementation. The default implementation simply returns true.
        Parameters:
        renderData - The current render data with the properties and options of the item.
        Returns:
        true when the XPropertyEnum.unit should be rendered, or false otherwise.
      • isSubmitsValues

        boolean isSubmitsValues()
        Checks whether form items of this type can send values to the server when the form is submitted. Form items that do not submit values are, for example, not validated and no values are ever stored in the database. Form items such as pictures or charts do no submit values, while classical form elements such as input fields and checkboxes are a prime example of form items that do submit values.
        Returns:
        Whether form element of this type can send values to the server when the form is submitted.
      • isShowInDrawerPanel

        default boolean isShowInDrawerPanel()
        Controls whether this element type appears as an icon in the drawer panel on the left-hand side of the designer. These icons can be used to add a new element to the form via drag & drop. Defaults to true.
        Returns:
        Whether to show this element type in the drawer panel.
        Since:
        8.0.0
      • isShowInElementSelect

        default boolean isShowInElementSelect()
        Controls whether this element type can be selected in the type selection in the properties panel on the the right-hand side of the designer. The type selection can be used to convert e.g. an input field into a text area. Defaults to true.
        Returns:
        Whether to show this element type in the type select menu.
        Since:
        8.0.0
      • isShouldRenderForAttributeOnLabel

        default boolean isShouldRenderForAttributeOnLabel​(XItemRenderData renderData)
        Whether the for should be added to the label of this element, if this element does have a label. The W3C spec requires that the for points to a non-hidden form control element (e.g. an input or textarea). Defaults to true.
        Parameters:
        renderData - The current render data with the properties and options of the item.
        Returns:
        Whether to include the for in the label.
      • renderItem

        void renderItem​(com.hp.gagawa.java.elements.Div container,
                        XItemRenderData renderData,
                        XItemRenderCtx renderCtx,
                        IXFormRenderContext formRenderCtx)
        Creates the HTML for this form item that is included in the final rendered form. You should append one or more HTML elements to the container that is passed to this method.
        Parameters:
        container - The container that will contain this form item in the final form. You should append children to this container.
        renderData - The current render data with the properties and options of the item.
        renderCtx - The current render context giving you access to the global configuration.
        formRenderCtx - The form render context giving you access to the global form configuration.
        See Also:
        renderItemPreview(Div, XItemRenderData, XItemRenderCtx, IXFormRenderContext)
      • renderItemPreview

        default void renderItemPreview​(com.hp.gagawa.java.elements.Div container,
                                       XItemRenderData renderData,
                                       XItemRenderCtx renderCtx,
                                       IXFormRenderContext formRenderCtx)
        Similar to the renderItem(Div, XItemRenderData, XItemRenderCtx, IXFormRenderContext) method, but this is called when the form is viewed in the designer. You can, if necessary, render the form slightly differently in the desigern. This is useful, for example, when when you do not want users to be able to interact with the form element directly in the designer preview area.
        Parameters:
        container - The container that will contain this form item in the final form. You should append children to this container.
        renderData - The current render data with the properties and options of the item.
        renderCtx - The current render context giving you access to the global configuration.
        formRenderCtx - The form render context giving you access to the global form configuration.
        See Also:
        renderItem(Div, XItemRenderData, XItemRenderCtx, IXFormRenderContext)
      • validate

        default List<IXValidationResult> validate​(IXValidationParams params)
        Validates the values that were submitted for this form item. This method is always called, even when server-side validation is not enabled (XPropertyEnum.servervalidate). In case you do not want to perform any validation when server-side validation is disabled, check whether the property XPropertyEnum.servervalidate is set.

        In case validation fails, the form submission is not accepted and an appropriate error message is shown to the form user.

        Parameters:
        params - Parameters for the validation process the item can make use of, such as the submitted values.
        Returns:
        A list with a validation result for each value of the IXValidationParams.getValues(). Each result indicating whether the submitted values are valid.
      • validate

        @Deprecated
        default IXValidationResult validate​(List<String[]> values,
                                            Locale locale,
                                            Map<Serializable,​Serializable> frqSessionAttributes)
        Validates the values that were submitted for this form item. This method is always called, even when server-side validation is not enabled (XPropertyEnum.servervalidate). In case you do not want to perform any validation when server-side validation is disabled, check whether the property XPropertyEnum.servervalidate is set.

        In case validation fails, the form submission is not accepted and an appropriate error message is shown to the form user.

        Parameters:
        values - The values that were submitted for this form item.
        locale - The current locale to be used for creating error messages.
        frqSessionAttributes - All attributes from the current form request session.
        Returns:
        A result indicating whether the submitted values are valid.
      • validateGlobal

        default boolean validateGlobal​(IXGlobalValidationParams params)
        Validates the values that were submitted for all form items of this kind. This method is always called, after other validations have been performed, even when server-side validation is not enabled (XPropertyEnum.servervalidate). In case you do not want to perform any validation when server-side validation is disabled, check whether the property XPropertyEnum.servervalidate is set.

        In case validation fails, the form submission is not accepted and an appropriate error message is shown to the form user.

        Parameters:
        params - Parameters for the validation process the item can make use of, such as the submitted values.
        Returns:
        true if all items are valid, or false otherwise. To add an error message for a certain item, use IXFormRenderConfig.addValidationError(String, String) of the IXBaseValidationParams.getFormRenderConfig().
      • processUpload

        default IXProcessUploadResult processUpload​(IXProcessUploadParams params)
                                             throws IOException
        Lets you customize how uploaded files are handled. For example, you could use this method to compress uploaded images and replace the original file with the compressed version.
        Parameters:
        params - Parameters for the upload process the item can make use of, such as the uploaded file.
        Returns:
        The result of this method, possibly with a modified file. May return null for the standard handling.
        Throws:
        IOException - If an error occurs during the upload process. This will result in the form submission being rejected.
      • getFieldNameConventions

        default IXItemFieldNameConventions getFieldNameConventions()
        Gets the naming conventions for the form fields used by this type of form item. The default assumption is that in the rendered form, only a single form field (such as <input>) exists, with the name as configured in the form designer. The default implementation returns DefaultXItemFieldNameConventions, which is suitable for such form items.

        Some form items may have more complex naming conventions. For example, an upload form item could have a secondary input field for storing the UUID of the upload; and the name of that derived input field could e.g. be the configured name (e.g. upl1) plus some suffix (e.g. upl1.uuid). Other form could have more derived field names with various data, as is the case for e.g. the builtin appointment picker form item with various related field names such app1_date, app1_time, app1_date_time , or app1.typeuuid etc.

        This method must return the field name conventions for such items, so that these conventions can be respected and enforced by formcycle. formcycle must be aware of the naming conventions for various reason, e.g. in order to be able to reject submitted request values when the request value belongs to a form item that is unavailable in a certain state or for certain user groups.

        Returns:
        The naming conventions for this type of item. A null value is treated as if DefaultXItemFieldNameConventions had been returned.
        Since:
        8.1.0