Updownquark / Quick

Quark's User Interface Creation Kit
0 stars 0 forks source link

Tree #62

Open Updownquark opened 9 years ago

Updownquark commented 9 years ago

I need a tree widget.

I'm stuck on debugging stateful styles (#61) and I need the ability to write some better debugging tools. I've needed this for a while but I really want to write the tools in MUIS, not in swing. Being a DOM language, the basis for all the MUIS debugging will need to be a tree.

Updownquark commented 9 years ago

The source of the node data for the tree will be a model. This will need to be some kind of observable, hierarchical structure. Not exactly sure how this will look.

The nodes will be visualized by 3 different renderers:

The renderer will never receive user events from the tree, as it will never have focus or contain the mouse. It will be used only to paint unfocused, un-hovered nodes. If a node that currently is rendered by the renderer is hovered over, that node will thereafter be rendered by the hover until the mouse leaves that node. The hover will receive some mouse events, but not ones that would select the node. If the user performs any action (such as mouse click) to focus on a node that is currently hovered, that node will thereafter be rendered by the editor until the user performs an action resulting in that node being unfocused. The editor will receive any mouse events that occur on top of it in addition to any non-positional events occurring on the tree (e.g. keyboard).

As event receivers, the hover and the editor will have the ability to change their appearance or perform other actions in response to user input. Examples I can think of include tooltips or application-specific events.

Updownquark commented 9 years ago

Need to figure out how to implement the expansion and selection APIs.

Updownquark commented 9 years ago

I left comments in the code as well, but here's where we stand.

After that, I can make a user test and start testing it.