/* * Copyright (c) 2014 DataTorrent, Inc. ALL Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; app .factory('RandomDataModel', function ($interval, WidgetDataModel) { function RandomDataModel() { } RandomDataModel.prototype = Object.create(WidgetDataModel.prototype); RandomDataModel.prototype.constructor = WidgetDataModel; angular.extend(RandomDataModel.prototype, { init: function () { var dataModelOptions = this.dataModelOptions; this.limit = (dataModelOptions && dataModelOptions.limit) ? dataModelOptions.limit : 100; this.updateScope('-'); this.startInterval(); }, startInterval: function () { $interval.cancel(this.intervalPromise); this.intervalPromise = $interval(function () { var value = Math.floor(Math.random() * this.limit); this.updateScope(value); }.bind(this), 500); }, updateLimit: function (limit) { this.dataModelOptions = this.dataModelOptions ? this.dataModelOptions : {}; this.dataModelOptions.limit = limit; this.limit = limit; }, destroy: function () { WidgetDataModel.prototype.destroy.call(this); $interval.cancel(this.intervalPromise); } }); return RandomDataModel; });