Opened 12 years ago

Closed 8 years ago

#1945 closed defect (duplicate)

Tree: selection overhaul

Reported by: ilia Owned by: anonymous
Priority: high Milestone: future
Component: Dojox Version: 0.9
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by dylan)

Selection/keyboard control should be made SAME as in FF bookmark manager, with keyboard multiselect.

Selector becomes required for accessibility, baking in all focus/(multi)select stuff

Change History (6)

comment:1 Changed 12 years ago by ilia

Description: modified (diff)
Owner: changed from anonymous to ilia

comment:2 Changed 12 years ago by ilia

Component: GeneralWidgets
Milestone: 0.5
Version: 0.40.5
[02:07] <[algo]> hi bill
[02:07] <[algo]> what you think about highlight discussion
[02:07] <[algo]> you should be CC'd by me and Becky
[02:08] <wild_bill> hi, oh i just answered, but it's confusing
[02:09] <[algo]> no, that's another issue
[02:10] <[algo]> but it should be resolved because its fundamental
[02:10] <[algo]> Becky's code addresses other things
[02:10] <[algo]> currently selection can be added or removed
[02:10] <[algo]> anything can happen on selection 
[02:10] <wild_bill> multi-select?
[02:10] <[algo]> yes, this is possible
[02:11] <[algo]> keyboard movements should select node
[02:11] <wild_bill> ok.   so, your question was "Is everything ok that highlighting on click becomes
[02:11] <wild_bill> basic functionality" ?
[02:11] <[algo]> yeah
[02:11] <[algo]> so selector becomes basic
[02:11] <[algo]> "always on"
[02:11] <wild_bill> ok, but there is still separate double-click functionality?
[02:11] <[algo]> selector provides it
[02:12] <[algo]> nothing changes for dblclick
[02:12] <[algo]> just nodes are always highlighted (emphased)
[02:12] <wild_bill> ok
[02:12] <wild_bill> emphasized
[02:12] <[algo]> ouch
[02:12] <[algo]> thanks =)
[02:12] <[algo]> e.g for XML editor tree, node highlight is unacceptable
[02:12] <[algo]> but maybe just changing style would do
[02:13] <wild_bill> sorry, i'm still confused.   yeah, highlighting is just a way of showing selection, right?
[02:13] <[algo]> yes
[02:13] <[algo]> emphasize is action called
[02:13] <[algo]> highlight is possible style (default one)
[02:14] <[algo]> I'd like to hear a test case when making selector basic part creates problems
[02:14] --> GhettoJava вошел на канал (
[02:14] <wild_bill> didn't you say that it messes up xml editor tree?
[02:15] <[algo]> ornus
[02:15] <[algo]> are you making data editing w/ tree ?
[02:15] <[algo]> wild_bill: yes, that may mess up..
[02:15] <[algo]> wild_bill: but I'm still unsure about use case.. Might be fine.
[02:15] <ornus> [algo]: I have have an app in which I use tree to allow user edit data
[02:16] <wild_bill> ok.  so, selection seems pretty basic, although wow, this is all confusing.  so you can select multiple nodes, but there is always one node (at most) that has the dotted border, right?
[02:16] <[algo]> wild_bill: no more dotted border
[02:16] <[algo]> ornus: there is a thread to make selector basic part of tree
[02:16] <-- markwubben покидает сервер.
[02:16] <[algo]> ornus: so when you press keys, nodes get selected (not dotted around)
[02:17] <wild_bill> but how do you indicate the one current node?   where the cursor is.
[02:17] <ornus> [algo]: link?
[02:17] <[algo]> ornus: no link.. What you want to see ?
[02:17] <ornus> ohhh
[02:17] <[algo]> wild_bill: highlight
[02:17] <[algo]> wild_bill: emphasizing style
[02:17] <[algo]> wild_bill: may be highlight [or] dotting up to user
[02:18] <wild_bill> but you can have mjultiple nodes, highlighted, right?
[02:18] <[algo]> wild_bill: yes, multiselection
[02:18] <[algo]> ornus: Selector will become basic tree part, not "possible add-on"
[02:18] <[algo]> ornus: it will be always on
[02:18] <[algo]> ornus: drawbacks ?
[02:19] <wild_bill> ok, what i am saying is that you can't have multiple current nodes, even if multiple nodes are highlighted.   there has to be one node only with a dotted border.     For example, let's say that I've highlighted three nodes, and then I hit space bar.  that will open the "current" node.   So, which one is the current node?
[02:19] <ornus> [algo]: it could cause confusion to the user if there's no action attached to selection. if you can select nodes then you might think you can do something to it, but what if it's read only tree and nothing happens on node click?
[02:21] <[algo]> wild_bill: space bar will hit dblselect
[02:21] <[algo]> wild_bill: of course all nodes will be deselected, excepts the one you hit
[02:21] <[algo]> wild_bill: there will be NO multiselect with keyboarrd
[02:21] <[algo]> wild_bill: that's a drawback.
[02:22] <wild_bill> yeah, that doesn't sound right.
[02:22] <[algo]> ornus: what about make emphasize style (highlight) empty ? So node will get selected, but not highlighted
[02:22] <[algo]> wild_bill: in IE or Mozilla or..
[02:23] <[algo]> how keyboard multiselect is handled ?
[02:23] <-- MikeW покидает сервер.
[02:23] <wild_bill> [algo]: hmm, trying to think of a multi-select case anywhere.  can you think of an example?
[02:23] <[algo]> generally, multiselect involves multi-action
[02:23] <[algo]> like "delete nodes"
[02:24] <ornus> [algo]: well, then how will it be different from the current implementation from the user or developer point of view? only fact that selection will be handled automatically and there's no way to stop it?
[02:25] <ornus> [algo]: like, if I'm automatically processing nodes in a tree, and it takes a while, and I want to highligh curren node I'm working on, I won't be able to stop user from clicking on another node and highlighting it?
[02:25] <ornus> just a hypothetical, unlikely example
[02:26] <wild_bill> I can't get multi-select to work in the trees in Thunderbird or Windows Explorer or Eclipse  (using mouse or keyboard).  I'm thinking that most trees don't support multi-select.
[02:26] <[algo]> wild_bill: usually its ctrl+mouse click
[02:26] <wild_bill> example app?
[02:26] <[algo]> IE
[02:26] <[algo]> well Windows Explorer
[02:27] <ornus> Windows explorer doesn't support it on the tree, but on the list
[02:27] <wild_bill> exactly
[02:27] <[algo]> ah hmm
[02:27] <ornus> but actual tree control in the windows supports multi-select I think, in explorer it's not needed because list compliments the tree
[02:27] <[algo]> ok FF
[02:27] <[algo]> firefox
[02:27] <[algo]> edit bookmarks
[02:28] <wild_bill> left tree or right tree?
[02:28] <[algo]> hmm
[02:28] <[algo]> it supports keyboard multiselect!
[02:28] <[algo]> bookmark manager
[02:28] <[algo]> left tree
[02:28] <ornus> I'd like to see dojo tree support multiselection like windows explorer does in the list
[02:29] <[algo]> yeah and windows explorer
[02:29] <[algo]> same style kb multiselect
[02:29] <[algo]> I can implement it
[02:29] <[algo]> issue solved
[02:29] <ornus> yep, what about multiselect with mouse?
[02:29] <[algo]> same also
[02:29] <[algo]> about automatically processed
[02:29] <ornus> where you draw a square and all nodes that it hits get selected?
[02:30] <[algo]> ah
[02:30] <[algo]> no 
[02:30] <[algo]> I don't care about it yet
[02:30] <[algo]> that may be complex
[02:30] <ornus> k
[02:30] <[algo]> and maybe later
[02:30] <wild_bill> yeah, FF bookmarks does have it.  ctrl-click or ctrl-space.  works w/keyboard or w/the mouse.     But note that FF bookmarks manager also has a dotted yellow border around the focused node.  I guess what I'm saying is that "highlighted nodes" and "focused node" are two separate things.
[02:30] <ornus> what about ctrl+click?
[02:30] <[algo]> wild_bill: yep
[02:31] <[algo]> wild_bill: his focused nodes are only for multiselect ?
[02:31] <[algo]> ornus: yeah will work
[02:32] <wild_bill> algo: huh?  focused node is unrelated to select, i think
[02:32] <wild_bill> (by the way, do ctrl-down-arrow to focus a node w/out selecting it)
[02:33] <ornus> wild_bill, is there a point to it? can you do anything with focused but not selected node?
[02:33] <[algo]> wild_bill: yep, any use case for focused node besides selecting it ?
[02:33] <wild_bill> for example, focus on a previously selected node and deselect it, so that (for example) you've selected 3 nodes but changed your mind about one, and deselect.
[02:34] <ornus> [algo]: yeah
[02:34] <ornus> you can expand tree with focused node
[02:34] <[algo]> wild_bill ok ,select/deselect currently focused node
[02:34] <ornus> without losing selection
[02:34] <[algo]> yep
[02:34] <wild_bill> how about open/close?
[02:34] <[algo]> traverse tree
[02:34] <wild_bill> right
[02:34] <[algo]> and you have to press ctrl to enable this mode
[02:34] <wild_bill> yeah
[02:34] <[algo]> looks neat
[02:35] <[algo]> so this can be implemented
[02:35] <[algo]> and what about other problems ?
[02:35] <wild_bill> yeah, we can copy what they did :-)
[02:35] <ornus> cool
[02:35] <[algo]> dojo tree meant for more generic use than FF bookmark manager
[02:36] <wild_bill> right
[02:36] <ornus> I think their behavior is more or less standard, keyboard change focus and selection, ctrl+keyboard just focus
[02:36] <wild_bill> yeah.  ok, so I think your original question "Is everything ok that highlighting on click becomes
[02:36] <wild_bill> basic functionality" ?
[02:36] <[algo]> yes
[02:36] <[algo]> drawbacks..
[02:36] <wild_bill> I think the answer is yes, but I would rephrase to say "selecting on click"  not "highlighting"
[02:37] <[algo]> yes
[02:37] <ornus> [algo]: well, my only question is what if I want to highlight node programatically?
[02:37] <wild_bill> meaning select, right?  or something different?
[02:37] <[algo]> ornus: you can call the method to highlight it
[02:37] <[algo]> but highlight means selection now
[02:37] <[algo]> well, you can call methods on node
[02:37] <wild_bill> ok
[02:38] <ornus> [algo]: but there's no way to prevent user from highlighting another node, right?
[02:38] <[algo]> ornus: he can press it, but it will be just same style
[02:38] <[algo]> selection
[02:39] <ornus> [algo]: it's most likely fine
[02:39] <ornus> [algo]: as long as I can prevent highlight altogether, by making it transparant for example
[02:40] <[algo]> ok
[02:40] <[algo]> so the point is much more clearer now
[02:40] <[algo]> I'll write the ticket
[02:40] <wild_bill> cool.   so what i understood was this, to summarize:
[02:40] <wild_bill> - when Ilia wrote "highlight" he means the same thing as "select", and it includes the idea of multi-selection (ctrl-click in windows)
[02:40] <wild_bill> - it seems fine that clicking a node selects it
[02:40] <wild_bill> - Firefox bookmark manager (tree on left) is good example of being able to select multiple tree nodes, and have a single focused node, and do everything by keyboard (ctrl-mouse-down) or mouse
[02:41] <-- kiwnix покинул сервер (Remote closed the connection).
[02:41] <wild_bill> - focus and select are two different things.  you can select multiple nodes but only one is focused at a time.
[02:41] <wild_bill> agreed?
[02:42] <[algo]> hmmm
[02:42] <[algo]> space = dblclick ?
[02:42] <[algo]> it should be
[02:42] <wild_bill> oh, not sure.   becky implemented keyboard suupport already, did you see it?
[02:42] <-- _Ergo_ покинул сервер ("Miranda IM! Smaller, Faster, Easier.").
[02:42] <ornus> [algo]: what's so special about dblclick?
[02:42] <[algo]> no
[02:42] <[algo]> enter = dblclick
[02:43] <[algo]> wild_bill: I have doughays code for that long ago
[02:43] <[algo]> wild_bill: already refined and integrated
[02:43] <wild_bill> hmm, maybe it's the same thing?  not sure.
[02:43] <wild_bill> must be.
[02:43] <[algo]> enter=dblclick
[02:44] <[algo]> space is just a selection sometimes
[02:44] <wild_bill> ok
[02:44] <ornus> f2 rename?
[02:44] <-- ralph покинул сервер (Read error: 54 (Connection reset by peer)).
[02:45] <[algo]> =)
[02:45] <[algo]> heh
[02:45] <[algo]> you can hook edit on f2
[02:45] <-- slaq покинул сервер (Remote closed the connection).
[02:45] <[algo]> ok thanks
[02:45] --> slaq вошел на канал (
[02:45] <wild_bill> [algo]: thanks.  so the code from doug is integrated?
[02:45] <[algo]> yes, its kb controls
[02:45] <wild_bill> is it checked in?
[02:45] <[algo]> long ago
[02:46] <wild_bill> ah, i see.
[02:46] <wild_bill> cool.  ok, i'm gonna send mail to becky summarizing this (and CC you)
[02:46] <[algo]> hmm
[02:47] <[algo]> selector will manage all this stuff
[02:47] <[algo]> and if you disable selector, then you have no accessibility at all
[02:47] <[algo]> you will still be able to disable selector, but because kb control = selection, there will be no kb control in this case
[02:48] <wild_bill> ok, so it should be builtin to tree.
[02:48] <wild_bill> even focus is disabled?
[02:48] <[algo]> yes
[02:48] <wild_bill> but, even w/out the keyboard issue, what good is tree if you can't select nodes?
[02:48] <[algo]> all focus/select functionality becomes selection
[02:49] <[algo]> wild_bill: you can browse it
[02:49] <[algo]> wild_bill expand/collapse
[02:49] <[algo]> with mouse
[02:49] <[algo]> =)
[02:49] <wild_bill> right
[02:49] <ornus> [algo]: btw, will it be possible to prevent multi-select?
[02:49] <ornus> to allow only single selection?
[02:49] <[algo]> ornus: ye
[02:49] <[algo]> ornus: it is possible now too
[02:49] <ornus> yeah, but you're changing, cool
[02:50] <wild_bill> ok, so i suggest that selection be builtin to tree.
[02:50] <[algo]> I'd say: selection will be required for kb control
[02:50] <[algo]> because kb control is selection nodes you navigate by
[02:50] <[algo]> programmatically, selector is still different part from model and controller
[02:51] <[algo]> but it becomes required for accessibility

comment:3 Changed 12 years ago by bill

Component: WidgetsDojox
Milestone: 0.9
Summary: selection overhaulTree: selection overhaul

Multiselect not supported in Dijit tree; moving to Dojox.

comment:4 Changed 11 years ago by dylan

Milestone: 1.2

comment:5 Changed 11 years ago by dylan

Description: modified (diff)
Milestone: 1.2future
Owner: changed from ilia to anonymous

comment:6 Changed 8 years ago by Adam Peller

Resolution: duplicate
Status: newclosed

see #11685

Note: See TracTickets for help on using tickets.