|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JList
public class JList
This class is a facade over three separate objects: ListModel
, ListSelectionModel
and
ListUI
. The facade represents a unified "list"
concept, with independently replacable (possibly client-provided) models
for its contents and its current selection. In addition, each element in
the list is rendered via a strategy class ListCellRenderer
.
Lists have many properties, some of which are stored in this class while others are delegated to the list's model or selection. The following properties are available:
Property | Stored in | Bound? |
---|---|---|
accessibleContext | list | no |
anchorSelectionIndex | selection | no |
cellRenderer | list | yes |
dragEnabled | list | no |
firstVisibleIndex | list | no |
fixedCellHeight | list | yes |
fixedCellWidth | list | yes |
lastVisibleIndex | list | no |
layoutOrientation | list | yes |
leadSelectionIndex | selection | no |
maxSelectionIndex | selection | no |
minSelectionIndex | selection | no |
model | list | yes |
opaque | list | no |
preferredScrollableViewportSize | list | no |
prototypeCellValue | list | yes |
scrollableTracksViewportHeight | list | no |
scrollableTracksViewportWidth | list | no |
selectedIndex | selection | no |
selectedIndices | selection | no |
selectedValue | model | no |
selectedValues | model | no |
selectionBackground | list | yes |
selectionEmpty | selection | no |
selectionForeground | list | yes |
selectionMode | selection | no |
selectionModel | list | yes |
UI | list | yes |
UIClassID | list | no |
valueIsAdjusting | list | no |
visibleRowCount | list | no |
Nested Class Summary | |
---|---|
protected class |
JList.AccessibleJList
Provides accessibility support for JList . |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
static int |
HORIZONTAL_WRAP
Constant value used in "layoutOrientation" property. |
static int |
VERTICAL
Constant value used in "layoutOrientation" property. |
static int |
VERTICAL_WRAP
Constant value used in "layoutOrientation" property. |
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
Fields inherited from class java.awt.Component |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
Constructor Summary | |
---|---|
JList()
Creates a new JList object. |
|
JList(ListModel model)
Creates a new JList object. |
|
JList(Object[] items)
Creates a new JList object. |
|
JList(Vector<?> items)
Creates a new JList object. |
Method Summary | |
---|---|
void |
addListSelectionListener(ListSelectionListener listener)
Adds a ListSelectionListener to the listener list for this
list. |
void |
addSelectionInterval(int anchor,
int lead)
Adds the specified interval to the current selection. |
void |
clearSelection()
Clears the current selection. |
protected ListSelectionModel |
createSelectionModel()
Creates the default ListSelectionModel . |
void |
ensureIndexIsVisible(int i)
Scrolls this list to make the specified cell visible. |
protected void |
fireSelectionValueChanged(int firstIndex,
int lastIndex,
boolean isAdjusting)
Fire a ListSelectionEvent to all the registered
ListSelectionListeners. |
AccessibleContext |
getAccessibleContext()
Get the value of the accessibleContext property for this component. |
int |
getAnchorSelectionIndex()
Returns the index of the anchor item in the current selection, or -1 if there is no anchor item. |
Rectangle |
getCellBounds(int index0,
int index1)
Returns the bounds of the rectangle that encloses both list cells with index0 and index1. |
ListCellRenderer |
getCellRenderer()
Gets the value of the cellRenderer property. |
boolean |
getDragEnabled()
Return the value of the dragEnabled property. |
int |
getFirstVisibleIndex()
Returns the list index of the upper left or upper right corner of the visible rectangle of this list, depending on the Component.getComponentOrientation() property. |
int |
getFixedCellHeight()
Gets the value of the fixedCellHeight property. |
int |
getFixedCellWidth()
Gets the value of the fixedCellWidth property. |
int |
getLastVisibleIndex()
Returns the list index of the lower right or lower left corner of the visible rectangle of this list, depending on the Component.getComponentOrientation() property. |
int |
getLayoutOrientation()
Returns the layout orientation, which will be one of VERTICAL ,
VERTICAL_WRAP and HORIZONTAL_WRAP . |
int |
getLeadSelectionIndex()
Returns the index of the lead item in the current selection, or -1 if there is no lead item. |
ListSelectionListener[] |
getListSelectionListeners()
Returns an array of all ListSelectionListeners subscribed to this list. |
int |
getMaxSelectionIndex()
Returns the highest item index in the current selection, or -1 if there is no selection. |
int |
getMinSelectionIndex()
Returns the lowest item index in the current selection, or -1
if there is no selection. |
ListModel |
getModel()
Gets the value of the model property. |
int |
getNextMatch(String prefix,
int startIndex,
Position.Bias direction)
Returns the index of the next list element (beginning at startIndex and moving in the specified direction through the
list, looping around if necessary) that starts with prefix
(ignoring case). |
Dimension |
getPreferredScrollableViewportSize()
Returns a size indicating how much space this list would like to consume, when contained in a scrollable viewport. |
Object |
getPrototypeCellValue()
Returns the current value of the prototypeCellValue
property. |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
Return the number of pixels the list must scroll in order to move a "block" of the list into the provided visible rectangle. |
boolean |
getScrollableTracksViewportHeight()
Gets the value of the scrollableTracksViewportWidth property. |
boolean |
getScrollableTracksViewportWidth()
Gets the value of the scrollableTracksViewportWidth property. |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
Return the number of pixels the list must scroll in order to move a "unit" of the list into the provided visible rectangle. |
int |
getSelectedIndex()
Returns the minimum index of an element in the list which is currently selected. |
int[] |
getSelectedIndices()
Returns the indices of values in the model property which are
selected. |
Object |
getSelectedValue()
Returns the first value in the list's model property which is
selected, according to the list's selectionModel property. |
Object[] |
getSelectedValues()
Returns all the values in the list's model property which are
selected, according to the list's selectionModel property. |
Color |
getSelectionBackground()
Gets the value of the selectionBackground property. |
Color |
getSelectionForeground()
Gets the value of the selectionForeground property. |
int |
getSelectionMode()
Returns the selection mode for the list (one of: ListSelectionModel.SINGLE_SELECTION ,
ListSelectionModel.SINGLE_INTERVAL_SELECTION and
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION ). |
ListSelectionModel |
getSelectionModel()
Returns the selection model for the JList.AccessibleJList component. |
ListUI |
getUI()
Gets the value of the UI property. |
String |
getUIClassID()
Return the class identifier for the list's UI property. |
boolean |
getValueIsAdjusting()
Returns the valueIsAdjusting flag from the list's selection
model. |
int |
getVisibleRowCount()
Gets the value of the visibleRowCount property. |
Point |
indexToLocation(int index)
Returns location of the cell located at the specified index in the list. |
boolean |
isSelectedIndex(int a)
Indicates whether the list element at a given index value is currently selected. |
boolean |
isSelectionEmpty()
Returns true if the model's selection is empty, otherwise
false . |
int |
locationToIndex(Point location)
Returns index of the cell to which specified location is closest to. |
protected String |
paramString()
Returns a string describing the attributes for the JList
component, for use in debugging. |
void |
removeListSelectionListener(ListSelectionListener listener)
Removes a ListSelectionListener from the listener list for
this list. |
void |
removeSelectionInterval(int index0,
int index1)
Removes the specified interval from the current selection. |
void |
setCellRenderer(ListCellRenderer renderer)
Sets the value of the getCellRenderer() property. |
void |
setDragEnabled(boolean enabled)
Set the dragEnabled property. |
void |
setFixedCellHeight(int h)
Sets the value of the fixedCellHeight property. |
void |
setFixedCellWidth(int w)
Sets the value of the fixedCellWidth property. |
void |
setLayoutOrientation(int orientation)
Sets the layout orientation (this is a bound property with the name 'layoutOrientation'). |
void |
setListData(Object[] listData)
Sets the model property of the list to a new anonymous
AbstractListModel subclass which accesses the provided Object
array directly. |
void |
setListData(Vector<?> listData)
Sets the model property of the list to a new anonymous AbstractListModel subclass which accesses the provided vector
directly. |
void |
setModel(ListModel model)
Sets the value of the model property. |
void |
setPrototypeCellValue(Object obj)
Set the prototypeCellValue property. |
void |
setSelectedIndex(int a)
Adds the interval [a,a] to the set of selections managed
by this list's selectionModel property. |
void |
setSelectedIndices(int[] a)
For each element a[i] of the provided array
a , calls setSelectedIndex(int) on a[i] . |
void |
setSelectedValue(Object obj,
boolean scroll)
Sets the selection to cover only the specified value, if it exists in the model. |
void |
setSelectionBackground(Color c)
Sets the value of the selectionBackground property. |
void |
setSelectionForeground(Color c)
Sets the value of the selectionForeground property. |
void |
setSelectionInterval(int anchor,
int lead)
Sets the current selection to the items in the specified range (inclusive). |
void |
setSelectionMode(int a)
Sets the list's "selectionMode" property, which simply mirrors the same property on the list's selectionModel property. |
void |
setSelectionModel(ListSelectionModel model)
Sets the value of the selectionModel property. |
void |
setUI(ListUI ui)
Sets the value of the UI property. |
void |
setValueIsAdjusting(boolean isAdjusting)
Sets the valueIsAdjusting flag in the list's selection
model. |
void |
setVisibleRowCount(int vc)
Sets the value of the visibleRowCount property. |
void |
updateUI()
Calls setUI(javax.swing.plaf.ListUI) with the ListUI subclass
returned from calling UIManager.getUI(javax.swing.JComponent) . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int VERTICAL
public static final int VERTICAL_WRAP
public static final int HORIZONTAL_WRAP
Constructor Detail |
---|
public JList()
JList
object.
public JList(Object[] items)
JList
object.
items
- the initial list items.public JList(Vector<?> items)
JList
object.
items
- the initial list items.public JList(ListModel model)
JList
object.
model
- a model containing the list items (null
not
permitted).
IllegalArgumentException
- if model
is
null
.Method Detail |
---|
protected void fireSelectionValueChanged(int firstIndex, int lastIndex, boolean isAdjusting)
ListSelectionEvent
to all the registered
ListSelectionListeners.
firstIndex
- the lowest index covering the selection change.lastIndex
- the highest index covering the selection change.isAdjusting
- a flag indicating if this event is one in a series
of events updating the selection.protected ListSelectionModel createSelectionModel()
ListSelectionModel
.
ListSelectionModel
public int getFixedCellHeight()
fixedCellHeight
property. This property
may be -1
to indicate that no cell height has been
set. This property is also set implicitly when the
prototypeCellValue
property is set.
fixedCellHeight
,
setFixedCellHeight(int)
,
setPrototypeCellValue(java.lang.Object)
public void setFixedCellHeight(int h)
fixedCellHeight
property. This property
may be -1
to indicate that no cell height has been
set. This property is also set implicitly when the prototypeCellValue
property is set, but setting it explicitly
overrides the height computed from prototypeCellValue
.
h
- the height.getFixedCellHeight()
,
getPrototypeCellValue()
public int getFixedCellWidth()
fixedCellWidth
property. This property
may be -1
to indicate that no cell width has been
set. This property is also set implicitly when the prototypeCellValue
property is set.
setFixedCellWidth(int)
,
setPrototypeCellValue(java.lang.Object)
public void setFixedCellWidth(int w)
fixedCellWidth
property. This property
may be -1
to indicate that no cell width has been
set. This property is also set implicitly when the prototypeCellValue
property is set, but setting it explicitly
overrides the width computed from prototypeCellValue
.
w
- the width.getFixedCellHeight()
,
getPrototypeCellValue()
public int getVisibleRowCount()
visibleRowCount
property. The default
value is 8.
setVisibleRowCount(int)
public void setVisibleRowCount(int vc)
visibleRowCount
property.
vc
- The new property valuegetVisibleRowCount()
public void addListSelectionListener(ListSelectionListener listener)
ListSelectionListener
to the listener list for this
list. The listener will be called back with a ListSelectionEvent
any time the list's selectionModel
property changes. The source of such events will be the JList,
not the selection model.
listener
- The new listener to addpublic void removeListSelectionListener(ListSelectionListener listener)
ListSelectionListener
from the listener list for
this list. The listener will no longer be called when the list's
selectionModel
changes.
listener
- The listener to removepublic ListSelectionListener[] getListSelectionListeners()
public int getSelectionMode()
ListSelectionModel.SINGLE_SELECTION
,
ListSelectionModel.SINGLE_INTERVAL_SELECTION
and
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION
).
setSelectionMode(int)
public void setSelectionMode(int a)
selectionModel
property. This
property should be one of the integer constants
SINGLE_SELECTION
, SINGLE_INTERVAL_SELECTION
,
or MULTIPLE_INTERVAL_SELECTION
from the ListSelectionModel
interface.
a
- The new selection modepublic void setSelectedIndex(int a)
[a,a]
to the set of selections managed
by this list's selectionModel
property. Depending on the
selection mode, this may cause existing selections to become invalid,
or may simply expand the set of selections.
a
- A number in the half-open range [0, x)
where
x = getModel.getSize()
, indicating the index of an
element in the list to select. When < 0 the selection is cleared.setSelectionMode(int)
,
selectionModel
public void setSelectedIndices(int[] a)
a[i]
of the provided array
a
, calls setSelectedIndex(int)
on a[i]
.
a
- an array of selected indices (null
not permitted).
NullPointerException
- if a
is null
.setSelectionMode(int)
,
selectionModel
public int getSelectedIndex()
[0, x)
where
x = getModel.getSize()
, indicating the minimum index of
an element in the list for which the element is selected, or
-1
if no elements are selectedpublic boolean isSelectionEmpty()
true
if the model's selection is empty, otherwise
false
.
ListSelectionModel.isSelectionEmpty()
public int getFirstVisibleIndex()
Component.getComponentOrientation()
property.
-1
if none is visible.public int locationToIndex(Point location)
-1
is returned.
location
- for which to look for in the list
public Point indexToLocation(int index)
index
- of the cell for which location will be determined
public int getLastVisibleIndex()
Component.getComponentOrientation()
property.
-1
if none is visible.public int[] getSelectedIndices()
model
property which are
selected.
getSelectedValues()
propertypublic boolean isSelectedIndex(int a)
a
- The index to check
true
if a
is the index of a selected
list elementpublic Object getSelectedValue()
model
property which is
selected, according to the list's selectionModel
property.
This is equivalent to calling
getModel()getElementAt(getSelectedIndex())
, with a check
for the special index value of -1
which returns null
null
.
null
if no element
is selected.getSelectedValues()
public Object[] getSelectedValues()
model
property which are
selected, according to the list's selectionModel
property.
setSelectedValue(java.lang.Object, boolean)
public Color getSelectionBackground()
selectionBackground
property.
public void setSelectionBackground(Color c)
selectionBackground
property.
c
- The new value of the propertypublic Color getSelectionForeground()
selectionForeground
property.
public void setSelectionForeground(Color c)
selectionForeground
property.
c
- The new value of the propertypublic void setSelectedValue(Object obj, boolean scroll)
obj
- The object to selectscroll
- Whether to scroll the list to make the newly selected
value visibleensureIndexIsVisible(int)
public void ensureIndexIsVisible(int i)
i
- The list index to make visibleJComponent.scrollRectToVisible(java.awt.Rectangle)
public void setListData(Object[] listData)
model
property of the list to a new anonymous
AbstractListModel
subclass which accesses the provided Object
array directly.
listData
- The object array to build a new list model onsetModel(javax.swing.ListModel)
public void setListData(Vector<?> listData)
model
property of the list to a new anonymous AbstractListModel
subclass which accesses the provided vector
directly.
listData
- The object array to build a new list model onsetModel(javax.swing.ListModel)
public ListCellRenderer getCellRenderer()
cellRenderer
property.
public void setCellRenderer(ListCellRenderer renderer)
getCellRenderer()
property.
renderer
- The new property valuepublic ListModel getModel()
model
property.
public void setModel(ListModel model)
model
property. The list's listListener
is unsubscribed from the existing model, if it exists,
and re-subscribed to the new model.
model
- the new model (null
not permitted).
IllegalArgumentException
- if model
is
null
.public ListSelectionModel getSelectionModel()
JList.AccessibleJList
component. Note that
this class contains a range of convenience methods for configuring the
selection model:clearSelection()
;setSelectionMode(int)
;addSelectionInterval(int, int)
;setSelectedIndex(int)
;setSelectedIndices(int[])
;setSelectionInterval(int, int)
.
public void setSelectionModel(ListSelectionModel model)
selectionModel
property. The list's
listListener
is unsubscribed from the existing selection
model, if it exists, and re-subscribed to the new selection model.
model
- The new property valuepublic ListUI getUI()
public void setUI(ListUI ui)
ui
- The new property valuepublic void updateUI()
setUI(javax.swing.plaf.ListUI)
with the ListUI
subclass
returned from calling UIManager.getUI(javax.swing.JComponent)
.
updateUI
in class JComponent
public String getUIClassID()
"ListUI"
, and map to an
appropriate UI class in the UIManager
.
getUIClassID
in class JComponent
JComponent.setUI(javax.swing.plaf.ComponentUI)
,
JComponent.updateUI()
public Object getPrototypeCellValue()
prototypeCellValue
property. This property holds a reference to a "prototype" data value
-- typically a String -- which is used to calculate the fixedCellWidth
and fixedCellHeight
properties, using the
cellRenderer
property to acquire a component to render the
prototype.
setPrototypeCellValue(java.lang.Object)
public void setPrototypeCellValue(Object obj)
Set the prototypeCellValue
property. This property holds a
reference to a "prototype" data value -- typically a String -- which
is used to calculate the fixedCellWidth
and fixedCellHeight
properties, using the cellRenderer
property
to acquire a component to render the prototype.
It is important that you not set this value to a component. It has to be a data value such as the objects you would find in the list's model. Setting it to a component will have undefined (and undesirable) affects.
obj
- The new prototype cell valuegetPrototypeCellValue()
public AccessibleContext getAccessibleContext()
JComponent
getAccessibleContext
in interface Accessible
getAccessibleContext
in class JComponent
public Dimension getPreferredScrollableViewportSize()
Scrollable
interface, which interacts with ScrollPaneLayout
and JViewport
to define scrollable objects.
getPreferredScrollableViewportSize
in interface Scrollable
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
Return the number of pixels the list must scroll in order to move a "unit" of the list into the provided visible rectangle. When the provided direction is positive, the call describes a "downwards" scroll, which will be exposing a cell at a greater index in the list than those elements currently showing. Then the provided direction is negative, the call describes an "upwards" scroll, which will be exposing a cell at a lesser index in the list than those elements currently showing.
If the provided orientation is HORIZONTAL
, the above
comments refer to "rightwards" for positive direction, and "leftwards"
for negative.
getScrollableUnitIncrement
in interface Scrollable
visibleRect
- The rectangle to scroll an element intoorientation
- One of the numeric consants VERTICAL
or HORIZONTAL
direction
- An integer indicating the scroll direction: positive means
forwards (down, right), negative means backwards (up, left)
public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
Return the number of pixels the list must scroll in order to move a "block" of the list into the provided visible rectangle. When the provided direction is positive, the call describes a "downwards" scroll, which will be exposing a cell at a greater index in the list than those elements currently showing. Then the provided direction is negative, the call describes an "upwards" scroll, which will be exposing a cell at a lesser index in the list than those elements currently showing.
If the provided orientation is HORIZONTAL
, the above
comments refer to "rightwards" for positive direction, and "leftwards"
for negative.
getScrollableBlockIncrement
in interface Scrollable
visibleRect
- The rectangle to scroll an element intoorientation
- One of the numeric consants VERTICAL
or HORIZONTAL
direction
- An integer indicating the scroll direction: positive means
forwards (down, right), negative means backwards (up, left)
public boolean getScrollableTracksViewportWidth()
scrollableTracksViewportWidth
property.
getScrollableTracksViewportWidth
in interface Scrollable
true
if the viewport is larger (horizontally)
than the list and the list should be expanded to fit the viewport;
false
if the viewport is smaller than the list and the
list should scroll (horizontally) within the viewportpublic boolean getScrollableTracksViewportHeight()
getScrollableTracksViewportHeight
in interface Scrollable
true
if the viewport is larger (vertically)
than the list and the list should be expanded to fit the viewport;
false
if the viewport is smaller than the list and the
list should scroll (vertically) within the viewportpublic int getAnchorSelectionIndex()
-1
if there is no anchor item.
public int getLeadSelectionIndex()
-1
if there is no lead item.
public int getMinSelectionIndex()
-1
if there is no selection.
getMaxSelectionIndex()
public int getMaxSelectionIndex()
-1
if there is no selection.
getMinSelectionIndex()
public void clearSelection()
public void setSelectionInterval(int anchor, int lead)
anchor
can be less than, equal to, or greater than
lead
.
anchor
- the index of the anchor item.lead
- the index of the anchor item.public void addSelectionInterval(int anchor, int lead)
anchor
can be less than, equal to, or greater than
lead
.
anchor
- the index of the anchor item.lead
- the index of the lead item.public void removeSelectionInterval(int index0, int index1)
index0
can be less than, equal to, or greater than
index1
.
index0
- an index for one end of the range.index1
- an index for the other end of the range.public boolean getValueIsAdjusting()
valueIsAdjusting
flag from the list's selection
model.
public void setValueIsAdjusting(boolean isAdjusting)
valueIsAdjusting
flag in the list's selection
model.
isAdjusting
- the new valuepublic boolean getDragEnabled()
dragEnabled
property.
public void setDragEnabled(boolean enabled)
dragEnabled
property.
enabled
- new valuepublic int getLayoutOrientation()
VERTICAL
,
VERTICAL_WRAP
and HORIZONTAL_WRAP
. The default value
is VERTICAL
.
setLayoutOrientation(int)
public void setLayoutOrientation(int orientation)
VERTICAL
,
VERTICAL_WRAP
and HORIZONTAL_WRAP
.
orientation
- the orientation.
IllegalArgumentException
- if orientation
is not one
of the specified values.getLayoutOrientation()
public Rectangle getCellBounds(int index0, int index1)
index0
- the index of the first cellindex1
- the index of the second cell
null
if one of the indices is
not validpublic int getNextMatch(String prefix, int startIndex, Position.Bias direction)
startIndex
and moving in the specified direction through the
list, looping around if necessary) that starts with prefix
(ignoring case).
prefix
- the prefix to search for in the cell valuesstartIndex
- the index where to start searching fromdirection
- the search direction, either Position.Bias#Forward
or Position.Bias#Backward
(null
is interpreted
as Position.Bias#Backward
.
IllegalArgumentException
- if prefix is null
or
startIndex is not validprotected String paramString()
JList
component, for use in debugging. The return value is guaranteed to be
non-null
, but the format of the string may vary between
implementations.
paramString
in class JComponent
JList
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |