JavaTM 2 Platform
Standard Edition

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.
Overrides:
paint in class View
Parameters:
g - the graphics context
a - the shape
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.
Overrides:
getPreferredSpan in class View
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis

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.
Overrides:
getMinimumSpan in class View
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis

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.
Overrides:
getMaximumSpan in class View
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS
Throws:
IllegalArgumentException - for an invalid axis

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.
Overrides:
getAlignment in class View
Parameters:
axis - may be either View.X_AXIS or View.Y_AXIS

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).

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

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).

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

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.
Overrides:
modelToView in class 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
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.
Overrides:
viewToModel in class View
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
See Also:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

JavaTM 2 Platform
Standard Edition

Submit a bug or feature
Java, Java 2D, and JDBC are a trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.