Multi-Edit Keyboards
24 March 2011, 06:44 by Chad Reynoldson
Updated (with good news)
More investigating revealed that multi-edit keyboards with pre-loaded values are possible. Here’s the text field properties to use:
- Assign the button a type of “Text Input”. This allows it to be selected (focus) and have the text value editable.
- Assign the button a variable text value. This is used for pre-loading the value from Netlinx code.
- Assign the “Name” property a value to be pre-pended when the edit is done, as in KB_NAME-.
- Parse strings back from the touch panel and look for KB_NAME- to get the values. Be sure and look for an ABORT value, in case the person decides to cancel the edit.
- For some reason, this KB_NAME-
is not displayed using netlinx diagnostics. Test code will reveal that it really does work though.
Original post on 09 April 2010
AMX touch panel keyboards and keypads allow editing of a single item. You can customize a system page template to allow editing of multiple items, such as a telephone speed-dial entry for a person’s name and number. It works, but with some drawbacks.

GUI Tweaks
First off, open up the system page template and copy the __keyboard popup into your touch panel file. You will want to rename it (otherwise any @AKB or AKEYB command will use the new multiple edit keyboard). I’ll rename the new popup to ‘kbSpdDialEditor’.
Open up the new popup and select the prompt at the top. We’ll need to change this to a static text label, say ‘Enter new name and number’. Unfortunately, we won’t be able to use the @AKB command.
Open up the new popup and select the text area button. Resize it, allowing room for a label next to it, like ‘Name:’. Reselect the text area again. It will have a variable text assignment as setup:multi-line text area.
With the button, we will assign the channel number for setup:text entry and modify the ON border color. This will enable highlighting of the current item being edited.
Next, we’ll modify the OFF text value to ‘KB_NAME’. The touch panel will use this value as the header with the value once the user presses DONE (i.e. KB_NAME-Chad Reynoldson).
Copy the label/button pair and paste it below. Rename the label and the OFF text value to ‘KB_NUMBER’.
Implementation
You can use either a send command (i.e. @PPN) or a pageflip assignment from a touch panel button to bring up the new kbSpdDialEditor popup. Each time the fields will be reset.
When the user presses DONE, you’ll see a string event with ‘KB_NAME-value’ and another with ‘KB_NUMBER-value’.
Drawbacks
It works well and moves this functionality into the touch panel file, which is where I prefer to off-load as much work as possible. Unfortunately it won’t allow us to pre-load the editable name and number with something we may have stored in netlinx code, something @AKB allows us to do. This presents a huge problem for the end-user.
We could overcome this with netlinx code, but that breaks the simplicity of off-loading the heavy lifting to the touch panel.
So this seems like an exercise to prove that it works. Unfortunately it has some drawbacks that takes us right back to where we started.

Share This Article
Comments
Comments are turned off for this article.
