jam-cloud/web/app/assets/javascripts/wizard/frame_buffers.js

117 lines
3.4 KiB
JavaScript

(function (context, $) {
"use strict";
context.JK = context.JK || {};
context.JK.FrameBuffers = function (app) {
var $knobs = null;
var $bufferIn = null;
var $bufferOut = null;
var $frameSize = null;
var $self = $(this);
var FRAMESIZE_CHANGED = 'frame_buffers.framesize_changed';
var BUFFER_IN_CHANGED = 'frame_buffers.buffer_in_changed';
var BUFFER_OUT_CHANGED = 'frame_buffers.buffer_out_changed';
function selectedFramesize() {
return parseFloat($frameSize.val());
}
function selectedBufferIn() {
return parseFloat($bufferIn.val());
}
function selectedBufferOut() {
return parseFloat($bufferOut.val());
}
function setFramesize(value) {
context.JK.dropdown($frameSize.val(value).easyDropDown('select', value.toString(), true))
}
function setBufferIn(value) {
context.JK.dropdown($bufferIn.val(value).easyDropDown('select', value.toString(), true));
}
function setBufferOut(value) {
context.JK.dropdown($bufferOut.val(value).easyDropDown('select', value.toString(), true))
}
function render() {
context.JK.dropdown($frameSize);
context.JK.dropdown($bufferIn);
context.JK.dropdown($bufferOut);
}
function disable() {
$frameSize.attr("disabled", "disabled").easyDropDown('disable');
$bufferIn.attr("disabled", "disabled").easyDropDown('disable');
$bufferOut.attr("disabled", "disabled").easyDropDown('disable');
}
function enable() {
$frameSize.removeAttr("disabled").easyDropDown('enable');
$bufferIn.removeAttr("disabled").easyDropDown('enable');
$bufferOut.removeAttr("disabled").easyDropDown('enable');
}
function resetValues() {
$frameSize.val('2.5');
$bufferIn.val('0');
$bufferOut.val('0');
}
function events() {
$frameSize.unbind('change').change(function () {
$self.triggerHandler(FRAMESIZE_CHANGED, {value: selectedFramesize()});
});
$bufferIn.unbind('change').change(function () {
logger.debug("buffer-in changed: " + selectedBufferIn());
$self.triggerHandler(BUFFER_IN_CHANGED, {value: selectedBufferIn()});
});
$bufferOut.unbind('change').change(function () {
logger.debug("buffer-out changed: " + selectedBufferOut());
$self.triggerHandler(BUFFER_OUT_CHANGED, {value: selectedBufferOut()});
});
}
function initialize(_$knobs) {
$knobs = _$knobs;
if(!$knobs.is('.frame-and-buffers')) {
throw "$knobs != .frame-and-buffers"
}
$bufferIn = $knobs.find('.select-buffer-in');
$bufferOut = $knobs.find('.select-buffer-out');
$frameSize = $knobs.find('.select-frame-size');
events();
render();
}
this.FRAMESIZE_CHANGED = FRAMESIZE_CHANGED;
this.BUFFER_IN_CHANGED = BUFFER_IN_CHANGED;
this.BUFFER_OUT_CHANGED = BUFFER_OUT_CHANGED;
this.initialize = initialize;
this.selectedFramesize = selectedFramesize;
this.selectedBufferIn = selectedBufferIn;
this.selectedBufferOut = selectedBufferOut;
this.setFramesize = setFramesize;
this.setBufferIn = setBufferIn;
this.setBufferOut = setBufferOut;
this.render = render;
this.enable = enable;
this.disable = disable;
this.resetValues = resetValues;
return this;
}
})(window, jQuery);