com.lowagie.text.rtf.field

## Class RtfField

- java.lang.Object
- - com.lowagie.text.Chunk
  - - com.lowagie.text.rtf.field.RtfField

All Implemented Interfaces:
  Element, RtfBasicElement, RtfElementInterface

Direct Known Subclasses:
  RtfAnchor, RtfPageNumber, RtfTableOfContents, RtfTOCEntry, RtfTotalPageNumber

    public abstract class RtfField
    extends Chunk
    implements RtfBasicElement

The RtfField class is an abstract base class for all rtf field functionality. Subclasses only need to implement the two abstract methods writeFieldInstContent and writeFieldResultContent. All other field functionality is handled by the RtfField class.

Version:
  $Id$
Author:
  Mark Hall (Mark.Hall@mail.room3b.eu), Dirk Weigenand (Dirk.Weigenand@smb-tec.com), Thomas Bickel (tmb99@inode.at)

### Field Summary

Fields
`protected RtfDocument` `document` The RtfDocument this RtfField belongs to
`private static byte[]` `FIELD` Constant for a rtf field
`private static byte[]` `FIELD_ALT` Constant for an alt field
`private static byte[]` `FIELD_DIRTY` Constant for a dirty field
`private static byte[]` `FIELD_EDIT` Constant for a edited field
`private static byte[]` `FIELD_INSTRUCTIONS` Constant for the field instructions
`private static byte[]` `FIELD_LOCKED` Constant for a locked field
`private static byte[]` `FIELD_PRIVATE` Constant for a private field
`private static byte[]` `FIELD_RESULT` Constant for the field result
`private boolean` `fieldAlt` Is it an alt field
`private boolean` `fieldDirty` Is the field dirty
`private boolean` `fieldEdit` Is the field edited
`private boolean` `fieldLocked` Is the field locked
`private boolean` `fieldPrivate` Is the field private
`private RtfFont` `font` The RtfFont of this RtfField
`private boolean` `inHeader` Whether this RtfElement is in a header
`private boolean` `inTable` Whether this RtfField is in a table

### Fields inherited from class com.lowagie.text.Chunk

`ACTION, attributes, BACKGROUND, CHAR_SPACING, COLOR, content, ENCODING, GENERICTAG, HSCALE, HYPHENATION, IMAGE, LOCALDESTINATION, LOCALGOTO, NEWLINE, NEWPAGE, NEXTPAGE, OBJECT_REPLACEMENT_CHARACTER, PDFANNOTATION, REMOTEGOTO, SEPARATOR, SKEW, SPLITCHARACTER, SUBSUPSCRIPT, TAB, TEXTRENDERMODE, UNDERLINE`

### Fields inherited from interface com.lowagie.text.rtf.RtfBasicElement

`CLOSE_GROUP, COMMA_DELIMITER, DELIMITER, OPEN_GROUP, TWIPS_FACTOR`

### 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
`protected` `RtfField(RtfDocument doc)` Constructs a RtfField for a RtfDocument.
`protected` `RtfField(RtfDocument doc, Font font)` Constructs a RtfField for a RtfDocument.

### Method Summary

Methods
`boolean` `isEmpty()` An RtfField is never empty.
`boolean` `isFieldAlt()` Get whether this field is an alt field
`boolean` `isFieldDirty()` Get whether this field is dirty
`boolean` `isFieldEdit()` Get whether this field is edited
`boolean` `isFieldLocked()` Get whether this field is locked
`boolean` `isFieldPrivate()` Get whether this field is private
`boolean` `isInHeader()` Gets whether this `RtfField` is in a header.
`boolean` `isInTable()` Gets whether this `RtfField` is in a table.
`void` `setFieldAlt(boolean fieldAlt)` Set whether this field is an alt field
`void` `setFieldDirty(boolean fieldDirty)` Set whether this field is dirty
`void` `setFieldEdit(boolean fieldEdit)` Set whether this field is edited.
`void` `setFieldLocked(boolean fieldLocked)` Set whether this field is locked
`void` `setFieldPrivate(boolean fieldPrivate)` Set whether this field is private
`void` `setFont(Font font)` Override setFont to perform the correct font handling.
`void` `setInHeader(boolean inHeader)` Sets whether this RtfField is in a header
`void` `setInTable(boolean inTable)` Sets whether this RtfField is in a table
`void` `setRtfDocument(RtfDocument doc)` Sets the RtfDocument this RtfElement belongs to
`void` `writeContent(java.io.OutputStream result)` Writes the field to the `OutputStream`.
`private void` `writeFieldBegin(java.io.OutputStream result)` Writes the field beginning.
`private void` `writeFieldEnd(java.io.OutputStream result)` Writes the end of the field
`private void` `writeFieldInstBegin(java.io.OutputStream result)` Writes the beginning of the field instruction area.
`protected abstract void` `writeFieldInstContent(java.io.OutputStream result)` Writes the content of the field instruction area.
`private void` `writeFieldInstEnd(java.io.OutputStream result)` Writes the end of the field instruction area.
`private void` `writeFieldResultBegin(java.io.OutputStream result)` Writes the beginning of the field result area
`protected abstract void` `writeFieldResultContent(java.io.OutputStream result)` Writes the content of the pre-calculated field result.
`private void` `writeFieldResultEnd(java.io.OutputStream result)` Writes the end of the field result area

### Methods inherited from class com.lowagie.text.Chunk

`append, getAttributes, getCharacterSpacing, getChunks, getContent, getFont, getHorizontalScaling, getHyphenation, getImage, getTextRise, getWidthPoint, hasAttributes, isContent, isNestable, process, setAction, setAnchor, setAnchor, setAnnotation, setAttributes, setBackground, setBackground, setCharacterSpacing, setGenericTag, setHorizontalScaling, setHyphenation, setLocalDestination, setLocalGoto, setNewPage, setRemoteGoto, setRemoteGoto, setSkew, setSplitCharacter, setTextRenderMode, setTextRise, setUnderline, setUnderline, toString, type`

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

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

### Field Detail

#### FIELD

    private static final byte[] FIELD

Constant for a rtf field

#### FIELD_DIRTY

    private static final byte[] FIELD_DIRTY

Constant for a dirty field

#### FIELD_PRIVATE

    private static final byte[] FIELD_PRIVATE

Constant for a private field

#### FIELD_LOCKED

    private static final byte[] FIELD_LOCKED

Constant for a locked field

#### FIELD_EDIT

    private static final byte[] FIELD_EDIT

Constant for a edited field

#### FIELD_ALT

    private static final byte[] FIELD_ALT

Constant for an alt field

#### FIELD_INSTRUCTIONS

    private static final byte[] FIELD_INSTRUCTIONS

Constant for the field instructions

#### FIELD_RESULT

    private static final byte[] FIELD_RESULT

Constant for the field result

#### fieldDirty

    private boolean fieldDirty

Is the field dirty

#### fieldEdit

    private boolean fieldEdit

Is the field edited

#### fieldLocked

    private boolean fieldLocked

Is the field locked

#### fieldPrivate

    private boolean fieldPrivate

Is the field private

#### fieldAlt

    private boolean fieldAlt

Is it an alt field

#### inTable

    private boolean inTable

Whether this RtfField is in a table

#### inHeader

    private boolean inHeader

Whether this RtfElement is in a header

#### document

    protected RtfDocument document

The RtfDocument this RtfField belongs to

#### font

    private RtfFont font

The RtfFont of this RtfField

### Constructor Detail

#### RtfField

    protected RtfField(RtfDocument doc)

Constructs a RtfField for a RtfDocument. This is not very useful, since the RtfField by itself does not do anything. Use one of the subclasses instead.

Parameters:
  `doc` - The RtfDocument this RtfField belongs to.

#### RtfField

    protected RtfField(RtfDocument doc,
            Font font)

Constructs a RtfField for a RtfDocument. This is not very useful, since the RtfField by itself does not do anything. Use one of the subclasses instead.

Parameters:
  `doc` - The RtfDocument this RtfField belongs to.
  `font` - The Font this RtfField should use

### Method Detail

#### setRtfDocument

    public void setRtfDocument(RtfDocument doc)

Sets the RtfDocument this RtfElement belongs to

Specified by:
  `setRtfDocument` in interface `RtfBasicElement`
Parameters:
  `doc` - The RtfDocument to use

#### writeFieldBegin

    private void writeFieldBegin(java.io.OutputStream result)
                          throws java.io.IOException

Writes the field beginning. Also writes field properties.

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException`

#### writeFieldInstBegin

    private void writeFieldInstBegin(java.io.OutputStream result)
                              throws java.io.IOException

Writes the beginning of the field instruction area.

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException`

#### writeFieldInstContent

    protected abstract void writeFieldInstContent(java.io.OutputStream result)
                                           throws java.io.IOException

Writes the content of the field instruction area. Override this method in your subclasses.

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException`

#### writeFieldInstEnd

    private void writeFieldInstEnd(java.io.OutputStream result)
                            throws java.io.IOException

Writes the end of the field instruction area.

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException`

#### writeFieldResultBegin

    private void writeFieldResultBegin(java.io.OutputStream result)
                                throws java.io.IOException

Writes the beginning of the field result area

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException`

#### writeFieldResultContent

    protected abstract void writeFieldResultContent(java.io.OutputStream result)
                                             throws java.io.IOException

Writes the content of the pre-calculated field result. Override this method in your subclasses.

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException` - on i/o errors.

#### writeFieldResultEnd

    private void writeFieldResultEnd(java.io.OutputStream result)
                              throws java.io.IOException

Writes the end of the field result area

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException` - on i/o errors.

#### writeFieldEnd

    private void writeFieldEnd(java.io.OutputStream result)
                        throws java.io.IOException

Writes the end of the field

Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException` - on i/o errors.

#### writeContent

    public void writeContent(java.io.OutputStream result)
                      throws java.io.IOException

Writes the field to the `OutputStream`.

Specified by:
  `writeContent` in interface `RtfBasicElement`
Parameters:
  `result` - The `OutputStream` to write to.
Throws:
  `java.io.IOException` - on i/o errors.

#### isFieldAlt

    public boolean isFieldAlt()

Get whether this field is an alt field

Returns:
  Returns whether this field is an alt field

#### setFieldAlt

    public void setFieldAlt(boolean fieldAlt)

Set whether this field is an alt field

Parameters:
  `fieldAlt` - The value to use

#### isFieldDirty

    public boolean isFieldDirty()

Get whether this field is dirty

Returns:
  Returns whether this field is dirty

#### setFieldDirty

    public void setFieldDirty(boolean fieldDirty)

Set whether this field is dirty

Parameters:
  `fieldDirty` - The value to use

#### isFieldEdit

    public boolean isFieldEdit()

Get whether this field is edited

Returns:
  Returns whether this field is edited

#### setFieldEdit

    public void setFieldEdit(boolean fieldEdit)

Set whether this field is edited.

Parameters:
  `fieldEdit` - The value to use

#### isFieldLocked

    public boolean isFieldLocked()

Get whether this field is locked

Returns:
  Returns the fieldLocked.

#### setFieldLocked

    public void setFieldLocked(boolean fieldLocked)

Set whether this field is locked

Parameters:
  `fieldLocked` - The value to use

#### isFieldPrivate

    public boolean isFieldPrivate()

Get whether this field is private

Returns:
  Returns the fieldPrivate.

#### setFieldPrivate

    public void setFieldPrivate(boolean fieldPrivate)

Set whether this field is private

Parameters:
  `fieldPrivate` - The value to use

#### setInTable

    public void setInTable(boolean inTable)

Sets whether this RtfField is in a table

Specified by:
  `setInTable` in interface `RtfBasicElement`
Parameters:
  `inTable` - `True` if this RtfField is in a table, `false` otherwise

#### isInTable

    public boolean isInTable()

Gets whether this `RtfField` is in a table.

Returns:
  `True` if this `RtfField` is in a table, `false` otherwise
Since:
  2.1.0

#### setInHeader

    public void setInHeader(boolean inHeader)

Sets whether this RtfField is in a header

Specified by:
  `setInHeader` in interface `RtfBasicElement`
Parameters:
  `inHeader` - `True` if this RtfField is in a header, `false` otherwise

#### isInHeader

    public boolean isInHeader()

Gets whether this `RtfField` is in a header.

Returns:
  `True` if this `RtfField` is in a header, `false` otherwise
Since:
  2.1.0

#### isEmpty

    public boolean isEmpty()

An RtfField is never empty.

Overrides:
  `isEmpty` in class `Chunk`
Returns:
  `false` if the Chunk contains other characters than space.

#### setFont

    public void setFont(Font font)

Override setFont to perform the correct font handling.

Overrides:
  `setFont` in class `Chunk`
Parameters:
  `font` - a `Font`