mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
add create webview event and fix fire event in model view (#2405)
This commit is contained in:
@@ -67,8 +67,8 @@ export default class ButtonComponent extends ComponentWithIconBase implements IC
|
||||
let reader = new FileReader();
|
||||
reader.onload = (e) => {
|
||||
let text = (<FileReader>e.target).result;
|
||||
self.fileContent = text;
|
||||
self._onEventEmitter.fire({
|
||||
self.fileContent = text.toString();
|
||||
self.fireEvent({
|
||||
eventType: ComponentEventType.onDidClick,
|
||||
args: self.fileContent
|
||||
});
|
||||
@@ -76,7 +76,7 @@ export default class ButtonComponent extends ComponentWithIconBase implements IC
|
||||
reader.readAsText(file);
|
||||
};
|
||||
} else {
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidClick,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -53,7 +53,7 @@ export default class CardComponent extends ComponentWithIconBase implements ICom
|
||||
if (this.selectable) {
|
||||
this.selected = !this.selected;
|
||||
this._changeRef.detectChanges();
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidClick,
|
||||
args: this.selected
|
||||
});
|
||||
@@ -158,7 +158,7 @@ export default class CardComponent extends ComponentWithIconBase implements ICom
|
||||
}
|
||||
|
||||
private onDidActionClick(action: ActionDescriptor): void {
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidClick,
|
||||
args: action
|
||||
});
|
||||
|
||||
@@ -49,7 +49,7 @@ export default class CheckBoxComponent extends ComponentBase implements ICompone
|
||||
this._register(this._input);
|
||||
this._register(this._input.onChange(e => {
|
||||
this.checked = this._input.checked;
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -195,7 +195,7 @@ export abstract class ComponentBase extends Disposable implements IComponent, On
|
||||
return this._onEventEmitter.event(handler);
|
||||
}
|
||||
|
||||
private fireEvent(event: IComponentEventArgs) {
|
||||
protected fireEvent(event: IComponentEventArgs) {
|
||||
this._onEventEmitter.fire(event);
|
||||
if (this._eventQueue) {
|
||||
this._eventQueue.push(event);
|
||||
|
||||
@@ -139,7 +139,7 @@ export default class DeclarativeTableComponent extends ComponentBase implements
|
||||
column: cell,
|
||||
value: newValue
|
||||
};
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: newCellData
|
||||
});
|
||||
|
||||
@@ -68,7 +68,7 @@ export default class DropDownComponent extends ComponentBase implements ICompone
|
||||
this._register(this._editableDropdown.onValueChange(e => {
|
||||
if (this.editable) {
|
||||
this.setSelectedValue(this._editableDropdown.value);
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: e
|
||||
});
|
||||
@@ -83,7 +83,7 @@ export default class DropDownComponent extends ComponentBase implements ICompone
|
||||
this._register(this._selectBox.onDidSelect(e => {
|
||||
if (!this.editable) {
|
||||
this.setSelectedValue(this._selectBox.value);
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -65,7 +65,13 @@ export default class EditorComponent extends ComponentBase implements IComponent
|
||||
let uri = this.createUri();
|
||||
this._editorInput = instantiationService.createInstance(UntitledEditorInput, uri, false, 'sql', '', '');
|
||||
this._editor.setInput(this._editorInput, undefined);
|
||||
this._editorInput.resolve().then(model => this._editorModel = model.textEditorModel);
|
||||
this._editorInput.resolve().then(model => {
|
||||
this._editorModel = model.textEditorModel;
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onComponentCreated,
|
||||
args: this._uri
|
||||
});
|
||||
});
|
||||
|
||||
this._register(this._editor);
|
||||
this._register(this._editorInput);
|
||||
@@ -73,7 +79,7 @@ export default class EditorComponent extends ComponentBase implements IComponent
|
||||
this.content = this._editorModel.getValue();
|
||||
|
||||
// Notify via an event so that extensions can detect and propagate changes
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -60,7 +60,7 @@ export default class FileBrowserTreeComponent extends ComponentBase implements I
|
||||
}
|
||||
|
||||
private onClicked(selectedNode: FileNode) {
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: { fullPath: selectedNode.fullPath, isFile: selectedNode.isFile }
|
||||
});
|
||||
|
||||
@@ -121,7 +121,7 @@ export default class InputBoxComponent extends ComponentBase implements ICompone
|
||||
if (input.hideErrors) {
|
||||
input.hideErrors = false;
|
||||
}
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidChange,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -69,7 +69,8 @@ export enum ComponentEventType {
|
||||
onDidClick,
|
||||
validityChanged,
|
||||
onMessage,
|
||||
onSelectedRowChanged
|
||||
onSelectedRowChanged,
|
||||
onComponentCreated
|
||||
}
|
||||
|
||||
export interface IModelStore {
|
||||
|
||||
@@ -56,7 +56,7 @@ export default class ListBoxComponent extends ComponentBase implements IComponen
|
||||
this._register(attachListBoxStyler(this._input, this.themeService));
|
||||
this._register(this._input.onDidSelect(e => {
|
||||
this.selectedRow = e.index;
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onSelectedRowChanged,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -51,7 +51,7 @@ export default class RadioButtonComponent extends ComponentBase implements IComp
|
||||
this._register(this._input);
|
||||
this._register(this._input.onClicked(e => {
|
||||
this.checked = this._input.checked;
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onDidClick,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -109,7 +109,7 @@ export default class TableComponent extends ComponentBase implements IComponent,
|
||||
this._register(attachTableStyler(this._table, this.themeService));
|
||||
this._register(this._table.onSelectedRowsChanged((e, data) => {
|
||||
this.selectedRows = data.rows;
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onSelectedRowChanged,
|
||||
args: e
|
||||
});
|
||||
|
||||
@@ -82,7 +82,7 @@ export default class WebViewComponent extends ComponentBase implements IComponen
|
||||
this._register(this._webview.onDidClickLink(link => this.onDidClickLink(link)));
|
||||
|
||||
this._register(this._webview.onMessage(e => {
|
||||
this._onEventEmitter.fire({
|
||||
this.fireEvent({
|
||||
eventType: ComponentEventType.onMessage,
|
||||
args: e
|
||||
});
|
||||
|
||||
5
src/sql/sqlops.proposed.d.ts
vendored
5
src/sql/sqlops.proposed.d.ts
vendored
@@ -641,6 +641,11 @@ declare module 'sqlops' {
|
||||
*/
|
||||
readonly onContentChanged: vscode.Event<any>;
|
||||
|
||||
/**
|
||||
* An event called when the editor is created
|
||||
*/
|
||||
readonly onEditorCreated: vscode.Event<any>;
|
||||
|
||||
}
|
||||
|
||||
export interface ButtonComponent extends Component, ButtonProperties {
|
||||
|
||||
@@ -173,7 +173,8 @@ export enum ComponentEventType {
|
||||
onDidClick,
|
||||
validityChanged,
|
||||
onMessage,
|
||||
onSelectedRowChanged
|
||||
onSelectedRowChanged,
|
||||
onComponentCreated
|
||||
}
|
||||
|
||||
export interface IComponentEventArgs {
|
||||
|
||||
@@ -850,6 +850,7 @@ class EditorWrapper extends ComponentWrapper implements sqlops.EditorComponent {
|
||||
super(proxy, handle, ModelComponentTypes.Editor, id);
|
||||
this.properties = {};
|
||||
this._emitterMap.set(ComponentEventType.onDidChange, new Emitter<any>());
|
||||
this._emitterMap.set(ComponentEventType.onComponentCreated, new Emitter<any>());
|
||||
}
|
||||
|
||||
public get content(): string {
|
||||
@@ -874,6 +875,11 @@ class EditorWrapper extends ComponentWrapper implements sqlops.EditorComponent {
|
||||
let emitter = this._emitterMap.get(ComponentEventType.onDidChange);
|
||||
return emitter && emitter.event;
|
||||
}
|
||||
|
||||
public get onEditorCreated(): vscode.Event<any> {
|
||||
let emitter = this._emitterMap.get(ComponentEventType.onComponentCreated);
|
||||
return emitter && emitter.event;
|
||||
}
|
||||
}
|
||||
|
||||
class RadioButtonWrapper extends ComponentWrapper implements sqlops.RadioButtonComponent {
|
||||
|
||||
Reference in New Issue
Block a user