Class HtmlItem

java.lang.Object
jp.ecuacion.splib.web.bean.HtmlItem
Direct Known Subclasses:
HtmlItemNumber, HtmlItemString

public class HtmlItem extends Object
Stores attributes of each html component which controls the behaviors of it in html pages.

HtmlItem is a kind of "item". See naming-convention.md So its ID should consist of itemKindIdClass and itemKindIdField.
It complies the rule, but itemKindIdClass can be empty. When it's empty, mainRootRecord in Form is used as itemKindIdClass as default.

Actually itemKindId cannot designate a unique location. There can be multiple location as a relation or relation of relation. To have a way to pinpoint the location of the form, it also has propertyPath. It can be empty for normal use, but you can make differences when you want.

  • Field Details

    • itemPropertyPath

      @Nonnull protected String itemPropertyPath
      Is the ID string of htmlItem.

      rootRecordName part (= far left part) can be omitted. Namely it can be "name" or "dept.name" when the real propertyPath is "acc.name" or "acc.dept.name" where "acc" is the rootRecordName.

    • itemKindIdClass

      protected String itemKindIdClass
      Is a class part (= left part) of itemKindId. (like "acc" from itemKindId: "acc.name")

      It can be null, then rootRecordName obtained from context is used.

    • itemKindIdField

      @Nonnull protected String itemKindIdField
      Is a field part (= right part) of itemKindId. (like "name" from itemKindId: "acc.name")
    • itemNameKeyClass

      protected String itemNameKeyClass
      Is a class part (= left part) of itemNameKey. (like "acc" from itemKindId: "acc.name")

      The display name can be obtained by referring item_names.properties with it.

    • itemNameKeyField

      protected String itemNameKeyField
      Is a field part (= right part) of itemNameKey. (like "name" from itemKindId: "acc.name")

      The display name can be obtained by referring item_names.properties with it.

    • isNotEmpty

      Shows whether the field allows empty.

      When this value is true, required validation is executed on server side, and shows "required" mark on the component in the html page.

      It doesn't depend on the data type.

      The default value is preset: false. So the value becomes false if you don't set this value.

  • Constructor Details

    • HtmlItem

      public HtmlItem(@RequireNonempty String itemPropertyPath)
      Constructs a new instance with ID.

      Generally propertyPath starts with a rootRecord (a record field name which is directly defined in a form) and should be like user.name or user.dept.name. But it is also allowed that you can omit the top rootRecord part when user is the mainRootRecord, which means name or dept.name is also okay. When creating html htmlItems are searched with propertyPath, and if nothing found, mainRootRecord is automatically added to the top of propertyPath and search again.

      Parameters:
      itemPropertyPath - propertyPath, maybe without top mainRootRecord part. (when "user" is mainRootRecord, both user.name and name are accepted)
  • Method Details

    • getItemPropertyPath

      public String getItemPropertyPath()
    • getItemKindId

      public String getItemKindId(String rootRecordName)
      Returns itemKindId.

      itemKindId is built from itemKindIdClass and itemKindIdField.
      When itemKindIdClass is null, rootRecordName is used instead.

      Parameters:
      rootRecordName - rootRecordName
      Returns:
      itemKindId
    • itemNameKey

      public HtmlItem itemNameKey(@RequireNonempty String itemNameKey)
      Sets itemNameKey and returns this for method chain.

      The format of itemNameKey is the same as itemKindId, which is like "acc.name", always has one dot (not more than one) in the middle of the string.
      But the argument of the method can be like "name". In that case itemKindIdClass is used instead. When itemKindIdClass is null, rootRecordName is used instead.

      Parameters:
      itemNameKey - itemNameKey
      Returns:
      HtmlItem
    • getItemNameKey

      public String getItemNameKey(String rootRecordName)
      Returns itemNameKey value.

      Its value is null means the item's original itemKindId is equal to itemNameKey.

      Returns:
      itemKindIdFieldForName
    • isNotEmpty

      public HtmlItem isNotEmpty(boolean isNotEmpty)
      Sets isNotEmpty.

      Set true when you want to the item is required.

      Parameters:
      isNotEmpty - isNotEmpty
      Returns:
      HtmlItem
    • isNotEmpty

      public HtmlItem isNotEmpty(HtmlItem.HtmlItemConditionKeyEnum authKind, String authString, boolean isNotEmpty)
      Sets isNotEmpty with the conditions of HtmlItemConditionKeyEnum, authString.

      When you set multiple conditions to it, the order matters. First condition prioritized.

      Parameters:
      authKind - authKind
      authString - authString
      isNotEmpty - isNotEmpty
      Returns:
      HtmlItem
    • getIsNotEmpty

      public boolean getIsNotEmpty(String loginState, SplibSecurityUtil.RolesAndAuthoritiesBean bean)
      Obtains isNotEmpty.
      Parameters:
      loginState - loginState
      bean - bean
      Returns:
      boolean