Class TypedDecorator

  • All Implemented Interfaces:
    CanvasComponent, Figure, FigureContainer, FigureSet, VisibleComponent, UserObjectContainer

    public class TypedDecorator
    extends FigureDecorator
    A FigureDecorator implementation which simply acts as a set of prototypes which can be instantiated according to the type of object the decorator is applied to. Instances of this class will throw an exception if they are actually placed into a figure hierarchy. They can, however, be passed to methods that expect a decorator instance that is to be used as a prototype for other instances.
    Version:
    $Id$
    Author:
    John Reekie, Michael Shilman
    Pt.AcceptedRating:
    Red
    • Constructor Detail

      • TypedDecorator

        public TypedDecorator()
        A typed decorator that uses a BasicHighlighter as its default.
      • TypedDecorator

        public TypedDecorator​(FigureDecorator defaultDecorator)
        A typed decorator with the given decorator as its default.
    • Method Detail

      • addDecorator

        public void addDecorator​(java.lang.Class c,
                                 FigureDecorator d)
        Add a decorator which is duplicated when an object of the given class is passed to the newInstance() method.
      • newInstance

        public FigureDecorator newInstance​(Figure f)
        Return a new decorator, according to the type of the figure.
        Specified by:
        newInstance in class FigureDecorator
        Parameters:
        f - The figure
        Returns:
        The new instance of the figure decorator.
      • removeDecorator

        public void removeDecorator​(java.lang.Class c)
        Remove a decorator.
      • setParent

        public void setParent​(CanvasComponent fc)
        Throw an exception. The exception is thrown to ensure that instances of this class are not inserted into the figure hierarchy. This is a bit clumsy, as this object is really a factory masquerading as a figure.
        Specified by:
        setParent in interface Figure
        Overrides:
        setParent in class AbstractFigure
        Parameters:
        fc - The parent of the figure.
        See Also:
        Figure.getParent()