The uDig application manages your content in the following data structure:
- Project: represents a folder, on disk where your content is saved
- Map: represents a visualization of spatial information, makes use of a ViewPort indicating the area of interest
- Layer: a Map is composed of Layers, indicating which spatial information is to be drawn (and in what order)
Because this is a dynamic application we ask you not to hack away at these data structures as the system is running (to do so often freezes the screen). Instead we ask you to assemble a command that will be issued in the user interface thread.
uDig is highly threaded, as benefits a client application, ensuring that "work" happens in the correct thread is a large benefit provided to you by the GIS Application.
Project
The API available to you for a Project is three fold: that which is available all the time (such as the File), that which will need to block (accessing the File), and that which can only be used via a command (modifying the contents).
Map
The API available to you for a Map is threefold: that which is available all the time (such as the File); that which will need to block (accessing the File); and that which can only be used via a command (modifying the contents).
Highlights:
- Layers
- Viewport
- Selection, often used with editing tools
- IssuesList, common API for "workflow user interfaces"
Layer
The API available to you for a Layer is three fold: that which is available all the time (such as the File), that which will need to block (accessing a resource), and that which can only be used via a command (modifying the contents).
Highlights:
- Connection Information, used to look up matching resources in the catalog
- StyleBlackboard, used to control the adaptive rendering system
- Transaction, for feature information Transaction support is applied for the entire Map!
Is the text on Project API correct? It was a copy of the Map section (with the word Map still in it) until I edited it to change it to read "Project".