Before you start

Rogue Wave® JViews Maps for Defense offers a wide range of mapping services for building custom user interfaces.
To provide these services, it relies on services provided by JViews Diagrammer and JViews Maps.
To be successful with the JViews Maps for Defense product, it is important for you to understand its architecture and its dependencies.
If you are already familiar with Rogue Wave JViews Maps, here are the main additional features provided by Rogue Wave JViews Maps for Defense:
  • Terrain Analysis features
    • 3D terrain views
    • Line of Sight
    • Area of Visibility
    • Gradient computations
    • High/low areas detection
    • Terrain cut along a polyline
  • MIL-STD 2525b/APP-6a symbology
  • Additional military map formats such as CADRG, DAFIF, VMAP, S57, ASRP, and USRP
Rogue Wave JViews Maps for Defense is a collection of:
  • Applications
  • Software Development Kits (SDKs)
The applications are prebuilt and:
  • Preconfigure the maps used in the application during run time.
  • Define the symbols you can place on top of the maps and their behavior when application data changes.
Note
APP-6a Symbols are a specialized use of JViews Diagrammer capabilities. The coding of the APP-6a standard in a set of java classes provides even greater performance than the (more flexible) output of the Symbol Editor.
The applications are typically used to configure parts of your application before run time. They accelerate application development, but do not need to be used within your final delivery. The structure of Rogue Wave JViews Maps for Defense is shown below:
ILOG
JViews Maps structure
Rogue Wave JViews Maps for Defense structure
The features of Rogue Wave JViews Maps for Defense are also available through the SDKs, which provide a full range of features and greater flexibility. If necessary, you can extend the Java classes to create the precise user interface that your user requires.

Applications

Rogue Wave JViews Maps for Defense includes the following applications:
  • Map Builder
  • Symbol Editor for JViews Diagrammer
  • Designer for JViews Diagrammer
  • Dashboard Editor JViews Diagrammer
Map Builder
This tool is used to define the background of your runtime application. However, if your application needs to configure its background dynamically at run time, you can use the Rogue Wave JViews Maps for Defense SDK directly.
With just a few mouse clicks, the Map Builder allows you to:
  • Import map data from a wide variety of map data formats and parameters.
  • Combine them on different layers, mixing both vector and raster data sets.
  • Alter the map features such as the colors or widths of roads and boundaries.
  • Control the visibility and appearance of the layers, depending on the desired zoom level. This enables you to have meaningful information displayed, according to the operational context.
  • Choose an appropriate projection.
  • And much more...
An example of the Map Builder for Rogue Wave JViews Maps for Defense is shown below:
Map Builder
for JViews Maps
Map Builder for Rogue Wave JViews Maps for Defense
The end result can be saved as a map definition file that is loaded at run time.
Note
Although the Map Builder is a tool for defining the background maps of an application, it also serves two other functions important for getting started with the product:
  • SDK exploration: the Map Builder offers an easy way to accelerate your evaluation of the wide variety of features offered by the SDK.
  • Jump starts developments: the Map Builder is delivered as source code and built using Rogue Wave JViews SDKs. You can reuse code fragments in your final application.
Symbol Editor
Rogue Wave JViews Diagrammer is bundled with Rogue Wave JViews Maps and manages the foreground interactive objects used to depict your assets. Rogue Wave JViews Diagrammer adds a data-driven, rule-based philosophy:
  • You manipulate the application data model, adding, removing, and modifying your assets.
  • You define the styling rules that state how the data model is displayed using symbols. The styling rules are based on the Cascading Style Sheet (CSS) standard.
  • By applying the data model and the style sheets, Rogue Wave JViews Diagrammer creates and displays the symbols.
  • When the data model changes, changes in the symbols or their graphics are triggered.
  • When users interact with the graphics, they can trigger data model changes.
An example of styling rules is shown below:
Styling
rules
Styling rules
Contained in JViews Diagrammer, the Symbol Editor is a point-and-click interface used to create palettes of rich interactive symbols. These symbols combine graphic parts, custom behavior, and interactions. They can be used to populate graphical views of your applications.
Symbol
Editor
Symbol Editor
Symbols can be used to represent:
  • Geo-referenced graphics for monitoring and management applications. Such symbols are overlaid on background maps to depict, for example, vehicles, moving assets, or meteorological symbols. In addition to visual definition, these symbols include the required behavior for displaying information as status or any other application-specific monitored asset information.
  • Graphical nodes in graphs, topologies, entity-relationship diagrams or business processes.
  • Other GUI objects such as buttons, sliders, and check boxes.
Typical
symbols
Typical symbols
Designer for JViews Diagrammer
Designer for JViews Diagrammer is a point-and-click application used to create the styling rules that specify the visual appearance of your application data.
Designer
for JViews Diagrammer
Designer for JViews Diagrammer
Designer for JViews Diagrammer gives you a clear idea of the final display, as it allows you to import a sample data model, the map files created with the Map Builder, pre-built or custom symbol libraries, and interactively test rules on these data sets. It allows you to describe and test the mapping and custom logic between a domain-specific data model as used by your application, and how this information drives changes to the Symbols.
For example, a rule could look like:
If there is an object of the type Airplane with a Status property equal to Critical
Then modify the monitored_asset parameter so that its background color switches to red
The output is a JViews Diagrammer project file that you import into your application code and extend using the SDKs.
Dashboard Editor
The Dashboard Editor is a point-and-click interface used to draw all kinds of schematics and dashboards. Made of standard vector graphic objects and dynamic symbols, the resulting dashboards can then be loaded and connected to actual data at run time. This editor is convenient for creating monitoring displays where the symbols are manually positioned on the display and then connected to their underlying real-world business objects.

SDKs

Rogue Wave JViews Maps for Defense includes five different component libraries.
The topmost layer represents the Java code of the application, which can interact with any or all of the SDKs provided, or bypass them when required and directly call the Java2D or Swing APIs.
For example, the Rogue Wave JViews Diagrammer SDK is needed when you display interactive objects on top of your maps (the symbols), whereas the JViews Maps for Defense SDK handles the map background manipulations.
The modules in this architecture and the services they offer are shown below:
ILOG
JViews Maps for Defense architecture
Rogue Wave JViews Maps for Defense architecture diagram (from a services perspective)
Starting with the bottom layer, all Rogue Wave JViews libraries are built on top of the Java2D and Swing libraries, with no platform-specific code. This means that applications developed with Rogue Wave JViews run on any platform that supports Java.
On top of this low-level layer is the JViews Framework layer, which includes among others, efficient data structures, prebuilt user interaction services, and a printing facility. JViews Framework is not sold by Rogue Wave as a separate product; it serves as a core component of each of the products in the Rogue Wave JViews product line.
Above JViews Framework is JViews Maps, which provides a wide range of map manipulation and display services. It is built on the data structures and I/O facilities of JViews Framework.
At the same level, there is Rogue Wave JViews Diagrammer, which provides a wide variety of displays consisting of custom graphic objects that are data-aware. This means that the graphic objects in the display can change their appearance as the underlying data model changes. For example, a graphic object that represents a vehicle can have its color change if its status field changes.
Rogue Wave JViews Diagrammer uses a Model-View-Controller (MVC) architecture that will be very familiar to Java programmers used to the Swing structure. Its purpose is to separate the data model from the views and connect the two with a rule-based style manager that controls the look of the objects based on the data values, see below:
Data
model architecture
Data model architecture
JViews Diagrammer calls this mechanism Styling and Data Mapping (SDM). It is used by Rogue Wave JViews Maps for Defense to store and manipulate any interactive object that appears on top of a map.
Thus, Rogue Wave JViews Maps for Defense uses two distinct data structures:
  • One for storing the map data that is relatively static (such as definitions for roads and boundaries).
  • SDM for storing information about the custom objects of an application.
Rogue Wave JViews Maps for Defense is built on top of the layer that contains JViews Maps and JViews Diagrammer. The specific contribution of JViews Maps for Defense is to provide the terrain analysis and APP-6a symbology features. A set of map formats specifically for military use are also provided.
The final application is Java code that performs a mix of Swing, Java2D, and JViews SDK calls. The application code can be as little as a few lines that simply load the outputs of files created by the Rogue Wave JViews Maps for Defense application, or a sophisticated analysis tool with dynamic map and data feeds. In both cases, the reuse of ideas and code from the Map Builder application is encouraged.

Components for Java and Web deployment

Prebuilt components are available to accelerate the development phase:
  • JavaBean components for use with any Java IDE to develop Java applications and applets.
  • JavaServer Faces components for developing thin-client Web applications that take advantage of Ajax and DHTML.

Running the samples

For information about running the samples, refer to the section Starting the samples.

Compiling a Rogue Wave JViews program

In order to compile a Rogue Wave JViews program you need to have the appropriate Rogue Wave JViews libraries in the Java classpath. Refer to the Distribution structures for more information.
Note that if you are using an IDE, the installation of the Rogue Wave JViews libraries in this IDE is highly IDE dependent. Please refer to the documentation of your IDE.