Dropdown database text
Widget is represented by a label and dropdown below label. Data that is saved to database is of datatype "text".
Widget id, ${gbamID}
:
dropdownDatabaseText
Back to GBAM widgets table
Datatypes
Value is stored from widget to database as text
datatype.
Predefined user data
PreLoaded
Properties panel
User will configure this data in properties panels of selected widget:
GENERAL
- "label",
${widgetLabel}
VALIDATIONS
- "required", RequiredValidator, add to configuration.xml:
<columnText required="true|false"></columnText>
ACTION
- "dropdown items",
${dropdownItemsList}
=${<item>${dropdownListItem}</item>}
- repeats to how many dropdown items were entered by user -
${dropdownListItem}
- single "dropdown items" item entered by user
ACTION MESSAGES
- "message in case of no data", if $defaultApp resource ${$dropDownNoData}, if we override then it has to be formed
{@string/${widgetID}NoData}
- message which appears when user clicks on dropdown and no data is loaded into dropdown - "no selection text", if $defaultApp resource ${$dropDownZeroItem}, if we override then it has to be formed
${@string/${widgetID}ZeroItem}
- text which appears when dropdown is initially loaded and nothing is selected in it - "message in case of missing read rights", is $defaultApp resource ${$noReadRightsToast}, if we override then it has to be formed
{@string/${widgetID}NoReadRightsToast}
- message which appears when user has no read rights to load widget data
DATABASE
- "is part of database", checkbox option by default is set as checked. When checked database column is created for this widget.
- "additional ginstr web column settings":
- "align text", radio button options with values: "left", "middle", "right", add to configuration.xml:
<columnText> <horizontalAlignment>left|center|right</horizontalAlignment> </columnText>
- "list of allowed values" array with list of allowed values, add to configuration.xml:
<columnText> <valuesList> <value>val1</value> <value>val2</value> </valuesList> </columnText>
- "pattern", add to configuration.xml:
<columnText> <pattern errorMessage="invalidTextTableValue">[0-9A-Z]{3}</pattern> </columnText>
- "related unique columns", add to configuration.xml:
<columnText> <uniqueInsideList> <reference> <table>refTableId1</table> <column>refColumnField1</column> </reference> <reference> <table>refTableId2</table> <column>refColumnField2</column> </reference> </uniqueInsideList> </columnText>
Code snippets
GBAM Code Variables
Variables which are used in code snippet below but not defined in user modifiable inputs.
Common widget code
<com.ginstr.widgets.GnTextView android:id="@+id/${widgetID}_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/${widgetID}" gn:style="@style/dropdownDatabaseText_label" /> <com.ginstr.widgets.GnDropDown android:id="@+id/${widgetID}_input" android:layout_width="match_parent" android:layout_height="wrap_content" gn:s_ZeroItemText="@string/${$dropDownZeroItem}" gn:msg_nodata="@string/${$dropDownNoData}" gn:s_sourceType="database" gn:dataType="text" gn:act_beforeLoad=" [gn:act_if]|[[gn:act_hasTableRights]|[${widgetID}!=R]-- [gn:act_toast]|[@string/${$noReadRightsToast}]; [gn:act_break]|[]], [gn:act_rawQueryToWidgets]|[${widgetID},${widgetID}_input;${widgetID};@+id/${widgetID}_input]" gn:style="@style/dropdownDatabaseText_input"/>
strings.xml
Lines to be added for each language.
<string name="${widgetID}">${widgetLabel}</string> <string name="${widgetID}_table">${widgetLabel}</string> <string name="${widgetID}_column">${widgetLabel}</string>
queries.xml
Add to queries.xml :
<query id="${widgetID}_input" columns="${screenLabelGenerated}_${widgetLabelGenerated}"/>
configuration.xml
Table configuration for add to configuration.xml node <configuration>
:
<tables> <table id="${widgetID}" name="${widgetID}_table"> <columnText id="${widgetID}" name="${widgetID}_column" /> </table> </tables>
data for data.xml
-
${numberIncrement}
- Starts from 1. Take biggestrow id
and increment by 1. -
${dropdownItemsListRows}
- based on user entered data into"dropdown items"
, repeat for each user entered item:
<row id="${numberIncrement}"> <column id="${widgetID}"> <value>${dropdownListItem}</value> </column> </row>
- ${dropdownListItem} must comply with RULES
Data configuration for add to data.xml node tables
:
<tables> <table id="${widgetID}"> ${dropdownItemsListRows} </tables> </predefinedAppData>