UNPKG

@quartic/bokehjs

Version:

Interactive, novel data visualization

130 lines (129 loc) 5.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var extend = function (child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; var gesture_tool_1 = require("./gesture_tool"); var glyph_renderer_1 = require("../../renderers/glyph_renderer"); var logging_1 = require("core/logging"); var p = require("core/properties"); var object_1 = require("core/util/object"); exports.SelectToolView = (function (superClass) { extend(SelectToolView, superClass); function SelectToolView() { return SelectToolView.__super__.constructor.apply(this, arguments); } SelectToolView.prototype._keyup = function (e) { var ds, j, len, r, ref, results, sm; if (e.keyCode === 27) { ref = this.model.computed_renderers; results = []; for (j = 0, len = ref.length; j < len; j++) { r = ref[j]; ds = r.data_source; sm = ds.selection_manager; results.push(sm.clear()); } return results; } }; SelectToolView.prototype._save_geometry = function (geometry, final, append) { var g, geoms, i, j, ref, tool_events, xm, ym; g = object_1.clone(geometry); xm = this.plot_view.frame.x_mappers['default']; ym = this.plot_view.frame.y_mappers['default']; switch (g.type) { case 'point': g.x = xm.map_from_target(g.vx); g.y = ym.map_from_target(g.vy); break; case 'rect': g.x0 = xm.map_from_target(g.vx0); g.y0 = ym.map_from_target(g.vy0); g.x1 = xm.map_from_target(g.vx1); g.y1 = ym.map_from_target(g.vy1); break; case 'poly': g.x = new Array(g.vx.length); g.y = new Array(g.vy.length); for (i = j = 0, ref = g.vx.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { g.x[i] = xm.map_from_target(g.vx[i]); g.y[i] = ym.map_from_target(g.vy[i]); } break; default: logging_1.logger.debug("Unrecognized selection geometry type: '" + g.type + "'"); } if (final) { tool_events = this.plot_model.plot.tool_events; if (append) { geoms = tool_events.geometries; geoms.push(g); } else { geoms = [g]; } tool_events.geometries = geoms; } return null; }; return SelectToolView; })(gesture_tool_1.GestureToolView); exports.SelectTool = (function (superClass) { extend(SelectTool, superClass); function SelectTool() { return SelectTool.__super__.constructor.apply(this, arguments); } SelectTool.define({ renderers: [p.Array, []], names: [p.Array, []] }); SelectTool.internal({ multi_select_modifier: [p.String, "shift"] }); SelectTool.prototype.initialize = function (attrs, options) { SelectTool.__super__.initialize.call(this, attrs, options); this.define_computed_property('computed_renderers', function () { var all_renderers, names, r, renderers; renderers = this.renderers; names = this.names; if (renderers.length === 0) { all_renderers = this.plot.renderers; renderers = (function () { var j, len, results; results = []; for (j = 0, len = all_renderers.length; j < len; j++) { r = all_renderers[j]; if (r instanceof glyph_renderer_1.GlyphRenderer) { results.push(r); } } return results; })(); } if (names.length > 0) { renderers = (function () { var j, len, results; results = []; for (j = 0, len = renderers.length; j < len; j++) { r = renderers[j]; if (names.indexOf(r.name) >= 0) { results.push(r); } } return results; })(); } return renderers; }, true); this.add_dependencies('computed_renderers', this, ['renderers', 'names', 'plot']); return this.add_dependencies('computed_renderers', this.plot, ['renderers']); }; SelectTool.getters({ computed_renderers: function () { return this._get_computed('computed_renderers'); } }); return SelectTool; })(gesture_tool_1.GestureTool);