diff --git a/extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts b/extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts index 9006aa84e2..5cb05eb980 100644 --- a/extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts +++ b/extensions/machine-learning/src/views/models/manageModels/currentModelsComponent.ts @@ -206,8 +206,10 @@ export class CurrentModelsComponent extends ModelViewBase implements IPageView { private async onTableSelected(): Promise { if (this._tableSelectionComponent?.data) { - this.importTable = this._tableSelectionComponent?.data; - await this.storeImportConfigTable(); + if (this._tableSelectionComponent?.isDataValid) { + this.importTable = this._tableSelectionComponent?.data; + await this.storeImportConfigTable(); + } if (this._dataTable) { await this._dataTable.refresh(); if (this._emptyModelsComponent) { diff --git a/extensions/machine-learning/src/views/models/prediction/columnsTable.ts b/extensions/machine-learning/src/views/models/prediction/columnsTable.ts index 7caff744b1..f1d2c93665 100644 --- a/extensions/machine-learning/src/views/models/prediction/columnsTable.ts +++ b/extensions/machine-learning/src/views/models/prediction/columnsTable.ts @@ -277,17 +277,18 @@ export class ColumnsTable extends ModelViewBase implements IDataComponent 0 && columns[0].columnName !== constants.selectColumnTitle) { values = [{ displayName: constants.selectColumnTitle, name: '' }].concat(values); } - let nameInput = this._modelBuilder.dropDown().withProperties({ - values: values, - width: this.componentMaxLength - }).component(); + const name = modelParameter.name; let column = values.find(x => x.name.toLocaleUpperCase() === modelParameter.name.toLocaleUpperCase()); if (!column) { column = values.length > 0 ? values[0] : undefined; } const currentColumn = columns.find(x => x.columnName === column?.name); - nameInput.value = column; + let nameInput = this._modelBuilder.dropDown().withProperties({ + values: values, + value: column, + width: this.componentMaxLength + }).component(); if (column) { this._parameters.push({ columnName: column.name, paramName: name, paramType: modelParameter.type, maxLength: currentColumn?.maxLength }); diff --git a/extensions/machine-learning/src/views/models/tableSelectionComponent.ts b/extensions/machine-learning/src/views/models/tableSelectionComponent.ts index 5ef160efcf..aba7ea516d 100644 --- a/extensions/machine-learning/src/views/models/tableSelectionComponent.ts +++ b/extensions/machine-learning/src/views/models/tableSelectionComponent.ts @@ -30,6 +30,7 @@ export class TableSelectionComponent extends ModelViewBase implements IDataCompo private _form: azdata.FormContainer | undefined; private _databases: azdata.DropDownComponent | undefined; private _selectedTableName: string = ''; + private _selectedDatabaseName: string = ''; private _tables: azdata.DropDownComponent | undefined; private _dbNames: string[] = []; private _tableNames: DatabaseTable[] = []; @@ -62,8 +63,11 @@ export class TableSelectionComponent extends ModelViewBase implements IDataCompo width: '275px' }).component(); - this._databases.onValueChanged(async () => { - await this.onDatabaseSelected(); + this._databases.onValueChanged(async (value) => { + if (this._databases?.values && this._selectedDatabaseName !== value.selected) { + this._selectedDatabaseName = value.selected; + await this.onDatabaseSelected(); + } }); this._existingTableButton = modelBuilder.radioButton().withProperties({ @@ -115,10 +119,10 @@ export class TableSelectionComponent extends ModelViewBase implements IDataCompo this._tables.onValueChanged(async (value) => { // There's an issue with dropdown doesn't set the value in editable mode. this is the workaround - if (this._tables && value) { + if (this._tables && value && this._selectedTableName !== value.selected) { this._selectedTableName = value.selected; + await this.onTableSelected(); } - await this.onTableSelected(); }); const databaseForm = modelBuilder.formContainer().withFormItems([{