Tables in the Sample Application

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.

Tables with Editable Numeric Values

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:

  • Key events

  • Selecting and deselecting an item in an Order form (a row in the table)

  • Tapping on a product ID

  • Tapping on an item quantity

  • Scrolling

Initialization

Here’s the code for the one-time initialization done when we load the Order form:

static void InitializeItemsList(void) ...

Get Palm Programming: The Developer's Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.