Today we look a little bit deeper inside the architecture of the SDM renderers, and what to do when things go unexpected or totally wrong in the rendering process. The IBM ILOG JViews Diagrammer has a MVC architecture that is controlled by style sheets. The data model representing the application data determines which objects exist and what are the object's properties. Whenever a new model object is created or deleted, or whenever a model property changes, the SDM data model communicates with the SDM engine by events. The task of the SDM engine is to refresh the graphic objects displayed in the SDM view. This is achieved by calling methods in the SDM rendering chain. For instance when a model object representing a node is added to the model, the model sends an SDMModelEvent to the engine, which then calls the method addNodeGraphic of IlvSDMRenderer on the first SDM renderer in the chain. The task of the SDM renderers is to create or to modify the graphic objects displayed in the view. The CSS style sheets specify which renderers are available and what each renderer should do in detail.
Why is it a renderer chain? The SDM engine knows only the first renderer, and each renderer has a link to the next renderer. Each renderer decides inside a rendering method what to do with the changed situation. If a renderer cannot handle the situation, it forwards the call to the next renderer in the chain, expecting that one of the next renderers will be able to handle the... [More]
We are hosting a webinar tomorrow on Ajax Push technologies. Francois Trible, from ILOG, will be presenting along with Ted Goddard, from IceSoft. They'll be describing how Ajax Push technology can be used to create dynamic graphical user interfaces for the thin client. The presentation is at 9AM Pacific time/ 6PM Europe time and last for one hour. More info and registration here . Please join us.
Released earlier today is the new JViews Enterprise V8.8 trial available for you to try the full-featured product for 90-days. You can read further about the new features in version 8.8 . Download IBM ILOG JViews Enterprise, a set of tools, components and APIs for building the advanced graphical displays needed by business-critical applications. The product is designed for software developers working in Java and deploying to the desktop or Ajax-enhanced browser.
Last month, Dan Jeffrey, one of our Senior Visualization consultants, joined forces with Irv Lustig, one of our Optimization gurus, to present a case for how Visualization displays are essential for making better Optimization (aka "Operations Research", or just "O.R.") decisions. (If you're not familiar with O.R., have a look at the ILOG Optimization product website .) This presentation is essentially geared to people already familiar with O.R., explaining how they can make their projects more successful by adding displays that present their results in a meaningful way. Here's what their abstract says: One of the most common problems facing optimization applications is that key decision makers do not always understand the formulations and solutions created by O.R. professionals. Most O.R. applications offer only static interfaces with pages of tabular data. If the decision makers using your applications lack understanding of the solution, then they are unlikely to continue using it. So have a look at this 10 minute presentation, rich with plenty of real-world examples. Maybe there is something applicable to your domain... The following movie is best viewed in full screen mode: Originally presented on May 22,2008 by Dan Jeffrey and Irv Lustig.
Rob Sidhu has just published a very interesting technical article on how you can flexibly configure interactions in your JSF diagrams that you create using JViews Diagrammer 8.7. In particular, he shows how you can use the new < jv:interactorGroup> tag introduced in Diagrammer 8.7 to combine basic interactors into more complex combinations. Read Rob's article here: Interacting with JSF Diagrams in JViews Diagrammer V8.7 .
JViews Telecom Graphic Objects (TGO) defines an industry standard visual dictionary tailored to represent and manage faults and state events in telecom networks. But Operation Support Systems (OSS) applications typically need to represent telecom data in different ways depending on the target audience, such as operators, analysts, planners, etc. For most representations, JViews TGO is a perfect fit. However, JViews Diagrammer is the recommended product when data must be graphically represented in a more abstract manner, due to its simpler data model and highly customizable styling features. Unfortunately, in JViews 8.6 and earlier connecting everything to the same business data was challenging due to incompatibilities between the JViews TGO and Diagrammer data models. To address this problem, JViews TGO 8.7 includes an adaptation layer known as TGO-SDM adapter that can create read/write mappings between TGO’s Data Source and Diagrammer’s SDM model. This allows users to adapt their telecom data to be displayed by both JViews TGO and JViews Diagrammer components. There are some particularities to be observed, as the TGO business objects are based on a complex attribute model while the SDM model relies on a simplified key/value property system. This demands a customized binding between TGO attributes and SDM properties. Some bindings are direct, such as the name attribute in TGO that is directly mapped to a name property in SDM of the same type. Other bindings are more... [More]
Many types of complex business data can best be visualized as a set of
nodes and interconnecting links, more commonly called a graph or a
diagram. Examples of graphs include business organization charts,
workflow diagrams, telecom network displays, and genealogical trees. The
mathematical concept of graphs is so general that it is used as a
modeling tool in almost any domain. When we need to get a visual
understanding of the graph data, there is a need for the automatic
visualization of graphs. The purpose is to optimize the display by
obeying common rules in a given field and by maximizing the readability. Dojo Diagrammer , the new visualization component included in IBM ILOG JViews Enterprise 8.8, allows applications to display and edit graphs
(diagrams) and provides a comprehensive set of graph layout algorithms
for the automatic placement of the nodes and/or to ensure the links have
optimal shapes. For a flexible adaptation to various deployment requirements, the graph layout algorithms are available both client-side and server-side .
In the client-side case, the Dojo implementation of the algorithms runs
inside the browser. In the server-side case, a RESTfull/JAX-RS service
provided by Dojo Diagrammer executes the Java implementation of the
algorithms on the server, and the data passed between the browser and the
choose the client-side algorithms, or have a server... [More]
In a previous blog post ( Displaying attractive diagrams: quick hints for choosing a graph layout algorithm from Dojo Diagrammer ), I've provided hints about how to choose a graph layout algorithm among those available in Dojo Diagrammer. Complementary
information about how to configure the parameters of these algorithms
can be found in the following developerWorks article: The
parameters that matter most for creating interactive diagrams on mobile
devices. (Algorithm tips and performance hints for using IBM ILOG Dojo
Diagrammer) . Hope this helps! (and, if you have questions, don't hesitate to ask)
The IBM ILOG Dojo Diagrammer widget is a new visualization component included in IBM ILOG JViews Enterprise 8.8. As its name indicates, Dojo Diagrammer is a Dojo widget. If you are not familiar with Dojo, you can take a look here . Dojo Diagrammer is completely implemented in
interactions like selection, zooming, panning, and editing without any request to the server. Here are some examples of diagrams created using Dojo Diagrammer: An organization chart, where nodes represent people in the organization and links show the manager hierarchy.
A business process where nodes represent tasks or events and links represent transitions (solid lines) or messages (dotted lines). Dojo Diagrammer renders the diagram using vector graphics directly in the browser. For this, Dojo Diagrammer relies on the dojox.gfx module for its low-level rendering. GFX takes care of the final rendering using whatever 2D graphics technology the browser supports (SVG, VML, Canvas, ...). This means that you can use Dojo Diagrammer on any browser without caring of what the browser supports. Like many Dojo widgets Dojo Diagrammer can connect to a Dojo data store to load data from the server. This is roughly similar to how JViews Diagrammer loads data from a data model. The items of the data store will be represented by nodes, and there are different... [More]
As mentioned in previous blog posts (for instance Displaying attractive diagrams: quick hints for choosing a graph layout algorithm from Dojo Diagrammer ),
Dojo Diagrammer provides a comprehensive set of layout algorithms for
laying out nodes and links in graphs. In the present post I will provide
more in-depth information that may help for configuring the link layout
in a tricky case of graphs: nested graphs. Nested graphs are graphs
where nodes contain another graph, as opposed to flat graphs which do
not contain other graphs. An example of nested graph: In Dojo Diagrammer, there are several ways to get the links laid out. Link layouts can be performed by: Node
layout algorithms that also have extensive built-in link layout
capabilities: HierarchicalLayout, TreeLayout. These provide various link
styles and many configuration options. Node layout algorithms
that only support a straight link style: CircularLayout,
ForceDirectedLayout. These provide support for self-links (links
connecting a node to itself) and multi-links (several links that connect
the same pair of nodes). Specialized link layout algorithms: ShortLinkLayout and LongLinkLayout. These can be used in conjunction with a node layout. All
these algorithms can be applied to flat or nested graphs. The case of
nested graph is the trickiest, mostly because of two reasons: The
layout algorithms being applied locally to each subgraph in a
bottom-to-top traversal of the graph hierarchy,... [More]
In this article, I will take you on a tour of the filter data models that are provided with ILOG JViews Gantt. Then we will go deeper as I show how to implement a filter model that provides data drill-down capabilities. Gantt Filter Model Overview ILOG JViews Gantt provides several filtering data model implementations. All filter models act as wrappers around an underlying data model that contains the "real data". The purpose of a filter model is to provide an alternative subset or perspective on the data, while eliminating the overhead of data duplication. At the base of the hierarchy is the IlvFilterGanttModel class which is a thin wrapper class that, in fact, provides no filtering at all! All of the IlvFilterGanttModel methods simply delegate to the underlying model as their default behavior. In order to create an actual filter, it is necessary to subclass IlvFilterGanttModel and override appropriate methods to achieve the desired behavior. The IlvBasicFilterGanttModel subclass, which is built into the JViews Gantt library, does precisely this. It allows to set an arbitrary filtering function for activities and/or resources, which results in a subset view of the underlying data model. Usage of IlvBasicFilterGanttModel is illustrated in the Filtering Activities sample. ILOG JViews Gantt provides another filter model in the Sorting Activities sample as source code. This is the SortGanttModel class, which generates an alternative ordering of activities in... [More]
Text occurs in every diagramming application, for instance as labels on nodes and links. In JViews, you have the choice between IlvZoomableLabel and IlvText; IlvZoomableLabel is more a text picture that allows fancy gradient paints inside the glyphs while the solid colored IlvText is usually faster and allows more traditional text manipulations (wrapping mode and so on). Both classes provide plenty of features that allow to adapt them to all possible situations. Plenty of features ... sigh! Features cost memory and performance. Each text parameter that can be customized needs to be stored in the text object, and if you have many features, you also have many parameters. Indeed, IlvText for instance uses quite a bit of memory, and if you have 100000 text objects, you can run into memory problems ... that are avoidable. Reducing the number of parameters What if we don't need all these customizable parameters? Let's assume all text objects in our application display a single line each, and the only variable parameters are the color of the text and of the background rectangle, and of course the label and position of the text object. Then we need to store 2 colors, a string and a position in the text object, but not parameters such as antialiasing, font, wrapping mode, margins and so on, because these can be hard coded and are fixed for all text objects. This is the essential idea of a lightweight text: use only memory for parameters that are customizable, and avoid memory for... [More]
Information Management has just published the "IBM® Data Management Geobrowser for DB2® and Informix® 1.0" application. This application is a modified version of the JViews Maps 8.7 Map Builder. It allows you to easily select a table from a list of spatial tables in the database, display the geometries in the style you prefer (color, line width, label font) and save a map document which can be used later to reload the map. You can zoom in/out on the map, loading the information from the database when needed, and see the attributes of a selected object. Please note that the Geobrowser is provided "as-is" without formal IBM support.
It is available as a free download via the IBM Spatial web site http://www-01.ibm.com/software/data/spatial/ . See the readme.html file for more information.
Many acclaim Google Maps TM as one of the best online mapping tools as it is intuitive and well designed. It provides aerial photos in impressive detail for many areas and street level information for all major metropolitan areas. The license terms are probably too restrictive for most commercial applications, but many people that have a compatible business model would like to make use of its advanced online capabilities to display geo-referenced content. Now, how can I use this nice tool with my J2EE server which serves dynamic content ? Google map overlays Google Maps provides an extensive and performant AJAX based java script library. Most interestingly for us, this library provides a few techniques to overlay custom content on top of the regular street maps or satellite imagery . Markers, Lines and Areas: You can create - on the fly - points on the map using markers (sometimes with a custom icon). You can also add lines and areas that will be displayed using polylines or polygons. Tile Overlays: The API contains a mechanism to use a grid of images which reside (or are generated dynamically) on a server, based on a simple URL syntax. That mechanism can be overridden to produce specific requests that a custom server can understand. Custom Overlays: They can be used if you need even more control, at the DOM level on what HTML elements should be created. Ground Overlays: These are rectangular areas that can be used to... [More]