Treez is an open source project that helps you to create tree based user interfaces for (scientific) web applications.
The core idea of treez is to provide so-called atoms as building blocks and organize them in a tree model.
Treez originally has been developed as Eclipse Plugin. This github project provides a JavaScript implementation of Treez (= treezjs) and all further development is done here.
The treezjs front end can be installed as an extension to Jupyter notebooks (to interact with a Python kernel as back end), or in standalone mode (with its own Java based back end).
If you miss some information in the following documentation or have any suggestions, please create a new issue.
- Installation
- User interaction
- Views
- Atoms (overview)
- Components
- The tree model can be edited with a Tree view.
- The model can also be exported to and imported from a JavaScript Editor view. Thus, the tree model can also be edited and stored as a text file.
- The properties of the atoms are shown in the Properties View
- Some atoms have a graphical representation (svg content created with d3.js), shown in the Graphics view
- Some atoms can be executed and the progress of the execution is shown in terms of progress bars and log messages in the Monitor view
- The treezjs front end can be installed as an extension to to Jupyter notebooks (to interact with a Python kernel as back end), or in standalone mode (with its own Java based back end).
The atoms that come with treez can be used to model a common simulation work flow: define an exectuable model that should be run several times, define and execute a (batch) study and finally evaluate the results and plot some figures.
If the already existing atoms are not sufficient for you, please feel free to reuse the input elements that come with treez (for example file chooser, color picker, ...) to implement additional atoms for your own tree based GUI.
Please contribute! If every user of treez creates a single new atom and feeds it back to this open source project, a large atom library will arise with time. If you would like to contribute, please create a new issue ticket and describe your atom suggestions. Bug reports and ideas on how to improve the already existing atoms are also very welcome.