ReDash - a tree drawing application
ReDash is a free and easy to use hierarchies tree
creator
written in the Java programming language.
-Softpedia
Licence:
freeware
Runs on: Unix/Linux, Mac, Windows (and any platform supporting Java)
Download
Download and run the ReDash.jar
file. For this you only
need a Java Virtual Machine installed. Luckily at least Java on Windows allows you to launch jar files directly after downloading nowadays.
If not, and 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"
yourself.
(It used to be possible to run the the JNLP file
directly from your browser. Nowadays JWS also requires the app to be signed, and this one is not. So probably won't work.)
Background
Finished
in the beginning
of 2004 as a part of the Programming Graphical User
Interfaces
-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
send
it to you.
Features
- Add an unlimited number of nodes as children of
any node
- Renaming nodes
- Setting node and text
colors
- Nodes can be moved and resized via
drag'n'drop
- Saving and opening trees to and from
files (using Java serialization)
- Scroll bars! =D
- Works
anywhere Java does with a full-featured
GUI
- 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,
provided by
Jarkko Leponiemi.
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
keyboard
- 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
primitive level
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
siblings.
- 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
transparent
PNG image, the CS department Linux machines showed a solid background in the
task bar
return to code & design index