Sha256: 35a9935454e5092dc5bfb3d267927699bfbec9b483be9825e0bc9c62165b7726

Contents?: true

Size: 1.14 KB

Versions: 21

Compression:

Stored size: 1.14 KB

Contents

class WidgetPresenter
	constructor: (@pageInfos, @model, el) ->
		chartClass = @chartClass()
		@chart = new chartClass(el)
		@draw()

	get: (arg) -> @model.get(arg)

	globalOptions: -> gon.options

	dateOffset: ->
		if @globalOptions.useUtc
			(new Date).getTimezoneOffset() * 60000
		else
			0
	
	options: ->
		{
			title: @get('title')
			height: 300
			chartArea:
				left: 10
		}

	mergedOptions: ->
		pageOptions = if @pageInfos.selected()
			@pageInfos.selected().get('gchartOptions')
		else
			{}

		$.extend(true,
			@options(),
			@globalOptions.gchartOptions,
			pageOptions,
			@get('gchartOptions')
		)

	data: -> new google.visualization.DataTable

	chartClass: -> google.visualization[@visualization]

	cutoff: ->
	
	cutoffValue: (v, min, max) ->
		if v?
			if min? && v < min
				min
			else if max? && v > max
				max
			else
				v
		else
			0

	draw: (min, max) ->
		@cutoff(min, max)
		@chart.draw(@data(), @mergedOptions())

WidgetPresenter.create = (pageInfos, model, el) ->
	type = model.get('type')
	if type? && type.match(/^\w+$/)
		presenterClass = eval("#{type.capitalize()}Presenter")
		new presenterClass(pageInfos, model, el)
	else
		null

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
pulse_meter_visualizer-0.4.18 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.17 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.16 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.15 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.14 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.13 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.12 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse_meter_visualizer-0.4.11 lib/pulse_meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.9 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.8 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.7 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.6 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.5 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.4 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.3 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.2 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.1 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.4.0 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.3.2 lib/pulse-meter/visualize/coffee/presenters/widget.coffee
pulse-meter-0.3.1 lib/pulse-meter/visualize/coffee/presenters/widget.coffee