From 823fc14154a2fd673ecde9e5fc44c6c63e2a362a Mon Sep 17 00:00:00 2001 From: Nathan Byrd Date: Fri, 28 Jan 2022 16:34:52 -0600 Subject: [PATCH] Additional fixes to docs --- docs/art/views/button_view.md | 6 +-- docs/art/views/edit_text_view.md | 5 ++- docs/art/views/full_menu_view.md | 10 ++--- docs/art/views/horizontal_menu_view.md | 10 ++--- docs/art/views/mask_edit_text_view.md | 40 ++++++++++++++---- docs/art/views/predefined_label_view.md | 4 +- docs/art/views/spinner_menu_view.md | 10 ++--- docs/art/views/text_view.md | 4 +- docs/art/views/vertical_menu_view.md | 10 ++--- .../images/mask_edit_text_view_example1.gif | Bin 7117 -> 7222 bytes 10 files changed, 62 insertions(+), 37 deletions(-) diff --git a/docs/art/views/button_view.md b/docs/art/views/button_view.md index b9b9a128..97dc97e8 100644 --- a/docs/art/views/button_view.md +++ b/docs/art/views/button_view.md @@ -9,15 +9,15 @@ A button view supports displaying a button on a screen. :information_source: A button view is defined with a percent (%) and the characters BT, followed by the view number. For example: `%BT1` -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| | `text` | Sets the text to display on the button | -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `focusTextStyle` | Sets focus text style. See **Text Styles** in [Art](../general.md)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets focus text style. See **Text Styles** in [MCI](../mci.md)| | `width` | Sets the width of a view to display one or more columns horizontally (default 15)| | `focus` | If set to `true`, establishes initial focus | | `submit` | If set to `true` any `accept` action upon this view will submit the encompassing **form** | diff --git a/docs/art/views/edit_text_view.md b/docs/art/views/edit_text_view.md index d8f37171..c372246d 100644 --- a/docs/art/views/edit_text_view.md +++ b/docs/art/views/edit_text_view.md @@ -9,13 +9,14 @@ An edit text view supports editing form values on a screen. This can be for new :information_source: An edit text view is defined with a percent (%) and the characters ET, followed by the view number. For example: `%ET1`. This is generally used on a form in order to allow a user to enter or edit a text value. -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets the focus text style. See **Text Styles** in [MCI](../mci.md) | | `width` | Sets the width of a view for the text edit (default 15)| | `argName` | Sets the argument name for this value in the form | | `maxLength` | Sets the maximum number of characters that can be entered | diff --git a/docs/art/views/full_menu_view.md b/docs/art/views/full_menu_view.md index 55f9b4cc..19ff365a 100644 --- a/docs/art/views/full_menu_view.md +++ b/docs/art/views/full_menu_view.md @@ -11,14 +11,14 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a :information_source: A full menu view is defined with a percent (%) and the characters FM, followed by the view number. For example: `%FM1` -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `focusTextStyle` | Sets focus text style. See **Text Styles** in [Art](../general.md)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets focus text style. See **Text Styles** in [MCI](../mci.md)| | `itemSpacing` | Used to separate items vertically in the menu | | `itemHorizSpacing` | Used to separate items horizontally in the menu | | `height` | Sets the height of views to display multiple items vertically (default 1) | @@ -29,11 +29,11 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a | `hotKeySubmit` | Set to submit a form on hotkey selection | | `argName` | Sets the argument name for this selection in the form | | `justify` | Sets the justification of each item in the list. Options: left (default), right, center | -| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [Art](../general.md) | +| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [MCI](../mci.md) | | `fillChar` | Specifies a character to fill extra space in the menu with. Defaults to an empty space | | `textOverflow` | If a single column cannot be displayed due to `width`, set overflow characters. See **Text Overflow** below | | `items` | List of items to show in the menu. See **Items** below. -| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [Art](../general.md) | +| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [MCI](../mci.md) | ### Hot Keys diff --git a/docs/art/views/horizontal_menu_view.md b/docs/art/views/horizontal_menu_view.md index d0b13144..90dc4438 100644 --- a/docs/art/views/horizontal_menu_view.md +++ b/docs/art/views/horizontal_menu_view.md @@ -11,14 +11,14 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a :information_source: A horizontal menu view is defined with a percent (%) and the characters HM, followed by the view number (if used.) For example: `%HM1` -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `focusTextStyle` | Sets focus text style. See **Text Styles** in [Art](../general.md)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets focus text style. See **Text Styles** in [MCI](../mci.md)| | `itemSpacing` | Used to separate items horizontally in the menu | | `width` | Sets the width of a view to display one or more columns horizontally (default 15)| | `focus` | If set to `true`, establishes initial focus | @@ -27,10 +27,10 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a | `hotKeySubmit` | Set to submit a form on hotkey selection | | `argName` | Sets the argument name for this selection in the form | | `justify` | Sets the justification of each item in the list. Options: left (default), right, center | -| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [Art](../general.md) | +| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [MCI](../mci.md) | | `fillChar` | Specifies a character to fill extra space in the menu with. Defaults to an empty space | | `items` | List of items to show in the menu. See **Items** below. -| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [Art](../general.md) | +| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [MCI](../mci.md) | ### Hot Keys diff --git a/docs/art/views/mask_edit_text_view.md b/docs/art/views/mask_edit_text_view.md index da1ca06e..a03e83c5 100644 --- a/docs/art/views/mask_edit_text_view.md +++ b/docs/art/views/mask_edit_text_view.md @@ -3,26 +3,49 @@ layout: page title: Mask Edit Text View --- ## Mask Edit Text View -A mask edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values defined by the module. Unlike a edit text view, the mask edit text view does not show the current value until the field is focused. +A mask edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values. Unlike a edit text view, the mask edit text view uses a mask pattern to specify what format the values should be entered in. ## General Information :information_source: A mask edit text view is defined with a percent (%) and the characters ME, followed by the view number. For example: `%ME1`. This is generally used on a form in order to allow a user to enter or edit a text value. -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `width` | Sets the width of a view for the text edit (default 15)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets the focus text style. See **Text Styles** in [MCI](../mci.md) | | `argName` | Sets the argument name for this value in the form | -| `maxLength` | Sets the maximum number of characters that can be entered | +| `maxLength` | Sets the maximum number of characters that can be entered. *Not normally useful, set the mask pattern as needed instead* | | `focus` | Set to true to capture initial focus | -| `justify` | Sets the justification of the text entry. Options: left (default), right, center | +| `maskPattern` | Sets the mask pattern. See **Mask Pattern** below | | `fillChar` | Specifies a character to fill extra space in the text entry with. Defaults to an empty space | +### Mask Pattern + +A `maskPattern` must be set on a mask edit text view (not doing so will cause the view to be focusable, but no text can be input). The `maskPattern` is a set of characters used to define input, as well as optional literal characters that can be entered into the pattern that will always be entered into the input. The following mask characters are supported: + +| Mask Character | Description | +|----------------|--------------| +| # | Numeric input, one of 0 through 9 | +| A | Alphabetic, one of a through z or A through Z | +| @ | Alphanumeric, matches one of either Numeric or Alphabetic above | +| & | Printable, matches one printable character including spaces | + +Any value other than the entries above is treated like a literal value to be displayed in the patter. Multiple pattern characters are combined for longer inputs. Some examples could include: + +| Pattern | Description | +|---------|--------------| +| `AA` | Matches up to two alphabetic characters, for example a state name (i.e. "CA") | +| `###` | Matches up to three numeric characters, for example an age (i.e. 25) | +| `###-###-####` | A pattern matching a phone number with area code | +| `##/##/####` | Matches a date of type month/day/year or day/month/year (i.e. 01/01/2000) | +| `##-AAA-####` | Matches a date of type day-month-year (i.e. 01-MAR-2010) | +| `# foot ## inches`| Matches a height in feet and inches (i.e. 6 foot 2 inches) | + + ## Example ![Example](../../assets/images/mask_edit_text_view_example1.gif "Masked Text Edit View") @@ -32,8 +55,9 @@ A mask edit text view supports editing form values on a screen. This can be for
``` ME1: { - maxLength: @config:users.webMax - argName: web + argName: height + fillChar: "#" + maskPattern: "# ft. ## in." } ```
diff --git a/docs/art/views/predefined_label_view.md b/docs/art/views/predefined_label_view.md index c17275f6..cae23f55 100644 --- a/docs/art/views/predefined_label_view.md +++ b/docs/art/views/predefined_label_view.md @@ -11,13 +11,13 @@ A predefined label view supports displaying a predefined MCI label on a screen. :information_source: See *Predefined Codes* in [MCI](../mci.md) for the list of available MCI codes. -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | | `justify` | Sets the justification of the MCI value text. Options: left (default), right, center | | `fillChar` | Specifies a character to fill extra space in the view. Defaults to an empty space | | `width` | Specifies the width that the value should be displayed in (default 3) | diff --git a/docs/art/views/spinner_menu_view.md b/docs/art/views/spinner_menu_view.md index 42c88e14..0f7139f8 100644 --- a/docs/art/views/spinner_menu_view.md +++ b/docs/art/views/spinner_menu_view.md @@ -11,14 +11,14 @@ Items can be selected on a menu via the cursor keys or by selecting them via a ` :information_source: A spinner menu view is defined with a percent (%) and the characters SM, followed by the view number (if used.) For example: `%SM1` -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `focusTextStyle` | Sets focus text style. See **Text Styles** in [Art](../general.md)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets focus text style. See **Text Styles** in [MCI](../mci.md)| | `focus` | If set to `true`, establishes initial focus | | `width` | Sets the width of a view on the display (default 15)| | `submit` | If set to `true` any `accept` action upon this view will submit the encompassing **form** | @@ -26,10 +26,10 @@ Items can be selected on a menu via the cursor keys or by selecting them via a ` | `hotKeySubmit` | Set to submit a form on hotkey selection | | `argName` | Sets the argument name for this selection in the form | | `justify` | Sets the justification of each item in the list. Options: left (default), right, center | -| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [Art](../general.md) | +| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [MCI](../mci.md) | | `fillChar` | Specifies a character to fill extra space in the menu with. Defaults to an empty space | | `items` | List of items to show in the menu. See **Items** below. -| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [Art](../general.md) | +| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [MCI](../mci.md) | ### Hot Keys diff --git a/docs/art/views/text_view.md b/docs/art/views/text_view.md index 6f7f36b8..3bec8ed8 100644 --- a/docs/art/views/text_view.md +++ b/docs/art/views/text_view.md @@ -9,14 +9,14 @@ A text label view supports displaying simple text on a screen. :information_source: A text label view is defined with a percent (%) and the characters TL, followed by the view number. For example: `%TL1` -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| | `text` | Sets the text to display on the label | -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | | `width` | Sets the width of a view to display horizontally (default 15)| | `justify` | Sets the justification of the text in the view. Options: left (default), right, center | | `fillChar` | Specifies a character to fill extra space in the view with. Defaults to an empty space | diff --git a/docs/art/views/vertical_menu_view.md b/docs/art/views/vertical_menu_view.md index 61654746..e46f92ae 100644 --- a/docs/art/views/vertical_menu_view.md +++ b/docs/art/views/vertical_menu_view.md @@ -11,14 +11,14 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a :information_source: A vertical menu view is defined with a percent (%) and the characters VM, followed by the view number (if used.) For example: `%VM1`. -:information_source: See [Art](../general.md) for general information on how to use views and common configuration properties available for them. +:information_source: See [MCI](../mci.md) for general information on how to use views and common configuration properties available for them. ### Properties | Property | Description | |-------------|--------------| -| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [Art](../general.md) | -| `focusTextStyle` | Sets focus text style. See **Text Styles** in [Art](../general.md)| +| `textStyle` | Sets the standard (non-focus) text style. See **Text Styles** in [MCI](../mci.md) | +| `focusTextStyle` | Sets focus text style. See **Text Styles** in [MCI](../mci.md)| | `itemSpacing` | Used to separate items vertically in the menu | | `height` | Sets the height of views to display multiple items vertically (default 1) | | `focus` | If set to `true`, establishes initial focus | @@ -27,10 +27,10 @@ Items can be selected on a menu via the cursor keys, Page Up, Page Down, Home, a | `hotKeySubmit` | Set to submit a form on hotkey selection | | `argName` | Sets the argument name for this selection in the form | | `justify` | Sets the justification of each item in the list. Options: left (default), right, center | -| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [Art](../general.md) | +| `itemFormat` | Sets the format for a list entry. See **Entry Formatting** in [MCI](../mci.md) | | `fillChar` | Specifies a character to fill extra space in the menu with. Defaults to an empty space | | `items` | List of items to show in the menu. See **Items** below. -| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [Art](../general.md) | +| `focusItemFormat` | Sets the format for a focused list entry. See **Entry Formatting** in [MCI](../mci.md) | ### Hot Keys diff --git a/docs/assets/images/mask_edit_text_view_example1.gif b/docs/assets/images/mask_edit_text_view_example1.gif index 443d2868de13424a671d70e892d89da35a8fe789..b12ba5ab2b91c785886fb6e39b249c4a425f10ab 100644 GIT binary patch literal 7222 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 OzAD_?m3(`1IP@>56y!+& literal 7117 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 x$kW3TQTIt#p=lKTS+|?fRwRz~{Az