Written by Bryan Chadwick
Abstract
  • A reimplementation of features found in Sun Microsystems' BDK created in the context of an Eclipse plugin. The Plugin is setup as an editor of files with the extension 'ser' and allows the assembling of JavaBeans that follow Sun's JavaBean Specification and/or allow Introspection of Properties and Events through java.beans classes and descriptors. Beans can be assembled and tested with the use of Property Hookups and a pop-up runtime java.awt.Frame. Assembled components can then be serialized to a file and read back later for deployment or further editing.
  • See the first Example image for editor explanations

Download

Features
  • Seperate Bean design and runtime views
  • Property Attachments between Beans (Using BeanInfo Introspection)
  • Save/Load of assembled bean files including attachments
  • Display of BeanInfo descriptors for each loaded Bean (currently to System.out)
  • Dynamic add, remove, resize, and move for all visual components
  • Support for Bean Customizers (through BeanDescriptor.getCustomizerClass())

Examples/Screen Shots

Design Notes
  • Due to incompatabilities in Eclipse SWT and Java AWT classes, design and runtime views must be seperate
    • The Eclipse SWT widget model (where each Widget must be created with a parent) is incompatable with AWTs Container Model (where components are added to containers) makeing SWT visual components (Beans) impossible (no zero argument constructors).
  • The seperation of design and runtime opens up new possibilities and solves some of the interface limitations of the original BDK:
    1. Wrapper objects are used only in the design view which solves event propagation problems and containment issues
    2. Non visual components are only shown in the design window, opening up space in the runtime window for specific component placement
    3. Connections (properties and events) can be shown without cluttering runtime windows
    4. Bean contexts can be added with different design/runtime semantics and representations
    5. Runtime window is true-to-life for later applet loading and deployment
    6. Design specific contexts can be changed without adjusting actual beans or relying on a visual representation
    7. General Code cleanup and JavaDoc Generation

Future Improvements
  • Event Model support needs to be added (both with and without event adapters)
  • Icons would be nice in design view
    • Loading from Jar resources needs to be facilitated for BeanInfos
  • Removing beans should take care of listener removal and other attachments (within reason)
  • Visual attachments between components instead of simple wrappers for PorpertyHookups
  • Eclipse Editor interface should be more integrated
    • Seperate window for Bean List would be nice
    • Single shared editor instance should be done (also sharing the Bean List and other resources)
    • Save/Load from Workspace files should be investigated
  • Applet loader/deployment should be documented and implemented with examples
  • Compatability with BDK output files needs to be investigated
  • More robust error handling and better messages (from console to pop-up windows)

** This plugin currently has no association with the Eclipse Project
For information or comments email : chadwick@ccs.neu.edu