javax.swing.text

Class ComponentView

public class ComponentView extends View

A {@link View} implementation that is able to render arbitrary {@link Component}s. This uses the attribute {@link 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.
Constructor Summary
ComponentView(Element elem)
Creates a new instance of ComponentView for the specified Element.
Method Summary
protected ComponentcreateComponent()
Creates the Component that this View is rendering.
floatgetAlignment(int axis)
Returns the alignment of this View along the specified axis.
ComponentgetComponent()
Returns the Component that is rendered by this ComponentView.
floatgetMaximumSpan(int axis)
Returns the maximum span of this View along the specified axis.
floatgetMinimumSpan(int axis)
floatgetPreferredSpan(int axis)
ShapemodelToView(int pos, Shape a, Position.Bias b)
voidpaint(Graphics g, Shape a)
The real painting behavour is performed by normal component painting, triggered by the text component that hosts this view.
voidsetParent(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.
intviewToModel(float x, float y, Shape a, Position.Bias[] b)
Maps coordinates from the View's space into a position in the document model.

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 {@link 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.

Parameters: axis either {@link View#X_AXIS} or {@link 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 {@link Component#getMaximumSize()} for the specified axis.

Returns: the maximum span of this View along the specified axis

getMinimumSpan

public float getMinimumSpan(int axis)

getPreferredSpan

public float getPreferredSpan(int axis)

modelToView

public Shape modelToView(int pos, Shape a, Position.Bias b)

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.

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.

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.

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