In the "RGA" iPhone view, section 5 has a picker controller similar to that in section 4, except that it is text based, not numeric. In the current version of iQuipment software, the text-based picker allows only ONE dial. Please contact us if you have a multi-dialer text application. We may add this feature to future versions based on user need.
Now, you will learn how to recreate this controller in "myRGA" iPhone view.
Right click the "view" node then select "add section." Right click the "title" node of the new "section" node and enter "Application Mode" in the pop-up.
Find the "row" node under the new section and right click "controller" node. Select "add picker" from the options. To set the height of this picker, right click the "height" node (1) and enter 180 (in terms of pixels on iPhone). Next, right click the "width" node (2) and enter 260.
Right click the "title" node and enter the string of "Normal; He Leak Check; Air Leak Monitor; Vacuum Gauge; Oil Contamination; Quick Scan; High Averaging." These are the text strings that will appear on the dial. Do not include the quotation marks. Separate each string with a semicolon.
Right click the "source.dataName" of section 5 and select "applicationMode" from the pull-down list.
Now dial to select a text string on your iPhone and watch the changes on the RGA Example.exe.
Open Form1.cs in the RGA Example VS project and double click the textBox (1, figure above). It should jump to the following code:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
INFOMATO.WCF.DataExchangeService.servicePostData("RGA", "applicationMode", comboBox_application.SelectedItem.ToString());
}
Every time the comboBox (named comboBox_application) value changes, the above function is executed. We call up the function INFOMATO.WCF.DataExchangeService.servicePostData to inform iQuipment PC to update the value for "applicationMode" in "RGA" view.
Similar to the handling of the segments control, when you tap the picker on your iPhone, it will trigger the event INFOMATO.WCF.DataExchangeService.clientSetDataEvent which, in turn, calls up DataExchangeService_clientSetDataEvent for event handling.
void DataExchangeService_clientSetDataEvent(string viewName, string dataName, object dataValue)
{
if (viewName.ToLower() == "RGA".ToLower())
{
switch (dataName.ToLower())
{
...
case "applicationmode":
selectTextInComboBox(comboBox_application , dataValue.ToString());
break;
...
}
}
}
In the selectTextInComboBox(comboBox_application , dataValue.ToString()) function call, we took care of UI thread-safe issues when updating the comboBox. Windows UI thread-safe coding is discussed in greater detail in the section on segments controllers.