PaneColumn and PaneRow inherit from PaneDivision. Yes, I hate the name PaneDivision too.

This commit is contained in:
Corey Johnson
2012-04-12 21:25:24 -07:00
parent 1779032df6
commit e0e40e327b
3 changed files with 37 additions and 40 deletions

View File

@@ -1,26 +1,14 @@
$ = require 'jquery'
_ = require 'underscore'
{View} = require 'space-pen'
Pane = require 'pane'
PaneDivision = require 'pane-division'
module.exports =
class PaneColumn extends View
class PaneColumn extends PaneDivision
@content: ->
@div class: 'column'
@deserialize: ({children}, rootView) ->
childViews = children.map (child) -> rootView.deserializeView(child)
new PaneColumn(childViews)
initialize: (children=[]) ->
@append(children...)
serialize: ->
viewClass: "PaneColumn"
children: @childViewStates()
childViewStates: ->
$(child).view().serialize() for child in @children()
className: ->
"PaneColumn"
adjustDimensions: ->
totalUnits = @verticalGridUnits()
@@ -38,9 +26,7 @@ class PaneColumn extends View
unitsSoFar += childUnits
horizontalGridUnits: ->
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
Math.max(childUnits...)
Math.max(@horizontalChildUnits()...)
verticalGridUnits: ->
childUnits = ($(child).view().verticalGridUnits() for child in @children())
_.sum(childUnits)
_.sum(@verticalChildUnits())

View File

@@ -0,0 +1,24 @@
$ = require 'jquery'
{View} = require 'space-pen'
module.exports =
class PaneDivision extends View
@deserialize: ({children}, rootView) ->
childViews = children.map (child) -> rootView.deserializeView(child)
new this(childViews)
initialize: (children=[]) ->
@append(children...)
serialize: ->
viewClass: @className()
children: @childViewStates()
childViewStates: ->
$(child).view().serialize() for child in @children()
horizontalChildUnits: ->
$(child).view().horizontalGridUnits() for child in @children()
verticalChildUnits: ->
$(child).view().verticalGridUnits() for child in @children()

View File

@@ -1,26 +1,14 @@
$ = require 'jquery'
_ = require 'underscore'
{View} = require 'space-pen'
Pane = require 'pane'
PaneDivision = require 'pane-division'
module.exports =
class PaneRow extends View
class PaneRow extends PaneDivision
@content: ->
@div class: 'row'
@deserialize: ({children}, rootView) ->
childViews = children.map (child) -> rootView.deserializeView(child)
new PaneRow(childViews)
initialize: (children=[]) ->
@append(children...)
serialize: ->
viewClass: "PaneRow"
children: @childViewStates()
childViewStates: ->
$(child).view().serialize() for child in @children()
className: ->
"PaneRow"
adjustDimensions: ->
totalUnits = @horizontalGridUnits()
@@ -33,13 +21,12 @@ class PaneRow extends View
height: '100%'
top: 0
left: "#{unitsSoFar / totalUnits * 100}%"
child.adjustDimensions()
unitsSoFar += childUnits
horizontalGridUnits: ->
childUnits = ($(child).view().horizontalGridUnits() for child in @children())
_.sum(childUnits)
_.sum(@horizontalChildUnits())
verticalGridUnits: ->
childUnits = ($(child).view().verticalGridUnits() for child in @children())
Math.max(childUnits...)
Math.max(@verticalChildUnits()...)