I am evaluating Scout and try to mimic an application we already built.

The app is heavily using something like a tree to navigate through available elements of a database. I would like to have different icons in the tree representing different node types like in the following example:

What is the best way to achieve that? Would I have to overide getConfiguredIconId() for every Page type I define?

Icons for tree nodes and table rows are easily configured in the Scout SDK (or by overriding the corresponding getConfiguredXXX() methods). There are three different places where you want to define an icon:

Icon for a table page (e.g. the tree node icon for the "Object Classes" node): Override getConfiguredIconId() on your table page (e.g. ObjectClassesTablePage). See [2] and [4] in example below.

Icon for each row in a table page (e.g. the row icon for each object in the object table): Override getConfiguredDefaultIconId() on the table (inner class) of your table page. See [3] in example below.

If you want to display different icons for different rows within a table, you need to provide the iconId for each row and explicitly set it on the row. See [5] in example below (It uses an invisible icon column which is filled for each row, the icon is then explicitly set on each row in the execDecorateCell() method).

To make an icon available to your application, see the corresponding howto.

Here is an example of what the structure of your application could look like: