com.lowagie.text

## Class List

- java.lang.Object
- - com.lowagie.text.List

All Implemented Interfaces:
  Element, TextElementArray

Direct Known Subclasses:
  GreekList, RomanList, ZapfDingbatsList, ZapfDingbatsNumberList

    public class List
    extends java.lang.Object
    implements TextElementArray

A `List` contains several `ListItem`s.

Example 1:

>      List list = new List(true, 20);
>      list.add(new ListItem("First line"));
>      list.add(new ListItem("The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?"));
>      list.add(new ListItem("Third line"));

The result of this code looks like this:

1. First line
2. The second line is longer to see what happens once the end of the line is reached. Will it start on a new line?
3. Third line

Example 2:

>      List overview = new List(false, 10);
>      overview.add(new ListItem("This is an item"));
>      overview.add("This is another item");

The result of this code looks like this:

- This is an item
- This is another item

See Also:
  `Element`, `ListItem`

### Field Summary

Fields
`protected boolean` `alignindent` Indicates if the indentation of all the items has to be aligned.
`static boolean` `ALPHABETICAL` a possible value for the lettered parameter
`protected boolean` `autoindent` Indicates if the indentation has to be set automatically.
`protected int` `first` This variable indicates the first number of a numbered list.
`protected float` `indentationLeft` The indentation of this list on the left side.
`protected float` `indentationRight` The indentation of this list on the right side.
`protected boolean` `lettered` Indicates if the listsymbols are numerical or alphabetical.
`protected java.util.ArrayList` `list` This is the `ArrayList` containing the different `ListItem`s.
`protected boolean` `lowercase` Indicates if the listsymbols are lowercase or uppercase.
`static boolean` `LOWERCASE` a possible value for the lettered parameter
`protected boolean` `numbered` Indicates if the list has to be numbered.
`static boolean` `NUMERICAL` a possible value for the lettered parameter
`static boolean` `ORDERED` a possible value for the numbered parameter
`protected java.lang.String` `postSymbol` In case you are using numbered/lettered lists, this String is added after the number/letter.
`protected java.lang.String` `preSymbol` In case you are using numbered/lettered lists, this String is added before the number/letter.
`protected Chunk` `symbol` This is the listsymbol of a list that is not numbered.
`protected float` `symbolIndent` The indentation of the listitems.
`static boolean` `UNORDERED` a possible value for the numbered parameter
`static boolean` `UPPERCASE` a possible value for the lettered parameter

### Fields inherited from interface com.lowagie.text.Element

`ALIGN_BASELINE, ALIGN_BOTTOM, ALIGN_CENTER, ALIGN_JUSTIFIED, ALIGN_JUSTIFIED_ALL, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, ALIGN_UNDEFINED, ANCHOR, ANNOTATION, AUTHOR, CCITT_BLACKIS1, CCITT_ENCODEDBYTEALIGN, CCITT_ENDOFBLOCK, CCITT_ENDOFLINE, CCITTG3_1D, CCITTG3_2D, CCITTG4, CELL, CHAPTER, CHUNK, CREATIONDATE, CREATOR, HEADER, IMGRAW, IMGTEMPLATE, JBIG2, JPEG, JPEG2000, KEYWORDS, LIST, LISTITEM, MARKED, MULTI_COLUMN_TEXT, PARAGRAPH, PHRASE, PRODUCER, PTABLE, RECTANGLE, ROW, SECTION, SUBJECT, TABLE, TITLE, YMARK`

### Constructor Summary

Constructors
Constructor and Description
`List()` Constructs a `List`.
`List(boolean numbered)` Constructs a `List`.
`List(boolean numbered, boolean lettered)` Constructs a `List`.
`List(boolean numbered, boolean lettered, float symbolIndent)` Creates a list
`List(boolean numbered, float symbolIndent)` Constructs a `List`.
`List(float symbolIndent)` Constructs a `List` with a specific symbol indentation.

### Method Summary

Methods
`boolean` `add(java.lang.Object o)` Adds an `Object` to the `List`.
`java.util.ArrayList` `getChunks()` Gets all the chunks in this element.
`int` `getFirst()` Gets the first number .
`float` `getIndentationLeft()` Gets the indentation of this paragraph on the left side.
`float` `getIndentationRight()` Gets the indentation of this paragraph on the right side.
`java.util.ArrayList` `getItems()` Gets all the items in the list.
`java.lang.String` `getPostSymbol()` Returns the String that is after a number or letter in the list symbol.
`java.lang.String` `getPreSymbol()` Returns the String that is before a number or letter in the list symbol.
`Chunk` `getSymbol()` Gets the Chunk containing the symbol.
`float` `getSymbolIndent()` Gets the symbol indentation.
`float` `getTotalLeading()` Gets the leading of the first listitem.
`boolean` `isAlignindent()` Checks if all the listitems should be aligned.
`boolean` `isAutoindent()` Checks if the indentation of list items is done automatically.
`boolean` `isContent()` Checks if this element is a content object.
`boolean` `isEmpty()` Returns `true` if the list is empty.
`boolean` `isLettered()` Checks if the list is lettered.
`boolean` `isLowercase()` Checks if the list lettering is lowercase.
`boolean` `isNestable()` Checks if this element is nestable.
`boolean` `isNumbered()` Checks if the list is numbered.
`void` `normalizeIndentation()` Makes sure all the items in the list have the same indentation.
`boolean` `process(ElementListener listener)` Processes the element by adding it (or the different parts) to an `ElementListener`.
`void` `setAlignindent(boolean alignindent)`
`void` `setAutoindent(boolean autoindent)`
`void` `setFirst(int first)` Sets the number that has to come first in the list.
`void` `setIndentationLeft(float indentation)` Sets the indentation of this paragraph on the left side.
`void` `setIndentationRight(float indentation)` Sets the indentation of this paragraph on the right side.
`void` `setLettered(boolean lettered)`
`void` `setListSymbol(Chunk symbol)` Sets the listsymbol.
`void` `setListSymbol(java.lang.String symbol)` Sets the listsymbol.
`void` `setLowercase(boolean uppercase)`
`void` `setNumbered(boolean numbered)`
`void` `setPostSymbol(java.lang.String postSymbol)` Sets the String that has to be added after a number or letter in the list symbol.
`void` `setPreSymbol(java.lang.String preSymbol)` Sets the String that has to be added before a number or letter in the list symbol.
`void` `setSymbolIndent(float symbolIndent)`
`int` `size()` Gets the size of the list.
`int` `type()` Gets the type of the text element.

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface com.lowagie.text.Element

`toString`

### Field Detail

#### ORDERED

    public static final boolean ORDERED

a possible value for the numbered parameter

See Also:
  Constant Field Values

#### UNORDERED

    public static final boolean UNORDERED

a possible value for the numbered parameter

See Also:
  Constant Field Values

#### NUMERICAL

    public static final boolean NUMERICAL

a possible value for the lettered parameter

See Also:
  Constant Field Values

#### ALPHABETICAL

    public static final boolean ALPHABETICAL

a possible value for the lettered parameter

See Also:
  Constant Field Values

#### UPPERCASE

    public static final boolean UPPERCASE

a possible value for the lettered parameter

See Also:
  Constant Field Values

#### LOWERCASE

    public static final boolean LOWERCASE

a possible value for the lettered parameter

See Also:
  Constant Field Values

#### list

    protected java.util.ArrayList list

This is the `ArrayList` containing the different `ListItem`s.

#### numbered

    protected boolean numbered

Indicates if the list has to be numbered.

#### lettered

    protected boolean lettered

Indicates if the listsymbols are numerical or alphabetical.

#### lowercase

    protected boolean lowercase

Indicates if the listsymbols are lowercase or uppercase.

#### autoindent

    protected boolean autoindent

Indicates if the indentation has to be set automatically.

#### alignindent

    protected boolean alignindent

Indicates if the indentation of all the items has to be aligned.

#### first

    protected int first

This variable indicates the first number of a numbered list.

#### symbol

    protected Chunk symbol

This is the listsymbol of a list that is not numbered.

#### preSymbol

    protected java.lang.String preSymbol

In case you are using numbered/lettered lists, this String is added before the number/letter.

Since:
  iText 2.1.1

#### postSymbol

    protected java.lang.String postSymbol

In case you are using numbered/lettered lists, this String is added after the number/letter.

Since:
  iText 2.1.1

#### indentationLeft

    protected float indentationLeft

The indentation of this list on the left side.

#### indentationRight

    protected float indentationRight

The indentation of this list on the right side.

#### symbolIndent

    protected float symbolIndent

The indentation of the listitems.

### Constructor Detail

#### List

    public List()

Constructs a `List`.

#### List

    public List(float symbolIndent)

Constructs a `List` with a specific symbol indentation.

Parameters:
  `symbolIndent` - the symbol indentation
Since:
  iText 2.0.8

#### List

    public List(boolean numbered)

Constructs a `List`.

Parameters:
  `numbered` - a boolean

#### List

    public List(boolean numbered,
        boolean lettered)

Constructs a `List`.

Parameters:
  `numbered` - a boolean
  `lettered` - has the list to be 'numbered' with letters

#### List

    public List(boolean numbered,
        float symbolIndent)

Constructs a `List`.

Remark: the parameter symbolIndent is important for instance when generating PDF-documents; it indicates the indentation of the listsymbol. It is not important for HTML-documents.

Parameters:
  `numbered` - a boolean
  `symbolIndent` - the indentation that has to be used for the listsymbol

#### List

    public List(boolean numbered,
        boolean lettered,
        float symbolIndent)

Creates a list

Parameters:
  `numbered` - has the list to be numbered?
  `lettered` - has the list to be 'numbered' with letters
  `symbolIndent` - the indentation of the symbol

### Method Detail

#### process

    public boolean process(ElementListener listener)

Processes the element by adding it (or the different parts) to an `ElementListener`.

Specified by:
  `process` in interface `Element`
Parameters:
  `listener` - an `ElementListener`
Returns:
  `true` if the element was processed successfully

#### type

    public int type()

Gets the type of the text element.

Specified by:
  `type` in interface `Element`
Returns:
  a type

#### getChunks

    public java.util.ArrayList getChunks()

Gets all the chunks in this element.

Specified by:
  `getChunks` in interface `Element`
Returns:
  an `ArrayList`

#### add

    public boolean add(java.lang.Object o)

Adds an `Object` to the `List`.

Specified by:
  `add` in interface `TextElementArray`
Parameters:
  `o` - the object to add.
Returns:
  true if adding the object succeeded

#### normalizeIndentation

    public void normalizeIndentation()

Makes sure all the items in the list have the same indentation.

#### setNumbered

    public void setNumbered(boolean numbered)

Parameters:
  `numbered` - the numbered to set

#### setLettered

    public void setLettered(boolean lettered)

Parameters:
  `lettered` - the lettered to set

#### setLowercase

    public void setLowercase(boolean uppercase)

Parameters:
  `uppercase` - the uppercase to set

#### setAutoindent

    public void setAutoindent(boolean autoindent)

Parameters:
  `autoindent` - the autoindent to set

#### setAlignindent

    public void setAlignindent(boolean alignindent)

Parameters:
  `alignindent` - the alignindent to set

#### setFirst

    public void setFirst(int first)

Sets the number that has to come first in the list.

Parameters:
  `first` - a number

#### setListSymbol

    public void setListSymbol(Chunk symbol)

Sets the listsymbol.

Parameters:
  `symbol` - a `Chunk`

#### setListSymbol

    public void setListSymbol(java.lang.String symbol)

Sets the listsymbol.

This is a shortcut for `setListSymbol(Chunk symbol)`.

Parameters:
  `symbol` - a `String`

#### setIndentationLeft

    public void setIndentationLeft(float indentation)

Sets the indentation of this paragraph on the left side.

Parameters:
  `indentation` - the new indentation

#### setIndentationRight

    public void setIndentationRight(float indentation)

Sets the indentation of this paragraph on the right side.

Parameters:
  `indentation` - the new indentation

#### setSymbolIndent

    public void setSymbolIndent(float symbolIndent)

Parameters:
  `symbolIndent` - the symbolIndent to set

#### getItems

    public java.util.ArrayList getItems()

Gets all the items in the list.

Returns:
  an `ArrayList` containing `ListItem`s.

#### size

    public int size()

Gets the size of the list.

Returns:
  a `size`

#### isEmpty

    public boolean isEmpty()

Returns `true` if the list is empty.

Returns:
  `true` if the list is empty

#### getTotalLeading

    public float getTotalLeading()

Gets the leading of the first listitem.

Returns:
  a `leading`

#### isNumbered

    public boolean isNumbered()

Checks if the list is numbered.

Returns:
  `true` if the list is numbered, `false` otherwise.

#### isLettered

    public boolean isLettered()

Checks if the list is lettered.

Returns:
  `true` if the list is lettered, `false` otherwise.

#### isLowercase

    public boolean isLowercase()

Checks if the list lettering is lowercase.

Returns:
  `true` if it is lowercase, `false` otherwise.

#### isAutoindent

    public boolean isAutoindent()

Checks if the indentation of list items is done automatically.

Returns:
  the autoindent

#### isAlignindent

    public boolean isAlignindent()

Checks if all the listitems should be aligned.

Returns:
  the alignindent

#### getFirst

    public int getFirst()

Gets the first number .

Returns:
  a number

#### getSymbol

    public Chunk getSymbol()

Gets the Chunk containing the symbol.

Returns:
  a Chunk with a symbol

#### getIndentationLeft

    public float getIndentationLeft()

Gets the indentation of this paragraph on the left side.

Returns:
  the indentation

#### getIndentationRight

    public float getIndentationRight()

Gets the indentation of this paragraph on the right side.

Returns:
  the indentation

#### getSymbolIndent

    public float getSymbolIndent()

Gets the symbol indentation.

Returns:
  the symbol indentation

#### isContent

    public boolean isContent()

Description copied from interface: `Element`
Checks if this element is a content object. If not, it's a metadata object.

Specified by:
  `isContent` in interface `Element`
Returns:
  true if this is a 'content' element; false if this is a 'metadata' element
Since:
  iText 2.0.8
See Also:
  `Element.isContent()`

#### isNestable

    public boolean isNestable()

Description copied from interface: `Element`
Checks if this element is nestable.

Specified by:
  `isNestable` in interface `Element`
Returns:
  true if this element can be nested inside other elements.
Since:
  iText 2.0.8
See Also:
  `Element.isNestable()`

#### getPostSymbol

    public java.lang.String getPostSymbol()

Returns the String that is after a number or letter in the list symbol.

Returns:
  the String that is after a number or letter in the list symbol
Since:
  iText 2.1.1

#### setPostSymbol

    public void setPostSymbol(java.lang.String postSymbol)

Sets the String that has to be added after a number or letter in the list symbol.

Parameters:
  `postSymbol` - the String that has to be added after a number or letter in the list symbol.
Since:
  iText 2.1.1

#### getPreSymbol

    public java.lang.String getPreSymbol()

Returns the String that is before a number or letter in the list symbol.

Returns:
  the String that is before a number or letter in the list symbol
Since:
  iText 2.1.1

#### setPreSymbol

    public void setPreSymbol(java.lang.String preSymbol)

Sets the String that has to be added before a number or letter in the list symbol.

Parameters:
  `preSymbol` - the String that has to be added before a number or letter in the list symbol.
Since:
  iText 2.1.1