While working on the tree control for our extension, I noticed that the sample implementation was not optimal. For instance, `vscode.TreeDataProvider.onDidChangeTreeData` should only be called once for the top-most node that has changed, as all children will be refreshed as well.
This change updates the code of the sample to track state changes during propagation and only raise the event for the top-most parent node that has its state changing.
There also was an issue with root node `1` not rendering, which impacted the new algorithm, as it was not refreshing the tree, when invisible root was changing. In order to address this, I updated `getChildren` to actually return the `1` node, when root was requested. This in turn changed the presentation (`1` is now rendered in the tree) and addressed the problem with tree not refreshing when `1` is the node that raises the event.
Lastly, there is one more optimization that I didn't make due to the bug that is in the works: `getTreeItem` can actually return the `element` directly, without the copy, as it already implements `TreeComponentItem`. The problem currently is that `TreeNode` also defines an `id`, which causes an error during refresh. Once that is addressed - this part can be optimized as well.
* upgrade pip after python installation
* add comment
* only upgrade pip for new python installations
* reinstall pip version instead of upgrade to latest
* update comment
* get pip version through packages list
* add improvements TODO on creating book experience
* fix create book to support a more complex folder structure
* replace \\ to a forward slash on windows
* address pr comments
* fix tests
* use the posix version of path.sep
* reset scheduling parameters
* Added right quotation marks
* Fixed comment
* Worker text box needs to have value, can't pass in emptry string
* Fixed ConfigurationSpecModel and added doc comment to handleOnTextChanged
* Add to information bubbles that user can reset scheduling parameters by passing in empty value
* Changed name of handleOnTextChanged
* Modal - added code to stop the keyboard event after it is handled. textCell and codeCell - onKey now fired on keydown.
* Moved stop method into the conditional with Escape key.
* Creating separate pages for worker and coordinator parameters
* Added new gear, hid coordinator server parameters page
* Commented out azdataApi
* Added white gear, created abstract class for server parameters page
* Chaged gear name, condensed base class more, changed file name
* Added colored gears for parameter pages
* Edited to describe configuring both coordinator and worker
* Start adding coordinator section
* Coordinator section shown on CS page
* Updated information bubbles, edited discard button
* Cleaned up code, hid coordinator section
* Add return types to functions, fixed configuration string name
* Configuration section does not need to be edited when model is refreshed since it is not seen
* Changed back information bubble to inform that both worker and coordinator nodes will be configured