mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
update notebooks to use new message event (#5395)
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user