| Clazz.declarePackage ("JSV.common"); | |
| Clazz.load (null, "JSV.common.ViewData", ["JSV.common.Coordinate", "$.ScaleData"], function () { | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.scaleData = null; | |
| this.thisScale = null; | |
| this.nSpectra = 0; | |
| this.iThisScale = 0; | |
| this.spectra = null; | |
| Clazz.instantialize (this, arguments); | |
| }, JSV.common, "ViewData"); | |
| Clazz.defineMethod (c$, "getScaleData", | |
| function () { | |
| return this.scaleData; | |
| }); | |
| Clazz.defineMethod (c$, "getScale", | |
| function () { | |
| return this.thisScale; | |
| }); | |
| Clazz.makeConstructor (c$, | |
| function (spectra, yPt1, yPt2, startList, endList, isContinuous, is2D) { | |
| this.nSpectra = (is2D ? 1 : spectra.size ()); | |
| this.scaleData = new Array (this.nSpectra); | |
| for (var j = 0; j < this.nSpectra; j++) this.scaleData[j] = new JSV.common.ScaleData (startList[j], endList[j]); | |
| this.init (spectra, yPt1, yPt2, isContinuous); | |
| }, "JU.Lst,~N,~N,~A,~A,~B,~B"); | |
| Clazz.makeConstructor (c$, | |
| function (spectra, yPt1, yPt2, isContinuous) { | |
| this.nSpectra = spectra.size (); | |
| var n = spectra.get (0).getXYCoords ().length; | |
| this.scaleData = new Array (1); | |
| this.scaleData[0] = new JSV.common.ScaleData (0, n - 1); | |
| this.init (spectra, yPt1, yPt2, isContinuous); | |
| }, "JU.Lst,~N,~N,~B"); | |
| Clazz.defineMethod (c$, "init", | |
| function (spectra, yPt1, yPt2, isContinuous) { | |
| if (spectra == null) spectra = this.spectra; | |
| else this.spectra = spectra; | |
| this.thisScale = this.scaleData[this.iThisScale = 0]; | |
| for (var i = 0; i < this.scaleData.length; i++) { | |
| this.scaleData[i].userYFactor = spectra.get (i).getUserYFactor (); | |
| this.scaleData[i].spectrumYRef = spectra.get (i).getYRef (); | |
| } | |
| this.resetScaleFactors (); | |
| var minX = JSV.common.Coordinate.getMinX (spectra, this); | |
| var maxX = JSV.common.Coordinate.getMaxX (spectra, this); | |
| var minY = JSV.common.Coordinate.getMinYUser (spectra, this); | |
| var maxY = JSV.common.Coordinate.getMaxYUser (spectra, this); | |
| if (yPt1 != yPt2) { | |
| minY = yPt1; | |
| maxY = yPt2; | |
| if (minY > maxY) { | |
| var t = minY; | |
| minY = maxY; | |
| maxY = t; | |
| }}var isInverted = spectra.get (0).isInverted (); | |
| for (var i = 0; i < this.scaleData.length; i++) { | |
| this.scaleData[i].setMinMax (minX, maxX, minY, maxY); | |
| this.scaleData[i].setScale (isContinuous, isInverted); | |
| } | |
| }, "JU.Lst,~N,~N,~B"); | |
| Clazz.defineMethod (c$, "newSpectrum", | |
| function (spectra) { | |
| this.init (spectra, 0, 0, false); | |
| }, "JU.Lst"); | |
| Clazz.defineMethod (c$, "setXRangeForSubSpectrum", | |
| function (xyCoords) { | |
| this.setXRange (0, xyCoords, this.scaleData[0].minX, this.scaleData[0].maxX, 0, xyCoords.length - 1); | |
| }, "~A"); | |
| Clazz.defineMethod (c$, "setXRange", | |
| function (i, xyCoords, initX, finalX, iStart, iEnd) { | |
| var index = 0; | |
| var ptCount = 0; | |
| for (index = iStart; index <= iEnd; index++) { | |
| var x = xyCoords[index].getXVal (); | |
| if (x >= initX) { | |
| this.scaleData[i % this.scaleData.length].startDataPointIndex = index; | |
| break; | |
| }} | |
| for (; index <= iEnd; index++) { | |
| var x = xyCoords[index].getXVal (); | |
| ptCount++; | |
| if (x >= finalX) { | |
| break; | |
| }} | |
| this.scaleData[i % this.scaleData.length].endDataPointIndex = index - 1; | |
| return ptCount; | |
| }, "~N,~A,~N,~N,~N,~N"); | |
| Clazz.defineMethod (c$, "getStartingPointIndex", | |
| function (i) { | |
| return this.scaleData[i % this.scaleData.length].startDataPointIndex; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "getEndingPointIndex", | |
| function (i) { | |
| return this.scaleData[i % this.scaleData.length].endDataPointIndex; | |
| }, "~N"); | |
| Clazz.defineMethod (c$, "areYScalesSame", | |
| function (i, j) { | |
| i %= this.scaleData.length; | |
| j %= this.scaleData.length; | |
| return (this.scaleData[i].minYOnScale == this.scaleData[j].minYOnScale && this.scaleData[i].maxYOnScale == this.scaleData[j].maxYOnScale); | |
| }, "~N,~N"); | |
| Clazz.defineMethod (c$, "setScale", | |
| function (i, xPixels, yPixels, isInverted) { | |
| this.iThisScale = i % this.scaleData.length; | |
| this.thisScale = this.scaleData[this.iThisScale]; | |
| this.thisScale.setXYScale (xPixels, yPixels, isInverted); | |
| }, "~N,~N,~N,~B"); | |
| Clazz.defineMethod (c$, "resetScaleFactors", | |
| function () { | |
| for (var i = 0; i < this.scaleData.length; i++) this.scaleData[i].spectrumScaleFactor = 1; | |
| }); | |
| Clazz.defineMethod (c$, "scaleSpectrum", | |
| function (i, f) { | |
| if (f <= 0 || i >= this.nSpectra) return; | |
| if (i == -2) { | |
| this.thisScale.scale2D (f); | |
| return; | |
| }if (i < 0) for (i = 0; i < this.scaleData.length; i++) this.scaleData[i].scaleBy (f); | |
| else this.scaleData[i % this.scaleData.length].scaleBy (f); | |
| }, "~N,~N"); | |
| Clazz.defineMethod (c$, "getNewScales", | |
| function (iSelected, isXOnly, y1, y2) { | |
| if (isXOnly) return this.scaleData; | |
| iSelected %= this.scaleData.length; | |
| var f1 = (y1 - this.thisScale.minYOnScale) / (this.thisScale.maxYOnScale - this.thisScale.minYOnScale); | |
| var f2 = (y2 - this.thisScale.minYOnScale) / (this.thisScale.maxYOnScale - this.thisScale.minYOnScale); | |
| var sd = new Array (this.scaleData.length); | |
| for (var i = 0; i < this.scaleData.length; i++) sd[i] = (iSelected >= 0 && i != iSelected ? this.scaleData[i] : new JSV.common.ScaleData ()); | |
| JSV.common.ScaleData.copyScaleFactors (this.scaleData, sd); | |
| JSV.common.ScaleData.copyYScales (this.scaleData, sd); | |
| for (var i = 0; i < this.scaleData.length; i++) { | |
| if (iSelected >= 0 && i != iSelected) continue; | |
| sd[i].isShiftZoomedY = true; | |
| sd[i].minYOnScale = this.scaleData[i].minYOnScale * (1 - f1) + f1 * this.scaleData[i].maxYOnScale; | |
| sd[i].maxYOnScale = this.scaleData[i].minYOnScale * (1 - f2) + f2 * this.scaleData[i].maxYOnScale; | |
| } | |
| return sd; | |
| }, "~N,~B,~N,~N"); | |
| }); | |