1 |
/* ListUI.java |
/* ListUI.java |
2 |
Copyright (C) 2002 Free Software Foundation, Inc. |
Copyright (C) 2003 Free Software Foundation, Inc. |
3 |
|
|
4 |
This file is part of GNU Classpath. |
This file is part of GNU Classpath. |
5 |
|
|
38 |
|
|
39 |
package javax.swing.plaf; |
package javax.swing.plaf; |
40 |
|
|
41 |
|
import java.awt.Point; |
42 |
|
import java.awt.Rectangle; |
43 |
|
import javax.swing.JList; |
44 |
|
|
45 |
public class ListUI extends ComponentUI |
|
46 |
|
/** |
47 |
|
* An abstract base class for delegates that implement the pluggable |
48 |
|
* look and feel for a <code>JList</code>. |
49 |
|
* |
50 |
|
* @author Sascha Brawer (brawer@dandelis.ch) |
51 |
|
*/ |
52 |
|
public abstract class ListUI |
53 |
|
extends ComponentUI |
54 |
{ |
{ |
55 |
|
/** |
56 |
|
* Constructs a new <code>ListUI</code>. |
57 |
|
*/ |
58 |
|
public ListUI() |
59 |
|
{ |
60 |
|
} |
61 |
|
|
62 |
|
|
63 |
|
/** |
64 |
|
* Determines the cell index which is the closest to the specified |
65 |
|
* location. The find out whether the returned cell actually |
66 |
|
* contains the location, the caller should also use {@link |
67 |
|
* #getCellBounds}. |
68 |
|
* |
69 |
|
* @param list the <code>JList</code> for which this delegate object |
70 |
|
* provides the pluggable user interface. |
71 |
|
* |
72 |
|
* @param location a point in the <code>JList</code> coordinate |
73 |
|
* system. |
74 |
|
* |
75 |
|
* @return the index of the closest cell, or -1 if the list model |
76 |
|
* is empty. |
77 |
|
*/ |
78 |
|
public abstract int locationToIndex(JList index, Point location); |
79 |
|
|
80 |
|
|
81 |
|
/** |
82 |
|
* Determines the location of the specified cell. |
83 |
|
* |
84 |
|
* @param list the <code>JList</code> for which this delegate object |
85 |
|
* provides the pluggable user interface. |
86 |
|
* |
87 |
|
* @param index the zero-based index of the cell whose location shall be |
88 |
|
* determined. |
89 |
|
* |
90 |
|
* @return the position of the top left corner of the cell in the |
91 |
|
* <code>JList</code> coordinate system, or <code>null</code> |
92 |
|
* if <code>cell</code> does not designate a valid cell. |
93 |
|
*/ |
94 |
|
public abstract Point indexToLocation(JList list, int index); |
95 |
|
|
96 |
|
|
97 |
|
/** |
98 |
|
* Determines the bounding box of the rectangle spanned by |
99 |
|
* two list indices. |
100 |
|
* |
101 |
|
* @param list the <code>JList</code> for which this delegate object |
102 |
|
* provides the pluggable user interface. |
103 |
|
* |
104 |
|
* @param index1 the zero-based index of the first cell. |
105 |
|
* |
106 |
|
* @param index2 the zero-based index of the second cell. |
107 |
|
* |
108 |
|
* @return the spanned rectangle, or <code>null</code> if either |
109 |
|
* <code>index1</code> or <code>index2</code> does not |
110 |
|
* designate a valid cell. |
111 |
|
*/ |
112 |
|
public abstract Rectangle getCellBounds(JList list, |
113 |
|
int index1, int index2); |
114 |
} |
} |