override step using callback

pull/7/head
yann300 8 years ago
parent 5e9c4f2826
commit c585be9204
  1. 15
      src/ui/Slider.js
  2. 8
      src/ui/StepManager.js

@ -5,13 +5,14 @@ var yo = require('yo-yo')
var ui = require('../helpers/ui') var ui = require('../helpers/ui')
class Slider { class Slider {
constructor (_traceManager) { constructor (_traceManager, _stepOverride) {
this.event = new EventManager() this.event = new EventManager()
this.traceManager = _traceManager this.traceManager = _traceManager
this.max this.max
this.disabled = true this.disabled = true
this.view this.view
this.solidityMode = false this.solidityMode = false
this.stepOverride = _stepOverride
this.previousValue = null this.previousValue = null
} }
@ -47,19 +48,17 @@ class Slider {
onChange (event) { onChange (event) {
var value = parseInt(this.view.querySelector('#slider').value) var value = parseInt(this.view.querySelector('#slider').value)
if (this.stepOverride) {
value = this.stepOverride(value)
this.setValue(value)
}
if (value === this.previousValue) return if (value === this.previousValue) return
this.previousValue = value this.previousValue = value
this.event.trigger('moved', [value]) this.event.trigger('moved', [value])
} }
setValue (value) { setValue (value) {
var slider = this.view.querySelector('#slider') this.view.querySelector('#slider').value = value
var diff = value - slider.value
if (diff > 0) {
slider.stepUp(diff)
} else {
slider.stepDown(Math.abs(diff))
}
} }
setReducedTrace (trace) { setReducedTrace (trace) {

@ -24,7 +24,9 @@ function StepManager (_parent, _traceManager) {
}) })
}) })
this.slider = new Slider(this.traceManager) this.slider = new Slider(this.traceManager, (step) => {
return this.solidityMode ? this.resolveToReducedTrace(step, 0) : step
})
this.slider.event.register('moved', this, function (step) { this.slider.event.register('moved', this, function (step) {
self.sliderMoved(step) self.sliderMoved(step)
}) })
@ -108,10 +110,6 @@ StepManager.prototype.sliderMoved = function (step) {
if (!this.traceManager.inRange(step)) { if (!this.traceManager.inRange(step)) {
return return
} }
if (this.solidityMode) {
step = this.resolveToReducedTrace(step, 0)
this.slider.setValue(step)
}
this.changeState(step) this.changeState(step)
} }

Loading…
Cancel
Save