next up previous NU-CCS-99-04.ps [ Readme | Copyright | Tutorial | Download | Feedback ]


Next: References Up: ContextBox: A BeanBox Environment Components Previous: Implementing Grouping and Ungrouping

Conclusions and Future Work

  In this paper we had three objectives:

1.
To present a better understanding of the assembly and design time and space of component manipulation in a visual builder, and to discuss a concrete tested methodology for handling runtime containment components seamlessly.
2.
To present the new ContextBox tool, which enhances the BeanBox from Sun by adding the ability to also manipulate beans implementing the BeanContext interface.

3.
To document the design and inner working of the BeanBox environment, for the benefit of others who wish to create enhancements of their own.

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 up previous NU-CCS-99-04.ps [ Readme | Copyright | Tutorial | Download | Feedback ]


Next: References Up: ContextBox: A BeanBox Environment Components Previous: Implementing Grouping and Ungrouping

David H. Lorenz
3/17/2000