Ticket #4117 (closed task: fixed)

Opened 23 months ago

Last modified 17 months ago

BorderLayout: implement

Reported by: bill Owned by: peller
Priority: high Milestone: 1.1
Component: Dijit Version: 0.9
Severity: normal Keywords: bordercontainer
Cc:

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

  Changed 23 months ago by bill

  • owner set to peller

  Changed 22 months ago by peller

  • priority changed from normal to high

  Changed 21 months ago by peller

  • status changed from new to assigned

  Changed 21 months ago by peller

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

  Changed 21 months ago by peller

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

  Changed 21 months ago by peller

  • milestone changed from 1.0 to 1.1

experimental code only for 1.0

  Changed 20 months ago by peller

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

follow-up: ↓ 9   Changed 20 months 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?

in reply to: ↑ 8   Changed 20 months ago by 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?

  Changed 20 months ago by becky

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

  Changed 18 months ago by peller

  • keywords bordercontainer added

  Changed 18 months ago by peller

  • status changed from assigned to closed
  • resolution set to fixed

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

  Changed 18 months ago by peller

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

  Changed 18 months ago by bill

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

  Changed 18 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

(In [12226]) reduce. Refs #4117

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by 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

  Changed 17 months 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.

  Changed 17 months ago by 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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months 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.

  Changed 17 months ago by bill

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

  Changed 17 months ago by peller

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

Note: See TracTickets for help on using tickets.