Change Log

Changes to the VI software since version 0.1.

Version 1.0.1 (2008-12-14)

Summary

Removed sensitive information and added a license.

Detailed change log

  • Removed sensitive information.
  • Added a license.

Version 1.0 (2008-12-11)

Summary

Updates to the documentation and help functionality of the software. Bug fixes.

Detailed change log

  • The help menu now links directly to the documentation.
  • Added the full API documentation and User Manual.
  • Cleaned up the code and javadoc.
  • Brushing bug fixed.
  • Some minor bug fixes.

Version 1.0 Release Candidate 1 (2008-12-03)

Summary

A "subset" is as you might have guessed a subset of the full topology specified by the topology file. Rendering can be limited to one such subset. The GUI has several enhancements to facilitate the use of subsets. Several enhancements have been made to the renderer. Bug fixes and an overall cleanup of the code (The final cleaned up source and documentation will be supplied for the Release version of the software).

Detailed change log

  • It is now possible to create a "subset" from selected nodes. One subset can be created for each view. This functionality is view specific, and is thus located in the pop-up-menu. You can create one subset for each active view.
  • It is possible to limit rendering to a subset of nodes. Only the nodes which are part of the subset will be considered in the rendering process. Message parsing and encoding is not affected by this.
  • Labels can now be toggled on or off. This makes it easier to see which nodes you have selected for a subset. When labels are turned off, the nodes are colored red to mark which nodes are selected.
  • Save files now include the current subset and the new node shading settings. Save files now also save some GUI-related state data. These changes to the Saving/Loading interface unfortunately make it impossible to load a save file from a previous build.
  • Fixed some GUI-related bugs such as inconsistent behaviour in the view settings pane.
  • New views are now loaded with better default values if the data sets are properly configured in the xml-file.
  • It is now possible to limit rendering by a factor of ten in a specified view. This saves resources but makes navigation choppier. This feature is intended for views which are meant to be kept static.
  • The various timer threads have been restructured and simplified.
  • Tweaks to the layout of the GUI.
  • Bars now scale based on the zoom distance. If the ranges are properly specified in the xml-file the bars should always take up an optimal amount of screen real estate on a 1600x1200 pixel monitor. Note that these ranges are only a "hint" to the renderer. It may be usefull to set these to larger or smaller values to make your specific data render optimally.
  • Brushing (highlight) markers also scale to the zoom distance.
  • Brushing markers now work for multidimensional data.
  • Tweaks to some of the various types of multi-dimensional bars.
  • All MySQL related code has been removed. The list of software/libraries required to run the VI has consequently been updated.
  • Added a setting for specifying the socket input buffer size in the xml-file. It may be neccesary to increase the size of this buffer if the server is sending many messages. If the value specified here is less than the default value of the socket input buffer size the buffer size is not modified.
  • Setting the data set of a node to "null" (a special, empty, data set specified in the xml-file) allows the renderer to do some optimizations.
  • You may now specify a default color for nodes which are set to use the null data set. This color is set in the xml-file. Note that since red is used for selected nodes this color should be avoided.
  • Another way to distinguish nodes is by level. With level shading turned on the nodes color is detemined by their base color and an added shading modifier which depends on their level.
  • The resizing algorithms for the nodes have gotten an overhaul.
  • Added a new mode of navigation. Tilting (with the Q and A keys) makes it easier to view the bars in the globe view.
  • An optional fog was added which obscures the view of distant objects and adds to the illusion of 3D.
  • Replaced the placeholder textures and graphics with the once intended for the release version.
  • Added a secondary optional lightsource.
  • Cleaned up the shading, lighting and texturing calls in the Renderer class.
  • Lines can now be smoothly shaded.
  • Rendering-specific features can be toggled on or off in a a new settings menu.
  • The default behaviour of many of the new rendering specific features can be set in the xml-file.
  • Added some keyboard shortcuts.
    • Q Press and hold to tilt the view up in the globe view.
    • A Press and hold to tilt the view down in the globe view.
    • F Toggle between fixed and infinite panning (makes the globe spin).
    • 0-9 Toggle between the various bar-modalities as explained in the change log for v 0.5.

Version 0.8 (2008-11-18)

Summary

You can now save the view settings and reload them later. This functionality is accessed form the view pop-up menu.

Detailed change log

  • It is now possible to save your view configuration. This saves the following settings:
    • Node/Bar/Label/Relations data
    • Label positions
    • Label/Node/Bar/Link/Texture/Marker/Title visibility
    Save files store the settings for one view only so you need to save and load each view separately. The orientation (wheter the view was in globe or plane view) as well as the look-at-position and zoom of the view is not stored in the save file. The save also does not store any information about how the views have been split. Note that a save file is tied to a specific set of data sets and topology and loading a save file from a different environment will have undefined results. Also, it is probable that future versions may not be able to support save files from earlier versions.
  • Restructured the menus and added new save/load dialogs.
  • TIC: The KeepAlive class was added to the project. KeepAlive periodically sends a message to the master system to let it know that the VI is up and running and ready to recieve messages from the master system. When the master system stops recieving messages, it will stop sending data. This was added in order to cut out excess traffic on the network.
  • TIC: Additions to the xml interface: <KeepAliveHost>localhost</KeepAliveHost> <KeepAlivePort>8702</KeepAlivePort>
  • Added another example topology file. This one is based on 16 C-routers. It is located in the /vi/TopologyTool/ folder.
  • Zooming with the scroll wheel is now reversed, as requested by the users.

Version 0.7 (2008-11-10)

Summary

The VI now reads the topology information from a file. A tool was added for creating a topology for the TIC project.

Detailed change log

  • The network topology is no longer hardcoded into the VI. It is instead fetched from a file which contains information about the nodes locations and the relations between the nodes.
  • The XML interface was modified to allow the user to point the VI to a topology save file of his choise. Path is relative to the VI root directory.
  • TIC: Added a tool for easily creating and modyfying TIC-specific network topologies. This tool is found in the folder named TopologyTool which is located right under the VI root directory. To run the tool you need to be standing in this directory and type:
      java TopologyTool
    This will bring up the help text which will guide you further. By default the tool saves the topology in a file called topology.save. Since the tool does not ask permission to do destructive modifications to your save file it is recommended that you back up your save file regularly.
  • TIC: A switch node was added to the topology. Note that the switch node was added in between the A-router and the xnode/ynode/znode nodes. This means that the ID used in the XML-file for xnodemanagers and ynodegenerators are incremented by one. This change has been accounted for in the new default XML-file.
  • The VI comes bundled with two example topology files. One with 4 C-routers and one with 6 C-routers. These are located in the /vi/TopologyTool/ folder.

Version 0.6 (2008-10-13)

Summary

A new view setting makes it possible to map multiple data sets into the same view if these sets are mapped to node-types which do not overlap. Changes to the renderer to make it possible to map two-dimensional data to relations. Preparations for integrating Victors router statistics. Several bug fixes.

Detailed change log

  • Changes to the GUI (View settings) to give the user the option to map multiple data sets into the same view. As described in the changenotes for version 0.4, the node type can be specified in the xml-interface. The gui will use this as a "hint" to create the appropriate options for each set of data and node type.
  • Changes to the view panel and renderer logic to allow multiple data sets to be tied to the same view panel object.
  • Changes to the renderer to make it possible to map two-dimensional data to relations. First dimension is mapped to color and the second dimension is mapped to the width of the line.
  • All anti aliasing as well as all transparency settings are now disabled. Tests using blending and alpha channels show that there are problems with the default orientation of normal vectors for all primitives (nodes, bars, globe). Polygon seams (even for line strips) are visible when using blending. It would take a lot of time to find a solution to this issue. Anti-aliasing can still be achieved by using multisampling techniques, but on the expense of performance. Transparency can not be achieved with a simple fix since it requires blending.
  • Changes to the parser to prepare for data mapped to links (relations) by the node host names.
  • Changes to the xml-interface to allow mapping 2-dimensional data to relations.
  • Added Victors interface data for router statistics to the default xml-file.
  • Fixed some layout problems in the labels. The histograms and their associated labels should now scale respectfully to data of up to 8 dimensions (theoretically it scales past that point as well all the way to infinity but infinitely thin bars and text is kinda hard to read...). A "shadow" makes the white text easier to read on light backgrounds.
  • Fixed several bugs in the histogram plotting function in the renderer. Histograms and their associated labels are now plotted in the same order as they are in the messages sent by the Master System.
  • Fixed a bug in the Pickable interface where picking would not work for objects with id larger than 127. The new limit is 2 million pickable objects.
  • The main window (JFrame) now maximizes itself by default to fill the screen on platforms that support it when the application is started. Resizing the window still yields unnexpected results.

Version 0.5 (2008-10-01)

Summary

Bars and histograms can now handle data with more than "one" dimension. Bars can now be plotted in a few different ways.

Detailed change log

  • Changes to the renderer to create several different types of cumulative bars which use 2 or more dimensions supplied by the data sets.
  • Histograms can now handle more than one dimension.
  • There are now two versions of histograms, shaded and unshaded. The shaded once are currently tied to the bar types which also use shading (bar types 7 and 9).
  • Added an option to the xml-interface for choosing the bar type. <DefaultBarType>0</DefaultBarType>Input is an integer value between 0 and 9 as specified below:
    1. The default bar type. Can only handle one dimension. Any one dimensional data will default to this type. Ignores higher dimensions.
    2. Similar to the default type, but adds a line segment which is the sum of dim_1 and dim_2. The line segment is centered in the bar. Ignores dim_3 and higher.
    3. Similar to the default type, but adds a second bar which is the sum of dim_1 and dim_2. The second bar is centered inside the default bar. Ignores dim_3 and higher.
    4. This type is a variation on type 2. The following dim_1 value is shifted up by dim_2 amount. Ignores dim_3 and higher.
    5. This is a variation on type 3. The inner bar representing the total is shifted to the side. Ignores dim_3 and higher.
    6. The bar shows the aggregated value: dim_1/(dim_1 + dim_2). Ignores dim_3 and higher.
    7. Shows all dimensions stacked on top of each other. Small gaps separate each segment.
    8. Similar to type 6 but this one uses shading on dim_2 and higher (the amount of shading is calculated from the number of dims). Has no gaps. With this bar type the histograms on the labels are also shaded. Brushed categories are also shaded.
    9. In two dimensions this is basically a combination of types 2 and 6 and with no gaps in between. With more dims the width of each segment is calculated by the number of dims.
    10. The same as type 8 but with shading. With this bar type the histograms on the labels are also shaded. Brushed categories are also shaded.
  • Histograms now have primitive text labels.

Version 0.4 (2008-09-29)

Summary

Data can now "time-out". Labels can now be repositioned by the user. Added some keyboard shortcuts. Changes to the datastructures to handle the mapping of data by node type. Changes to the XML-interface.

Detailed change log

  • Added some keyboard shortcuts.
    • PageUp Zoom in.
    • PageDown Zoom out.
    • Arrow keys Pan/tilt.
    • Shift Clicking and dragging (or by using the arrow keys) while holding down the Shift-key activates the move tool with which you can move labels to new positions. Note that this behaviour is still quite buggy and unpredictable and only works acceptably in the 2D-map view and when using shift + arrow keys. Also note that the label must be selected for it to be able to move. You select a label by clicking on it (a selected label will have a yellow border).
    • P Prints server messages. Equivalent to typing "toggle printServerMessages" in the console.
  • Labels now display the hostname of the node instead of the internal node id.
  • Created a Label-object which can handle labels in a more sophisticated manner than the previous label-function in the renderer. GraphNode data structure now has a Label associated with it.
  • Repositioned the labels in the z-direction (for default positions on the 2d-map view) so that they will not appear inside each other if they happen to overlap. Note that they will still overlap but you can now freely reposition the labels (see above).
  • A new thread TimeOutTimer is introduced to "garbage collect" data (to reset values) which has not been updated for timeout time.
  • World Timer now creates a timestamp which is used by the parser to stamp the data and by the new TimeOutTimer to determine if the value has timed out.
  • Changes to the datastructures to store date stamps for keeping track of the time-out time.
  • Changes to the datastructures and underlying logic used for controlling different types of data to allow mappping data by node type.
  • Changes to the xml-interface to allow users to set a timeout and a global default value.
  • Changes to the xml-interface to allow users to map data by node type. If a node type is specified like this: <NodeTypes> ... <NodeType> <ID>3</ID> <Name>xnode Manager</Name> <Level>2</Level> </NodeType> ... </NodeTypes> ... <DataSet> <ID>1</ID> <Name>Number of movies xnoded</Name> ... <NodeType>3</NodeType> ... </DataSet> ...the data stream specified by DataSet with id 1, will be assumed to only map to nodes of this type (type id 3). Note that the data is allowed by design to write to other nodes as well and no checking occurs wheter this happens or not! The setting is a hint for the GUI so that the appropriate panels can be created for controlling which data is shown in the View. By setting node type to zero you map the data to all nodes. Level specifies what level in the topological hierarchy the nodes of this type are located at. Level is used to determine how the node is presented in the GUI.
  • Some minor tweaks to the layout (GUI).
  • TIC: Changed the host names "znode" to "znode" in the topology.

Version 0.3 (2008-09-23)

Summary

Changes to the viewPanel and Renderer classes to handle different types of nodes. Changes to the XML-interface.

Detailed change log

  • Added an option in the GUI to display nodes by type (in the right-click menu). If the node would display a bar it too is hidden with this option. Links/relations leading to these nodes are also hidden if the node is hidden.
  • Modified the Renderer to draw bars, nodes and relations by node-type.
  • Extended the XML interface with category item settings.
  • TIC: Created a default category list in the XML-file according to the specification.

Version 0.2 (2008-09-14)

Summary

Extended the underlying logic and data structures to handle multidimensional data and to accomodate for the changes required by the TIC project. Some changes in the OpenGL/GUI parts of the software to prepare for more TIC specific changes. API documentation has been updated but is still a WIP.

Detailed change log

  • Changed the name of the root directory to "vi" (previously "dev"). This means all PATH and CLASSPATH environment variables need to be updated if you had a previous version installed and you had placed the binaries for the jogl and jdbc drivers inside the dev folder.
  • Extended the XML interface to accomodate multidimensional data.
  • Extended the XML interface to read the settings required for initializing the system.
  • Removed the startup dialog. Rationale: the dialog was more of an annoyance than anything else. Most of the time you would just click Default+Ok and if you would ever want to use non-default values you would be better off setting the default values in the code instead. Now the values are conveniently set in the XML interface.
  • Changes to the datastructures to handle multidimensional data.
  • Changes to the parser to handle multidimensional data.
  • Changes to the parser to handle categories by category name rather than id.
  • Changes to the Category and CategoryItem classes to handle a missmatching category name and parse string id. (Hardcoded a table for mapping "Blue" to ID to "Action")
  • Extended the GraphNode data structure to handle nodes of different types.
  • Renderer now scales node size based on zoom distance.
  • Renderer now scales node size based on "type level".
  • A temporary (dirty) fix to the renderer to function with the new data structures (ignoring dimensions 2 and up).
  • Changes to the ViewPanel (parent GUI component of the OpenGL renderer) to prepare for future changes to the GUI for manipulating nodes of various types.
  • TIC: InitSequence now generates a default topology which uses TIC specific names and TIC specific structuring of the nodes and their relations. This function does not write anything to the database, instead it creates the data structures directly. Placement of the nodes is hardcoded and their locations are deliberately chosen not to be tied to the real geography. A "full mesh" is assumed between C-routers. No routers are assumed to exist between the A-router and the ynodeGen/xnodeMgr/znode nodes.
  • TIC: The nodes in the default topology are placed on the world map on arbitrarily chosen locations. Only up to 15 sites (15 A-routers and 5 C-routers) are supported right now.
  • TIC: Deliverable comes with an XML file ready for testing.
  • TIC: Created a test server for testing the interface independently of the real Master System (TIC). To start the server type:
      java com.ericsson.tic.vi.pseudo.TICTest C
    where C is the number of C-routers. C = 1, 2, 3, 4, 5. Remember to configure the VI (in the XML) to create a topology with the same number of C-routers.

Version 0.1 (2008-09-11)

An optimized and cleaned up version of prototype 5.