# Serialized Form

## Package com.github.lgooddatepicker.components

### Class com.github.lgooddatepicker.components.CalendarPanel extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### borderLabels

    javax.swing.JLabel[][] borderLabels

borderLabels, This holds a two dimensional array of all the border labels in the calendar. Row 0 and Column 0 of the array will always contain null. Some of the other array elements will also always contain null. Below is a visual representation of the location of the border labels inside this array. The character 'X' represents a border label, and 'o' represents null.

     ~012345
     0oooooo
     1oXXXXX
     2oXoXoX
     3oXXXXX
     4oXoXoX
     5oXXXXX

#### buttonNextMonth

    javax.swing.JButton buttonNextMonth

#### buttonNextYear

    javax.swing.JButton buttonNextYear

#### buttonPreviousMonth

    javax.swing.JButton buttonPreviousMonth

#### buttonPreviousYear

    javax.swing.JButton buttonPreviousYear

#### calendarSelectionListeners

    java.util.ArrayList<CalendarSelectionListener> calendarSelectionListeners

calendarSelectionListeners, This holds a list of calendar selection listeners that wish to be notified each time that a date is selected in the calendar panel.

#### centerPanel

    javax.swing.JPanel centerPanel

#### dateLabels

    java.util.ArrayList<javax.swing.JLabel> dateLabels

dateLabels, This holds a list of all the date labels in the calendar, including ones that currently have dates or ones that are blank. This will always have exactly 42 labels. Date labels are reused when the currently displayed month or year is changed. The first date label is at index zero.

#### displayedSelectedDate

    java.time.LocalDate displayedSelectedDate

displayedSelectedDate, This stores a date that will be highlighted in the calendar as the "selected date", or it holds null if no date has been selected. This date is copied from the date picker when the calendar is opened. This should not be confused with the "lastValidDate" of a date picker object. This variable holds the selected date only for display purposes and internal CalendarPanel use.

#### displayedYearMonth

    java.time.YearMonth displayedYearMonth

displayedYearMonth, This stores the currently displayed year and month. This defaults to the current year and month. This will never be null.

#### doneEditingYearButton

    javax.swing.JButton doneEditingYearButton

#### footerPanel

    javax.swing.JPanel footerPanel

#### headerControlsPanel

    javax.swing.JPanel headerControlsPanel

JFormDesigner GUI components, These variables are automatically generated by JFormDesigner. This section should not be modified by hand, but only modified from within the JFormDesigner program.

#### isIndependentCalendarPanel

    boolean isIndependentCalendarPanel

isIndependentCalendarPanel, This indicates whether or not this is an independent calendar panel. This is true if this is an independent calendar panel, or false if this is a private calendar panel for a DatePicker instance.

#### labelClearDate

    javax.swing.JLabel labelClearDate

#### labelIndicatorEmptyBorder

    javax.swing.border.EmptyBorder labelIndicatorEmptyBorder

labelIndicatorEmptyBorder, This stores the empty border and the empty border size for the following labels: Month indicator, Year indicator, Set date to Today, Clear date.

#### labelMonth

    javax.swing.JLabel labelMonth

#### labelSetDateToToday

    javax.swing.JLabel labelSetDateToToday

#### labelYear

    javax.swing.JLabel labelYear

#### monthAndYearInnerPanel

    javax.swing.JPanel monthAndYearInnerPanel

#### monthAndYearOuterPanel

    javax.swing.JPanel monthAndYearOuterPanel

#### settings

    DatePickerSettings settings

settings, This holds a reference to the date picker settings for this calendar panel. This will never be null after it is initialized, but it could be null before setSettings() is called for the first time. Any functions that rely on the settings should check for null and return if null, before continuing the function.

#### topLeftLabel

    javax.swing.JLabel topLeftLabel

topLeftLabel, This holds the top left label, which lies at the intersection of the weekday labels row and the week number labels column.

#### weekdayLabels

    java.util.ArrayList<javax.swing.JLabel> weekdayLabels

weekdayLabels, This holds a list of all the weekday labels in the calendar. This will always have exactly 7 labels. Individual weekday labels can display different days of the week depending on the currently set "first day of the week". Weekday labels are reused when the currently displayed month or year is changed. The first weekday label is at index zero.

#### weekNumberLabels

    java.util.ArrayList<javax.swing.JLabel> weekNumberLabels

weekNumberLabels, This holds a list of all the week number labels in the calendar. This will always have exactly 6 labels. These are used to display the "week number of the year" for the calendar rows (the calendar weeks). These labels may or may not be visible, depending on the current DatePickerSettings. Week number labels are reused when the currently displayed month or year is changed. The first week number label is at index zero.

#### yearEditorPanel

    javax.swing.JPanel yearEditorPanel

#### yearTextField

    JIntegerTextField yearTextField

yearTextField, The year text field is displayed any time that the user clicks the ellipsis (...) inside the year selection drop down menu. This field allows the user to type year numbers using the keyboard when desired.

### Class com.github.lgooddatepicker.components.DatePicker extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### calendarPanel

    CalendarPanel calendarPanel

calendarPanel, This holds the calendar panel GUI component of this date picker. This should be null when the date picker calendar is closed, and hold a calendar panel instance when the date picker calendar is opened.

#### componentListeners

    java.util.ArrayList<ComponentListener> componentListeners

componentListeners, This holds any component listeners for the DatePicker.

#### convert

    Convert convert

convert, This utility class instance is used to get or set the DatePicker java.time.LocalDate value, using other common date related data types.

#### dateChangeListeners

    java.util.ArrayList<DateChangeListener> dateChangeListeners

dateChangeListeners, This holds a list of date change listeners that wish to be notified each time that the last valid date is changed.

#### dateTextField

    javax.swing.JTextField dateTextField

JFormDesigner GUI components, These variables are automatically generated by JFormDesigner. This section should not be modified by hand, but only modified from within the JFormDesigner program.

#### lastPopupCloseTime

    java.time.Instant lastPopupCloseTime

lastPopupCloseTime, This holds a timestamp that indicates when the calendar was last closed. This is used to implement a workaround for event behavior that was causing the date picker class to erroneously re-open a calendar when the user was clicking on the show calendar button in an attempt to close the previous calendar.

#### lastValidDate

    java.time.LocalDate lastValidDate

lastValidDate, This holds the last valid date that was entered into the date picker. This value is returned from the function DatePicker.getDate(); Implementation note: After initialization, variable should never be -set- directly. Instead, use the date setting function that will notify the list of dateChangeListeners each time that this value is changed.

#### popup

    CustomPopup popup

popup, This is the custom popup instance for this date picker. This should remain null until a popup is opened. Creating a custom popup class allowed us to control the details of when the popup menu should be open or closed.

#### settings

    DatePickerSettings settings

settings, This holds the settings instance for this date picker. Default settings are generated automatically. Custom settings may optionally be supplied in the DatePicker constructor. This will never be null after it is initialized, but it could be null before setSettings() is called for the first time. Any functions that rely on the settings should check for null and return if null, before continuing the function.

#### skipTextFieldChangedFunctionWhileTrue

    boolean skipTextFieldChangedFunctionWhileTrue

skipTextFieldChangedFunctionWhileTrue, While this is true, the function "zTextFieldChangedSoIndicateIfValidAndStoreWhenValid()" will not be executed in response to date text field text change events.

#### toggleCalendarButton

    javax.swing.JButton toggleCalendarButton

### Class com.github.lgooddatepicker.components.DateTimePicker extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### datePicker

    DatePicker datePicker

datePicker, This holds the date picker component of this DateTimePicker.

#### dateTimeChangeListeners

    java.util.ArrayList<DateTimeChangeListener> dateTimeChangeListeners

dateTimeChangeListeners, This holds a list of dateTimeChangeListeners that wish to be notified whenever the last valid date or the last valid time has changed.

#### timePicker

    TimePicker timePicker

timePicker, This holds the time picker component of this DateTimePicker.

### Class com.github.lgooddatepicker.components.TimePicker extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### decreaseButton

    javax.swing.JButton decreaseButton

#### decreaseTimer

    TimeSpinnerTimer decreaseTimer

#### enableArrowKeys

    boolean enableArrowKeys

enableArrowKeys, This determines if the arrow keys will be handled by this time picker. If this is true, then the up and down arrow keys can be used as spinner controls, and the right arrow will open the time picker menu. If this is false, then the arrow keys will not be handled. This is set to true by default.

#### increaseButton

    javax.swing.JButton increaseButton

#### increaseTimer

    TimeSpinnerTimer increaseTimer

#### lastPopupCloseTime

    java.time.Instant lastPopupCloseTime

lastPopupCloseTime, This holds a timestamp that indicates when the popup menu was last closed. This is used to implement a workaround for event behavior that was causing the time picker class to erroneously re-open the menu when the user was clicking on the show menu button in an attempt to close the previous menu.

#### lastValidTime

    java.time.LocalTime lastValidTime

lastValidTime, This holds the last valid time that was entered into the time picker. This value is returned from the function TimePicker.getTime(); Implementation note: After initialization, variable should never be -set- directly. Instead, use the time setting function that will notify the list of timeChangeListeners each time that this value is changed.

#### popup

    CustomPopup popup

popup, This is the custom popup instance for this time picker. This should remain null until a popup is opened. Creating a custom popup class allowed us to control the details of when the popup menu should be open or closed.

#### settings

    TimePickerSettings settings

settings, This holds the settings instance for this time picker. Default settings are generated automatically. Custom settings may optionally be supplied in the TimePicker constructor.

#### skipTextFieldChangedFunctionWhileTrue

    boolean skipTextFieldChangedFunctionWhileTrue

skipTextFieldChangedFunctionWhileTrue, While this is true, the function "zTextFieldChangedSoIndicateIfValidAndStoreWhenValid()" will not be executed in response to time text field text change events.

#### spinnerPanel

    javax.swing.JPanel spinnerPanel

#### timeChangeListeners

    java.util.ArrayList<TimeChangeListener> timeChangeListeners

timeChangeListeners, This holds a list of time change listeners that wish to be notified whenever the last valid time is changed.

#### timeMenuPanel

    TimeMenuPanel timeMenuPanel

timeMenuPanel, This holds the menu panel GUI component of this time picker. This should be null when the time picker menu is closed, and hold a time menu panel instance when the time picker menu is opened.

#### timeTextField

    javax.swing.JTextField timeTextField

JFormDesigner GUI components, These variables are automatically generated by JFormDesigner. This section should not be modified by hand, but only modified from within the JFormDesigner program.

#### toggleTimeMenuButton

    javax.swing.JButton toggleTimeMenuButton

## Package com.github.lgooddatepicker.demo

### Class com.github.lgooddatepicker.demo.BasicDemo extends javax.swing.JFrame implements Serializable

### Class com.github.lgooddatepicker.demo.TableEditorsDemo extends javax.swing.JPanel implements Serializable

### Class com.github.lgooddatepicker.demo.zExtra_DataBindingDemo extends javax.swing.JFrame implements Serializable

## Package com.github.lgooddatepicker.durationpicker_underconstruction

### Class com.github.lgooddatepicker.durationpicker_underconstruction.DurationDemo extends javax.swing.JFrame implements Serializable

### Class com.github.lgooddatepicker.durationpicker_underconstruction.DurationPicker extends javax.swing.JComboBox implements Serializable

### Serialized Fields

#### allowEmptyDuration

    boolean allowEmptyDuration

#### allowMaximumDuration

    java.time.Duration allowMaximumDuration

#### allowMinimumDuration

    java.time.Duration allowMinimumDuration

#### allowZeroDuration

    boolean allowZeroDuration

#### converterSettings

    DurationConverterSettings converterSettings

## Package com.github.lgooddatepicker.tableeditors

### Class com.github.lgooddatepicker.tableeditors.DateTableEditor extends javax.swing.AbstractCellEditor implements Serializable

### Serialized Fields

#### autoAdjustMinimumTableRowHeight

    boolean autoAdjustMinimumTableRowHeight

autoAdjustMinimumTableRowHeight, This indicates whether the minimum table row height (for all rows) should be modified when an editor or render is displayed. The row height is only adjusted if it is below the minimum value needed to display the date picker component.

#### borderFocusedCell

    javax.swing.border.Border borderFocusedCell

borderFocusedCell, This holds the border that is used when a cell has focus.

#### borderUnfocusedCell

    javax.swing.border.Border borderUnfocusedCell

borderUnfocusedCell, This holds the border that is used when a cell does not have focus.

#### clickCountToEdit

    int clickCountToEdit

clickCountToEdit, An integer specifying the number of clicks needed to start editing. Even if clickCountToEdit is defined as zero, it will not initiate until a click occurs.

#### datePicker

    DatePicker datePicker

datepicker, This holds the date picker instance.

#### matchTableBackgroundColor

    boolean matchTableBackgroundColor

matchTableBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table. The default value is true.

#### matchTableSelectionBackgroundColor

    boolean matchTableSelectionBackgroundColor

matchTableSelectionBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table selection (when selected). The default value is true.

#### minimumRowHeightInPixels

    int minimumRowHeightInPixels

minimumRowHeight, This holds the minimum row height needed to display the date picker.

### Class com.github.lgooddatepicker.tableeditors.DateTimeTableEditor extends javax.swing.AbstractCellEditor implements Serializable

### Serialized Fields

#### autoAdjustMinimumTableRowHeight

    boolean autoAdjustMinimumTableRowHeight

autoAdjustMinimumTableRowHeight, This indicates whether the minimum table row height (for all rows) should be modified when an editor or render is displayed. The row height is only adjusted if it is below the minimum value needed to display the DateTimePicker component.

#### borderFocusedCell

    javax.swing.border.Border borderFocusedCell

borderFocusedCell, This holds the border that is used when a cell has focus.

#### borderUnfocusedCell

    javax.swing.border.Border borderUnfocusedCell

borderUnfocusedCell, This holds the border that is used when a cell does not have focus.

#### clickCountToEdit

    int clickCountToEdit

clickCountToEdit, An integer specifying the number of clicks needed to start editing. Even if clickCountToEdit is defined as zero, it will not initiate until a click occurs.

#### dateTimePicker

    DateTimePicker dateTimePicker

dateTimepicker, This holds the DateTimePicker instance.

#### matchTableBackgroundColor

    boolean matchTableBackgroundColor

matchTableBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table. The default value is true.

#### matchTableSelectionBackgroundColor

    boolean matchTableSelectionBackgroundColor

matchTableSelectionBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table selection (when selected). The default value is true.

#### minimumRowHeightInPixels

    int minimumRowHeightInPixels

minimumRowHeight, This holds the minimum row height needed to display the DateTimePicker.

### Class com.github.lgooddatepicker.tableeditors.TimeTableEditor extends javax.swing.AbstractCellEditor implements Serializable

### Serialized Fields

#### autoAdjustMinimumTableRowHeight

    boolean autoAdjustMinimumTableRowHeight

autoAdjustMinimumTableRowHeight, This indicates whether the minimum table row height (for all rows) should be modified when an editor or render is displayed. The row height is only adjusted if it is below the minimum value needed to display the time picker component.

#### borderFocusedCell

    javax.swing.border.Border borderFocusedCell

borderFocusedCell, This holds the border that is used when a cell has focus.

#### borderUnfocusedCell

    javax.swing.border.Border borderUnfocusedCell

borderUnfocusedCell, This holds the border that is used when a cell does not have focus.

#### clickCountToEdit

    int clickCountToEdit

clickCountToEdit, An integer specifying the number of clicks needed to start editing. Even if clickCountToEdit is defined as zero, it will not initiate until a click occurs.

#### matchTableBackgroundColor

    boolean matchTableBackgroundColor

matchTableBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table. The default value is true.

#### matchTableSelectionBackgroundColor

    boolean matchTableSelectionBackgroundColor

matchTableSelectionBackgroundColor, This indicates whether this table editor should set the picker text area background color to match the background color of the table selection (when selected). The default value is true.

#### minimumRowHeightInPixels

    int minimumRowHeightInPixels

minimumRowHeight, This holds the minimum row height needed to display the time picker.

#### timePicker

    TimePicker timePicker

timepicker, This holds the time picker instance.

## Package com.github.lgooddatepicker.ysandbox

### Class com.github.lgooddatepicker.ysandbox.ComboBoxTesting extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### comboBox1

    javax.swing.JComboBox comboBox1

#### spinner1

    javax.swing.JSpinner spinner1

#### textField1

    javax.swing.JTextField textField1

#### textField2

    javax.swing.JTextField textField2

## Package com.github.lgooddatepicker.zinternaltools

### Class com.github.lgooddatepicker.zinternaltools.DemoPanel extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### calendarPanelNotesTextArea

    javax.swing.JTextArea calendarPanelNotesTextArea

#### independentCalendarOuterPanel

    javax.swing.JPanel independentCalendarOuterPanel

#### independentCalendarPanel

    javax.swing.JPanel independentCalendarPanel

#### labelFeatures

    javax.swing.JLabel labelFeatures

#### labelFeatures2

    javax.swing.JLabel labelFeatures2

#### labelFeatures3

    javax.swing.JLabel labelFeatures3

#### labelLanguages

    javax.swing.JLabel labelLanguages

#### messageTextArea

    javax.swing.JTextArea messageTextArea

#### messageTextAreaScrollPane

    javax.swing.JScrollPane messageTextAreaScrollPane

#### outerButtonPanel

    javax.swing.JPanel outerButtonPanel

#### panel1

    javax.swing.JPanel panel1

#### panel2

    javax.swing.JPanel panel2

#### panel4

    javax.swing.JPanel panel4

#### scrollPaneDate

    javax.swing.JScrollPane scrollPaneDate

#### scrollPaneForButtons

    javax.swing.JScrollPane scrollPaneForButtons

#### scrollPaneForCalendarPanelNotes

    javax.swing.JScrollPane scrollPaneForCalendarPanelNotes

#### scrollPaneForIndependentCalendar

    javax.swing.JScrollPane scrollPaneForIndependentCalendar

#### scrollPaneLanguages

    javax.swing.JScrollPane scrollPaneLanguages

#### scrollPaneTime

    javax.swing.JScrollPane scrollPaneTime

### Class com.github.lgooddatepicker.zinternaltools.JIntegerTextField extends javax.swing.JTextField implements Serializable

### Serialized Fields

#### maximumValue

    int maximumValue

#### minimumValue

    int minimumValue

#### numberChangeListener

    JIntegerTextField.IntegerTextFieldNumberChangeListener numberChangeListener

#### skipNotificationOfNumberChangeListenerWhileTrue

    boolean skipNotificationOfNumberChangeListenerWhileTrue

### Class com.github.lgooddatepicker.zinternaltools.TimeMenuPanel extends javax.swing.JPanel implements Serializable

### Serialized Fields

#### minimumMouseReleaseFromToggleButtonMilliseconds

    int minimumMouseReleaseFromToggleButtonMilliseconds

minimumMouseReleaseFromToggleButtonMilliseconds, This is how long we should wait, before allowing the time menu panel to be closed during a mouse release event that originates from the toggle button. This is used to prevent accidental premature list closing when pressing the toggle button and moving the mouse downwards. The mouse release event from the toggle button will only be enabled after this amount of time has passed since construction.

#### minimumTimeToEnableMouseReleaseFromToggleButton

    long minimumTimeToEnableMouseReleaseFromToggleButton

minimumTimeToEnableMouseReleaseFromToggleButton, This is the "currentTimeMillis()" value that must be passed, to enable the mouse release event from the toggle button. This equals ((System.currentTimeMillis() at construction) + minimumMouseReleaseCloseMilliSeconds). This is calculated at the end of the constructor.

#### parentTimePicker

    TimePicker parentTimePicker

parentTimePicker, This holds our parent time picker instance. This is supplied at construction.

#### settings

    TimePickerSettings settings

settings, This holds our time picker settings instance. This is supplied at construction.

#### timeList

    javax.swing.JList timeList

#### timeListModel

    javax.swing.DefaultListModel timeListModel

timeListModel, The holds the list model that is used for populating the time list.

#### timeScrollPane

    javax.swing.JScrollPane timeScrollPane

### Class com.github.lgooddatepicker.zinternaltools.WrapLayout extends java.awt.FlowLayout implements Serializable

### Serialized Fields

#### preferredLayoutSize

    java.awt.Dimension preferredLayoutSize

## Package com.privatejgoodies.common.bean

### Class com.privatejgoodies.common.bean.Bean extends java.lang.Object implements Serializable

## Package com.privatejgoodies.forms.factories

### Class com.privatejgoodies.forms.factories.CC extends java.lang.Object implements Serializable

## Package com.privatejgoodies.forms.layout

### Class com.privatejgoodies.forms.layout.BoundedSize extends java.lang.Object implements Serializable

### Serialized Fields

#### basis

    Size basis

Holds the base size.

#### lowerBound

    Size lowerBound

Holds an optional lower bound.

#### upperBound

    Size upperBound

Holds an optional upper bound.

### Class com.privatejgoodies.forms.layout.CellConstraints extends java.lang.Object implements Serializable

### Serialized Fields

#### gridHeight

    int gridHeight

Describes the component's vertical grid extent (number of cells).

#### gridWidth

    int gridWidth

Describes the component's horizontal grid extend (number of cells).

#### gridX

    int gridX

Describes the component's horizontal grid origin (starts at 1).

#### gridY

    int gridY

Describes the component's vertical grid origin (starts at 1).

#### hAlign

    CellConstraints.Alignment hAlign

Describes the component's horizontal alignment.

#### honorsVisibility

    java.lang.Boolean honorsVisibility

Describes whether individual components shall be taken into account by the FormLayout if 1) they are invisible and 2) the FormLayout does not honor the visibility. See `FormLayout.setHonorsVisibility(boolean)` and `FormLayout.setHonorsVisibility(Component, Boolean)` for a full description of this feature.

#### insets

    java.awt.Insets insets

Describes the component's `Insets` in it's display area.

#### vAlign

    CellConstraints.Alignment vAlign

Describes the component's vertical alignment.

### Class com.privatejgoodies.forms.layout.CellConstraints.Alignment extends java.lang.Object implements Serializable

### Serialization Methods

#### readResolve

    private java.lang.Object readResolve()

### Serialized Fields

#### ordinal

    int ordinal

### Class com.privatejgoodies.forms.layout.ColumnSpec extends FormSpec implements Serializable

### Class com.privatejgoodies.forms.layout.ConstantSize extends java.lang.Object implements Serializable

### Serialized Fields

#### unit

    ConstantSize.Unit unit

#### value

    double value

### Class com.privatejgoodies.forms.layout.ConstantSize.Unit extends java.lang.Object implements Serializable

### Serialization Methods

#### readResolve

    private java.lang.Object readResolve()

### Serialized Fields

#### ordinal

    int ordinal

### Class com.privatejgoodies.forms.layout.FormLayout extends java.lang.Object implements Serializable

### Serialization Methods

#### writeObject

    private void writeObject​(java.io.ObjectOutputStream out)
                      throws java.io.IOException

In addition to the default serialization mechanism this class invalidates the component size cache. The cache will be populated again after the deserialization. Also, the fields `colComponents` and `rowComponents` have been marked as transient to exclude them from the serialization.

Throws:
  `java.io.IOException`

### Serialized Fields

#### colGroupIndices

    int[][] colGroupIndices

Holds the column groups as an array of arrays of column indices.

See Also:
  `FormLayout.getColumnGroups()`, `FormLayout.setColumnGroups(int[][])`, `FormLayout.addGroupedColumn(int)`

#### colSpecs

    java.util.List<ColumnSpec> colSpecs

Holds the column specifications.

See Also:
  `ColumnSpec`, `FormLayout.getColumnCount()`, `FormLayout.getColumnSpec(int)`, `FormLayout.appendColumn(ColumnSpec)`, `FormLayout.insertColumn(int, ColumnSpec)`, `FormLayout.removeColumn(int)`

#### componentSizeCache

    com.privatejgoodies.forms.layout.FormLayout.ComponentSizeCache componentSizeCache

Caches component minimum and preferred sizes. All requests for component sizes shall be directed to the cache.

#### constraintMap

    java.util.Map<java.awt.Component,​CellConstraints> constraintMap

Maps components to their associated `CellConstraints`.

See Also:
  `CellConstraints`, `FormLayout.getConstraints(Component)`, `FormLayout.setConstraints(Component, CellConstraints)`

#### honorsVisibility

    boolean honorsVisibility

#### minimumHeightMeasure

    FormLayout.Measure minimumHeightMeasure

#### minimumWidthMeasure

    FormLayout.Measure minimumWidthMeasure

These functional objects are used to measure component sizes. They abstract from horizontal and vertical orientation and so, allow to implement the layout algorithm for both orientations with a single set of methods.

#### preferredHeightMeasure

    FormLayout.Measure preferredHeightMeasure

#### preferredWidthMeasure

    FormLayout.Measure preferredWidthMeasure

#### rowGroupIndices

    int[][] rowGroupIndices

Holds the row groups as an array of arrays of row indices.

See Also:
  `FormLayout.getRowGroups()`, `FormLayout.setRowGroups(int[][])`, `FormLayout.addGroupedRow(int)`

#### rowSpecs

    java.util.List<RowSpec> rowSpecs

Holds the row specifications.

See Also:
  `RowSpec`, `FormLayout.getRowCount()`, `FormLayout.getRowSpec(int)`, `FormLayout.appendRow(RowSpec)`, `FormLayout.insertRow(int, RowSpec)`, `FormLayout.removeRow(int)`

### Class com.privatejgoodies.forms.layout.FormSpec extends java.lang.Object implements Serializable

### Serialized Fields

#### defaultAlignment

    FormSpec.DefaultAlignment defaultAlignment

Holds the default alignment that will be used if a cell does not override this default.

#### resizeWeight

    double resizeWeight

Holds the resize weight; is 0 if not used.

#### size

    Size size

Holds the size that describes how to size this column or row.

### Class com.privatejgoodies.forms.layout.FormSpec.DefaultAlignment extends java.lang.Object implements Serializable

### Serialization Methods

#### readResolve

    private java.lang.Object readResolve()

### Serialized Fields

#### ordinal

    int ordinal

### Class com.privatejgoodies.forms.layout.FormSpecParser.FormLayoutParseException extends java.lang.RuntimeException implements Serializable

### Class com.privatejgoodies.forms.layout.PrototypeSize extends java.lang.Object implements Serializable

### Serialized Fields

#### prototype

    java.lang.String prototype

### Class com.privatejgoodies.forms.layout.RowSpec extends FormSpec implements Serializable

## Package com.privatejgoodies.forms.util

### Class com.privatejgoodies.forms.util.AbstractUnitConverter extends Bean implements Serializable

### Class com.privatejgoodies.forms.util.DefaultUnitConverter extends AbstractUnitConverter implements Serializable

### Serialized Fields

#### averageCharWidthTestString

    java.lang.String averageCharWidthTestString

Holds the string that is used to compute the average character width. Since 1.6 the default value is the balanced average character test string, where it was just "X" before.

#### cachedDefaultDialogFont

    java.awt.Font cachedDefaultDialogFont

Holds a cached default dialog font that is used as fallback, if no default dialog font has been set.

See Also:
  `DefaultUnitConverter.getDefaultDialogFont()`, `DefaultUnitConverter.setDefaultDialogFont(Font)`

#### cachedDialogBaseUnits

    com.privatejgoodies.forms.util.DefaultUnitConverter.DialogBaseUnits cachedDialogBaseUnits

Holds the horizontal dialog base units that are valid for the FontMetrics stored in `cachedFontMetrics`.

#### cachedFontMetrics

    java.awt.FontMetrics cachedFontMetrics

Holds the FontMetrics used to compute the per-component dialog units. The latter are valid, if a FontMetrics equals this stored metrics.

#### cachedGlobalDialogBaseUnits

    com.privatejgoodies.forms.util.DefaultUnitConverter.DialogBaseUnits cachedGlobalDialogBaseUnits

Holds the lazily created cached global dialog base units that are used if a component is not (yet) available - for example in a Border.

#### defaultDialogFont

    java.awt.Font defaultDialogFont

Holds a custom font that is used to compute the global dialog base units. If not set, a fallback font is is lazily created in method #getCachedDefaultDialogFont, which in turn looks up a font in method #lookupDefaultDialogFont.