|
Track: Application Development Techniques
John Ganter
Decision Support Systems Software Engineering
PO Box 8500 M/S 1138
Albequerque, NM 87185-1138
Telephone: 505-844-1304
Fax: 505-844-0745
E-mail: jganter@sandia.gov
SandView: A View Document Object for MapObjects
ArcView software's namesake View documents are a compact, powerful user interface for geodata browsing. We have developed a polymorphic View-like object that surrounds a mapping OCX/Active X control (MapObjects, MapObjects LT) with the obvious features and hidden infrastructure of a View. Licensing issues are avoided because the map control instance is simply a property of SandView and the two parts coexist symbiotically.SandView duplicates as much of the ArcView/Avenue View syntax and properties as practical. It also goes beyond with more Table of Contents (TOC) display options, an optional tabbed Panel where users can set and label regions of interest, and colored Themes, Classifications, and View background. In order to give the applications developer maximum flexibility, SandView provides most user interface functionality through pop-up context menus. For instance, the user can add, delete, and clone themes with the right mouse button. SandView includes virtual Map, Layer, and Symbol objects in
order to get, put, and serialize/deserialize pieces of the MapObjects model. This lets the developer copy and move objects and preserve state.SandView was developed using Visual Basic 4 and 5. This approach had benefits and a number of costs. Visual Basic's limited relationship between controls and classes required some awkward object/control instantiation and termination. Since the TOC is a dynamic hierarchy that grows and shrinks, reference counts had to be carefully managed in order to control object lifespans. However, if we had the task to do over again we would still use Visual Basics. We will discuss the SandView design process, the object model, and what we learned in the development phase.This work was supported by the United States Department of Energy under contract DE-AC04-94AL85000. Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy.
|
|