From: dsc Date: Thu, 29 Mar 2012 09:12:20 +0000 (-0700) Subject: Renames 'chart-library' to 'chart-type', as it makes sense that one library might... X-Git-Url: http://git.less.ly:3516/?a=commitdiff_plain;h=4cb326c837d8a63061738dbf6a24dbbe7738af5b;p=limn.git Renames 'chart-library' to 'chart-type', as it makes sense that one library might service multiple chart types, each with their own options schema. --- diff --git a/lib/graph/graph-model.co b/lib/chart/chart-option-model.co similarity index 81% rename from lib/graph/graph-model.co rename to lib/chart/chart-option-model.co index 39e1109..e5277f8 100644 --- a/lib/graph/graph-model.co +++ b/lib/chart/chart-option-model.co @@ -1,13 +1,11 @@ _ = require 'kraken/util/underscore' -{ BaseModel, BaseView, -} = require 'kraken/base' { Field, FieldList, FieldView, Scaffold, } = require 'kraken/scaffold' -IGNORED_TAGS = exports.IGNORED_TAGS = <[ callback deprecated debugging ]> - - +/** + * @class A set of tags. + */ class exports.TagSet extends Array tags : {} @@ -34,14 +32,21 @@ class exports.TagSet extends Array toString: -> "TagSet(length=#{@length}, values=[\"#{@join '", "'}\"])" + +/** + * @namespace All known tags, for mapping consistently onto colors. + */ KNOWN_TAGS = exports.KNOWN_TAGS = new TagSet() + /** - * Field with graph-option-specific handling for validation, parsing, tags, etc. + * @class Field with chart-option-specific handling for validation, parsing, tags, etc. */ -GraphOption = exports.GraphOption = Field.extend do # {{{ - ctorName : 'GraphOption' +ChartOption = exports.ChartOption = Field.extend do # {{{ + ctorName : 'ChartOption' + IGNORED_TAGS : <[ callback deprecated debugging ]> + initialize : -> # console.log "#this.initialize!" @@ -54,7 +59,7 @@ GraphOption = exports.GraphOption = Field.extend do # {{{ # Ignore functions/callbacks and, ahem, hidden tags. type = @get 'type', '' .toLowerCase() tags = @get 'tags', [] - if _.str.include(type, 'function') or _.intersection(tags, IGNORED_TAGS).length + if _.str.include(type, 'function') or _.intersection(tags, @IGNORED_TAGS).length @set 'ignore', true @@ -100,9 +105,13 @@ GraphOption = exports.GraphOption = Field.extend do # {{{ # }}} -GraphOptionList = exports.GraphOptionList = FieldList.extend do # {{{ - ctorName : 'GraphOptionList' - model : GraphOption + +/** + * @class List of ChartOption fields. + */ +ChartOptionList = exports.ChartOptionList = FieldList.extend do # {{{ + ctorName : 'ChartOptionList' + model : ChartOption /** * Override to omit defaults from URL. diff --git a/lib/graph/graph-view.co b/lib/chart/chart-option-view.co similarity index 79% rename from lib/graph/graph-view.co rename to lib/chart/chart-option-view.co index ad07954..fa68de9 100644 --- a/lib/graph/graph-view.co +++ b/lib/chart/chart-option-view.co @@ -1,22 +1,21 @@ _ = require 'kraken/util/underscore' -{BaseView} = require 'kraken/base' { Field, FieldList, FieldView, Scaffold, } = require 'kraken/scaffold' -{ GraphOption, GraphOptionList, TagSet, KNOWN_TAGS, -} = require 'kraken/graph/graph-model' +{ ChartOption, ChartOptionList, +} = require 'kraken/chart/chart-option-model' DEBOUNCE_RENDER = exports.DEBOUNCE_RENDER = 100ms /** - * The view for a single configurable option. + * @class View for a single configurable option in a chart type. */ -GraphOptionView = exports.GraphOptionView = FieldView.extend do # {{{ +ChartOptionView = exports.ChartOptionView = FieldView.extend do # {{{ # __bind__ : <[ onClick ]> - ctorName : 'GraphOptionView' + ctorName : 'ChartOptionView' tagName : 'div' className : 'field option' - template : require 'kraken/template/graph-option' + template : require 'kraken/template/chart-option' isCollapsed : true @@ -52,15 +51,15 @@ GraphOptionView = exports.GraphOptionView = FieldView.extend do # {{{ /** - * + * @class View for configuring a chart type. */ -GraphOptionsScaffold = exports.GraphOptionsScaffold = Scaffold.extend do # {{{ - ctorName : 'GraphOptionsScaffold' +ChartOptionScaffold = exports.ChartOptionScaffold = Scaffold.extend do # {{{ + ctorName : 'ChartOptionScaffold' tagName : 'form' className : 'options scaffold' - template : require 'kraken/template/graph-scaffold' - collectionType : GraphOptionList - subviewType : GraphOptionView + template : require 'kraken/template/chart-scaffold' + collectionType : ChartOptionList + subviewType : ChartOptionView fields : '.fields' # GraphView will set this @@ -91,7 +90,7 @@ GraphOptionsScaffold = exports.GraphOptionsScaffold = Scaffold.extend do # {{{ sortBy: 'category' /** - * Add a GraphOption to this scaffold, rerendering the isotope + * Add a ChartOption to this scaffold, rerendering the isotope * layout after collapse events. */ addOne: (field) -> diff --git a/lib/chart/chart-type.co b/lib/chart/chart-type.co index 6a145f5..637477b 100644 --- a/lib/chart/chart-type.co +++ b/lib/chart/chart-type.co @@ -1,5 +1,4 @@ _ = require 'kraken/util/underscore' -op = require 'kraken/util/op' {EventEmitter} = require 'events' {Parsers, ParserMixin} = require 'kraken/util/parser' @@ -7,7 +6,7 @@ op = require 'kraken/util/op' /** * @class Specification for an option. */ -class exports.ChartOption +class exports.ChartTypeOption SPEC_KEYS : <[ name type default desc tags examples ]> name : null @@ -19,13 +18,13 @@ class exports.ChartOption (@chartType, @spec) -> - throw new Error('Each ChartOption requires a name!') unless @spec.name + throw new Error('Each ChartTypeOption requires a name!') unless @spec.name for k of @SPEC_KEYS v = @spec[k] @[k] = v if v? @tags or= [] - @parse = @lookup.getParser @type + @parse = @chartType.getParser @type parse : Parsers.parseString @@ -50,14 +49,14 @@ KNOWN_CHART_TYPES = exports.KNOWN_CHART_TYPES = {} */ class exports.ChartType extends EventEmitter /** - * Ordered ChartOption objects. - * @type ChartOption[] + * Ordered ChartTypeOption objects. + * @type ChartTypeOption[] */ options_ordered : null /** - * Map of option name to ChartOption objects. - * @type { name:ChartOption, ... } + * Map of option name to ChartTypeOption objects. + * @type { name:ChartTypeOption, ... } */ options : null @@ -70,13 +69,13 @@ class exports.ChartType extends EventEmitter * name, type, default, description (etc) of a chart option. */ (@name, options) -> - @options_ordered = _.map options, (opt) ~> new ChartOption this, opt + @options_ordered = _.map options, (opt) ~> new ChartTypeOption this, opt @options = _.synthesize @options_ordered, -> [it.name, it] ChartType.register this /** - * @returns {ChartOption} Get an option's spec by name. + * @returns {ChartTypeOption} Get an option's spec by name. */ get: (name, def) -> @options[name] or def diff --git a/lib/chart/dygraphs.co b/lib/chart/dygraphs.co index 056bc39..bdaada1 100644 --- a/lib/chart/dygraphs.co +++ b/lib/chart/dygraphs.co @@ -1,5 +1,5 @@ _ = require 'kraken/util/underscore' -{ ChartType, ChartOption, +{ ChartType, ChartTypeOption, } = require 'kraken/chart/chart-type' diff --git a/lib/chart/index.co b/lib/chart/index.co index 6709cab..e25febb 100644 --- a/lib/chart/index.co +++ b/lib/chart/index.co @@ -1,3 +1,5 @@ -chart_type = require 'kraken/chart/chart-type' -dygraphs = require 'kraken/chart/dygraphs' -exports import chart_type import dygraphs +chart_type = require 'kraken/chart/chart-type' +dygraphs = require 'kraken/chart/dygraphs' +models = require 'kraken/chart/chart-option-model' +views = require 'kraken/chart/chart-option-view' +exports import chart_type import dygraphs import models import views diff --git a/lib/graph/index.co b/lib/graph/index.co index cd7b8be..5437dcc 100644 --- a/lib/graph/index.co +++ b/lib/graph/index.co @@ -1,3 +1,3 @@ -models = require 'kraken/graph/graph-model' -views = require 'kraken/graph/graph-view' -exports import models import views +# models = require 'kraken/graph/graph-model' +# views = require 'kraken/graph/graph-view' +# exports import models import views diff --git a/lib/main.co b/lib/main.co index 2098f7e..2134b50 100644 --- a/lib/main.co +++ b/lib/main.co @@ -3,15 +3,14 @@ Backbone = require 'backbone' { _, op, } = require 'kraken/util' -{ ChartType, DygraphsChartType, -} = require 'kraken/chart' { BaseView, BaseModel, BaseList, } = require 'kraken/base' { Field, FieldList, FieldView, Scaffold, } = require 'kraken/scaffold' -{ GraphOption, GraphOptionList, GraphOptionView, - GraphOptionsScaffold, TagSet, -} = require 'kraken/graph' +{ ChartType, DygraphsChartType, + ChartOption, ChartOptionList, TagSet, + ChartOptionView, ChartOptionScaffold, +} = require 'kraken/chart' { VisView, VisModel, VisList, } = require 'kraken/vis' diff --git a/lib/template/graph-option.jade b/lib/template/chart-option.jade similarity index 100% rename from lib/template/graph-option.jade rename to lib/template/chart-option.jade diff --git a/lib/template/graph-scaffold.jade b/lib/template/chart-scaffold.jade similarity index 100% rename from lib/template/graph-scaffold.jade rename to lib/template/chart-scaffold.jade diff --git a/lib/util/index.co b/lib/util/index.co index caba6e5..35cb297 100644 --- a/lib/util/index.co +++ b/lib/util/index.co @@ -11,7 +11,8 @@ root.jQuery?.fn.invoke = (method, ...args) -> op = require 'kraken/util/op' backbone = require 'kraken/util/backbone' parser = require 'kraken/util/parser' -exports import { root, _, op, backbone, parser, } +Cascade = require 'kraken/util/cascade' +exports import { root, _, op, backbone, parser, Cascade, } # HashSet = require 'kraken/util/hashset' # BitString = require 'kraken/util/bitstring' diff --git a/lib/vis/vis-model.co b/lib/vis/vis-model.co index 0ff9361..bbd2e7a 100644 --- a/lib/vis/vis-model.co +++ b/lib/vis/vis-model.co @@ -4,7 +4,7 @@ _ = require 'kraken/util/underscore' Cascade = require 'kraken/util/cascade' { ChartType, } = require 'kraken/chart' -{ BaseModel, BaseView, BaseList, +{ BaseModel, BaseList, } = require 'kraken/base' root = do -> this diff --git a/lib/vis/vis-view.co b/lib/vis/vis-view.co index 40a7e89..8275daa 100644 --- a/lib/vis/vis-view.co +++ b/lib/vis/vis-view.co @@ -3,10 +3,8 @@ root = do -> this _ = require 'kraken/util/underscore' { BaseView, } = require 'kraken/base' -{ Field, FieldList, FieldView, Scaffold -} = require 'kraken/scaffold' -{ GraphOptionsScaffold, GraphOption, GraphOptionList, DEBOUNCE_RENDER, -} = require 'kraken/graph' +{ ChartOptionScaffold, ChartOption, ChartOptionList, DEBOUNCE_RENDER, +} = require 'kraken/chart' { VisModel, } = require 'kraken/vis/vis-model' @@ -73,7 +71,7 @@ VisView = exports.VisView = BaseView.extend do # {{{ @viewport = @$el.find '.viewport' - @scaffold = new GraphOptionsScaffold + @scaffold = new ChartOptionScaffold @$el.find '.graph-options-pane' .append @scaffold.el @scaffold.collection.reset that if o.graph_spec diff --git a/www/misc/test.co b/www/misc/test.co index 4bc97e1..5c3033a 100644 --- a/www/misc/test.co +++ b/www/misc/test.co @@ -1,19 +1,16 @@ Seq = require 'seq' Backbone = require 'backbone' -{ _, op, +{ _, op, Cascade, } = require 'kraken/util' -Cascade = require 'kraken/util/cascade' - -{ ChartLibrary, DygraphsLibrary, -} = require 'kraken/chart' { BaseView, BaseModel, BaseList, } = require 'kraken/base' { Field, FieldList, FieldView, Scaffold, } = require 'kraken/scaffold' -{ GraphOption, GraphOptionList, GraphOptionView, - GraphOptionsScaffold, TagSet, -} = require 'kraken/graph' +{ ChartType, DygraphsChartType, + ChartOption, ChartOptionList, TagSet, + ChartOptionView, ChartOptionScaffold, +} = require 'kraken/chart' { VisView, VisModel, VisList, } = require 'kraken/vis' @@ -31,7 +28,7 @@ main = -> # for opt of root.CHART_OPTIONS_SPEC # opts[opt.name] = opt.default - dyglib = new DygraphsLibrary CHART_OPTIONS_SPEC + dyglib = new DygraphsChartType CHART_OPTIONS_SPEC # TODO: create a preset manager # Remove chart options from data so we don't have to deepcopy diff --git a/www/modules.yaml b/www/modules.yaml index 99cb4f0..d1c2c45 100644 --- a/www/modules.yaml +++ b/www/modules.yaml @@ -57,22 +57,24 @@ dev: - cascade - index - base + - scaffold: + - scaffold-model + - scaffold-view + - index - chart: - chart-type - dygraphs + - chart-option-model + - chart-option-view - index - template: + - chart-option.jade + - chart-scaffold.jade - graph.jade - - graph-option.jade - - graph-scaffold.jade - - scaffold: - - scaffold-model - - scaffold-view - - index - - graph: - - graph-model - - graph-view - - index + # - graph: + # - graph-model + # - graph-view + # - index - vis: - vis-model - vis-view