Tables are a good way to organize and visualize lists of data. By providing lists of data structured into rows and columns one can easily inspect a lot of aspects of the list by using just a few basic table operations like sorting and filtering.
Often lists of data in an application go through three stages of 'maturity'. The final stage normally is that data is being represented in a table. Knowing this will help a developer to choose the 'right' implementation without going through the other stages. The following stages can be discerned:
Lists in a List ControlThe natural first choice for displaying a list of data is to use a simple List Control. A List Control will display just a simple representation for each row in a list. This may work well for small lists, however, if the lists grow larger one often runs into trouble. A good overview of what the list contains is easily lost. Therefore the need arises for a more structured visualization of the data.Lists in a Tree ControlWhen the overview of data in a List Control is lost one might use a Tree Control to allow a hierarchical overview of the list. When the discriminating criterion is well known to the user, the user should be able to zoom in on the data he is looking for. However, the tree acts as a very fast index for a very specific search query. If, on the other side, the user has another search query and does not know the exact path to the item of interest, the user often finds himself clicking through the entire tree in search of that one item. Clearly another visualization is needed then.Lists in a Table ControlThe final stage for presenting lists of data is often the Table Control. The Table Control organizes data, just like a List Control, into rows. But in addition to that the Table Control also organizes the details of a row into columns. The columns are the real power of a Table Control. By adding sorting and filtering capabilities to these columns the user will be able to generate a lot of different views on the data using the same control. The control could even group the rows into a tree based on the values for the columns of a row. This could be controlled directly by the user.
Now the case for the Table Control has been made the next sections will go into more detail on how tables are used within the Charta Platform.