In our sample application, we use a table in the Order form. There are three columns: the product ID, the product, and the quantity. Note that we don’t use the numeric cell type for either the product ID or quantity, because we need editing as well as display.
We don’t use the text cell type for the product ID or quantity, either. These are numbers that we want displayed as right-justified—the text cell type doesn’t provide for right-justified text. Therefore, we don’t use table’s built-in types. We use the custom cell type to create our own data type, an editable numeric value, instead.
If we ignore the Table Manager APIs and create our own data type, we have the advantage of having a preexisting model on which we can rely—the built-in applications for which source code is available use this approach. The major disadvantage to this approach is that we won’t be able to rely on the Table Manager for help with all the standard little details (such as key events). For our application, all the Table Manager provides is some iterating through cells for drawing and indicating which cell has been tapped. Thus, we will need to write additional code for the following:
Selecting and deselecting an item in an Order form (a row in the table)
Tapping on a product ID
Tapping on an item quantity
Here’s the code for the one-time initialization done when we load the Order form:
static void InitializeItemsList(void) ...