Tighten up the code
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/a083f0c2 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/a083f0c2 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/a083f0c2 Branch: refs/heads/master Commit: a083f0c2f336f6551e1526ebdabb4f216de6e43d Parents: a9bdf41 Author: Howard M. Lewis Ship <[email protected]> Authored: Tue Jun 11 08:15:43 2013 -0700 Committer: Howard M. Lewis Ship <[email protected]> Committed: Tue Jun 11 08:15:43 2013 -0700 ---------------------------------------------------------------------- .../META-INF/modules/t5/core/palette.coffee | 42 +++++++------------- 1 file changed, 14 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a083f0c2/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/palette.coffee ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/palette.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/palette.coffee index f119496..5c112f3 100644 --- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/palette.coffee +++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/palette.coffee @@ -176,22 +176,29 @@ define ["./dom", "underscore", "./events"], # didUpdate events. reorderSelected: (options) -> - canceled = false - + @performUpdate true, options, => - doUpdate = => @deleteOptions @selected for o in options @selected.element.add o, null - @selected.trigger events.palette.didChange, memo + # Performs the update, which includes the willChange and didChange events. + performUpdate: (isReorder, selectedOptions, updateCallback) -> + + canceled = false + selectedValues = _.pluck selectedOptions, "value" + + doUpdate = => + updateCallback() + + @selected.trigger events.palette.didChange, { selectedValues } @updateAfterChange() memo = - selectedValues: _.pluck options, "value" - reorder: true + selectedValues: selectedValues + reorder: isReorder cancel: -> canceled = true defer: -> canceled = true @@ -226,9 +233,7 @@ define ["./dom", "underscore", "./events"], selectedOptions = if to is @selected then toOptions else fromOptions - canceled = false - - doUpdate = => + @performUpdate false, selectedOptions, => for i in [(from.element.length - 1)..0] by -1 if from.element.options[i].selected from.element.remove i @@ -242,25 +247,6 @@ define ["./dom", "underscore", "./events"], for o in toOptions to.element.add o, null - @selected.trigger events.palette.didChange, memo - - @updateAfterChange() - - memo = - selectedValues: _.pluck selectedOptions, "value" - reorder: false - cancel: -> canceled = true - defer: -> - canceled = true - return doUpdate - - @selected.trigger events.palette.willChange, memo - - doUpdate() unless canceled - - # Remove the movers (the selected from elements): - - insertOption: (options, option, atEnd) -> unless atEnd
