ReDash - a tree drawing application
ReDash is a free and easy to use hierarchies tree
written in the Java programming language. -Softpedia
Runs on: Unix/Linux, Mac, Windows (and any platform supporting Java)
are two alternatives for launching the
- Run the the JNLP file
directly from your browser.
You'll need a JNLP implementation such as Java Web Start installed, it's
in any recent Java Runtime
Environment. Warning: Saving
trees won't work if
you run the application this way, since the JAR package
- ... or download the ReDash.jar
file. For this you only
need a Java Virtual Machine installed. If you're
running Windows you might find it handy to use
ReDash.bat to run the app, just save it in the same directory where you save the .jar file.
If you're running a *nix or something else I trust
you're capable of typing "java -jar ReDash.jar"
in the beginning
of 2004 as a part of the Programming Graphical User
-course in the
University of Tampere.
Unlikely to be further
developed by me. I was going to put the source on
display too, but it's not as well commented as it
could be. Ask me for it, and I will
it to you.
- Add an unlimited number of nodes as children of
- Renaming nodesSetting node and text
- Nodes can be moved and resized via
- Saving and opening trees to and from
files (using Java serialization)
- Scroll bars! =D
anywhere Java does with a full-featured
- Keyboard shortcuts for the most common operations
- Most constants are stored in an external
configuration file, by editing that you may be capable of
making the application act real wacky! ;)
The specifications for the application and some code, including the
algorithm for rendering the nodes,
Before building this, there was
also a prototype made
with MFC in C++. This application uses the Model View Controller design pattern.
Things that would clearly still need to be fixed
- If a user attempts to save a file overwriting another, the
application will not ask for confirmation
- The status bar only shows descriptions for drop-down menu items
while the menus are being used with a mouse, not when accessed with the
- Usability: there is no undo, and just dragging a node far enough from
the tree currently results in total destruction of the node.
- Further develop exception handling; currently on a quite
Things to yet be developed
- More direct manipulation of the nodes' properties
- ability to edit node text directly
- a color selection popup menu
- Undo/Redo capabilities
- For such a small and simple one, this application takes up a
*lot* of system resources. On my 1433MHz AMD machine with 512 MB RAM it
runs smoothly, but on the dept.
Linux machines moving nodes etc is unacceptably slow. Also, initial
memory usage of 16 MB just seems too much. This could be optimized by
using the "dirty" variable of the BinaryTree example in the course
material - making sure the locations of the nodes aren't
recalculated unless needed. Also, repainting only the areas that have
changed would probably be smart.
- Giving up using absolute units (pixels)?
- Font and font size changing
- Printing capabilities
- More efficient usage of screen real estate. In the current implementation of the drawing
algorithm a node takes up all the horizontal space required for its
- Making the application look and behave like a native application
in also other windowing systems than Windows
- "Real-time" response to window resizing - currently the response
comes when the user stops resizing
- Different image files for 16x16 and 32x32 icons - possible in
Java at all?
- Support for XML output and input
- A command to remove all the children of a selected node
- It might be smarter to read the values from the config file once
to an member variable array and access them via that from everywhere
- More methods and member variables could probably be private
- A command in the help menu to show a brief (X)HTML-formatted help
either in a default browser (not avalable in Linux =/ ) or a Dialog
showing a HTMLDocument, loaded from an external file
- Strangely enough, although the application icon is a partly
PNG image, the CS department Linux machines showed a solid background in the
return to code & design index