Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#4667 closed defect (fixed)

update layout container to allow tab order to match DOM order

Reported by: Becky Gibson Owned by: Adam Peller
Priority: high Milestone: 1.0
Component: Dijit Version: 0.9
Keywords: Cc: Becky Gibson
Blocked By: Blocking:

Description (last modified by Becky Gibson)

I'm not sure if the title is correct or not. Currently center pane has to be added last . This creates problems for tab order - the footer comes before the main content. We discussed in Oct 8 dijit meeting: wildbill: so the quick fix for LayoutContainer? is to update layoutChildren() to allow the center piece to be anywhere in the dom order. implementation-wise, just (copy and) modify the array so that it's last in the array order.

[10:46am] peller: wildbill: sounds good to me

[10:47am] becka11y: wildbill: not sure I follow - footer should be last ?

[10:47am] becka11y: (but I don't know anything about inner workings of layout container)

[10:47am] wildbill: yeah, i assume the designer wants to write markup like <div> <header> <center> <footer> </div> right?

[10:47am] becka11y: right

[10:48am] wildbill: so allow that...

[10:48am] peller: I think wildbill is saying just modify the DOM so it looks like what it expects today

[10:48am] peller: a little pre-processing step?

[10:48am] wildbill: umm, not to modify the dom, but rather to support dom specified in the above way

[10:50am] peller: wildbill: ok, I thought there was a reason you needed the client last?

[10:50am] peller: wildbill: guess not?

[10:51am] wildbill: the current implementation requires the client to be last.

[10:51am] wildbill: therefore, i'm suggesting to change the implementation.

[10:51am] wildbill: to remove that requirement

[10:53am] peller: hmm. that's rewriting the widget

[10:53am] peller: seems like a quicker hack to reorder the children

[10:53am] peller: and safer, given the late date and code dependencies

[10:53am] wildbill: i think it's just a 3 line code change

[10:53am] peller: ok.

[10:55am] peller: if wildbill wants to share his 3 lines of code, I think either you or I should be able to handle this

[10:57am] wildbill: layoutChildren() takes an array argument. the 3 lines of code is to find the element(s) of type center and put them at the end of the array. (but copy the array first)

[10:57am] wildbill: s/put/move/

[10:57am] peller: wildbill: ok, that's sorta what I was thinking. just meant array, not dom order

Change History (3)

comment:1 Changed 12 years ago by Becky Gibson

Description: modified (diff)

comment:2 Changed 12 years ago by Adam Peller

Resolution: fixed
Status: newclosed

(In [10757]) reworked the layout so that center may be positioned anywhere in the DOM. Fixes #4667. However, I don't think this addresses "goofy" spiral layouts, which I don't plan to support in BorderContainer? post 1.0, so we may need an exception for that.

comment:3 Changed 12 years ago by Becky Gibson

(In [10760]) refs #4667 Update test_layoutContainer.html to test tab order matching source code order. Added additional test/example to demonstrate how to create a particular layout and have the tab order be correct.

Note: See TracTickets for help on using tickets.