OLD | NEW |
1 /** | 1 /** |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 1476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1487 draw(context, x, height, pixelsPerMillisecond) {}, | 1487 draw(context, x, height, pixelsPerMillisecond) {}, |
1488 }; | 1488 }; |
1489 | 1489 |
1490 /** @enum {symbol} */ | 1490 /** @enum {symbol} */ |
1491 PerfUI.FlameChart.Events = { | 1491 PerfUI.FlameChart.Events = { |
1492 EntrySelected: Symbol('EntrySelected'), | 1492 EntrySelected: Symbol('EntrySelected'), |
1493 EntryHighlighted: Symbol('EntryHighlighted') | 1493 EntryHighlighted: Symbol('EntryHighlighted') |
1494 }; | 1494 }; |
1495 | 1495 |
1496 /** | 1496 /** |
1497 * @unrestricted | |
1498 */ | |
1499 PerfUI.FlameChart.ColorGenerator = class { | |
1500 /** | |
1501 * @param {!{min: number, max: number}|number=} hueSpace | |
1502 * @param {!{min: number, max: number, count: (number|undefined)}|number=} sat
Space | |
1503 * @param {!{min: number, max: number, count: (number|undefined)}|number=} lig
htnessSpace | |
1504 * @param {!{min: number, max: number, count: (number|undefined)}|number=} alp
haSpace | |
1505 */ | |
1506 constructor(hueSpace, satSpace, lightnessSpace, alphaSpace) { | |
1507 this._hueSpace = hueSpace || {min: 0, max: 360}; | |
1508 this._satSpace = satSpace || 67; | |
1509 this._lightnessSpace = lightnessSpace || 80; | |
1510 this._alphaSpace = alphaSpace || 1; | |
1511 /** @type {!Map<string, string>} */ | |
1512 this._colors = new Map(); | |
1513 } | |
1514 | |
1515 /** | |
1516 * @param {string} id | |
1517 * @param {string} color | |
1518 */ | |
1519 setColorForID(id, color) { | |
1520 this._colors.set(id, color); | |
1521 } | |
1522 | |
1523 /** | |
1524 * @param {string} id | |
1525 * @return {string} | |
1526 */ | |
1527 colorForID(id) { | |
1528 var color = this._colors.get(id); | |
1529 if (!color) { | |
1530 color = this._generateColorForID(id); | |
1531 this._colors.set(id, color); | |
1532 } | |
1533 return color; | |
1534 } | |
1535 | |
1536 /** | |
1537 * @param {string} id | |
1538 * @return {string} | |
1539 */ | |
1540 _generateColorForID(id) { | |
1541 var hash = String.hashCode(id); | |
1542 var h = this._indexToValueInSpace(hash, this._hueSpace); | |
1543 var s = this._indexToValueInSpace(hash >> 8, this._satSpace); | |
1544 var l = this._indexToValueInSpace(hash >> 16, this._lightnessSpace); | |
1545 var a = this._indexToValueInSpace(hash >> 24, this._alphaSpace); | |
1546 return `hsla(${h}, ${s}%, ${l}%, ${a})`; | |
1547 } | |
1548 | |
1549 /** | |
1550 * @param {number} index | |
1551 * @param {!{min: number, max: number, count: (number|undefined)}|number} spac
e | |
1552 * @return {number} | |
1553 */ | |
1554 _indexToValueInSpace(index, space) { | |
1555 if (typeof space === 'number') | |
1556 return space; | |
1557 var count = space.count || space.max - space.min; | |
1558 index %= count; | |
1559 return space.min + Math.floor(index / (count - 1) * (space.max - space.min))
; | |
1560 } | |
1561 }; | |
1562 | |
1563 /** | |
1564 * @implements {PerfUI.TimelineGrid.Calculator} | 1497 * @implements {PerfUI.TimelineGrid.Calculator} |
1565 * @unrestricted | 1498 * @unrestricted |
1566 */ | 1499 */ |
1567 PerfUI.FlameChart.Calculator = class { | 1500 PerfUI.FlameChart.Calculator = class { |
1568 /** | 1501 /** |
1569 * @param {!PerfUI.FlameChartDataProvider} dataProvider | 1502 * @param {!PerfUI.FlameChartDataProvider} dataProvider |
1570 */ | 1503 */ |
1571 constructor(dataProvider) { | 1504 constructor(dataProvider) { |
1572 this._dataProvider = dataProvider; | 1505 this._dataProvider = dataProvider; |
1573 } | 1506 } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1629 } | 1562 } |
1630 | 1563 |
1631 /** | 1564 /** |
1632 * @override | 1565 * @override |
1633 * @return {number} | 1566 * @return {number} |
1634 */ | 1567 */ |
1635 boundarySpan() { | 1568 boundarySpan() { |
1636 return this._maximumBoundaries - this._minimumBoundaries; | 1569 return this._maximumBoundaries - this._minimumBoundaries; |
1637 } | 1570 } |
1638 }; | 1571 }; |
OLD | NEW |