javax.swing.text
Class ComponentView

java.lang.Object
  extended by javax.swing.text.View
      extended by javax.swing.text.ComponentView
All Implemented Interfaces:
SwingConstants
Direct Known Subclasses:
FormView, ObjectView

public class ComponentView
extends View

A View implementation that is able to render arbitrary Components. This uses the attribute StyleConstants.ComponentAttribute to determine the Component that should be rendered. This Component becomes a direct child of the JTextComponent that contains this ComponentView, so this view must not be shared between multiple JTextComponents.


Field Summary
 
Fields inherited from class javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Constructor Summary
ComponentView(Element elem)
          Creates a new instance of ComponentView for the specified Element.
 
Method Summary
protected  Component createComponent()
          Creates the Component that this View is rendering.
 float getAlignment(int axis)
          Returns the alignment of this View along the specified axis.
 Component getComponent()
          Returns the Component that is rendered by this ComponentView.
 float getMaximumSpan(int axis)
          Returns the maximum span of this View along the specified axis.
 float getMinimumSpan(int axis)
          Returns the minimum span along the specified axis.
 float getPreferredSpan(int axis)
          Returns the preferred span along the specified axis.
 Shape modelToView(int pos, Shape a, Position.Bias b)
          Maps a position in the document into the coordinate space of the View.
 void paint(Graphics g, Shape a)
          The real painting behavour is performed by normal component painting, triggered by the text component that hosts this view.
 void setParent(View p)
          This sets up the component when the view is added to its parent, or cleans up the view when it is removed from its parent.
 int viewToModel(float x, float y, Shape a, Position.Bias[] b)
          Maps coordinates from the View's space into a position in the document model.
 
Methods inherited from class javax.swing.text.View
append, breakView, changedUpdate, createFragment, dump, forwardUpdate, forwardUpdateToView, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, setSize, updateChildren, updateLayout, 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 instance of ComponentView for the specified Element.

Parameters:
elem - the element that this View is rendering
Method Detail

createComponent

protected Component createComponent()
Creates the Component that this View is rendering. The Component is determined using the StyleConstants.ComponentAttribute of the associated Element.

Returns:
the component that is rendered

getAlignment

public float getAlignment(int axis)
Returns the alignment of this View along the specified axis.

Overrides:
getAlignment in class View
Parameters:
axis - either View.X_AXIS or View.Y_AXIS
Returns:
the alignment of this View along the specified axis

getComponent

public final Component getComponent()
Returns the Component that is rendered by this ComponentView.

Returns:
the Component that is rendered by this ComponentView

getMaximumSpan

public float getMaximumSpan(int axis)
Returns the maximum span of this View along the specified axis. This will return Component.getMaximumSize() for the specified axis.

Overrides:
getMaximumSpan in class View
Parameters:
axis - the axis
Returns:
the maximum span of this View along the specified axis

getMinimumSpan

public float getMinimumSpan(int axis)
Description copied from class: View
Returns the minimum span along the specified axis. The default implementation will forward to View.getPreferredSpan(int) unless View.getResizeWeight(int) returns a value > 0, in which case this returns 0.

Overrides:
getMinimumSpan in class View
Parameters:
axis - the axis
Returns:
the minimum span along the specified axis

getPreferredSpan

public float getPreferredSpan(int axis)
Description copied from class: View
Returns the preferred span along the specified axis. Normally the view is rendered with the span returned here if that is possible.

Specified by:
getPreferredSpan in class View
Parameters:
axis - the axis
Returns:
the preferred span along the specified axis

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
Description copied from class: View
Maps a position in the document into the coordinate space of the View. The output rectangle usually reflects the font height but has a width of zero.

Specified by:
modelToView in class View
Parameters:
pos - the position of the character in the model
a - the area that is occupied by the view
b - either Position.Bias.Forward or Position.Bias.Backward depending on the preferred direction bias. If null this defaults to Position.Bias.Forward
Returns:
a rectangle that gives the location of the document position inside the view coordinate space
Throws:
BadLocationException - if pos is invalid

paint

public void paint(Graphics g,
                  Shape a)
The real painting behavour is performed by normal component painting, triggered by the text component that hosts this view. This method does not paint by itself. However, it sets the size of the component according to the allocation that is passed here.

Specified by:
paint in class View
Parameters:
g - the graphics context
a - the allocation of the child

setParent

public void setParent(View p)
This sets up the component when the view is added to its parent, or cleans up the view when it is removed from its parent. When this view is added to a parent view, the component of this view is added to the container that hosts this view. When p is null, then the view is removed from it's parent and we have to also remove the component from it's parent container.

Overrides:
setParent in class View
Parameters:
p - the parent view or null if this view is removed from it's parent

viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] b)
Maps coordinates from the View's space into a position in the document model.

Specified by:
viewToModel in class View
Parameters:
x - the x coordinate in the view space
y - the y coordinate in the view space
a - the allocation of this View
b - the bias to use
Returns:
the position in the document that corresponds to the screen coordinates x, y