Package com.orchestranetworks.ui.form.widget

# Interface WidgetWriterForList

All Superinterfaces:
  `UIBodyWriter`, `UIComponentWriter`, `UIDependencyRegisterer`, `UIFormWriter`, `UIJavaScriptWriter`, `UIResourceLocator`, `UISessionContext`, `WidgetWriter`

public interface WidgetWriterForList extends WidgetWriter
This interface offers methods that can be used to create a standard EBX® list widget.

Since:
  5.8.0
See Also:
  - `UIListCustomWidget`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addList(Path aPath, UIWidgetFactory<?> anItemWidgetFactory)`
  Adds the built-in multi-occurrence editor but uses the given widget to display each item of the list.
  `Path`
  `getPathForListOccurrence(int index)`
  Returns the absolute path of an occurrence at the specified index under the current aggregated list field (`maxOccurs > 1`).
  `Path`
  `getPathForListOccurrence(int index, boolean isRelative)`
  Returns the path of an occurrence at the specified index under the current aggregated list field (`maxOccurs > 1`).

  ### Methods inherited from interface com.orchestranetworks.ui.UIBodyWriter

  `add, add, add, add_cr, add_cr, addSafeAttribute, addSafeAttribute, addSafeInnerHTML, addSafeInnerHTML`

  ### Methods inherited from interface com.orchestranetworks.ui.UIComponentWriter

  `addButtonHelp, addButtonJavaScript, addButtonJavaScriptToggle, addUILabel, addUserAvatar, buildButtonPreview, buildButtonPreview, buildButtonPreview, endBorder, endExpandCollapseBlock, endFormGroup, endFormRow, endTableFormRow, newExpandCollapseBlock, newFormGroup, newFormRow, startBorder, startBorder, startBorder, startExpandCollapseBlock, startExpandCollapseBlock, startFormGroup, startFormGroup, startFormRow, startFormRow, startFormRow, startFormRow, startTableFormRow`

  ### Methods inherited from interface com.orchestranetworks.ui.UIDependencyRegisterer

  `addJavaScriptDependency`

  ### Methods inherited from interface com.orchestranetworks.ui.form.UIFormWriter

  `addFormGroup, addFormRow, addFormRow, addFormRow, addFormRow, addFormRowOrGroup, addJS_getNodeValue, addJS_hideTab, addJS_setNodeMandatoryIndicator, addJS_setNodeValue, addJS_showTab, addLabel, addWidget, addWidget, getDisplayMode, getPrefixedPath, newBestMatching, newCheckBox, newCheckBoxGroup, newColorPicker, newComboBox, newCustomWidget, newDatasetSelector, newDataspaceSelector, newDateTime, newDropDownList, newFormGroup, newFormRow, newListBox, newPassword, newRadioButton, newRadioButtonGroup, newTable, newTextBox, startBorder, startFormGroup, startFormRow`

  ### Methods inherited from interface com.orchestranetworks.ui.UIJavaScriptWriter

  `addJS, addJS_addResizeWorkspaceListener, addJS_cr, addJS_cr, addJS_openPreviewImage, addJS_openPreviewImageFromVar, addJS_setButtonDisabled, addJS_setExpandCollapseBlockExpanded, addJS_setStateToToggleButton, addJS_switchToPerspective, addJS_switchToPerspectiveAction`

  ### Methods inherited from interface com.orchestranetworks.ui.UIResourceLocator

  `createWebComponentForRootSession, createWebComponentForSubSession, getURLForAjaxComponent, getURLForAjaxComponent, getURLForPerspectiveSelection, getURLForPerspectiveSelection, getURLForResource, getURLForResource, getURLForResource, getURLForResource, getURLForResource, getURLForRest, getURLForSelection, getURLForSelection, getURLForSelection, getURLForSelection, getURLForSelection, getURLForSelection, getURLForViewSelection`

  ### Methods inherited from interface com.orchestranetworks.ui.UISessionContext

  `getLocale, getSession`

  ### Methods inherited from interface com.orchestranetworks.ui.form.widget.WidgetWriter

  `addEmptyFieldButton, addServiceButton, addUIDescription, addUIDisplayValue, addUILabel, addUIValidationMessage, getTableCellStyleHandler, getWidgetName, getWidgetName, getWidgetName, getWidgetNameOfParent`

- ## Method Details

  - ### addList

    void addList(Path aPath, UIWidgetFactory<?> anItemWidgetFactory)
    Adds the built-in multi-occurrence editor but uses the given widget to display each item of the list.

    To display the list without a specific widget it is possible to use the methods `UIFormWriter.newBestMatching(Path)` and `UIFormWriter.addWidget(UIWidget)`.

  - ### getPathForListOccurrence

    Path getPathForListOccurrence(int index)
    Returns the absolute path of an occurrence at the specified index under the current aggregated list field (`maxOccurs > 1`).

    This method can be useful for widget that extends `UIListCustomWidget` to call the best matching widget for each occurrence.

    Parameters:
      `index` - The index of an occurrence in the current aggregated list field.
    Returns:
      The path of an occurrence at the specified index.
    See Also:
      - `Step.isIndexed()`
      - `getPathForListOccurrence(int, boolean)`

  - ### getPathForListOccurrence

    Path getPathForListOccurrence(int index, boolean isRelative)
    Returns the path of an occurrence at the specified index under the current aggregated list field (`maxOccurs > 1`).

    This method can be useful for a widget that extends `UIListCustomWidget` to call the best matching widget for each occurrence.

    Parameters:
      `index` - The index of an occurrence in the current aggregated list field.
      `isRelative` - If true, the returned path will be relative. If false, it will be absolute.
    Returns:
      The path of an occurrence at the specified index.
    See Also:
      - `Step.isIndexed()`