@quartic/bokehjs
Version:
Interactive, novel data visualization
44 lines (35 loc) • 1.34 kB
text/coffeescript
import {logger} from "core/logging"
import * as p from "core/properties"
import {Model} from "../../model"
export class ImageSource extends Model
type: 'ImageSource'
url: [ p.String, '' ]
extra_url_vars: [ p.Any, {} ]
}
constructor: (options={}) ->
super
normalize_case:() ->
'''Note: should probably be refactored into subclasses.'''
url = @url
url = url.replace('{xmin}','{XMIN}')
url = url.replace('{ymin}','{YMIN}')
url = url.replace('{xmax}','{XMAX}')
url = url.replace('{ymax}','{YMAX}')
url = url.replace('{height}','{HEIGHT}')
url = url.replace('{width}','{WIDTH}')
string_lookup_replace: (str, lookup) ->
result_str = str
for key, value of lookup
result_str = result_str.replace('{'+key+'}', value.toString())
return result_str
add_image: (image_obj) ->
remove_image: (image_obj) ->
delete @images[image_obj.cache_key]
get_image_url: (xmin, ymin, xmax, ymax, height, width) ->
image_url = @string_lookup_replace(@url, @extra_url_vars)
return image_url.replace("{XMIN}", xmin).replace("{YMIN}", ymin).replace("{XMAX}", xmax).replace("{YMAX}", ymax).replace("{WIDTH}", width).replace("{HEIGHT}", height)