Opened 12 years ago

Closed 12 years ago

Last modified 10 years ago

#4117 closed task (fixed)

BorderLayout: implement

Reported by: bill Owned by: Adam Peller
Priority: high Milestone: 1.1
Component: Dijit Version: 0.9
Keywords: bordercontainer Cc:
Blocked By: Blocking:

Description

Implement BorderLayout? widget (similar to EXT's BorderLayout? or Swing's BorderLayout? class), with markup like LayoutContainer? but only allowing five children (north, south, east, west, center), and having [optional] sliders between them.

If we get this working then can deprecate SplitContainer? and LayoutContainer?.

Change History (38)

comment:1 Changed 12 years ago by bill

Owner: set to Adam Peller

comment:2 Changed 12 years ago by Adam Peller

Priority: normalhigh

comment:3 Changed 12 years ago by Adam Peller

Status: newassigned

comment:4 Changed 12 years ago by Adam Peller

(In [10678]) Initial drop of BorderContainer?. Putting in dojox as experimental, for now. Refs #4117

comment:5 Changed 12 years ago by Adam Peller

(In [10679]) Use 'position' instead of 'align', as the latter implies text alignment. Refs #4117

comment:6 Changed 12 years ago by Adam Peller

Milestone: 1.01.1

experimental code only for 1.0

comment:7 Changed 12 years ago by Adam Peller

(In [11622]) First stab at splitters for dojox.layout.BorderContainer?. Refs #4117, #4374

comment:8 Changed 12 years ago by liucougar

can you replace splitcontainer with borderlayout even if you implement splitter for it? a splitter can contain more than 2 panes, but if we are using borderlayout, you can only have up to 5 children (in fact, if you want to have a splitter, only 3 out of 5 can be used, depending on the orientation of the splitter)

so I don't think we can replace splitcontainer with this, or am I missing something?

comment:9 in reply to:  8 Changed 12 years ago by Adam Peller

Replying to liucougar:

can you replace splitcontainer with borderlayout even if you implement splitter for it? a splitter can contain more than 2 panes, but if we are using borderlayout, you can only have up to 5 children (in fact, if you want to have a splitter, only 3 out of 5 can be used, depending on the orientation of the splitter)

Right... so first off, this would be a new class, not an API-compatible replacement for either BorderLayout? or SplitContainer?. It would not handle more than three panels / two splitters in a row, nor would it handle the case where you want to distribute space equally, though you could approximate either of these with the right measurements or nesting of controls. I think we'll either need a Row/ColumnLayout? set of widgets, or perhaps we can find a way to make the splitter generic enough that you can just layer it on any panel?

But don't think 3 or less is the common case and that this will be "good enough" for now?

comment:10 Changed 12 years ago by Becky Gibson

(In [11643]) refs #4117 rearrange containers so tab order makes sense; added :focus class to change text color to cyan when contentpane has focus.

comment:11 Changed 12 years ago by Adam Peller

Keywords: bordercontainer added

comment:12 Changed 12 years ago by Adam Peller

Resolution: fixed
Status: assignedclosed

(In [12153]) merge newlayout branch [11995] through [12150]. Includes new BorderContainer? and updated tests, themeTester, and mail demo. Fixes #4117

comment:13 Changed 12 years ago by Adam Peller

(In [12154]) Create quirk version of themeTester. Try out percentages for BorderContainer? panel dimensions. Refs #4117

comment:14 Changed 12 years ago by bill

(In [12155]) just fix a typo in a comment plus some tabbing. refs #4117.

comment:15 Changed 12 years ago by Adam Peller

(In [12157]) Change sizeShare to width:%, remove a console msg. Refs #4117

comment:16 Changed 12 years ago by Adam Peller

(In [12174]) Put themeTester back to non-active splitters. Refs #4117

comment:17 Changed 12 years ago by Adam Peller

(In [12222]) obvious memoizing. Refs #4117

comment:18 Changed 12 years ago by Adam Peller

(In [12226]) reduce. Refs #4117

comment:19 Changed 12 years ago by Adam Peller

(In [12246]) remove redundant calls to measure box model. Refs #4117

comment:20 Changed 12 years ago by Adam Peller

(In [12298]) Fix programmatic creation. Refs #4117

comment:21 Changed 12 years ago by Adam Peller

(In [12300]) Forgot to remove old dojox.layout.BorderContainer? code. Refs #4117

comment:22 Changed 12 years ago by Adam Peller

(In [12301]) Forgot to remove old dojox.layout.BorderContainer? code. Refs #4117

comment:23 Changed 12 years ago by Adam Peller

(In [12336]) remove unnecessary check for getChildren (which seems like it meant to check for getChildren() rather than the existence of the getChildren method?) either way, getChildren() always returns an array now. Refs #4117

comment:24 Changed 12 years ago by dante

(In [12400]) refs #4117 - an experiment in dynamic layouts. mostly non-working, though i think it's possible. also additional examples of bordercontainer usage.

comment:25 Changed 12 years ago by Adam Peller

(In [12467]) Don't lay out things unless they've moved, part 1. Splitter repositions itself and the region it controls, then calls layout() to change only the regions which touch it. Measure splitter sizes only on construction. Refs #4117 !strict

comment:26 Changed 12 years ago by Adam Peller

(In [12472]) Compute splitter thickness as splitters are created. Refs #4117 !strict

comment:27 Changed 12 years ago by Adam Peller

(In [12473]) fix max/min constraints on splitter. Refs #4117 !strict

comment:28 Changed 12 years ago by Adam Peller

(In [12474]) Update BorderContainer? test. Refs #4117

comment:29 Changed 12 years ago by Adam Peller

(In [12477]) Move lookups out of mouseover event. Fix keyboard control. Refs #4117, fixes #5874 !strict

comment:30 Changed 12 years ago by bill

(In [12484]) Remove stopEvent() call. It's unnecessary for a mousemove and seems to slow down IE quite a bit. Refs #4117.

comment:31 Changed 12 years ago by bill

(In [12486]) Fix typo in last checkin. Doesn't fix problem dragging right border far to the left though. Refs #4117.

comment:32 Changed 12 years ago by Adam Peller

(In [12489]) Undo changes from [12484] unrelated to stopEvent(). Refs #4117 !strict

comment:33 Changed 12 years ago by Adam Peller

(In [12496]) recompute bounds for splitters when parent BorderContainer? changes size. Refs #4117 !strict

comment:34 Changed 12 years ago by Adam Peller

(In [12498]) resize only those children impacted by a relayout. move another style attribute to CSS. Refs #4117 !strict

comment:35 Changed 12 years ago by Adam Peller

(In [12506]) set absolute positioning of child in code, not CSS - undo change from [12498]. Refs #4117 !strict

comment:36 Changed 11 years ago by Adam Peller

(In [12602]) break out var block so ShrinkSafe? can have at it. Refs #4117

comment:37 Changed 11 years ago by Adam Peller

(In [12645]) doc fixes. Refs #4117 !strict

comment:38 Changed 10 years ago by bill

(In [19995]) Fix doc about parameters, refs #4117 !strict.

Note: See TracTickets for help on using tickets.