| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 var ctx = canvas.getContext("2d"); | 271 var ctx = canvas.getContext("2d"); |
| 272 var width = canvas.width; | 272 var width = canvas.width; |
| 273 var height = this._clippedHeight; | 273 var height = this._clippedHeight; |
| 274 var originY = this._originY; | 274 var originY = this._originY; |
| 275 var counter = counterUI.counter; | 275 var counter = counterUI.counter; |
| 276 var values = counter.values; | 276 var values = counter.values; |
| 277 | 277 |
| 278 if (!values.length) | 278 if (!values.length) |
| 279 return; | 279 return; |
| 280 | 280 |
| 281 var maxValue; | 281 var bounds = counter._calculateBounds(); |
| 282 var minValue; | 282 var minValue = bounds.min; |
| 283 for (var i = counter._minimumIndex; i <= counter._maximumIndex; i++) { | 283 var maxValue = bounds.max; |
| 284 var value = values[i]; | |
| 285 if (minValue === undefined || value < minValue) | |
| 286 minValue = value; | |
| 287 if (maxValue === undefined || value > maxValue) | |
| 288 maxValue = value; | |
| 289 } | |
| 290 minValue = minValue || 0; | |
| 291 maxValue = maxValue || 1; | |
| 292 | 284 |
| 293 counterUI.setRange(minValue, maxValue); | 285 counterUI.setRange(minValue, maxValue); |
| 294 | 286 |
| 295 if (!counterUI.visible()) | 287 if (!counterUI.visible()) |
| 296 return; | 288 return; |
| 297 | 289 |
| 298 var yValues = counterUI.graphYValues; | 290 var yValues = counterUI.graphYValues; |
| 299 yValues.length = this._counters.length; | 291 yValues.length = this._counters.length; |
| 300 | 292 |
| 301 var maxYRange = maxValue - minValue; | 293 var maxYRange = maxValue - minValue; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 314 if (typeof currentValue !== "undefined") | 306 if (typeof currentValue !== "undefined") |
| 315 value = currentValue; | 307 value = currentValue; |
| 316 currentY = Math.round(originY + height - (value - minValue) * yFact
or); | 308 currentY = Math.round(originY + height - (value - minValue) * yFact
or); |
| 317 ctx.lineTo(x, currentY); | 309 ctx.lineTo(x, currentY); |
| 318 yValues[i] = currentY; | 310 yValues[i] = currentY; |
| 319 } | 311 } |
| 320 ctx.lineTo(width, currentY); | 312 ctx.lineTo(width, currentY); |
| 321 ctx.lineWidth = 1; | 313 ctx.lineWidth = 1; |
| 322 ctx.strokeStyle = counterUI.graphColor; | 314 ctx.strokeStyle = counterUI.graphColor; |
| 323 ctx.stroke(); | 315 ctx.stroke(); |
| 316 if (counter._limitValue) { |
| 317 var limitLineY = Math.round(originY + height - (counter._limitValue
- minValue) * yFactor); |
| 318 ctx.moveTo(0, limitLineY); |
| 319 ctx.lineTo(width, limitLineY); |
| 320 ctx.strokeStyle = counterUI.limitColor; |
| 321 ctx.stroke(); |
| 322 } |
| 324 ctx.closePath(); | 323 ctx.closePath(); |
| 325 ctx.restore(); | 324 ctx.restore(); |
| 326 }, | 325 }, |
| 327 | 326 |
| 328 __proto__: WebInspector.SplitView.prototype | 327 __proto__: WebInspector.SplitView.prototype |
| 329 } | 328 } |
| 330 | 329 |
| 331 /** | 330 /** |
| 332 * @constructor | 331 * @constructor |
| 333 */ | 332 */ |
| (...skipping 16 matching lines...) Expand all Loading... |
| 350 this.values.push(value); | 349 this.values.push(value); |
| 351 }, | 350 }, |
| 352 | 351 |
| 353 reset: function() | 352 reset: function() |
| 354 { | 353 { |
| 355 this.times = []; | 354 this.times = []; |
| 356 this.values = []; | 355 this.values = []; |
| 357 }, | 356 }, |
| 358 | 357 |
| 359 /** | 358 /** |
| 359 * @param {number} value |
| 360 */ |
| 361 setLimit: function(value) |
| 362 { |
| 363 this._limitValue = value; |
| 364 }, |
| 365 |
| 366 /** |
| 367 * @return {!{min: number, max: number}} |
| 368 */ |
| 369 _calculateBounds: function() |
| 370 { |
| 371 var maxValue; |
| 372 var minValue; |
| 373 for (var i = this._minimumIndex; i <= this._maximumIndex; i++) { |
| 374 var value = this.values[i]; |
| 375 if (minValue === undefined || value < minValue) |
| 376 minValue = value; |
| 377 if (maxValue === undefined || value > maxValue) |
| 378 maxValue = value; |
| 379 } |
| 380 minValue = minValue || 0; |
| 381 maxValue = maxValue || 1; |
| 382 if (this._limitValue) { |
| 383 if (maxValue > this._limitValue * 0.5) |
| 384 maxValue = Math.max(maxValue, this._limitValue); |
| 385 minValue = Math.min(minValue, this._limitValue); |
| 386 } |
| 387 return { min: minValue, max: maxValue }; |
| 388 }, |
| 389 |
| 390 /** |
| 360 * @param {!WebInspector.TimelineCalculator} calculator | 391 * @param {!WebInspector.TimelineCalculator} calculator |
| 361 */ | 392 */ |
| 362 _calculateVisibleIndexes: function(calculator) | 393 _calculateVisibleIndexes: function(calculator) |
| 363 { | 394 { |
| 364 var start = calculator.minimumBoundary(); | 395 var start = calculator.minimumBoundary(); |
| 365 var end = calculator.maximumBoundary(); | 396 var end = calculator.maximumBoundary(); |
| 366 | 397 |
| 367 // Maximum index of element whose time <= start. | 398 // Maximum index of element whose time <= start. |
| 368 this._minimumIndex = Number.constrain(this.times.upperBound(start) - 1,
0, this.times.length - 1); | 399 this._minimumIndex = Number.constrain(this.times.upperBound(start) - 1,
0, this.times.length - 1); |
| 369 | 400 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 var container = memoryCountersPane.sidebarElement().createChild("div", "memo
ry-counter-sidebar-info"); | 439 var container = memoryCountersPane.sidebarElement().createChild("div", "memo
ry-counter-sidebar-info"); |
| 409 var swatchColor = graphColor; | 440 var swatchColor = graphColor; |
| 410 this._swatch = new WebInspector.SwatchCheckbox(WebInspector.UIString(title),
swatchColor); | 441 this._swatch = new WebInspector.SwatchCheckbox(WebInspector.UIString(title),
swatchColor); |
| 411 this._swatch.addEventListener(WebInspector.SwatchCheckbox.Events.Changed, th
is._toggleCounterGraph.bind(this)); | 442 this._swatch.addEventListener(WebInspector.SwatchCheckbox.Events.Changed, th
is._toggleCounterGraph.bind(this)); |
| 412 container.appendChild(this._swatch.element); | 443 container.appendChild(this._swatch.element); |
| 413 this._range = this._swatch.element.createChild("span"); | 444 this._range = this._swatch.element.createChild("span"); |
| 414 | 445 |
| 415 this._value = memoryCountersPane._currentValuesBar.createChild("span", "memo
ry-counter-value"); | 446 this._value = memoryCountersPane._currentValuesBar.createChild("span", "memo
ry-counter-value"); |
| 416 this._value.style.color = graphColor; | 447 this._value.style.color = graphColor; |
| 417 this.graphColor = graphColor; | 448 this.graphColor = graphColor; |
| 418 this.strokeColor = graphColor; | 449 this.limitColor = WebInspector.Color.parse(graphColor).setAlpha(0.3).toStrin
g(WebInspector.Color.Format.RGBA); |
| 419 this.graphYValues = []; | 450 this.graphYValues = []; |
| 420 | 451 |
| 421 this._currentValueLabel = currentValueLabel; | 452 this._currentValueLabel = currentValueLabel; |
| 422 this._marker = memoryCountersPane._canvasContainer.createChild("div", "memor
y-counter-marker"); | 453 this._marker = memoryCountersPane._canvasContainer.createChild("div", "memor
y-counter-marker"); |
| 423 this._marker.style.backgroundColor = graphColor; | 454 this._marker.style.backgroundColor = graphColor; |
| 424 this._clearCurrentValueAndMarker(); | 455 this._clearCurrentValueAndMarker(); |
| 425 } | 456 } |
| 426 | 457 |
| 427 WebInspector.CountersGraph.CounterUI.prototype = { | 458 WebInspector.CountersGraph.CounterUI.prototype = { |
| 428 reset: function() | 459 reset: function() |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 }, | 551 }, |
| 521 | 552 |
| 522 _toggleCheckbox: function(event) | 553 _toggleCheckbox: function(event) |
| 523 { | 554 { |
| 524 this.checked = !this.checked; | 555 this.checked = !this.checked; |
| 525 this.dispatchEventToListeners(WebInspector.SwatchCheckbox.Events.Changed
); | 556 this.dispatchEventToListeners(WebInspector.SwatchCheckbox.Events.Changed
); |
| 526 }, | 557 }, |
| 527 | 558 |
| 528 __proto__: WebInspector.Object.prototype | 559 __proto__: WebInspector.Object.prototype |
| 529 } | 560 } |
| OLD | NEW |