01: /*
02: * Javu WingS - Lightweight Java Component Set
03: * Copyright (c) 2005-2007 Krzysztof A. Sadlocha
04: * e-mail: ksadlocha@programics.com
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * version 2.1 of the License, or (at your option) any later version.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19: */
20:
21: package com.javujavu.javux.wings.item;
22:
23: import java.awt.Dimension;
24: import java.awt.Graphics;
25: import java.awt.Image;
26: import java.awt.Insets;
27: import java.awt.Rectangle;
28: import com.javujavu.javux.wings.Style;
29: import com.javujavu.javux.wings.WingComponent;
30:
31: /**
32: * This interface defines methods of item renderer.
33: * Item renderer is used by all WingS components to render items
34: * background with <code>{@link WingComponent#paintBackground(Graphics)}</code>
35: * <br>
36: * <b>This is one of the core WingS interfaces required by all the components</b>
37: * @see DefaultItemRenderer
38: **/
39: public interface ItemRenderer {
40: /** Returns item size for the specified style
41: * @param item item
42: * @param owner component containing the item
43: * @param style style
44: * @param context component specific context
45: * @return items size
46: */
47: Dimension getItemSize(Object item, WingComponent owner,
48: Style style, Object context);
49:
50: /** Draw the item
51: * @param g graphics
52: * @param x the x coordinate of the item to be drawn.
53: * @param y the y coordinate of the item to be drawn.
54: * @param width the width of the item to be drawn.
55: * @param height the height of the item to be drawn.
56: * @param item item to be drawn
57: * @param owner component containing the item
58: * @param style style
59: * @param margin margin
60: * @param alignment alignment
61: * @param textPosition text position LEFT, RIGHT or CENTER
62: * @param context component specific context
63: */
64: void drawItem(Graphics g, int x, int y, int width, int height,
65: Object item, WingComponent owner, Style style,
66: Insets margin, int alignment, int textPosition,
67: Object context);
68:
69: /**
70: * Implementation should update owner component if the item contains updated image<br>
71: * See <code>ImageObserver.imageUpdate</code> for more information
72: * @param img the image being observed.
73: * @param infoflags
74: * @param x the x coordinate
75: * @param y the y coordinate
76: * @param width the width
77: * @param height the height
78: * @param item item
79: * @param owner component containing the item
80: * @param style style
81: * @param itemBounds bounds of the item
82: * @return <code>false</code> if the infoflags indicate that the
83: * image is completely loaded
84: * or item does not display the specified image; <code>true</code> otherwise.
85: */
86: public boolean imageUpdate(Image img, int infoflags, int x, int y,
87: int width, int height, Object item, WingComponent owner,
88: Style style, Rectangle itemBounds);
89: }
|