javax.swing.text

Class ComponentView

Implemented Interfaces:
SwingConstants

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)
float
getPreferredSpan(int 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)
void
setParent(View p)
void
setSize(float width, float height)
int
viewToModel(float x, float y, Shape a, Position.Bias bias)
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, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getParent, getPreferredSpan, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, modelToView, paint, preferenceChanged, remove, removeAll, removeUpdate, replace, setParent, setSize, updateChildren, updateLayout, viewToModel, viewToModel

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

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 Details

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 interface 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 interface View

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


getMinimumSpan

public float getMinimumSpan(int axis)
Overrides:
getMinimumSpan in interface View


getPreferredSpan

public float getPreferredSpan(int axis)
Overrides:
getPreferredSpan in interface View


modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
            throws BadLocationException
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. Position.Bias.Backward depending on the preferred direction bias. If null this defaults to Position.Bias.Forward
Overrides:
modelToView in interface 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

Returns:
a rectangle that gives the location of the document position inside the view coordinate space

Throws:
BadLocationException - if pos is invalid
IllegalArgumentException - if b is not one of the above listed valid values


paint

public void paint(Graphics g,
                  Shape a)
Overrides:
paint in interface View


setParent

public void setParent(View p)
Overrides:
setParent in interface View


setSize

public void setSize(float width,
                    float height)
Overrides:
setSize in interface View


viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias bias)


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


ComponentView.java -- Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.