Icon decorator that implements the view interface. The
entire element is used to represent the icon. This acts
as a gateway from the display-only View implementations to
interactive lightweight icons (that is, it allows icons
to be embedded into the View hierarchy. The parent of the icon
is the container that is handed out by the associated view
factory.
Method from javax.swing.text.IconView Detail: |
public float getAlignment(int axis) {
switch (axis) {
case View.Y_AXIS:
return 1;
default:
return super.getAlignment(axis);
}
}
Determines the desired alignment for this view along an
axis. This is implemented to give the alignment to the
bottom of the icon along the y axis, and the default
along the x axis. |
public float getPreferredSpan(int axis) {
switch (axis) {
case View.X_AXIS:
return c.getIconWidth();
case View.Y_AXIS:
return c.getIconHeight();
default:
throw new IllegalArgumentException("Invalid axis: " + axis);
}
}
Determines the preferred span for this view along an
axis. |
public Shape modelToView(int pos,
Shape a,
Bias b) throws BadLocationException {
int p0 = getStartOffset();
int p1 = getEndOffset();
if ((pos >= p0) && (pos < = p1)) {
Rectangle r = a.getBounds();
if (pos == p1) {
r.x += r.width;
}
r.width = 0;
return r;
}
throw new BadLocationException(pos + " not in range " + p0 + "," + p1, pos);
}
Provides a mapping from the document model coordinate space
to the coordinate space of the view mapped to it. |
public void paint(Graphics g,
Shape a) {
Rectangle alloc = a.getBounds();
c.paintIcon(getContainer(), g, alloc.x, alloc.y);
}
Paints the icon.
The real paint behavior occurs naturally from the association
that the icon has with its parent container (the same
container hosting this view), so this simply allows us to
position the icon properly relative to the view. Since
the coordinate system for the view is simply the parent
containers, positioning the child icon is easy. |
public int viewToModel(float x,
float y,
Shape a,
Bias[] bias) {
Rectangle alloc = (Rectangle) a;
if (x < alloc.x + (alloc.width / 2)) {
bias[0] = Position.Bias.Forward;
return getStartOffset();
}
bias[0] = Position.Bias.Backward;
return getEndOffset();
}
Provides a mapping from the view coordinate space to the logical
coordinate space of the model. |