Developers documentation
Introduction
gvSIG Map Sheets is a conventional extension for gvSIG. You can see here a basic introduction to its functionality. It adds most of its functionality by extending existing classes in the gvSIG core (inheritance). Essentially it deals with:
- In-memory vector layers.
- Fast refreshment of the application canvas (MapControl).
- A special type of map (layout).
- Automatic printing of several maps.
- XML-based persistence.
- Basic reading/writing of shapefiles.
Context
This very simple diagram shows the basics of the gvSIG 1.X architecture. Red circled numbers indicate -in order of relevance- the parts where the Map Sheets extension adds a new component:
(1) A new type of map document is added which allows the management of active fields refreshed with the geometry and attributes from a certain feature. Also adds special types of frames (for view and texts)
(2) Adds new menu 'View > Map Sheets' and 'Map > Map Sheets' and plenty of dialogs following the fwAndami framework. The most relevant dialog is the one that allows the user to browse different maps by selecting the desired feature ID.
(3) Adds a new type of vector layer (a grid) consisting of a set of rectangles and certain attriburtes.
(4) It also adds a map tool to easily adjust the frames in the map sheet grid.
(5) A new in-memory vector driver is added since the grid is kept in memory during the gvSIG session.
Developers overview
This very simple diagram shows the relationships between the main entities in the problem domain and how user actions guide the process until the final goal (printing or persisting)
Components overview
Package org.gvsig.mapsheets.tool
Package overview showing relationships between main classes and interfaces only. Relevant classes and interfaces in other packages are shown inside a labeled package box:
Package org.gvsig.mapsheets.layout
Package overview showing relationships between main classes and interfaces only. Relevant classes and interfaces in other packages are shown inside a labeled package box:
Package org.gvsig.mapsheets.print
Package overview showing relationships between main classes and interfaces only. Relevant classes and interfaces in other packages are shown inside a labeled package box:
Package org.gvsig.mapsheets.grid
This package only contains the MapSheetsGrid class which is a subclass of FLyrVect and uses an in-memory datasource. It is persisted in the project file inclkuding all its field values and geometries (rotated frames).
Extension classes
Package overview showing relationships between main classes and interfaces only. Relevant classes and interfaces in other packages are shown inside a labeled package box: