Skip to content

Commit

Permalink
Refresh open traces view after server start
Browse files Browse the repository at this point in the history
fixes #601

Signed-off-by: hriday-panchasara <hriday.panchasara@ericsson.com>
  • Loading branch information
hriday-panchasara authored and bhufmann committed Jan 27, 2022
1 parent 0b6740c commit de709cf
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
7 changes: 6 additions & 1 deletion packages/base/src/signals/signal-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export declare interface SignalManager {
fireMarkerCategoriesFetchedSignal(): void;
fireMarkerSetsFetchedSignal(): void;
fireMarkerCategoryClosedSignal(payload: { traceViewerId: string, markerCategory: string }): void;
fireTraceServerStartedSignal(): void;
}

export const Signals = {
Expand All @@ -43,7 +44,8 @@ export const Signals = {
RESET_ZOOM: 'reset zoom',
MARKER_CATEGORIES_FETCHED: 'marker categories fetched',
MARKERSETS_FETCHED: 'markersets fetched',
MARKER_CATEGORY_CLOSED: 'marker category closed'
MARKER_CATEGORY_CLOSED: 'marker category closed',
TRACE_SERVER_STARTED: 'trace server started',
};

export class SignalManager extends EventEmitter implements SignalManager {
Expand Down Expand Up @@ -101,6 +103,9 @@ export class SignalManager extends EventEmitter implements SignalManager {
fireMarkerCategoryClosedSignal(payload: { traceViewerId: string, markerCategory: string }): void {
this.emit(Signals.MARKER_CATEGORY_CLOSED, payload);
}
fireTraceServerStartedSignal(): void {
this.emit(Signals.TRACE_SERVER_STARTED);
}
}

let instance: SignalManager = new SignalManager();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,15 @@ export class ReactOpenTracesWidget extends React.Component<ReactOpenTracesWidget
private _onExperimentClosed = (experiment: Experiment): void => this.doHandleExperimentClosed(experiment);
private _onExperimentDeleted = (experiment: Experiment): Promise<void> => this.doHandleExperimentDeletedSignal(experiment);
private _onOpenedTracesWidgetActivated = (experiment: Experiment): void => this.doHandleTracesWidgetActivatedSignal(experiment);
private _onTraceServerStarted = (): Promise<void> => this.doHandleTraceServerStartedSignal();

constructor(props: ReactOpenTracesWidgetProps) {
super(props);
signalManager().on(Signals.EXPERIMENT_OPENED, this._onExperimentOpened);
signalManager().on(Signals.EXPERIMENT_CLOSED, this._onExperimentClosed);
signalManager().on(Signals.EXPERIMENT_DELETED, this._onExperimentDeleted);
signalManager().on(Signals.TRACEVIEWERTAB_ACTIVATED, this._onOpenedTracesWidgetActivated);
signalManager().on(Signals.TRACE_SERVER_STARTED, this._onTraceServerStarted);

this._experimentManager = this.props.tspClientProvider.getExperimentManager();
this.props.tspClientProvider.addTspClientChangeListener(() => {
Expand All @@ -63,16 +65,20 @@ export class ReactOpenTracesWidget extends React.Component<ReactOpenTracesWidget
signalManager().off(Signals.EXPERIMENT_CLOSED, this._onExperimentClosed);
signalManager().off(Signals.EXPERIMENT_DELETED, this._onExperimentDeleted);
signalManager().off(Signals.TRACEVIEWERTAB_ACTIVATED, this._onOpenedTracesWidgetActivated);
signalManager().off(Signals.TRACE_SERVER_STARTED, this._onTraceServerStarted);
}

async initialize(): Promise<void> {
await this.updateOpenedExperiments();
this.updateSelectedExperiment();
}

public async doHandleTraceServerStartedSignal(): Promise<void> {
await this.initialize();
}

public async doHandleExperimentOpenedSignal(_experiment: Experiment): Promise<void> {
await this.updateOpenedExperiments();
this.updateSelectedExperiment();
await this.initialize();
}

protected doHandleExperimentClosed(experiment: Experiment): void {
Expand All @@ -83,8 +89,7 @@ export class ReactOpenTracesWidget extends React.Component<ReactOpenTracesWidget
}

public async doHandleExperimentDeletedSignal(_experiment: Experiment): Promise<void> {
await this.updateOpenedExperiments();
this.updateSelectedExperiment();
await this.initialize();
}

protected doHandleTracesWidgetActivatedSignal(experiment: Experiment): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { TracePreferences, TRACE_PATH, TRACE_ARGS } from '../trace-server-prefer
import { TspClient } from 'tsp-typescript-client/lib/protocol/tsp-client';
import { TspClientProvider } from '../tsp-client-provider-impl';
import { ChartShortcutsDialog } from './../trace-explorer/trace-explorer-sub-widgets/trace-explorer-keyboard-shortcuts/charts-cheatsheet-component';
import { signalManager } from 'traceviewer-base/lib/signals/signal-manager';

interface TraceViewerWidgetOpenerOptions extends WidgetOpenerOptions {
traceUUID: string;
Expand Down Expand Up @@ -177,6 +178,7 @@ export class TraceViewerContribution extends WidgetOpenHandler<TraceViewerWidget
} else {
this.messageService.info('Trace server started.');
}
signalManager().fireTraceServerStartedSignal();
} catch (error) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
if (PortBusy.is(error as any)) {
Expand Down

0 comments on commit de709cf

Please sign in to comment.