IBM ILOG Elixir® Enterprise extends the Adobe® Flex® and Adobe AIR™ platforms by adding user interface controls for more intuitive, interactive displays. ILOG Elixir Enterprise provides a full spectrum of advanced graphical displays for the most demanding line-of-business applications.
New graph layout algorithm: Circular layout
Circular Layout is designed for graphs representing interconnected ring and/or star network topologies, as in the following example:
Improved layout of nested graphs thanks to a new mode of Hierarchical Layout
In the previous release, it was necessary to use a combination of "node layout" and "link layout" in
order to lay out a nested graph including intergraph links (links that connect nodes from different subgraphs).
In Elixir 3.5, Hierarchical layout has been improved with a recursive mode such that it can handle by itself an
entire nested graph. This simplifies user's task for configuring the layout: no link layout is needed anymore.
Moreover, it improves the quality of the layout, because instead of optimizing the layout locally for each
individual subgraph the algorithm now performs a global optimization taking into account the entire nested
hierarchy. The quality improvement consists in a reduced number of link crossings and a more regular layout
of the links. The following screenshots illustrate this benefit by comparing the result for the same nested
graph with, and without this new feature:
Nested graph laid out by Hierarchical Layout in recursive mode (new in Elixir Enterprise 3.5)
Same nested graph laid out by Hierarchical Layout in non-recursive mode (old mode in Elixir Enterprise 3.0)
The new recursive mode is enabled by default. If necessary, it can be disabled by setting Hier
Improved self-link and multi-link layout
A new link layout algorithm has been added: Basi
Multi-links and self-links laid out laid out by the new Basi
Other new features
The Elixir team hopes you will enjoy these new features! As usually, feel free to ask any questions.
Comments (2) Visits (8194)
In IBM ILOG Elixir 3.5, we had the opportunity to re-write the calendar as spark component. The component is compatible with Flex SDK 4.5.x.
The keyword for this component is "flexibility", you will understand why in the next sections.
Here is an non exhaustive list of new or improved features:
First of all, the calendar is a real spark component which means that you can customize any pixel of the component.
At the contrary of the previous version which was a sort of black box, you have access to the internals of the calendar, its sub components, how they are placed, how they are rendered etc.
By accessing the Calendar skins you can:
Here are three different skins applied on the same component instance.
The default skin (click on image to enlarge it)
The spark calendar provides sub components (row header, column header, grid, data groups, layouts etc.) and base classes and building bricks to create your own skins.
Multiple calendar display in column view
In the previous versions, the color of the item renderers was used to differentiate two items that are belonging two different calendar.
In addition to colors, in order to easily compare items from two different calendars, the new component can, for each column representing a day, display a sub column per calendar.
When time is selected in sub columns, you can easily determine the associated calendar, for example to create a task on the selected calendar.
Type of view and time range are not correlated
The calendar's core job is to display events in time through different views. In MX calendar, the kind of view is determined by the duration of the queried time range. This is not the case anymore, now you specifies the time range to display and the display mode: columns or grid.
For example this kind of view were not possible in previous versions:
Time range definition
To set the time range, you can:
Item / renderer association
Before the kind of renderer (vertical, bar, horizontal or label) was hard-coded according to event duration.
Now you can specify the kind of renderer to use for each item using a simple custom function. It is very easy and very powerful.
Here are some examples where the default behavior is overridden:
Here are some screen shots of usage of the renderer kind custom function:
The Calendar components now has the ability to filter out some days of week.
Here are some example of usage of day filtering:
Time of day filtering
Another feature often asked is the ability to choose the first and last hour displayed in the view.
In grid display mode, it only applies on horizontal renderers and not labels.
Only the 8am to 6pm part of the day is displayed: the left side of a cell is 8am and the right side is 6pm.
Minimal sizes supported
If an event is very short is may not be readable. If readability is more important for you than exact time projection on the screen, the layout is now supporting a minimal height or width.
With a minimal height, the event is visible but its end is not correctly projected so the label must include end time.
New grid display mode layout properties
In grid display mode, it is now possible to configure the layout to make the horizontal renderer to fill cells.
The horizontal renderer can now overlap each other like in columns display mode.
The definition of working and non working periods is now delegated to dedicated object.
This work calendar allows to:
As this work calendar is also used in the Gantt chart components (resource chart and task chart), it allows a seamless integration of the calendar component in an application using these two components.
New animation engine
The new architecture allows to create new animations:
The sole transition that is not animated is from one display mode to another.
Comments (6) Visits (5686)
Earlier this week we announced the release of Elixir Enterprise version 3.5. Some highlights of this new release include:
If you're interested in checking out the new version, the 90-day trial of Elixir Enterprise will be updated next with the latest enhancements.
In this newly recorded presentation Exploring choices for desktop and mobile RIA applications, learn the pros and cons of these three technologies: HTML 5 and Dojo, Adobe Flex, and Microsoft Silverlight. This recorded presentation has several demonstrations and provides insight about which technology is best for your RIA or project.
Live webcast: Exploring choices for desktop and mobile RIA applications: HTML5 (Dojo), Silverlight, and Flex
Join us on March 8 @ 12:00pm ET / 9:00am PT to hear Emmanuel Tissandie (Senior Technical Staff Member at IBM) and Christophe Jolif (Advisory Software Engineer at IBM), discuss Exploring choices for desktop and mobile RIA applications including: HTML5 (Dojo), Silverlight, and Flex.
In this one-hour webcast, we'll explore the pros and cons of each platform, looking at the features sets, development tools, and general support environment, as well as things like the popularity and viability of the platform. We will also share our tips and tricks that we've gathered from developing products that work in these various platforms and show demos throughout.
This talk is designed primarily for project developers and development leads, with a primary focus on User interface developers.
Have you registered for Impact 2011 yet? This annual conference is a great event to further build your skills. As well as learn from and talk to IBM ILOG Elixir Enterprise experts, which is always my favorite at these type of conferences. This is why I think you should attend Impact 2011:
These resources can help you prepare for the conference and show you what last year's conference was like. I hope you can make it!
I was excited to discover that IBM Redbook publications has recently released a new IBM ILOG publication draft. Written by a team of IBM ILOG JViews Enterprise and IBM ILOG Elixir Enterprise experts from around the world, this 304 page Redbook provides a step-by-step integration scenarios for both JViews and Elixir Enterprise and highlights actual real-world scenarios that you can implement and how integrate them with other IBM Software products including WebSphere REST Technology, IBM Cognos, IBM Mashup Center, WebSphere Business Monitor and Business Space, and WebSphere Dashboard Framework. But what I liked most from this book is that it provides details for both entry-level developers as well as for the experienced developer.
Redbooks are one of my favorite documentation and resource materials provided by IBM and this one does not disappoint. This book certainly does not discuss all the possible integration scenarios. It highlights the situations where you can take advantage of implementing of specific visualization components. From an Elixir perspective, this book covers the following topics:
This one-minute introductory video produced by the Redbook team provides a high-level abstract of what you will find in the book as well as the authors discussing their contributions:
You can access the current draft of IBM ILOG Visualization Integration Scenarios, available as a free for download. There are also source code and samples that accompany this book. Make sure you download the zip file to continue working on the samples provided.
A common use case of a diagram is to place a graph on a map. The nodes of the diagram are usually georeferenced, which means that their location can be specified as latitude and longitude to match a point of interest on the map. This post will describe how to use an IBM ILOG Elixir Maps as the background of an IBM ILOG Elixir Enterprise diagram.
The code shown here is derived from an IBM ILOG Elixir Enterprise diagram sample demo called mapSample which uses an image of the US as a background of a diagram. Note that the code shown here is only a part of the working application. Full sources will be found with the application via the 'view sources' menu entry. The running demo can be found here.
At this stage, we simply replace the image by a Spark map in the skin of the diagram.
Assign the map component as diagram background:
......In the main application, the skin is referenced as follow :
The diagramCreated function is here to place the nodes on the map. At initialization time, the map component is not ready to compute coordinates because the map is not fully loaded and the map data is necessary to perform coordinate conversion. We defer the node location computation by setting the xLocationFunction and yLocationFunction when the creation of the component is complete. xLocationFunction and yLocationFunction are the functions used by the diagram to get the location of a particular node. Node location is computed from the specified longitude and latitude and converted to pixel coordinate using the Map conversion functions. A small optimization is used here: when the diagram calls either for the x or y coordinate, the other coordinate is also computed and stored because the map component is computing x and y at the same time.
Computing node coordinates:
....In the component, we specified that we want to freely zoom and pan the diagram without pressing any modifier key by setting panModifierKey and the whee
And that's it.
The source files are available by right clicking in the application and selecting 'view source'.
Live demo can be run from here.
In this advanced sample we will use the Elixir Enterprise 3.0 framework in combination with asynchronous data fetching to browse through a very large online network. Instead of loading the whole network in memory before displaying the diagram as usual, we use a web API to incrementally add content to the diagram. For this sample, we will use Amazon Web Services to visualize a very large network of related musical albums.
As a simple starting point we will use the
To allow the user to specify an album to start browsing from, we include a combobox at the top. As a textual query for an album title might return multiple hits, the combo’s dropdown will show all matches to the text typed in the combo’s text field. The user can then select one item, which is then shown on screen. The
Programming data access through an interface allows us to easily swap in different dataproviders if needed. Our dataprovider implementation (
Since Amazon requires all their webrequests to be signed with a cryptographic hash, we need some extra processing to properly format a