BUG FIXED with Zooming and the new Plotter module
This commit is contained in:
1 parent
5a0ac3a532
commit
b2ff763c80
4 files changed
+37
-18
No files matched your search
@@ -290,6 +290,8 @@ function newViewPort () {
|
||||
x: 0,
|
||||
y: 0
|
||||
}
|
||||
|
||||
thisObject.eventHandler.raiseEvent('Zoom Changed')
|
||||
}
|
||||
|
||||
function zoomFontSize (baseSize, level) {
|
||||
|
||||
@@ -58,7 +58,9 @@ function newTimeControlPanel () {
|
||||
}
|
||||
|
||||
function onZoomChanged (event) {
|
||||
timePeriod = recalculatePeriod(event.newLevel)
|
||||
if (event !== undefined) { // it is undefined when the level is just being animated.
|
||||
timePeriod = recalculatePeriod(event.newLevel)
|
||||
}
|
||||
}
|
||||
|
||||
function getContainer (point) {
|
||||
@@ -115,7 +117,7 @@ function newTimeControlPanel () {
|
||||
|
||||
labelPoint = thisObject.container.frame.frameThisPoint(labelPoint)
|
||||
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.fillStyle = 'rgba(60, 60, 60, 0.50)'
|
||||
browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y)
|
||||
|
||||
@@ -132,7 +134,7 @@ function newTimeControlPanel () {
|
||||
|
||||
labelPoint = thisObject.container.frame.frameThisPoint(labelPoint)
|
||||
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.fillStyle = 'rgba(60, 60, 60, 0.50)'
|
||||
browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y)
|
||||
|
||||
@@ -151,7 +153,7 @@ function newTimeControlPanel () {
|
||||
|
||||
labelPoint = thisObject.container.frame.frameThisPoint(labelPoint)
|
||||
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY
|
||||
browserCanvasContext.fillStyle = 'rgba(60, 60, 60, 0.50)'
|
||||
browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y)
|
||||
}
|
||||
|
||||
+15
-2
@@ -59,6 +59,7 @@ function newPlotter () {
|
||||
let marketFilesUpdatedEventSubscriptionId
|
||||
let dailyFilesUpdatedEventSubscriptionId
|
||||
|
||||
let logged = false
|
||||
return thisObject
|
||||
|
||||
function finalize () {
|
||||
@@ -177,7 +178,7 @@ function newPlotter () {
|
||||
try {
|
||||
if (timePeriod !== pTimePeriod) {
|
||||
timePeriod = pTimePeriod
|
||||
|
||||
mustRecalculateDataPoints = true
|
||||
if (timePeriod >= _1_HOUR_IN_MILISECONDS) {
|
||||
let newMarketFile = marketFiles.getFile(pTimePeriod)
|
||||
|
||||
@@ -408,6 +409,14 @@ function newPlotter () {
|
||||
leftDate = new Date(leftDate.valueOf() - dateDiff * 1.5)
|
||||
rightDate = new Date(rightDate.valueOf() + dateDiff * 1.5)
|
||||
|
||||
for (let i = 0; i < records.length; i++) {
|
||||
let record = records[i]
|
||||
record.fillStyle = undefined
|
||||
record.strokeStyle = undefined
|
||||
record.dataPoints = undefined
|
||||
record.previous = undefined
|
||||
records[i] = {}
|
||||
}
|
||||
records = []
|
||||
|
||||
/* Transform the current file content into an array of JSON objects */
|
||||
@@ -428,7 +437,6 @@ function newPlotter () {
|
||||
function recalculateScale () {
|
||||
try {
|
||||
if (timeLineCoordinateSystem.maxValue > 0) { return } // Already calculated.
|
||||
|
||||
/* First we calculate the default scale */
|
||||
let minValue = {
|
||||
x: MIN_PLOTABLE_DATE.valueOf(),
|
||||
@@ -531,6 +539,9 @@ function newPlotter () {
|
||||
/* We use the datapoints already calculated. */
|
||||
dataPoints = record.dataPoints
|
||||
} else {
|
||||
if (logged === false) {
|
||||
logged = true
|
||||
}
|
||||
/* Only calculate the datapoints for this record, if we have not calculate it before. */
|
||||
for (let k = 0; k < productDefinition.referenceParent.shapes.chartPoints.length; k++) {
|
||||
let chartPoints = productDefinition.referenceParent.shapes.chartPoints[k]
|
||||
@@ -747,6 +758,7 @@ function newPlotter () {
|
||||
}
|
||||
|
||||
mustRecalculateDataPoints = false
|
||||
logged = false
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] plotChart -> err = ' + err.stack) }
|
||||
}
|
||||
@@ -754,6 +766,7 @@ function newPlotter () {
|
||||
|
||||
function onZoomChanged (event) {
|
||||
try {
|
||||
mustRecalculateDataPoints = true
|
||||
recalculate()
|
||||
} catch (err) {
|
||||
if (ERROR_LOG === true) { logger.write('[ERROR] onZoomChanged -> err = ' + err.stack) }
|
||||
|
||||
+14
-12
@@ -83,21 +83,23 @@ function newTimePeriodScale () {
|
||||
}
|
||||
|
||||
function onZoomChanged (event) {
|
||||
let currentTimePeriod = thisObject.timePeriod
|
||||
let timePeriod = recalculatePeriod(event.newLevel)
|
||||
if (timePeriod !== currentTimePeriod) {
|
||||
for (let i = 0; i < timePeriodsMasterArray.length; i++) {
|
||||
let timePeriodArray = timePeriodsMasterArray[i]
|
||||
for (let j = 0; j < timePeriodArray.length; j++) {
|
||||
let record = timePeriodArray[j]
|
||||
if (timePeriod === record[0]) {
|
||||
filePeriodIndex = i
|
||||
timePeriodIndex = j
|
||||
if (event !== undefined) { // it is undefined when the level is just being animated.
|
||||
let currentTimePeriod = thisObject.timePeriod
|
||||
let timePeriod = recalculatePeriod(event.newLevel)
|
||||
if (timePeriod !== currentTimePeriod) {
|
||||
for (let i = 0; i < timePeriodsMasterArray.length; i++) {
|
||||
let timePeriodArray = timePeriodsMasterArray[i]
|
||||
for (let j = 0; j < timePeriodArray.length; j++) {
|
||||
let record = timePeriodArray[j]
|
||||
if (timePeriod === record[0]) {
|
||||
filePeriodIndex = i
|
||||
timePeriodIndex = j
|
||||
}
|
||||
}
|
||||
}
|
||||
saveObjectState()
|
||||
newTimePeriod()
|
||||
}
|
||||
saveObjectState()
|
||||
newTimePeriod()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user