GLG 2.11 Release: New Features and Enhancements

AJAX DashboardNew Toolkit Features

AJAX Graphics Server for JSP Servlets
New Look and Feel of Graph Widgets
RollBack Scrolling Type
New Selection Type for Tooltips
GLG Script Extensions
Font Rendering Improvements for Windows Platforms
Java Applet Improvements
OpenGL Driver New Features and Bug Fixes

New GLG Graphics Builder Features

Updated Look and Feel of the Graphics Builder
Mouse Dragging Support in the Color Palette
Graphics Builder Icons
Configurable Color Palette with Scrolling
Spinners for Changing Attribute and Resource Values with the Mouse
New Ctrl-A Accelerator
DataGen Support for Relative Paths

Shadow Releif ImageNew Map Server Features

Label Layout Negotiation and Automatic Decluttering
Text Box Line Width Attribute
Enhanced Error Handling Features
New Elevation Layer Features

New Toolkit Features

AJAX Graphics Server for JSP Servlets

The GLG Graphics Server is a new addition to the GLG Toolkit family of products, and provides the server-side support for AJAX-based thin-client web applications.

With the GLG Graphics Server, a dynamic GLG drawing may be displayed in a web browser using only the industry-standard HTML and JavaScript, with no plugins or Java applets required on the client side. While the Java applet based rich-client approach provides superior interactivity, the AJAX-based approach may be used when only the HTML and Java script are allowed on the client.

The Graphics Server is a server-side component which renders the image in response to the image generation requests from the browser-based thin client. The image is referred to as "dynamic" since it reflects the current state of the dynamically changing data. The Graphics Server also handles user interaction requests, including object selection with the mouse and object tooltips, as well as clicking on buttons and toggles in the drawing. In conjunction with the JavaScript on the client side, it makes the image appear dynamic as it updates with real-time data and responds to user actions.

In the Java Server Pages (JSP) environment, the Graphics Server is deployed as a Java Servlet and may be used with any compliant Java2EE Application server.

Click here to run online AJAX demos.

Click here for more information on the GLG Graphics Server.

New Look and Feel of Graph Widgets

New Graphs Look and FeelThe look and feel of all GLG graph widgets have been improved by adding gradient rendering to the datasamples, markers and other elements of the graphs. Shadows and transparency have been added where appropriate as well.

Use the following links to see examples of the new graphs' look and feel:

AJAX Dashboard Demo
AJAX Graphs Demo

Click here  to view new 2D and 3D graph palettes.

RollBack Scrolling Type

A new graph scrolling type was introduced to decrease CPU requirements of the scrolling real-time graphs. The new scrolling type allows the graph to "roll-back" by a specified number of datasamples to free space for new data when the graph gets completely filled. A new RollBack attribute was added to the graphs to control the number of datasamples to "roll-back" when the graph gets completely filled.

Since the graph gets scrolled only when it gets completely filled, it will significantly reduce the CPU load compared with the scrolling graph that scrolls on every data update.

The RollBack resource may also be used to implement a graph which "wraps" until it gets completely filled with data and then starts scrolling. This behavior may be implemented by setting the graph's RollBack resource to 1.

The RollBack attribute of the graph's time axis labels should be set to a proper value to match the settings of the graph's RollBack. Refer to the RollBack Scrolling chapter of the GLG Widgets Reference Manual for more information.

New Selection Type for Tooltips

A new GLG_TOOLTIP_SELECTION selection type has been added to the GlgCreateSelectionMessage method to query objects with a TooltipString resource at a given screen location. This selection type is used by the GLG Graphics Server to process tooltips in AJAX environment. It may also be used in a Trace callback in C/C++ and Java environments to determine if the mouse event will activate an object tooltip.

GLG Script Extensions

New commands were added to the GLG script to allow the script to traverse points of polygons, traverse elements of groups and viewports, load objects from a file, and add text box and rendering attributes to objects.

Font Rendering Improvements for Windows Platforms

Performance of the rotated text rendering on Windows platform was greatly increased.

Handling of fonts with the DEFAULT_CHARSET on Windows was changed by using the codepage from current locale. This increased the usability of the default font table by automatically inheriting the current locale setting.

Java Applet Improvements

The invokeLater method was used in the GlgBean's start and stop methods to handle the applet's asynchronous life cycle. This change fixed Java exceptions when a running applet was destroyed in the middle of updating its graphics with new data.

The GLG Java demos and examples were changed to better handle asynchronous invocation of the applet's method by the web page's Java Script. The SendRequest method was added to handle Java Script invocations in a synchronous way.

OpenGL Driver New Features and Bug Fixes

New GLG Graphics Builder Features

Updated Look and Feel of the Graphics Builder

Graphics Builder IconsThe visual appearance of the icons in the Graphics Builder was updated to use the gradients, shadows, transparency and other new features to provide more sophisticated look and feel.

Mouse Dragging Support in the Color Palette

Support for mouse dragging was added to the color and other palettes of the Graphics Builder for more convenience. By clicking in the color palette and dragging the mouse with the mouse button pressed, the user can experiment with the colors without a need for repeated clicking on the palette.

The mouse dragging support is also provided to the GlgPalette input handlers in all GLG applications via a new ValueChange action.

Configurable Color Palette with Scrolling

Scrollable Color PaletteSupport for scrolling color palettes with a large number of colors has been added to the Graphics Builder to make color selection more convenient.

When the number of colors in the Builder's color palette is increased by setting GlgDefaultColorFactor to the value greater than 3 in the glg_config file, the scrolling sliders of the color palette will be automatically activated. The number of color grades for each of the color palettes' hues may be changed by setting the GlgDefaultNumColorGrades parameter of the glg_config file.

Spinners for Changing Attribute and Resource Values with the Mouse

Spinner for Editing Resource ValuesSpinner objects were added to the Graphics Builder interfaces to facilitate changing the attribute or resource values with the mouse. Each spinner provides two sets of buttons, one set for increasing or decreasing the value by 1, and another for changing the value by 10.

New Ctrl-A Accelerator

The SelectAll option with the Ctrl-A accelerator was added to the Graphics Builder to select all objects in the drawing. In conjunction with the Ctrl-Click grouping option and Ctrl-Shift-Click option for traversing hierarchies of groups and viewports, it allows for more convenient editing of large drawings.

DataGen Support for Relative Paths

Support for better handling of the relative paths was added to the data generator's -script and -datafile options. The options will now interpret relative path names relatively to the load path of the drawing, making it easier to associate animation scripts with the drawings. If the script is still not found, the data generator will search for the script file in the directories defined in the GLG_PATH search path.

New Map Server Features

Label Layout Negotiation and Automatic Decluttering

Label DeclutteringA priority-based label layout negotiation feature was added to the map server to facilitate a better layout of intersecting labels and automatic label decluttering depending on the zoom factor.

The label layout may be activated for the layer by specifying the LAYOUT TYPE parameter in the layer's LIF file. The label layout may be performed only for the labels in the layer or globally, for labels in all layers.

A priority value may be assigned to Labels of different types or labels in different layers to control the label priority. A LAYOUT MARGIN parameter of the LIF file may be used to specify a minimum gap between the labels.

Text Box Line Width Attribute

A new LIF file parameter which specifies the line width of a text box has been added for increased control over the text box's rendering.

Enhanced Error Handling Features

The ERROR FONT and DEFAULT FONT parameters were added to the SDF files to control the font used for error messages as well as the default font for all layers.

New Elevation Layer Features

Shadow Releif ImageA new elevation mode option for displaying elevation data as color images was added to the elevation layers to facilitate testing and debugging.

Support for attribute maps was added to image layers to enable "dimming" elevation shaded relief effect for high zoom factors, to improve visual appearance.

An earth elevation shadow relief dataset was added to the map data samples.