- style
Tree (old)
Description
ONGOING
Hierarchically arranged collection of objects
Current appearances in our products
Tree view is widely used in most of our products
New LUX design:
Structure
Structure Element | Description |
---|---|
Header | Content header
|
Node | Context menu Right-click for context menu Empty state Empty container presentation will be grayed out Collapse-Expand
icon (optional) should be used only if the tree can contain several types of nodes. If all nodes are of the same type, an icon should not be used Label node name + tooltip in case the entire name does not fit. Counter (optional): The number of elements the node contains States: Focus, Hover, Selected, Disabled. |
Behaviour
Structure Element | Description |
---|---|
Hierarchey |
|
Scrolling |
|
Localization |
|
Multi/mixed selection | |
Resizing | |
Loading |
Structure
Structure Element | Description |
---|---|
Hierarchy | Parent for the entire tree is optional. A tree should have a parent if the parent has meaning or to allow the user to select the entire tree in case there is a use case the will require that. When you do use a parent node for the entire tree, expand this node by default. |
Node | Collapse/expand button: in case the node has descendants. Icon (optional): should be used only if the tree can contain several types of nodes. If all nodes are of the same type, an icon should not be used. Label (node name) + tooltip in case the entire name does not fit. Counter (optional): the number of elements the node contains States: Focus, Hover, Selected, Disabled. |
Default Sorting | Alphabetically (between and within the hierarchy level/group) |
Loading | When a user expands a node, if the nodes are not shown immediately, provide "loading" indication at the place below the expanded node. |
Interaction | Click on the expand/collapse button will do the respective action. Click on the node label (+counter) will select the node. |
Keyboard functionality |
Features
Multiple vs. Single Selection Modes
Description | |
---|---|
What | The ability to select a node or multiple nodes. |
When | A tree must support single selection mode. Multiple selection mode is optional according to the use cases. |
Single Selection | Single selection is activated by selecting the node label. Selecting the node label will select the node and un-select previously selected node. |
Multiple Selection Mode | On mouse hover a node, a check box is displayed. If the user checks it he is placed in a multi selection mode. Multi selection mode can also be activated by using Ctrl/Shift while selecting the node label. The apply button becomes active and the counter starts counting. On this mode, clicking the label/check box will perform multi select. Only once the apply is pressed the action is executed (whatever the corresponding action is). Selecting a parent node through the check box will select its descendants as well. Unselecting some of the descendants will place the parent node in mixed state. While at the multi selection mode, single selection cannot be done. The user needs to clear previous selections to exit the mode. Therefore, a “clear all” action is placed next to the Apply button |
Resources
http://commadot.com/the-ux-of-trees-design-pattern/
http://docs.sencha.com/extjs/6.2.0/guides/components/trees.html
http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/#trees
https://jonmiles.github.io/bootstrap-treeview/
https://experience.sap.com/fiori-design-web/ui-components/tree-table/
Needs to be designed:
Top
Search tree
- Filter tree
Content
- info-tip on hover (some display total)
Drag n drop in a tree to change location
- Actions on node (icons?) - Cut, Copy, Paste, Remove or Delete, Rename, Properties (?)
- Adding a child to tree
TBD - Open issues
- Keyboard shortcuts
Expand all
Placing an item in multiple containers?
- Filtering vs Finding - At the moment both are used
Next Steps/Tasks
- Trees accessibility - see Asaff's
- Hint of how many items are in container
- Select all, Clear all, show how many are selected
- sort
- Tree table