Next: References
Up: ContextBox: A BeanBox Environment Components
Previous: Implementing Grouping and Ungrouping
The first objective is useful in understanding other software component models [24,25,19,26], while the last two are strongly related to the JavaBeans technology.
The BeanContext specification leaves a few issues open. For example, when a BeanContextChild is associated with a Component and a BeanContext with a Container, it is not clear how they should interact. The specification gives three possible models and is therefore not conclusive enough. This makes the life of a tool designer difficult.
Our ContextBox is a strict extension of the BeanBox. However, during our exhaustive use of the BeanBox, we have occasionally encountered some odd system behavior. Those which were surely caused by bugs and could not be interpreted as undocumented features, have been fixed in the ContextBox version.
Implementing the ContextBox was an interesting exercise in reusing the existing BeanBox code. Irritatingly, many of the BeanBox methods are package protected, which made it impossible to extend the existing classes without putting the new subclasses in the same package. Luckily, Java permits you at least in some cases to put the files in a different directory. As with any software program, ContextBox is far from perfect. There is always room for improvement, both in the existing features and in the new added features.
Some ideas for future enhancements are to allow the user to disconnect connected beans, to provide more complex event hookups, and to visually show connections during design time. The first enhancement would save a lot of testing time. Wrongly connected beans would not have to be erased and connected all over again. Instead, only wrong connections could be undone. The second enhancement could be very handy for more complicated tests, e.g., when the user looses track which beans are connected to where, in the middle of the connecting process. All these features are not necessarily related to the ContextBeans, but are also very important for making the BDK more powerful and thus useful.
Our adventure with the ContextBox started with
just one idea in mind, to add support for the
BeanContext interface. It was a
by-product of the our need to teach the
Extensible Runtime Containment (BeanContext) interface, and the students'
need to quickly test their advanced beans.
It ended up with much more than that: a ContextBean Development Kit
(CBDK).
Next: References
Up: ContextBox: A BeanBox Environment Components
Previous: Implementing Grouping and Ungrouping