classafReflux::ResourceTable

sys::Obj
  afReflux::ResourceTable

@Js

(Widget) - A table widget that displays Resources. ResourceTable is a wrapper around the FWT Table widget with the following enhancements:

  • A Resource specific table model.
  • Event data return the Resource that's been actioned.

Because ResourceTable does not extend fwt:Widget it can not be added directly. Instead, add the table field which returns the wrapped FWT Table instance.

table := ResourceTable(reflux)
ContentPane() {
    it.content = table.table
}
make

Source

new make(Reflux reflux, |This? in := null)

Creates a ResourceTable. Use the ctor to pass in a table:

ResourceTable(reflux) {
    it.table = Table {
        it.border = false
    }
    it.roots = myRoots
    it.model = MyModel()
}

Note that, as shown above, the table must be set before the model and / or roots.

model

Source

ResourceTableModel model := ResourceTableModelImpl.<ctor>()

The model that customises the look of the table. Leave as is for default behaviour.

You should call refreshAll after setting a new model.

onAction

Source

EventListeners onAction()

Callback when a row is double clicked or Return/Enter key is pressed.

Event id fired:

  • EventId.modified

Event fields:

  • Event.data: the Resource actioned
onPopup

Source

EventListeners onPopup()

Callback when user invokes a right click popup action. If the callback wishes to display a popup, then set the Event.popup field with menu to open. If multiple callbacks are installed, the first one to return a nonnull popup consumes the event.

To show a menu created from the Resource, add the following:

table.onPopup.add |Event event| {
    event.popup = (event.data as Resource)?.populatePopup(Menu())
}

Event id fired:

  • EventId.popup

Event fields:

  • Event.data: the Resource selected, or null if this is a background popup.
  • Event.pos: the mouse position of the popup.
onSelect

Source

EventListeners onSelect()

Callback when the selected row changes.

Event id fired:

  • EventId.select

Event fields:

  • Event.data: the Resource selected, or null if nothing is selected.
refreshAll

Source

Void refreshAll()

Update the entire table's contents from the model.

refreshResourceUris

Source

Void refreshResourceUris(Uri[] resourceUris)

Updates the specified resource in the model before showing it.

refreshResources

Source

Void refreshResources(Resource[] resources)

Updates the specified resources in the tables

resourceAt

Source

Resource? resourceAt(Point pos)

Return the Resource at the specified coordinate relative to this widget. Return null if there is no Resource at given coordinate.

roots

Source

Resource[] roots := Resource#.emptyList

The root resources of the table.

You should call refreshAll after setting new roots.

selected

Source

Resource[] selected

Get and set the selected nodes.

Convenience for table.selected()

table

Source

Table table

The underlying FWT Table widget.