TreeView
A TreeView
object acts as the interface to working with a custom extension sidebar using a tree style (an outline of objects with disclosure buttons). When you define a tree sidebar, you also create a TreeView
object to provide data and respond to events for that sidebar.
The TreeView
class conforms to the Disposable interface. Disposing a tree view will unregister it from the sidebar it is linked to and unload its tree of data.
The TreeView
class is not subclassable.
// Create the TreeView
let treeView = new TreeView("my-identifier", {
dataProvider: new MyDataProvider()
});
treeView.onDidChangeSelection((selection) => {
console.log("New selection: " + selection.map((e) => e.name));
});
treeView.onDidExpandElement((element) => {
console.log("Expanded: " + element.name);
});
treeView.onDidCollapseElement((element) => {
console.log("Collapsed: " + element.name);
});
treeView.onDidChangeVisibility(() => {
console.log("Visibility Changed");
});
Class Methods
constructor(identifier, options)
Creates a new TreeView
object. The identifier
argument should match the identifier specified for a sidebar section in your extension’s extension.json
file.
The options
object may have the following values:
Value | Description |
---|---|
dataProvider | Object that provides data to the tree (see TreeDataProvider) |
Properties
visible
Whether the tree view is currently visible.
This property is readonly.
selection
An array of elements that are currently selected within the tree view.
This property is readonly.
Methods
onDidChangeSelection(callback, [thisValue])
Adds an event listener that invokes the provided callback
when the tree view’s selection change. The callback will receive as an argument the array of selected elements.
The optional thisValue
argument may be used to set what this
is bound to when the callable is invoked. If omitted, this
will be undefined
.
This method returns a Disposable that can be used to unregister the listener.
onDidChangeVisibility(callback, [thisValue])
Adds an event listener that invokes the provided callback
when the tree view’s visibility change.
The optional thisValue
argument may be used to set what this
is bound to when the callable is invoked. If omitted, this
will be undefined
.
This method returns a Disposable that can be used to unregister the listener.
onDidExpandElement(callback, [thisValue])
Adds an event listener that invokes the provided callback
when the an element is expanded. The callback will receive as an argument the element that was expanded.
The optional thisValue
argument may be used to set what this
is bound to when the callable is invoked. If omitted, this
will be undefined
.
This method returns a Disposable that can be used to unregister the listener.
onDidCollapseElement(callback, [thisValue])
Adds an event listener that invokes the provided callback
when the an element is collapsed. The callback will receive as an argument the element that was collapsed.
The optional thisValue
argument may be used to set what this
is bound to when the callable is invoked. If omitted, this
will be undefined
.
This method returns a Disposable that can be used to unregister the listener.
reload([element])
Causes the tree view to reload the specified element (if it is visible) and any descendants. Invoke this method with no argument (or with a null
or undefined
argument) to reload the entire tree view. Returns a Promise
object that resolves when the reload has finished.
reveal(element, options)
Attempts to reveal the element in the tree.
The options
object may have the following values:
Value | Description |
---|---|
select | Whether the element should be selected (default is true) |
focus | Whether the scroll view of the tree should be scrolled to make the element visible (default is false) |
reveal | The number of ancestors to attempt to expand to reveal the element (up to a maximum of 3) |