A class for managing a set of components to be used as renderers for a table cell.
A trait for extracting the selected property from a cell.
A trait for extracting the selected property from a cell.
This trait is mainly used for testing purposes. A cell's selected state cannot be set manually. Therefore, some tricks are needed to manipulate this flag in a unit test.
A trait for table cell implementations that use a net.sf.jguiraffe.gui.builder.components.tags.table.TableFormController.
A trait for table cell implementations that use a net.sf.jguiraffe.gui.builder.components.tags.table.TableFormController.
This trait provides basic functionality for obtaining the current value of the cell from the controller or updating it. It can be mixed into concrete table cell implementations.
the type of elements contained in the current column
the element type of the table view
A specialized TableCell implementation for displaying an icon.
A specialized TableCell implementation for displaying an icon.
This cell expects that the form property it is associated with is of type net.sf.jguiraffe.gui.platform.javafx.common.ImageWrapper. It sets up a graphical node which displays the image wrapped by this object. The binding to properties is managed by a net.sf.jguiraffe.gui.builder.components.tags.table.TableFormController object.
the type of the objects stored in the table
A factory for table handlers.
A factory for table handlers.
This is the public entry point into the package for table components. This class deals with the multiple helper objects required for the implementation of JavaFX table views. From the outside, there is only a single method for creating a TableHandler object. Internally, a lot of stuff happens to ensure that a TableView is created and initialized with all of its columns and its content according to the properties defined by a passed in net.sf.jguiraffe.gui.builder.components.tags.table.TableFormController object.
A trait for extracting the width of a table view.
A trait for extracting the width of a table view.
This trait is analogous to net.sf.jguiraffe.gui.platform.javafx.builder.components.table.ColumnWidthExtractor. It provides functionality for accessing the width property of a table and reading its value. This is mainly useful for unit tests because there is no easy way to manipulate or mock the width of a table.
Companion object for CellComponentManager.
Companion object for TableViewWidthChangeListener.
A class for managing a set of components to be used as renderers for a table cell.
The API of the JGUIraffe library allows that the display of a column in a table is defined using a renderer form. In contrast to the Swing-specific implementation (where the content of this form can simply be used as renderer component), in JavaFX this is not trivial to achieve. Here the main problem is that components (Nodes) may appear only once in the scene graph. Therefore, affected components have to be created multiple times - once for each existing table cell.
This class implements a solution for this problem. It works as follows: $ - A special proxy implementation for the ComponentManager interface is provided. Such a proxy is installed when a new form context for a column form is opened. $ - The special ComponentManager creates special ComponentHandler objects which are not associated with a specific control, but dynamically delegate to another handler based on the currently active table cell. $ - When a new cell is created, this object is asked to replay the body of the tag which has created the form context for a column. This time, the original ComponentManager is used; so the actual UI for this specific cell is created. $ - When the cell needs access to its data it ensures that it is selected as the active cell. Thus, the special ComponentHandler objects know from where to access the actual data.