mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Table Designer - Save Changes feature and Editor related features (#17335)
* table designer add/remove row support * save changes and editor support * address comments * fix build error * including missing change * lower case request name
This commit is contained in:
@@ -1033,6 +1033,11 @@ export interface TableDesignerEditRequestParams {
|
||||
data: azdata.designers.DesignerData
|
||||
}
|
||||
|
||||
export interface SaveTableDesignerChangesRequestParams {
|
||||
tableInfo: azdata.designers.TableInfo,
|
||||
data: azdata.designers.DesignerData
|
||||
}
|
||||
|
||||
export namespace GetTableDesignerInfoRequest {
|
||||
export const type = new RequestType<azdata.designers.TableInfo, azdata.designers.TableDesignerInfo, void, void>('tabledesigner/gettabledesignerinfo');
|
||||
}
|
||||
@@ -1041,4 +1046,8 @@ export namespace ProcessTableDesignerEditRequest {
|
||||
export const type = new RequestType<TableDesignerEditRequestParams, azdata.designers.DesignerEditResult, void, void>('tabledesigner/processedit');
|
||||
}
|
||||
|
||||
export namespace SaveTableDesignerChangesRequest {
|
||||
export const type = new RequestType<SaveTableDesignerChangesRequestParams, void, void, void>('tabledesigner/savechanges');
|
||||
}
|
||||
|
||||
// ------------------------------- < Table Designer > ------------------------------------
|
||||
|
||||
@@ -1108,7 +1108,7 @@ export class TableDesignerFeature extends SqlOpsFeature<undefined> {
|
||||
protected registerProvider(options: undefined): Disposable {
|
||||
const client = this._client;
|
||||
|
||||
const getTableDesignerInfo = async (tableInfo: azdata.designers.TableInfo): Promise<azdata.designers.TableDesignerInfo> => {
|
||||
const getTableDesignerInfo = (tableInfo: azdata.designers.TableInfo): Thenable<azdata.designers.TableDesignerInfo> => {
|
||||
try {
|
||||
return client.sendRequest(contracts.GetTableDesignerInfoRequest.type, tableInfo);
|
||||
}
|
||||
@@ -1117,7 +1117,7 @@ export class TableDesignerFeature extends SqlOpsFeature<undefined> {
|
||||
return Promise.reject(e);
|
||||
}
|
||||
};
|
||||
const processTableEdit = async (tableInfo: azdata.designers.TableInfo, data: azdata.designers.DesignerData, tableChangeInfo: azdata.designers.DesignerEdit): Promise<azdata.designers.DesignerEditResult> => {
|
||||
const processTableEdit = (tableInfo: azdata.designers.TableInfo, data: azdata.designers.DesignerData, tableChangeInfo: azdata.designers.DesignerEdit): Thenable<azdata.designers.DesignerEditResult> => {
|
||||
let params: contracts.TableDesignerEditRequestParams = {
|
||||
tableInfo: tableInfo,
|
||||
data: data,
|
||||
@@ -1132,10 +1132,25 @@ export class TableDesignerFeature extends SqlOpsFeature<undefined> {
|
||||
}
|
||||
};
|
||||
|
||||
const saveTable = (tableInfo: azdata.designers.TableInfo, data: azdata.designers.DesignerData): Thenable<void> => {
|
||||
let params: contracts.SaveTableDesignerChangesRequestParams = {
|
||||
tableInfo: tableInfo,
|
||||
data: data
|
||||
};
|
||||
try {
|
||||
return client.sendRequest(contracts.SaveTableDesignerChangesRequest.type, params);
|
||||
}
|
||||
catch (e) {
|
||||
client.logFailedRequest(contracts.SaveTableDesignerChangesRequest.type, e);
|
||||
return Promise.reject(e);
|
||||
}
|
||||
};
|
||||
|
||||
return azdata.dataprotocol.registerTableDesignerProvider({
|
||||
providerId: client.providerId,
|
||||
getTableDesignerInfo,
|
||||
processTableEdit
|
||||
processTableEdit,
|
||||
saveTable
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,12 +18,17 @@ export function registerTableDesignerCommands(appContext: AppContext) {
|
||||
}));
|
||||
|
||||
appContext.extensionContext.subscriptions.push(vscode.commands.registerCommand('mssql.designTable', async (context: azdata.ObjectExplorerContext) => {
|
||||
const server = context.connectionProfile.serverName;
|
||||
const database = context.connectionProfile.databaseName;
|
||||
const schema = context.nodeInfo.metadata.schema;
|
||||
const name = context.nodeInfo.metadata.name;
|
||||
await azdata.designers.openTableDesigner(sqlProviderName, {
|
||||
server: context.connectionProfile.serverName,
|
||||
database: context.connectionProfile.databaseName,
|
||||
server: server,
|
||||
database: database,
|
||||
isNewTable: false,
|
||||
name: context.nodeInfo.metadata.name,
|
||||
schema: context.nodeInfo.metadata.schema
|
||||
name: name,
|
||||
schema: schema,
|
||||
id: `${server}|${database}|${schema}|${name}`
|
||||
});
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user