Menu

Tree [0e5c52] master /
 History

HTTPS access


File Date Author Commit
 src 2012-03-15 Michael Duelli Michael Duelli [0e5c52] Merge branch 'master' of ssh://duelli@...
 .gitignore 2011-05-04 Michael Duelli Michael Duelli [e405b7] Update ignore file for automatic downloads
 AUTHORS 2011-04-27 Michael Duelli Michael Duelli [161ab8] Initial public release
 CHANGELOG.md 2012-01-02 Michael Duelli Michael Duelli [2fd709] Rename CHANGELOG for Markdown syntax
 COPYING 2011-04-27 Michael Duelli Michael Duelli [161ab8] Initial public release
 README.md 2012-01-02 Michael Duelli Michael Duelli [b03685] Fix for README Markdown syntax highlighting
 build.xml 2011-12-30 Michael Duelli Michael Duelli [a0a3dd] Fix missing ant adaption to Java 7

Read Me

Multi-Layer Visualization Tool (MuLaViTo)

Features

  • Multi-layer graph framework based on JUNG
    • GUI class for a paneled main window (mulavito.gui.Gui)
    • Components for viewing a multi-layer graph (mulavito.gui.components.GraphPanel)
      • (Un)Synchronized view of individual layers
      • Hide or maximize certain layers using an improved GridLayout
      • Auto-rearranging and auto-resizing of multi-layer graph
    • SelectionPanel and QuickSearchBar for searching components
      in the multi-layer graph using regular expressions (e.g. V[1-5])
  • Run any algorithm derived from mulavito.algorithms.IAlgorithm in a separate
    Java thread and show status information using ProgressBarDialog and
    an arbitrary number of AbstractAlgorithmStatus
  • FloatablePanel that can be docked/undocked as well as closed, e.g.
    • ConsolePanel to intercept stdout/stderr
    • LayerDataPanel for displaying graph degree data
  • LocatableFileChooser remembering last path with different categories
  • Scalable vector graphics (SVG) export of any layer (mulavito.utils.SVGExporter)
  • Basis for content-aware pop-up menus
  • Graph algorithms
    • Disjoint paths (mulavito.algorithms.shortestpath.disjoint)
      • Suurballe-Turjan
    • k-shortest paths (mulavito.algorithms.shortestpath.ksp)
      • Eppstein
      • Yen
  • Graph generators (mulavito.graph.generators)
    • Random
    • Fully-meshed
    • Waxman
    • Wrapper to ensure reachability
  • Basic random number stream generators for (mulavito.utils.distributions)
    • Uniform
    • Negative-exponential / Poisson
    • Deterministic
  • Resource accessor for using embedded icons of the Tango project
    or icons outside of MuLaViTo in derived projects
  • Class scanner utils (mulavito.utils.ClassScanner) for dynamic class loading
  • Basic file filter
  • Demonstrators (mulavito.samples)
  • JUnits
  • Ant-based build scripts with automatic downloads of dependencies

Requirements

Basic Structure

The Java package hierarchy of MuLaViTo is structured as follows:

  • ''AUTHORS'' -- A list of contributors to MuLaViTo and their affiliations
  • ''COPYING'' -- The license information (GPL, LGPL)
  • ''README'' -- This file
  • ''src''
    • ''img''
    • ''mulavito''
      • ''algorithms'' -- basic classes and patterns for algorithms
        • ''shortestpath'' -- disjoint and k-shortest path algorithms
      • ''graph'' -- classes for graph data structure
        • ''generators'' -- Graph generators
      • ''gui'' -- all components and control structures
      • ''samples'' -- GUI demos
      • ''utils'' -- random distributions, class scanner, and everything else
    • ''tests'' -- JUnit tests, usually not exported
  • ''libs'' -- used libraries
  • ''build.xml'' -- ANT that creates JARs for use by end user

Event Reference

Nearly all GUI class designs follow the setter/event handler pattern.
Here is a comprehensive list of events that can be listened to:

  • mulavito.gui.components.GraphPanel
    • PropertyChange "LayerStack": called before the LayerStack property changes
      with NewValue being the LayerStack to be set and OldValue the current loaded
      LayerStack
    • PropertyChange "Viewers": called when LayerViewers get added or removed.
      • after adding: NewValue is the new viewer, OldValue is null
      • before removing: NewValue is null, OldValue is the Viewer being removed.
        Classes having a property binding to a GraphPanel should listen to these events.