Skip to content

Commit e94a454

Browse files
Merge pull request #732 from lukecotter/feat-timeline-rename
refactor: rename Manager classes and consolidate color handling
2 parents 5c0a3b2 + e2c1b8a commit e94a454

59 files changed

Lines changed: 1033 additions & 1116 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

log-viewer/src/features/timeline/__tests__/SelectionManager.test.ts renamed to log-viewer/src/features/timeline/__tests__/SelectionNavigator.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
/**
10-
* Unit tests for SelectionManager
10+
* Unit tests for SelectionNavigator
1111
*
1212
* Tests selection state management and navigation:
1313
* - select/clear/getSelected lifecycle
@@ -16,11 +16,11 @@
1616
* - findByOriginal for hit test integration
1717
*/
1818

19-
import { SelectionManager } from '../optimised/selection/SelectionManager.js';
19+
import { SelectionNavigator } from '../optimised/selection/SelectionNavigator.js';
2020
import type { EventNode, TreeNode } from '../types/flamechart.types.js';
2121
import type { NavigationMaps } from '../utils/tree-converter.js';
2222

23-
describe('SelectionManager', () => {
23+
describe('SelectionNavigator', () => {
2424
/**
2525
* Helper to create a mock EventNode
2626
*/
@@ -97,15 +97,15 @@ describe('SelectionManager', () => {
9797
}
9898

9999
describe('selection lifecycle', () => {
100-
let manager: SelectionManager<EventNode>;
100+
let manager: SelectionNavigator<EventNode>;
101101
let node1: TreeNode<EventNode>;
102102
let node2: TreeNode<EventNode>;
103103

104104
beforeEach(() => {
105105
node1 = createNode(createEvent('1'));
106106
node2 = createNode(createEvent('2'));
107107
const rootNodes = [node1, node2];
108-
manager = new SelectionManager(rootNodes, buildMapsFromNodes(rootNodes));
108+
manager = new SelectionNavigator(rootNodes, buildMapsFromNodes(rootNodes));
109109
});
110110

111111
it('should have no selection initially', () => {
@@ -152,7 +152,7 @@ describe('SelectionManager', () => {
152152
// └── child2 (id: 12)
153153
// root2 (id: 2)
154154

155-
let manager: SelectionManager<EventNode>;
155+
let manager: SelectionNavigator<EventNode>;
156156
let root1: TreeNode<EventNode>;
157157
let root2: TreeNode<EventNode>;
158158
let child1: TreeNode<EventNode>;
@@ -167,7 +167,7 @@ describe('SelectionManager', () => {
167167
root2 = createNode(createEvent('2'), undefined, 0);
168168

169169
const rootNodes = [root1, root2];
170-
manager = new SelectionManager(rootNodes, buildMapsFromNodes(rootNodes));
170+
manager = new SelectionNavigator(rootNodes, buildMapsFromNodes(rootNodes));
171171
});
172172

173173
it('should return null when navigating with no selection', () => {
@@ -275,7 +275,7 @@ describe('SelectionManager', () => {
275275
});
276276

277277
describe('findById', () => {
278-
let manager: SelectionManager<EventNode>;
278+
let manager: SelectionNavigator<EventNode>;
279279
let node1: TreeNode<EventNode>;
280280
let node2: TreeNode<EventNode>;
281281

@@ -284,7 +284,7 @@ describe('SelectionManager', () => {
284284
node1 = createNode(createEvent('1'), [child], 0);
285285
node2 = createNode(createEvent('2'), undefined, 0);
286286
const rootNodes = [node1, node2];
287-
manager = new SelectionManager(rootNodes, buildMapsFromNodes(rootNodes));
287+
manager = new SelectionNavigator(rootNodes, buildMapsFromNodes(rootNodes));
288288
});
289289

290290
it('should find node by id', () => {
@@ -306,7 +306,7 @@ describe('SelectionManager', () => {
306306
describe('empty tree', () => {
307307
it('should handle empty tree', () => {
308308
const rootNodes: TreeNode<EventNode>[] = [];
309-
const manager = new SelectionManager<EventNode>(rootNodes, buildMapsFromNodes(rootNodes));
309+
const manager = new SelectionNavigator<EventNode>(rootNodes, buildMapsFromNodes(rootNodes));
310310

311311
expect(manager.hasSelection()).toBe(false);
312312
expect(manager.getSelected()).toBeNull();

log-viewer/src/features/timeline/__tests__/batching.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
import type { LogCategory, LogEvent } from 'apex-log-parser';
1616
import * as PIXI from 'pixi.js';
1717
import { EventBatchRenderer } from '../optimised/EventBatchRenderer.js';
18-
import { RectangleManager } from '../optimised/RectangleManager.js';
18+
import { RectangleCache } from '../optimised/RectangleCache.js';
1919
import type { RenderBatch, ViewportState } from '../types/flamechart.types.js';
2020
import { TIMELINE_CONSTANTS } from '../types/flamechart.types.js';
2121

2222
describe('EventBatchRenderer', () => {
2323
let container: PIXI.Container;
2424
let renderer: EventBatchRenderer;
25-
let rectangleManager: RectangleManager;
25+
let rectangleManager: RectangleCache;
2626
let batches: Map<string, RenderBatch>;
2727

2828
/**
@@ -72,7 +72,7 @@ describe('EventBatchRenderer', () => {
7272
*/
7373
function setupAndRender(events: LogEvent[], viewport: ViewportState): void {
7474
const categories = new Set(batches.keys());
75-
rectangleManager = new RectangleManager(events, categories);
75+
rectangleManager = new RectangleCache(events, categories);
7676
renderer = new EventBatchRenderer(container, batches);
7777

7878
const { visibleRects, buckets } = rectangleManager.getCulledRectangles(viewport);

log-viewer/src/features/timeline/__tests__/measurement-manager.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
* Copyright (c) 2025 Certinia Inc. All rights reserved.
33
*/
44

5-
import { MeasurementManager } from '../optimised/measurement/MeasurementManager.js';
5+
import { MeasurementState } from '../optimised/measurement/MeasurementState.js';
66

7-
describe('MeasurementManager', () => {
8-
let manager: MeasurementManager;
7+
describe('MeasurementState', () => {
8+
let manager: MeasurementState;
99

1010
beforeEach(() => {
11-
manager = new MeasurementManager();
11+
manager = new MeasurementState();
1212
});
1313

1414
describe('initial state', () => {

log-viewer/src/features/timeline/__tests__/minimap-density.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import type { LogEvent } from 'apex-log-parser';
1515
import { MinimapDensityQuery } from '../optimised/minimap/MinimapDensityQuery.js';
16-
import type { PrecomputedRect } from '../optimised/RectangleManager.js';
16+
import type { PrecomputedRect } from '../optimised/RectangleCache.js';
1717
import { TemporalSegmentTree } from '../optimised/TemporalSegmentTree.js';
1818

1919
/**

log-viewer/src/features/timeline/__tests__/search-highlight.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import type { LogEvent } from 'apex-log-parser';
1515
import * as PIXI from 'pixi.js';
16-
import type { PrecomputedRect } from '../optimised/RectangleManager.js';
16+
import type { PrecomputedRect } from '../optimised/RectangleCache.js';
1717
import { SearchHighlightRenderer } from '../optimised/search/SearchHighlightRenderer.js';
1818
import type { EventNode, ViewportState } from '../types/flamechart.types.js';
1919
import type { SearchCursor, SearchMatch } from '../types/search.types.js';

0 commit comments

Comments
 (0)