update notebooks to use new message event (#5395)

This commit is contained in:
Anthony Dresser
2019-05-07 13:03:58 -07:00
committed by GitHub
parent 0f25ad5676
commit 4551ba5b7c
3 changed files with 19 additions and 19 deletions

View File

@@ -32,8 +32,8 @@ export interface IEditSessionReadyEvent {
message: string; message: string;
} }
export interface IGridMessage extends azdata.IResultMessage { export interface IQueryMessage extends azdata.IResultMessage {
selection: azdata.ISelectionData; selection?: azdata.ISelectionData;
} }
/* /*
@@ -47,7 +47,7 @@ export default class QueryRunner extends Disposable {
private _isExecuting: boolean = false; private _isExecuting: boolean = false;
private _hasCompleted: boolean = false; private _hasCompleted: boolean = false;
private _batchSets: azdata.BatchSummary[] = []; private _batchSets: azdata.BatchSummary[] = [];
private _messages: azdata.IResultMessage[] = []; private _messages: IQueryMessage[] = [];
private registered = false; private registered = false;
private _isQueryPlan: boolean; private _isQueryPlan: boolean;
@@ -55,8 +55,8 @@ export default class QueryRunner extends Disposable {
private _planXml = new Deferred<string>(); private _planXml = new Deferred<string>();
public get planXml(): Thenable<string> { return this._planXml.promise; } public get planXml(): Thenable<string> { return this._planXml.promise; }
private _onMessage = this._register(new Emitter<azdata.IResultMessage>()); private _onMessage = this._register(new Emitter<IQueryMessage>());
public get onMessage(): Event<azdata.IResultMessage> { return this._onMessage.event; } // this is the only way typemoq can moq this... needs investigation @todo anthonydresser 5/2/2019 public get onMessage(): Event<IQueryMessage> { return this._onMessage.event; } // this is the only way typemoq can moq this... needs investigation @todo anthonydresser 5/2/2019
private _onResultSet = this._register(new Emitter<azdata.ResultSetSummary>()); private _onResultSet = this._register(new Emitter<azdata.ResultSetSummary>());
public readonly onResultSet = this._onResultSet.event; public readonly onResultSet = this._onResultSet.event;
@@ -122,7 +122,7 @@ export default class QueryRunner extends Disposable {
/** /**
* For public use only, for private use, directly access the member * For public use only, for private use, directly access the member
*/ */
public get messages(): azdata.IResultMessage[] { public get messages(): IQueryMessage[] {
return this._messages.slice(0); return this._messages.slice(0);
} }
@@ -641,7 +641,7 @@ export default class QueryRunner extends Disposable {
// get config copyRemoveNewLine option from vscode config // get config copyRemoveNewLine option from vscode config
let showBatchTime: boolean = WorkbenchUtils.getSqlConfigValue<boolean>(this._configurationService, Constants.configShowBatchTime); let showBatchTime: boolean = WorkbenchUtils.getSqlConfigValue<boolean>(this._configurationService, Constants.configShowBatchTime);
if (showBatchTime) { if (showBatchTime) {
let message: azdata.IResultMessage = { let message: IQueryMessage = {
batchId: batchId, batchId: batchId,
message: nls.localize('elapsedBatchTime', 'Batch execution time: {0}', executionTime), message: nls.localize('elapsedBatchTime', 'Batch execution time: {0}', executionTime),
time: undefined, time: undefined,

View File

@@ -5,11 +5,11 @@
import 'vs/css!./media/messagePanel'; import 'vs/css!./media/messagePanel';
import { IMessagesActionContext, CopyMessagesAction, CopyAllMessagesAction } from './actions'; import { IMessagesActionContext, CopyMessagesAction, CopyAllMessagesAction } from './actions';
import QueryRunner from 'sql/platform/query/common/queryRunner'; import QueryRunner, { IQueryMessage } from 'sql/platform/query/common/queryRunner';
import { QueryInput } from 'sql/workbench/parts/query/common/queryInput'; import { QueryInput } from 'sql/workbench/parts/query/common/queryInput';
import { IExpandableTree } from 'sql/workbench/parts/objectExplorer/browser/treeUpdateUtils'; import { IExpandableTree } from 'sql/workbench/parts/objectExplorer/browser/treeUpdateUtils';
import { IResultMessage, ISelectionData } from 'azdata'; import { ISelectionData } from 'azdata';
import { ViewletPanel, IViewletPanelOptions } from 'vs/workbench/browser/parts/views/panelViewlet'; import { ViewletPanel, IViewletPanelOptions } from 'vs/workbench/browser/parts/views/panelViewlet';
import { IDataSource, ITree, IRenderer, ContextMenuEvent } from 'vs/base/parts/tree/browser/tree'; import { IDataSource, ITree, IRenderer, ContextMenuEvent } from 'vs/base/parts/tree/browser/tree';
@@ -31,7 +31,7 @@ import { ScrollbarVisibility } from 'vs/base/common/scrollable';
import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService';
import { $ } from 'vs/base/browser/dom'; import { $ } from 'vs/base/browser/dom';
export interface IResultMessageIntern extends IResultMessage { export interface IResultMessageIntern extends IQueryMessage {
id?: string; id?: string;
} }
@@ -77,7 +77,7 @@ export class MessagePanelState {
} }
export class MessagePanel extends ViewletPanel { export class MessagePanel extends ViewletPanel {
private messageLineCountMap = new Map<IResultMessage, number>(); private messageLineCountMap = new Map<IQueryMessage, number>();
private ds = new MessageDataSource(); private ds = new MessageDataSource();
private renderer = new MessageRenderer(this.messageLineCountMap); private renderer = new MessageRenderer(this.messageLineCountMap);
private model = new Model(); private model = new Model();
@@ -203,7 +203,7 @@ export class MessagePanel extends ViewletPanel {
this.onMessage(runner.messages); this.onMessage(runner.messages);
} }
private onMessage(message: IResultMessage | IResultMessage[]) { private onMessage(message: IQueryMessage | IQueryMessage[]) {
let hasError = false; let hasError = false;
let lines: number; let lines: number;
if (isArray(message)) { if (isArray(message)) {
@@ -237,7 +237,7 @@ export class MessagePanel extends ViewletPanel {
} }
} }
private countMessageLines(resultMessage: IResultMessage): number { private countMessageLines(resultMessage: IQueryMessage): number {
let lines = resultMessage.message.split('\n').length; let lines = resultMessage.message.split('\n').length;
this.messageLineCountMap.set(resultMessage, lines); this.messageLineCountMap.set(resultMessage, lines);
return lines; return lines;
@@ -307,10 +307,10 @@ class MessageDataSource implements IDataSource {
} }
class MessageRenderer implements IRenderer { class MessageRenderer implements IRenderer {
constructor(private messageLineCountMap: Map<IResultMessage, number>) { constructor(private messageLineCountMap: Map<IQueryMessage, number>) {
} }
getHeight(tree: ITree, element: any): number { getHeight(tree: ITree, element: IQueryMessage): number {
const lineHeight = 22; const lineHeight = 22;
if (this.messageLineCountMap.has(element)) { if (this.messageLineCountMap.has(element)) {
return lineHeight * this.messageLineCountMap.get(element); return lineHeight * this.messageLineCountMap.get(element);
@@ -318,7 +318,7 @@ class MessageRenderer implements IRenderer {
return lineHeight; return lineHeight;
} }
getTemplateId(tree: ITree, element: any): string { getTemplateId(tree: ITree, element: IQueryMessage): string {
if (element instanceof Model) { if (element instanceof Model) {
return TemplateIds.MODEL; return TemplateIds.MODEL;
} else if (element.selection) { } else if (element.selection) {
@@ -355,7 +355,7 @@ class MessageRenderer implements IRenderer {
} }
} }
renderElement(tree: ITree, element: IResultMessage, templateId: string, templateData: IMessageTemplate | IBatchTemplate): void { renderElement(tree: ITree, element: IQueryMessage, templateId: string, templateData: IMessageTemplate | IBatchTemplate): void {
if (templateId === TemplateIds.MESSAGE || templateId === TemplateIds.ERROR) { if (templateId === TemplateIds.MESSAGE || templateId === TemplateIds.ERROR) {
let data: IMessageTemplate = templateData; let data: IMessageTemplate = templateData;
data.message.innerText = element.message; data.message.innerText = element.message;

View File

@@ -23,6 +23,7 @@ import * as notebookUtils from 'sql/workbench/parts/notebook/notebookUtils';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService'; import { ICapabilitiesService } from 'sql/platform/capabilities/common/capabilitiesService';
import { ILogService } from 'vs/platform/log/common/log'; import { ILogService } from 'vs/platform/log/common/log';
import { isUndefinedOrNull } from 'vs/base/common/types';
export const sqlKernelError: string = localize("sqlKernelError", "SQL kernel error"); export const sqlKernelError: string = localize("sqlKernelError", "SQL kernel error");
export const MAX_ROWS = 5000; export const MAX_ROWS = 5000;
@@ -311,7 +312,7 @@ class SqlKernel extends Disposable implements nb.IKernel {
})); }));
this._register(queryRunner.onMessage(message => { this._register(queryRunner.onMessage(message => {
// TODO handle showing a messages output (should be updated with all messages, only changing 1 output in total) // TODO handle showing a messages output (should be updated with all messages, only changing 1 output in total)
if (this._future) { if (this._future && isUndefinedOrNull(message.selection)) {
this._future.handleMessage(message); this._future.handleMessage(message);
} }
})); }));
@@ -441,7 +442,6 @@ export class SQLFuture extends Disposable implements FutureInternal {
public handleBatchEnd(batch: BatchSummary): void { public handleBatchEnd(batch: BatchSummary): void {
if (this.ioHandler) { if (this.ioHandler) {
this.handleMessage(strings.format(elapsedTimeLabel, batch.executionElapsed));
this._outputAddedPromises.push(this.processResultSets(batch)); this._outputAddedPromises.push(this.processResultSets(batch));
} }
} }