TreeTableColumn

class TreeTableColumn[S, T](val delegate: TreeTableColumn[S, T]) extends TableColumnBase[TreeItem[S], T] with SFXDelegate[TreeTableColumn[S, T]]
Type Params
S

The type of the TreeTableView generic type (i.e. S == TreeTableView)

T

The type of the content in all cells in this TreeTableColumn.

Value Params
delegate

A JavaFX TreeTableColumn to be wrapped. Its default value is a new JavaFX TreeTableColumn.

Constructor

Creates a new TreeTableColumn from a JavaFX one.

Since

8.0

Companion
object
class TableColumnBase[TreeItem[S], T]
trait Styleable
trait SFXDelegate[TreeTableColumn[S, T]]
class Object
trait Matchable
class Any

Type members

Inherited classlikes

Trait used for handle events manipulation. JavaFX class wrapped must have methods defined in scalafx.event.EventHandlerDelegate1.EventHandled Type:

Trait used for handle events manipulation. JavaFX class wrapped must have methods defined in scalafx.event.EventHandlerDelegate1.EventHandled Type:

def addEventHandler   [E <: jfxe.Event](eventType: jfxe.EventType[E], eventHandler: jfxe.EventHandler[E])
def removeEventHandler[E <: jfxe.Event](eventType: jfxe.EventType[E], eventHandler: jfxe.EventHandler[E])
def addEventFilter    [E <: jfxe.Event](eventType: jfxe.EventType[E], eventHandler: jfxe.EventHandler[E])
def removeEventFilter [E <: jfxe.Event](eventType: jfxe.EventType[E], eventHandler: jfxe.EventHandler[E])
def buildEventDispatchChain(chain: jfxe.EventDispatchChain): jfxe.EventDispatchChain
Inherited from
EventHandlerDelegate1
object FilterMagnet

Companion object implementing Magnet Pattern Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Companion object implementing Magnet Pattern Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Inherited from
EventHandlerDelegate1
sealed trait FilterMagnet[J <: Event, S <: SFXDelegate[J]]

Trait implementing Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Trait implementing Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Inherited from
EventHandlerDelegate1
sealed trait HandlerMagnet[J <: Event, S <: SFXDelegate[J]]

Trait implementing Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Trait implementing Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Inherited from
EventHandlerDelegate1

Companion object implementing Magnet Pattern Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Companion object implementing Magnet Pattern Magnet Pattern to avoid compilation error "ambiguous reference to overloaded definition"

Inherited from
EventHandlerDelegate1

Value members

Constructors

def this(text: String)

Creates a TreeTableColumn with the text set to the provided string, with default cell factory, comparator, and onEditCommit implementation.

Creates a TreeTableColumn with the text set to the provided string, with default cell factory, comparator, and onEditCommit implementation.

Value Params
text

The string to show when the TreeTableColumn is placed within the TreeTableView.

Concrete methods

The cell factory for all cells in this column. The cell factory is responsible for rendering the data contained within each TreeTableCell for a single TreeTableColumn.

The cell factory for all cells in this column. The cell factory is responsible for rendering the data contained within each TreeTableCell for a single TreeTableColumn.

By default TreeTableColumn uses a default cell factory, but this can be replaced with a custom implementation, for example to show data in a different way or to support editing. There is a lot of documentation on creating custom cell factories elsewhere (see Cell and TreeTableView for example).

Finally, there are a number of pre-built cell factories available in the javafx.scene.control.cell package.

def cellFactory_=(f: TreeTableColumn[S, T] => TreeTableCell[S, T]): Unit
def cellFactory_=(callback: Callback[TreeTableColumn[S, T], TreeTableCell[S, T]]): Unit
def cellObservableValue(index: Int): ObservableValue[T, T]

Attempts to return an ObservableValue for the item in the given index (which is of type S). In other words, this method expects to receive an integer value that is greater than or equal to zero, and less than the size of the underlying data model. If the index is valid, this method will return an ObservableValue for this specific column.

Attempts to return an ObservableValue for the item in the given index (which is of type S). In other words, this method expects to receive an integer value that is greater than or equal to zero, and less than the size of the underlying data model. If the index is valid, this method will return an ObservableValue for this specific column.

This is achieved by calling the cell value factory, and returning whatever it returns when passed a CellDataFeatures (see, for example, the CellDataFeatures classes belonging to TableColumn and TreeTableColumn for more information).

Value Params
index

The index of the item (of type S) for which an ObservableValue is sought.

Returns

An ObservableValue for this specific table column.

Attempts to return an ObservableValue for the given item (which is of type S). In other words, this method expects to receive an object from the underlying data model for the entire 'row' in the table, and it must return an ObservableValue for the value in this specific column.

Attempts to return an ObservableValue for the given item (which is of type S). In other words, this method expects to receive an object from the underlying data model for the entire 'row' in the table, and it must return an ObservableValue for the value in this specific column.

This is achieved by calling the cell value factory, and returning whatever it returns when passed a CellDataFeatures (see, for example, the CellDataFeatures classes belonging to TableColumn and TreeTableColumn for more information).

Value Params
item

The item (of type S) for which an ObservableValue is sought.

Returns

An ObservableValue for this specific table column.

The cell value factory needs to be set to specify how to populate all cells within a single TreeTableColumn. A cell value factory is a Callback that provides a TreeTableColumn.CellDataFeatures instance, and expects an ObservableValue to be returned. The returned ObservableValue instance will be observed internally to allow for updates to the value to be immediately reflected on screen.

The cell value factory needs to be set to specify how to populate all cells within a single TreeTableColumn. A cell value factory is a Callback that provides a TreeTableColumn.CellDataFeatures instance, and expects an ObservableValue to be returned. The returned ObservableValue instance will be observed internally to allow for updates to the value to be immediately reflected on screen.

An example of how to set a cell value factory is:

 // p.value returns the TreeItem[Person] instance for a particular TreeTableView row,
 // p.value.value returns the Person instance inside the TreeItem[Person]
 cellValueFactory = { p => p.value.value.firstName }

A simple complete example (from scalafx-demos SimpleTreeTableView):

 import scalafx.application.JFXApp
 import scalafx.application.JFXApp.PrimaryStage
 import scalafx.controls.tableview.Person
 import scalafx.scene.Scene
 import scalafx.scene.control.{TreeTableColumn, TreeTableView, TreeItem}
 import scalafx.scene.control.TreeTableColumn._

 object SimpleTreeTableView extends JFXApp {

   val treeRoot = new TreeItem[Person](new Person("Peggy", "Sue", "555-6798"))
   treeRoot.children.add(new TreeItem[Person](new Person("Rocky", "Raccoon", "555-6798")))


   stage = new PrimaryStage {
     title = "Simple Table View"
     scene = new Scene {
       content = new TreeTableView[Person](treeRoot) {
         columns ++= List(
           new TreeTableColumn[Person, String] {
             text = "First Name"
             cellValueFactory = {_.value.getValue.firstName}
             prefWidth = 180
           },
           new TreeTableColumn[Person, String]() {
             text = "Last Name"
             cellValueFactory = {_.value.getValue.lastName}
             prefWidth = 180
           }
         )
       }
     }
   }
 }

A common approach is to want to populate cells in a TreeTableColumn using a single value from a Java bean. To support this common scenario, there is the TreeItemPropertyValueFactory class. Refer to this class for more information on how to use it, but briefly here is how the above use case could be simplified using the TreeItemPropertyValueFactory class:

firstNameCol.cellValueFactory = new TreeItemPropertyValueFactoryPerson,String)

def columns: ObservableBuffer[TreeTableColumn[S, _]]

This enables support for nested columns, which can be useful to group together related data. For example, we may have a 'Name' column with two nested columns for 'First' and 'Last' names.

This enables support for nested columns, which can be useful to group together related data. For example, we may have a 'Name' column with two nested columns for 'First' and 'Last' names.

This has no impact on the table as such - all column indices point to the leaf columns only, and it isn't possible to sort using the parent column, just the leaf columns. In other words, this is purely a visual feature.

Returns

An ObservableBuffer containing TableColumnBase instances (or subclasses) that are the children of this TableColumnBase. If these children TableColumnBase instances are set as visible, they will appear beneath this table column.

override def cssMetaData: Seq[CssMetaData[_ <: Styleable, _]]

The CssMetaData of this Styleable. This may be returned as an unmodifiable list.

The CssMetaData of this Styleable. This may be returned as an unmodifiable list.

Definition Classes
def onEditCancel: ObjectProperty[EventHandler[CellEditEvent[S, T]]]

This event handler will be fired when the user cancels editing a cell.

This event handler will be fired when the user cancels editing a cell.

def onEditCancel_=(v: EventHandler[CellEditEvent[S, T]]): Unit
def onEditCommit: ObjectProperty[EventHandler[CellEditEvent[S, T]]]

This event handler will be fired when the user successfully commits their editing.

This event handler will be fired when the user successfully commits their editing.

def onEditCommit_=(v: EventHandler[CellEditEvent[S, T]]): Unit
def onEditStart: ObjectProperty[EventHandler[CellEditEvent[S, T]]]

This event handler will be fired when the user successfully initiates editing.

This event handler will be fired when the user successfully initiates editing.

def onEditStart_=(v: EventHandler[CellEditEvent[S, T]]): Unit
def sortType: ObjectProperty[SortType]

Used to state whether this column, if it is part of the TableView.sortOrder ObservableList, should be sorted in ascending or descending order.

Used to state whether this column, if it is part of the TableView.sortOrder ObservableList, should be sorted in ascending or descending order.

def sortType_=(v: SortType): Unit
def treeTableView: ReadOnlyObjectProperty[TreeTableView[S]]

The TreeTableView that this TreeTableColumn belongs to.

The TreeTableView that this TreeTableColumn belongs to.

Inherited methods

def addEventFilter[E <: Event](eventType: EventType[E], eventHandler: EventHandler[E]): Unit

Registers an event filter to this task. Registered event filters get an event before any associated event handlers.

Registers an event filter to this task. Registered event filters get an event before any associated event handlers.

Type Params
E

Event class

Value Params
eventHandler

the filter to register that will filter event

eventType

the type of the events to receive by the filter

Inherited from
EventHandlerDelegate1
def addEventHandler[E <: Event](eventType: EventType[E], eventHandler: EventHandler[E]): Unit

Registers an event handler to this task. Any event filters are first processed, then the specified onFoo event handlers, and finally any event handlers registered by this method. As with other events in the scene graph, if an event is consumed, it will not continue dispatching.

Registers an event handler to this task. Any event filters are first processed, then the specified onFoo event handlers, and finally any event handlers registered by this method. As with other events in the scene graph, if an event is consumed, it will not continue dispatching.

Type Params
E

Event class

Value Params
eventHandler

the handler to register that will manipulate event

eventType

the type of the events to receive by the handler

Inherited from
EventHandlerDelegate1
def buildEventDispatchChain(chain: EventDispatchChain): EventDispatchChain

Construct an event dispatch chain for this target.

Construct an event dispatch chain for this target.

Inherited from
EventHandlerDelegate1
def comparator: ObjectProperty[Comparator[T]]

Comparator function used when sorting this TableColumnBase.

Comparator function used when sorting this TableColumnBase.

Inherited from
TableColumnBase
def comparator_=(v: Ordering[T]): Unit
Inherited from
TableColumnBase
def contextMenu: ObjectProperty[ContextMenu]

This menu will be shown whenever the user right clicks within the header area of this TableColumnBase.

This menu will be shown whenever the user right clicks within the header area of this TableColumnBase.

Inherited from
TableColumnBase
def contextMenu_=(v: ContextMenu): Unit
Inherited from
TableColumnBase

Specifies whether this TableColumnBase allows editing.

Specifies whether this TableColumnBase allows editing.

Inherited from
TableColumnBase
def editable_=(v: Boolean): Unit
Inherited from
TableColumnBase
override def equals(ref: Any): Boolean

Verifies if a object is equals to this delegate.

Verifies if a object is equals to this delegate.

Value Params
ref

Object to be compared.

Returns

if the other object is equals to this delegate or not.

Definition Classes
Inherited from
SFXDelegate
def filterEvent[J <: Event, S <: Event & SFXDelegate[J]](eventType: EventType[J])(filter: FilterMagnet[J, S]): Subscription

Registers an event filter. Registered event filters get an event before any associated event handlers.

Registers an event filter. Registered event filters get an event before any associated event handlers.

Example of filtering mouse events

pane.filterEvent(MouseEvent.Any) {
  me: MouseEvent => {
    me.eventType match {
      case MouseEvent.MousePressed => {
        ...
      }
      case MouseEvent.MouseDragged => {
        ...
      }
      case _ => {
        ...
      }
    }
  }
}

or

pane.filterEvent(MouseEvent.Any) { () => println("Some mouse event handled") }
Type Params
J

type JavaFX delegate of the event

S

ScalaFX type for J type wrapper.

Value Params
eventType

type of events that will be handled.

filter

code handling the event, see examples above.

Inherited from
EventHandlerDelegate1
def getCellData(index: TreeItem[S]): T

Returns the actual value for a cell from the given item.

Returns the actual value for a cell from the given item.

Inherited from
TableColumnBase
def getCellData(index: Int): T

Returns the actual value for a cell at a given row index (and which belongs to this TableColumnBase).

Returns the actual value for a cell at a given row index (and which belongs to this TableColumnBase).

Inherited from
TableColumnBase
def getId: String

The id of this Styleable.

The id of this Styleable.

IMPLEMENTATION NOTE: For this method was adopted the name getId instead id to not conflict with its subclasses already have a method with this name which returns a StringProperty.

Inherited from
Styleable
def getStyle: String

A string representation of the CSS style associated with this specific Node.

A string representation of the CSS style associated with this specific Node.

IMPLEMENTATION NOTE: For this method was adopted the name getStyle instead style to not conflict with its subclasses already have a method with this name which returns a StringProperty.

Inherited from
Styleable

The graphic in the TableColumnBase.

The graphic in the TableColumnBase.

Inherited from
TableColumnBase
def graphic_=(v: Node): Unit
Inherited from
TableColumnBase
def handleEvent[J <: Event, S <: Event & SFXDelegate[J]](eventType: EventType[J])(handler: HandlerMagnet[J, S]): Subscription

Registers an event handler. The handler is called when the node receives an Event of the specified type during the bubbling phase of event delivery.

Registers an event handler. The handler is called when the node receives an Event of the specified type during the bubbling phase of event delivery.

Example of handling mouse events

pane.handleEvent(MouseEvent.Any) {
  me: MouseEvent => {
    me.eventType match {
      case MouseEvent.MousePressed => ...
      case MouseEvent.MouseDragged => ...
      case _                       => {}
    }
  }
}

or

pane.handleEvent(MouseEvent.Any) { () => println("Some mouse event handled") }
Type Params
J

type JavaFX delegate of the event

S

ScalaFX type for J type wrapper.

Value Params
eventType

type of events that will be handled.

handler

code handling the event, see examples above.

Returns

Returns a subscription that can be used to cancel/remove this event handler

Inherited from
EventHandlerDelegate1
def hasProperties: Boolean

Tests if this TableColumnBase has properties.

Tests if this TableColumnBase has properties.

Inherited from
TableColumnBase
override def hashCode: Int
Returns

The delegate hashcode

Definition Classes
Inherited from
SFXDelegate

The id of this TableColumnBase.

The id of this TableColumnBase.

Inherited from
TableColumnBase
def id_=(v: String): Unit
Inherited from
TableColumnBase

The maximum width the TableColumnBase is permitted to be resized to.

The maximum width the TableColumnBase is permitted to be resized to.

Inherited from
TableColumnBase
def maxWidth_=(v: Double): Unit
Inherited from
TableColumnBase

The minimum width the TableColumnBase is permitted to be resized to.

The minimum width the TableColumnBase is permitted to be resized to.

Inherited from
TableColumnBase
def minWidth_=(v: Double): Unit
Inherited from
TableColumnBase
def parentColumn: ReadOnlyObjectProperty[TableColumnBase[TreeItem[S], _]]

This read-only property will always refer to the parent of this column, in the situation where nested columns are being used.

This read-only property will always refer to the parent of this column, in the situation where nested columns are being used.

Inherited from
TableColumnBase

The preferred width of the TableColumnBase.

The preferred width of the TableColumnBase.

Inherited from
TableColumnBase
def prefWidth_=(v: Double): Unit
Inherited from
TableColumnBase
def pseudoClassStates: ObservableSet[PseudoClass]

The pseudo-class state of this Styleable.

The pseudo-class state of this Styleable.

Inherited from
Styleable
def removeEventFilter[E <: Event](eventType: EventType[E], eventHandler: EventHandler[E]): Unit

Unregisters a previously registered event filter from this task. One filter might have been registered for different event types, so the caller needs to specify the particular event type from which to unregister the filter.

Unregisters a previously registered event filter from this task. One filter might have been registered for different event types, so the caller needs to specify the particular event type from which to unregister the filter.

Type Params
E

Event class

Value Params
eventHandler

the filter to unregister

eventType

the event type from which to unregister

Inherited from
EventHandlerDelegate1
def removeEventHandler[E <: Event](eventType: EventType[E], eventHandler: EventHandler[E]): Unit

Unregisters a previously registered event handler from this task. One handler might have been registered for different event types, so the caller needs to specify the particular event type from which to unregister the handler.

Unregisters a previously registered event handler from this task. One handler might have been registered for different event types, so the caller needs to specify the particular event type from which to unregister the handler.

Type Params
E

Event class

Value Params
eventHandler

the handler to unregister

eventType

the event type from which to unregister

Inherited from
EventHandlerDelegate1

Used to indicate whether the width of this column can change.

Used to indicate whether the width of this column can change.

Inherited from
TableColumnBase
def resizable_=(v: Boolean): Unit
Inherited from
TableColumnBase

The sort node is commonly seen represented as a triangle that rotates on screen to indicate whether the TableColumnBase is part of the sort order, and if so, what position in the sort order it is in.

The sort node is commonly seen represented as a triangle that rotates on screen to indicate whether the TableColumnBase is part of the sort order, and if so, what position in the sort order it is in.

Inherited from
TableColumnBase
def sortNode_=(v: Node): Unit
Inherited from
TableColumnBase

A boolean property to toggle on and off the sortability of this column.

A boolean property to toggle on and off the sortability of this column.

Inherited from
TableColumnBase
def sortable_=(v: Boolean): Unit
Inherited from
TableColumnBase

The CSS style string associated to this TableColumnBase.

The CSS style string associated to this TableColumnBase.

Inherited from
TableColumnBase

A list of String identifiers which can be used to logically group Nodes, specifically for an external style engine.

A list of String identifiers which can be used to logically group Nodes, specifically for an external style engine.

Inherited from
Styleable
def style_=(v: String): Unit
Inherited from
TableColumnBase

Returns the Node that represents this Styleable object. This method should be overridden in cases where the Styleable is not itself a Node, so that it may optionally return the relevant root node representation of itself. By default this method returns null, which can mean that either the Styleable itself is a Node, or if that is not the case, that the Styleable does not have a node representation available at the time of request.

Returns the Node that represents this Styleable object. This method should be overridden in cases where the Styleable is not itself a Node, so that it may optionally return the relevant root node representation of itself. By default this method returns null, which can mean that either the Styleable itself is a Node, or if that is not the case, that the Styleable does not have a node representation available at the time of request.

Returns

the Node that represents this Styleable object

Since

9

Inherited from
Styleable

The parent of this Styleable, or null if there is no parent.

The parent of this Styleable, or null if there is no parent.

Inherited from
Styleable

This is the text to show in the header for this column.

This is the text to show in the header for this column.

Inherited from
TableColumnBase
def text_=(v: String): Unit
Inherited from
TableColumnBase
override def toString: String
Returns

Returns the original delegate's toString() adding a [SFX] prefix.

Definition Classes
Inherited from
SFXDelegate
def typeSelector: String

The type of this Styleable that is to be used in selector matching.

The type of this Styleable that is to be used in selector matching.

Inherited from
Styleable
def userData: AnyRef

Returns a previously set Object property, or null if no such property has been set using the setUserData(Any) method.

Returns a previously set Object property, or null if no such property has been set using the setUserData(Any) method.

Inherited from
TableColumnBase

Toggling this will immediately toggle the visibility of this column, and all children columns.

Toggling this will immediately toggle the visibility of this column, and all children columns.

Inherited from
TableColumnBase
def visible_=(v: Boolean): Unit
Inherited from
TableColumnBase

The width of this column.

The width of this column.

Inherited from
TableColumnBase

Concrete fields

override val delegate: TreeTableColumn[S, T]