From 67fa502930a44af379e12f2196c763009b97c55a Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Sat, 20 Aug 2016 16:39:31 -0300 Subject: [PATCH] Blocking negative values for CINE tool --- .../viewer/cineDialog/cineDialog.js | 133 ++++++++++-------- 1 file changed, 76 insertions(+), 57 deletions(-) diff --git a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js index f294947f1..fc7ed8406 100644 --- a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js +++ b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js @@ -1,69 +1,88 @@ import { OHIF } from 'meteor/ohif:core'; -function updateFramerate(rate) { - OHIF.viewer.cine.framesPerSecond = rate; +Template.cineDialog.onCreated(() => { + const instance = Template.instance(); - // Update playClip toolData for this imageId - var element = getActiveViewportElement(); - var playClipToolData = cornerstoneTools.getToolState(element, 'playClip'); - playClipToolData.data[0].framesPerSecond = OHIF.viewer.cine.framesPerSecond; + instance.updateFramerate = rate => { + OHIF.viewer.cine.framesPerSecond = rate; - // If the movie is playing, stop/start to update the framerate - if (isPlaying()) { - cornerstoneTools.stopClip(element); - cornerstoneTools.playClip(element); - } - - Session.set('UpdateCine', Random.id()); -} - -Template.cineDialog.helpers({ - isPlaying: function() { - return isPlaying(); - }, - framerate: function() { - Session.get('UpdateCine'); - return OHIF.viewer.cine.framesPerSecond.toFixed(1); - } -}); - -Template.cineDialog.events({ - 'click #cineFirstButton': function() { - switchToImageByIndex(0); - }, - 'click #cineBackButton': function() { - switchToImageRelative(-1); - }, - 'click #cineSlowPlaybackButton': function() { - updateFramerate(OHIF.viewer.cine.framesPerSecond - 1); - }, - 'click #cinePlayButton': function() { - toggleCinePlay(); - }, - 'click #cineNextButton': function() { - switchToImageRelative(1); - }, - 'click #cineFastForwardButton': function() { - updateFramerate(OHIF.viewer.cine.framesPerSecond + 1); - }, - 'click #cineLastButton': function() { - switchToImageByIndex(-1); - }, - 'change #cineLoopCheckbox': function(e) { + // Update playClip toolData for this imageId var element = getActiveViewportElement(); var playClipToolData = cornerstoneTools.getToolState(element, 'playClip'); - playClipToolData.data[0].loop = $(e.currentTarget).is(':checked'); - OHIF.viewer.cine.loop = playClipToolData.data[0].loop; - }, - 'input #cineSlider': function(e) { - // Update the FPS text onscreen - var rate = parseFloat($(e.currentTarget).val()); - updateFramerate(rate); - } + playClipToolData.data[0].framesPerSecond = OHIF.viewer.cine.framesPerSecond; + + // If the movie is playing, stop/start to update the framerate + if (isPlaying()) { + cornerstoneTools.stopClip(element); + cornerstoneTools.playClip(element); + } + + Session.set('UpdateCine', Random.id()); + }; }); -Template.cineDialog.onRendered(function() { +Template.cineDialog.onRendered(() => { const instance = Template.instance(); const dialog = instance.$('#cineDialog'); dialog.draggable(); }); + +Template.cineDialog.events({ + 'click #cineFirstButton'(event, instance) { + switchToImageByIndex(0); + }, + + 'click #cineBackButton'(event, instance) { + switchToImageRelative(-1); + }, + + 'click #cineSlowPlaybackButton'(event, instance) { + const newValue = OHIF.viewer.cine.framesPerSecond - 1; + if (newValue > 0) { + instance.updateFramerate(newValue); + } + }, + + 'click #cinePlayButton'(event, instance) { + toggleCinePlay(); + }, + + 'click #cineNextButton'(event, instance) { + switchToImageRelative(1); + }, + + 'click #cineFastForwardButton'(event, instance) { + const newValue = OHIF.viewer.cine.framesPerSecond + 1; + if (newValue <= 90) { + instance.updateFramerate(newValue); + } + }, + + 'click #cineLastButton'(event, instance) { + switchToImageByIndex(-1); + }, + + 'change #cineLoopCheckbox'(event, instance) { + var element = getActiveViewportElement(); + var playClipToolData = cornerstoneTools.getToolState(element, 'playClip'); + playClipToolData.data[0].loop = $(event.currentTarget).is(':checked'); + OHIF.viewer.cine.loop = playClipToolData.data[0].loop; + }, + + 'input #cineSlider'(event, instance) { + // Update the FPS text onscreen + var rate = parseFloat($(event.currentTarget).val()); + instance.updateFramerate(rate); + } +}); + +Template.cineDialog.helpers({ + isPlaying() { + return isPlaying(); + }, + + framerate() { + Session.get('UpdateCine'); + return OHIF.viewer.cine.framesPerSecond.toFixed(1); + } +});