Notes on the Display of AttributeTables
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
I wanted to jot down some notes on the code involved in displaying the attributes for features in a layer.
ViewAttributesPlugIn
Here is a basic run down of the series of method calls when the user calls up the attribute table for a layer:
- ViewAttributesPlugIn defines the public static innner class ViewAttributesFrame. A new instance of this class is created when the execute method of the ViewAttributesPlugIn is called.
- The constructor of the ViewAttributesFrame class creates a new OneLayerAttributeTab. The constructor of an AttributeTab class creates a new AttributePanel class.
- The AttributePanel class defines a layerAdded method that calls the addTablePanel method that is also defined in the AttributePanel class.
- The addTablePanel method creates a new AttributeTablePanel using the provided LayerTableModel.
- The AttributeTablePanel contains an inner class named MyTable that extends JTable.
FeatureInfoPlugIn
Common Components
The AttributeTablePanel class looks like it could be a package itself. It contains three (3) inner classes and one inner interface. These include:
- MyTable
- FeatureEditor
- GeometryCellRenderer
- SelectionModelRenderer
The AttributeTablePanel class is definitely one of the most complex I've seen in OpenJUMP.
The LayerTableModel class extends the ColumnTableModel class. ColumnTableModel implements the Swing TableModel interface. A LayerTableModel is passed to the AttributeTable so the attribute values of Feature objects in a layer can be displayed.