Java Platform 1.2

javax.swing.text
Class ComponentView

java.lang.Object
  |
  +--javax.swing.text.View
        |
        +--javax.swing.text.ComponentView
Direct Known Subclasses:
FormView, ObjectView

public class ComponentView
extends View

Component decorator that implements the view interface. The entire element is used to represent the component. This acts as a gateway from the display-only View implementations to interactive lightweight components (ie it allows components to be embedded into the View hierarchy).


Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
Constructor Summary
ComponentView(Element elem)
          Creates a new ComponentView object.
 
Method Summary
protected  Component createComponent()
          Create the component that is associated with this view.
 float getAlignment(int axis)
          Determines the desired alignment for this view along an axis.
 Component getComponent()
          Fetch the component associated with the view.
 float getMaximumSpan(int axis)
          Determines the maximum span for this view along an axis.
 float getMinimumSpan(int axis)
          Determines the minimum span for this view along an axis.
 float getPreferredSpan(int axis)
          Determines the preferred span for this view along an axis.
 Shape modelToView(int pos, Shape a, Position.Bias b)
          Provides a mapping from the coordinate space of the model to that of the view.
 void paint(Graphics g, Shape a)
          Paints a component view.
 void setParent(View p)
          Sets the parent for a child view.
 void setSize(float width, float height)
          Sets the size of the view.
 int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
          Provides a mapping from the view coordinate space to the logical coordinate space of the model.
 
Methods inherited from class javax.swing.text.View
breakView, changedUpdate, createFragment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getView, getViewCount, getViewFactory, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, removeUpdate, viewToModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComponentView

public ComponentView(Element elem)
Creates a new ComponentView object.
Parameters:
elem - the element to decorate
Method Detail

createComponent

protected Component createComponent()
Create the component that is associated with this view. This will be called when it has been determined that a new component is needed. This would result from a call to setParent or as a result of being notified that attributes have changed.

getComponent

public final Component getComponent()
Fetch the component associated with the view.

paint

public void paint(Graphics g,
                  Shape a)
Paints a component view. The real paint behavior occurs naturally from the association that the component has with its parent container (the same container hosting this view), so this simply allows us to position the component properly relative to the view. Since the coordinate system for the view is simply the parent containers, positioning the child component is easy.
Parameters:
g - the graphics context
a - the shape
Overrides:
paint in class View
See Also:
View.paint(java.awt.Graphics, java.awt.Shape)

getPreferredSpan

public float getPreferredSpan(int axis)
Determines the preferred span for this view along an axis. This is implemented to return the value returned by Component.getPreferredSize along the axis of interest.
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis
Overrides:
getPreferredSpan in class View

getMinimumSpan

public float getMinimumSpan(int axis)
Determines the minimum span for this view along an axis. This is implemented to return the value returned by Component.getMinimumSize along the axis of interest.
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis
Overrides:
getMinimumSpan in class View

getMaximumSpan

public float getMaximumSpan(int axis)
Determines the maximum span for this view along an axis. This is implemented to return the value returned by Component.getMaximumSize along the axis of interest.
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis
Overrides:
getMaximumSpan in class View

getAlignment

public float getAlignment(int axis)
Determines the desired alignment for this view along an axis. This is implemented to give the alignment of the embedded component.
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Overrides:
getAlignment in class View

setSize

public void setSize(float width,
                    float height)
Sets the size of the view. This is implemented to set the size of the component to match the size of the view.

The changing of the component size will touch the component lock, which is the one thing that is not safe from the View hierarchy. Therefore, this functionality is executed immediately if on the event thread, or is queued on the event queue if called from another thread (notification of change from an asynchronous update).

Parameters:
width - the width >= 0
height - the height >= 0
Overrides:
setSize in class View

setParent

public void setParent(View p)
Sets the parent for a child view. The parent calls this on the child to tell it who its parent is, giving the view access to things like the hosting Container. The superclass behavior is executed, followed by a call to createComponent if a component has not yet been created and the embedded components parent is set to the value returned by getContainer.

The changing of the component hierarhcy will touch the component lock, which is the one thing that is not safe from the View hierarchy. Therefore, this functionality is executed immediately if on the event thread, or is queued on the event queue if called from another thread (notification of change from an asynchronous update).

Parameters:
p - the parent
Overrides:
setParent in class View

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
Provides a mapping from the coordinate space of the model to that of the view.
Parameters:
pos - the position to convert >= 0
a - the allocated region to render into
Returns:
the bounding box of the given position is returned
Throws:
BadLocationException - if the given position does not represent a valid location in the associated document
Overrides:
modelToView in class View
See Also:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] bias)
Provides a mapping from the view coordinate space to the logical coordinate space of the model.
Parameters:
x - the X coordinate >= 0
y - the Y coordinate >= 0
a - the allocated region to render into
Returns:
the location within the model that best represents the given point in the view
Overrides:
viewToModel in class View
See Also:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

Java Platform 1.2

Submit a bug or feature Version 1.2 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.