com.bbn.openmap.tools.beanbox
Class BeanBox

java.lang.Object
  extended by com.bbn.openmap.tools.beanbox.BeanBox
Direct Known Subclasses:
SimpleBeanBox

public abstract class BeanBox
extends java.lang.Object

The BeanBox class manages a set of java beans that are delivered to it from the BeanPanelvia the BeanBoxDnDCatcher. An implementation of this abstract class is expected to be associated with an openmap layer. The abstract BeanBox class performs functions such as adding and removing beans from the associated openmap layer and provides support for moving beans on the layer and cut/copy/paste functionality.

Layer developers wishing to make use of the BeanBox's bean management capabilities should:

An implementation of this class should provide layer specific versions of at least the following abstract base class methods:

Additionally, an implementation of this class can optionally provide layer specific versions of the following base class methods:


Constructor Summary
BeanBox()
          Default constructor initializes the BeanBox.
 
Method Summary
abstract  void addBean(java.lang.Object bean)
          This method is called when a bean is dropped on the layer associated with this BeanBox.
abstract  void beanChanged(java.lang.Object bean, java.lang.String changedPropertyName)
          This method is called by a propertysheet whenever a bean property changes.
abstract  boolean containsBean(java.lang.Object bean)
          This method is intended to check whether this BeanBox knows about the specified bean.
protected  void createPropertySheet(java.lang.Object bean)
          Utility method to create and display a property sheet to show the specified bean's properties.
protected  void doSpecialHandling(java.lang.Object bean)
          Checks if the specified bean should be added to a BeanContainer.
abstract  BeanContainer findEnclosingContainer(java.lang.Object bean)
          Returns a bean contained in the layer that implements the BeanContainer interface and which contains the specified bean.
abstract  java.lang.Object getBeanAtLocation(java.awt.Point pointOnMap)
          Returns a bean contained in the layer at the specified map location.
 java.beans.BeanInfo getBeanInfoForBean(java.lang.String beanClassName)
          Utility method to obtain the BeanInfo object associated with a bean class that the BeanBox knows about.
protected  java.awt.Image getDragImage(java.lang.Object bean)
          Returns the image that the cursor will be set to when the specified bean is dragged over the map.
protected  void prepareForAddition(java.lang.Object bean, java.beans.BeanInfo beanInfo, java.awt.Point location)
          This method is called to prepare the bean for addition to the beanbox.
abstract  void relocateBean(java.lang.Object bean, java.beans.BeanInfo beanInfo, java.awt.Point newLocation)
          This method is called when a bean is moved from its present location to the newlocation within the layer associated with this BeanBox.
abstract  void removeBean(java.lang.Object bean)
          This method is called when a bean is moved from the layer associated with this BeanBox to another layer.
abstract  void setBeanProperties(java.lang.Object bean, java.beans.BeanInfo beanInfo, java.awt.Point location)
          This method is called when a bean is dropped on the layer associated with this BeanBox.
 void showCut(java.lang.Object bean)
          This method is called when the user 'cuts' a bean, usually as a a result of the clicking on it in a layer and then pressing Ctrl-X.
 void showSelected(java.lang.Object bean)
          This method is called when the user selects a bean, usually as a a result of the clicking on it in a layer.
 void showUnCut(java.lang.Object bean)
          This method is called when the user cancels a 'cut' operation, usually as a a result of pressing the ESC key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BeanBox

public BeanBox()
Default constructor initializes the BeanBox.

Method Detail

getBeanInfoForBean

public java.beans.BeanInfo getBeanInfoForBean(java.lang.String beanClassName)
Utility method to obtain the BeanInfo object associated with a bean class that the BeanBox knows about. Returns a null if none found.


prepareForAddition

protected void prepareForAddition(java.lang.Object bean,
                                  java.beans.BeanInfo beanInfo,
                                  java.awt.Point location)
This method is called to prepare the bean for addition to the beanbox. In the base class implementation, this method calls the abstract setBeanProperties method. It then displays the property sheet for the bean, thereby giving the user a chance to edit the bean's properties before the bean is added to the beanbox.


createPropertySheet

protected void createPropertySheet(java.lang.Object bean)
                            throws java.lang.Exception
Utility method to create and display a property sheet to show the specified bean's properties.

Throws:
java.lang.Exception

doSpecialHandling

protected void doSpecialHandling(java.lang.Object bean)
Checks if the specified bean should be added to a BeanContainer.


getDragImage

protected java.awt.Image getDragImage(java.lang.Object bean)
Returns the image that the cursor will be set to when the specified bean is dragged over the map. Default implementation returns the image contained in the BeanInfo for the bean, or the default BeanPanel image if no image is found in the BeanInfo.


showSelected

public void showSelected(java.lang.Object bean)
This method is called when the user selects a bean, usually as a a result of the clicking on it in a layer. An implementation of this class can override this method to highlight the selected bean using a mechanism specific to the openmap layer associated with that BeanBox. Base class method does nothing.


showCut

public void showCut(java.lang.Object bean)
This method is called when the user 'cuts' a bean, usually as a a result of the clicking on it in a layer and then pressing Ctrl-X. An implementation of this class can override this method to highlight the selected bean using a mechanism specific to the openmap layer associated with that BeanBox. Base class method does nothing.


showUnCut

public void showUnCut(java.lang.Object bean)
This method is called when the user cancels a 'cut' operation, usually as a a result of pressing the ESC key. An implementation of this class can override this method to remove any highlights on the bean marked for cutting. Base class method does nothing.


addBean

public abstract void addBean(java.lang.Object bean)
This method is called when a bean is dropped on the layer associated with this BeanBox.


removeBean

public abstract void removeBean(java.lang.Object bean)
This method is called when a bean is moved from the layer associated with this BeanBox to another layer.


containsBean

public abstract boolean containsBean(java.lang.Object bean)
This method is intended to check whether this BeanBox knows about the specified bean.


setBeanProperties

public abstract void setBeanProperties(java.lang.Object bean,
                                       java.beans.BeanInfo beanInfo,
                                       java.awt.Point location)
This method is called when a bean is dropped on the layer associated with this BeanBox. This method gives a chance to set the dropped bean's properties based on the information in its BeanInfo and the drop location. The called to addBean follows this call in the drop sequence.


getBeanAtLocation

public abstract java.lang.Object getBeanAtLocation(java.awt.Point pointOnMap)
Returns a bean contained in the layer at the specified map location.

Returns:
a bean Object or null if no bean is found at the location.

findEnclosingContainer

public abstract BeanContainer findEnclosingContainer(java.lang.Object bean)
Returns a bean contained in the layer that implements the BeanContainer interface and which contains the specified bean.

Returns:
a BeanContainer object or null if no such container bean is found.

relocateBean

public abstract void relocateBean(java.lang.Object bean,
                                  java.beans.BeanInfo beanInfo,
                                  java.awt.Point newLocation)
This method is called when a bean is moved from its present location to the newlocation within the layer associated with this BeanBox.


beanChanged

public abstract void beanChanged(java.lang.Object bean,
                                 java.lang.String changedPropertyName)
This method is called by a propertysheet whenever a bean property changes. It is intended to provide a place for the layer developer to update the layer if required.



Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details