Survey Results: Applications with JHotDraw
Aim
The aim of the survey is to identify scenarios and applications for which JHotDraw
proofs particularly useful. It should also help to get feedback about the usability,
strengths and weaknesses of the framework. Especially, areas of difficulties should give
hints about further improvements and development plans.
Location
If you have developed an application using JHotDraw as well, please fill out the
questionaire and your application will be added to this list if you want.
List of Applications
A list of applications - most of them participating in
the survey - show the varity of uses for JHotDraw.
Advantages
According to the survey, the following advantages have been mentioned:
- Excellent framework already designed.
- Great pattern design allowing different views. Connectors and links already there. All
the basics are there. I have looked at JGo, GEF and the Tom Sawyer toolkit, JHotDraw looks
cleaner than the others.
- It is completely open and allows me to do everything I want. It's always an advantage to
work with quality software, and this package surely is.
- It was very easy to get a simple application running using JHotDraw. JHotDraw
significantly simplified the creation of our graphical editor. JHotDraw is quite stable.
- Its written with Java which is a very organized language. It will advance its features
without my direct continued input and efforts. It implements a high number of the drawing
facilities I require to represent circuits and modules and connectors in 2D space.
- JHotdraw provides a visual Language. It was easy to modify for the needs of that
Project. Only a few Classes had to be modified. The documentation is very good. Here you
see the benefits of Software-Design-Patterns.
- Major simplification to create the graphical editor.
- Thanks to JHotDraw we have easily built a GUI editor to create, train and run neural
networks through a visual environment.
- Framework seems logical
Problems
According to the survey, the following problems have been identified:
- Extending DrawApplication: open method access private vars and no getters/setters
available. Naming conventions: view() instead of getView, drawing()instead of
getDrawing()... Cast to an implementation(StandardXXX) instead of an interface. (has been
changed in new files).
- I never really understood the division into subpackages. Whenever I wanted to look at a
class, I ended up searching in all subpackages sequentially, finding it half way through
statistically. Either a more intuitive grouping of the classes, or a rationale why they
were grouped that way, would be nice.
- Insufficient documentation.
- It does not contain the drag and drop abilities I require to allow for easy manipulation
of the drawings the tool will work with. The MDI functionality was not clean enough to
extend in a functional manner. I am still working to clean up the MDI implementation with
respect to the new features being added such as the undo functionality and the drag and
drop functionality. Once the MDI implementation stabilizes I will begin on the interface
for ASCAE.
- Migrations problems related to going from 5.1 version to 5.2, using the serialization
provided by JHotDraw. Lack of support for undo/redo.
- Several of our features could only be added by changing the base framework. We started
with the original version long before it was maintained on Sourceforge. In the mean time,
we have significantly diverged from the official version, which makes it difficult or even
impossible to switch back now. The documentation was ok, but it could be improved. One
major point in the architecture was that it mixes mouse coordinates, screen coordinates,
and model coordinates. This made it impossible to add the much wanted zoom functionality.
- Some difficulty in understanding some of the classes.
- lack of swing
Overall Experience
- Good package, designed very well, robust and reliable.
- Good so far. I need drag and drop and will implement ports. As long as the licence stays
as LGPL I can use it; I intend to submit back to the project any changes that I make to
the toolkit, I cannot give away any other parts of my code (the model).
- Good. Easy to get changes in. Quality, value added, changes being implemented by others.
Good discussion on issues at times. Help and advice always available.
- Great tool!
- JHotDraw is a nice framework and deserves all attention it gets. It will need a lot of
extending, before it can be used without patching the core, but since it is open source,
this is no problem. More succinctly: Without JHotDraw, we would not have even been able to
start our project. When we started using JHotDraw, it was not GPLed, which is nice,
because we had more options in setting up our license (essentially LGPL). It should be
considered to switch JHotDraw to LGPL again.
- JHotdraw is a fantastic toolkit for development of visual Programms. It is easy to use
and good documented. You get fast good results.
- One of the most sophisticated object-oriented frameworks I have ever seen. Apart from
helping me to build a good graphical editor, I learned a lot about design patterns and
coding style by using JHotDraw. I'm very happy to see that it has now been put under GPL.
- Very satisfied. It's an excellent framework, very well implemented.
- ok
Last updated 10.07.2002