mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Entry Point updates (#2222)
* Entry point changes * Navigator validation changes. * Minor modifications to how the validator is called and setup
This commit is contained in:
@@ -10,13 +10,16 @@ import { FlatFileProvider } from '../../services/contracts';
|
|||||||
import { FlatFileWizard } from '../flatFileWizard';
|
import { FlatFileWizard } from '../flatFileWizard';
|
||||||
|
|
||||||
export abstract class ImportPage {
|
export abstract class ImportPage {
|
||||||
|
|
||||||
|
protected readonly wizardPage: sqlops.window.modelviewdialog.WizardPage;
|
||||||
protected readonly instance: FlatFileWizard;
|
protected readonly instance: FlatFileWizard;
|
||||||
protected readonly model: ImportDataModel;
|
protected readonly model: ImportDataModel;
|
||||||
protected readonly view: sqlops.ModelView;
|
protected readonly view: sqlops.ModelView;
|
||||||
protected readonly provider: FlatFileProvider;
|
protected readonly provider: FlatFileProvider;
|
||||||
|
|
||||||
protected constructor(instance: FlatFileWizard, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
protected constructor(instance: FlatFileWizard, wizardPage: sqlops.window.modelviewdialog.WizardPage, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
|
this.wizardPage = wizardPage;
|
||||||
this.model = model;
|
this.model = model;
|
||||||
this.view = view;
|
this.view = view;
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
@@ -40,6 +43,12 @@ export abstract class ImportPage {
|
|||||||
*/
|
*/
|
||||||
public async abstract onPageLeave(): Promise<boolean>;
|
public async abstract onPageLeave(): Promise<boolean>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets up a navigation validator.
|
||||||
|
* This will be called right before onPageEnter().
|
||||||
|
*/
|
||||||
|
public abstract setupNavigationValidator();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Override this method to cleanup what you don't need cached in the page.
|
* Override this method to cleanup what you don't need cached in the page.
|
||||||
* @returns {Promise<boolean>}
|
* @returns {Promise<boolean>}
|
||||||
|
|||||||
@@ -47,22 +47,24 @@ export class FlatFileWizard {
|
|||||||
|
|
||||||
let fileConfigPage: FileConfigPage;
|
let fileConfigPage: FileConfigPage;
|
||||||
page1.registerContent(async (view) => {
|
page1.registerContent(async (view) => {
|
||||||
fileConfigPage = new FileConfigPage(this, model, view, this.provider);
|
fileConfigPage = new FileConfigPage(this, page1, model, view, this.provider);
|
||||||
pages.set(0, fileConfigPage);
|
pages.set(0, fileConfigPage);
|
||||||
await fileConfigPage.start();
|
await fileConfigPage.start().then(() => {
|
||||||
|
fileConfigPage.setupNavigationValidator();
|
||||||
fileConfigPage.onPageEnter();
|
fileConfigPage.onPageEnter();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
let prosePreviewPage: ProsePreviewPage;
|
let prosePreviewPage: ProsePreviewPage;
|
||||||
page2.registerContent(async (view) => {
|
page2.registerContent(async (view) => {
|
||||||
prosePreviewPage = new ProsePreviewPage(this, model, view, this.provider);
|
prosePreviewPage = new ProsePreviewPage(this, page2, model, view, this.provider);
|
||||||
pages.set(1, prosePreviewPage);
|
pages.set(1, prosePreviewPage);
|
||||||
await prosePreviewPage.start();
|
await prosePreviewPage.start();
|
||||||
});
|
});
|
||||||
|
|
||||||
let modifyColumnsPage: ModifyColumnsPage;
|
let modifyColumnsPage: ModifyColumnsPage;
|
||||||
page3.registerContent(async (view) => {
|
page3.registerContent(async (view) => {
|
||||||
modifyColumnsPage = new ModifyColumnsPage(this, model, view, this.provider);
|
modifyColumnsPage = new ModifyColumnsPage(this, page3, model, view, this.provider);
|
||||||
pages.set(2, modifyColumnsPage);
|
pages.set(2, modifyColumnsPage);
|
||||||
await modifyColumnsPage.start();
|
await modifyColumnsPage.start();
|
||||||
});
|
});
|
||||||
@@ -70,7 +72,7 @@ export class FlatFileWizard {
|
|||||||
let summaryPage: SummaryPage;
|
let summaryPage: SummaryPage;
|
||||||
|
|
||||||
page4.registerContent(async (view) => {
|
page4.registerContent(async (view) => {
|
||||||
summaryPage = new SummaryPage(this, model, view, this.provider);
|
summaryPage = new SummaryPage(this, page4, model, view, this.provider);
|
||||||
pages.set(3, summaryPage);
|
pages.set(3, summaryPage);
|
||||||
await summaryPage.start();
|
await summaryPage.start();
|
||||||
});
|
});
|
||||||
@@ -93,6 +95,7 @@ export class FlatFileWizard {
|
|||||||
let page = pages.get(idx);
|
let page = pages.get(idx);
|
||||||
|
|
||||||
if (page) {
|
if (page) {
|
||||||
|
page.setupNavigationValidator();
|
||||||
page.onPageEnter();
|
page.onPageEnter();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -122,7 +125,6 @@ export class FlatFileWizard {
|
|||||||
this.wizard.registerNavigationValidator(validator);
|
this.wizard.registerNavigationValidator(validator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ export class FileConfigPage extends ImportPage {
|
|||||||
|
|
||||||
private tableNames: string[] = [];
|
private tableNames: string[] = [];
|
||||||
|
|
||||||
public constructor(instance: FlatFileWizard, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
public constructor(instance: FlatFileWizard, wizardPage: sqlops.window.modelviewdialog.WizardPage, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
||||||
super(instance, model, view, provider);
|
super(instance, wizardPage, model, view, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
async start(): Promise<boolean> {
|
async start(): Promise<boolean> {
|
||||||
@@ -39,7 +39,6 @@ export class FileConfigPage extends ImportPage {
|
|||||||
let fileBrowserComponent = await this.createFileBrowser();
|
let fileBrowserComponent = await this.createFileBrowser();
|
||||||
let databaseComponent = await this.createDatabaseDropdown();
|
let databaseComponent = await this.createDatabaseDropdown();
|
||||||
let serverComponent = await this.createServerDropdown();
|
let serverComponent = await this.createServerDropdown();
|
||||||
this.setupNavigationValidator();
|
|
||||||
|
|
||||||
this.form = this.view.modelBuilder.formContainer()
|
this.form = this.view.modelBuilder.formContainer()
|
||||||
.withFormItems(
|
.withFormItems(
|
||||||
@@ -73,7 +72,7 @@ export class FileConfigPage extends ImportPage {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private setupNavigationValidator() {
|
public setupNavigationValidator() {
|
||||||
this.instance.registerNavigationValidator((info) => {
|
this.instance.registerNavigationValidator((info) => {
|
||||||
if (this.schemaLoader.loading || this.databaseLoader.loading) {
|
if (this.schemaLoader.loading || this.databaseLoader.loading) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -56,10 +56,11 @@ export class ModifyColumnsPage extends ImportPage {
|
|||||||
private text: sqlops.TextComponent;
|
private text: sqlops.TextComponent;
|
||||||
private form: sqlops.FormContainer;
|
private form: sqlops.FormContainer;
|
||||||
|
|
||||||
public constructor(instance: FlatFileWizard, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
public constructor(instance: FlatFileWizard, wizardPage: sqlops.window.modelviewdialog.WizardPage, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
||||||
super(instance, model, view, provider);
|
super(instance, wizardPage, model, view, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static convertMetadata(column: ColumnMetadata): any[] {
|
private static convertMetadata(column: ColumnMetadata): any[] {
|
||||||
return [column.columnName, column.dataType, false, column.nullable];
|
return [column.columnName, column.dataType, false, column.nullable];
|
||||||
}
|
}
|
||||||
@@ -121,6 +122,11 @@ export class ModifyColumnsPage extends ImportPage {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public setupNavigationValidator() {
|
||||||
|
this.instance.registerNavigationValidator((info) => {
|
||||||
|
return !this.loading.loading;
|
||||||
|
});
|
||||||
|
}
|
||||||
private async populateTable() {
|
private async populateTable() {
|
||||||
let data: any[][] = [];
|
let data: any[][] = [];
|
||||||
|
|
||||||
|
|||||||
@@ -20,9 +20,8 @@ export class ProsePreviewPage extends ImportPage {
|
|||||||
private form: sqlops.FormContainer;
|
private form: sqlops.FormContainer;
|
||||||
private refresh: sqlops.ButtonComponent;
|
private refresh: sqlops.ButtonComponent;
|
||||||
|
|
||||||
|
public constructor(instance: FlatFileWizard, wizardPage: sqlops.window.modelviewdialog.WizardPage, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
||||||
public constructor(instance: FlatFileWizard, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
super(instance, wizardPage, model, view, provider);
|
||||||
super(instance, model, view, provider);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async start(): Promise<boolean> {
|
async start(): Promise<boolean> {
|
||||||
@@ -37,7 +36,6 @@ export class ProsePreviewPage extends ImportPage {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this.loading = this.view.modelBuilder.loadingComponent().component();
|
this.loading = this.view.modelBuilder.loadingComponent().component();
|
||||||
this.setupNavigationValidator();
|
|
||||||
|
|
||||||
this.form = this.view.modelBuilder.formContainer().withFormItems([
|
this.form = this.view.modelBuilder.formContainer().withFormItems([
|
||||||
{
|
{
|
||||||
@@ -73,12 +71,9 @@ export class ProsePreviewPage extends ImportPage {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private setupNavigationValidator() {
|
public setupNavigationValidator() {
|
||||||
this.instance.registerNavigationValidator((info) => {
|
this.instance.registerNavigationValidator((info) => {
|
||||||
if (this.loading.loading) {
|
return !this.loading.loading;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ export class SummaryPage extends ImportPage {
|
|||||||
private loading: sqlops.LoadingComponent;
|
private loading: sqlops.LoadingComponent;
|
||||||
private form: sqlops.FormContainer;
|
private form: sqlops.FormContainer;
|
||||||
|
|
||||||
public constructor(instance: FlatFileWizard, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
public constructor(instance: FlatFileWizard, wizardPage: sqlops.window.modelviewdialog.WizardPage, model: ImportDataModel, view: sqlops.ModelView, provider: FlatFileProvider) {
|
||||||
super(instance, model, view, provider);
|
super(instance, wizardPage, model, view, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
async start(): Promise<boolean> {
|
async start(): Promise<boolean> {
|
||||||
@@ -63,7 +63,11 @@ export class SummaryPage extends ImportPage {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
public setupNavigationValidator() {
|
||||||
|
this.instance.registerNavigationValidator((info) => {
|
||||||
|
return !this.loading.loading;
|
||||||
|
});
|
||||||
|
}
|
||||||
private populateTable() {
|
private populateTable() {
|
||||||
this.table.updateProperties({
|
this.table.updateProperties({
|
||||||
data: [
|
data: [
|
||||||
|
|||||||
Reference in New Issue
Block a user