Skip to content

Commit 068119c

Browse files
committed
First iteration of delete support
1 parent bffbe55 commit 068119c

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

src/extension.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,7 @@ import { ResxProvider } from './resxProvider';
33

44

55
export function activate(context: vscode.ExtensionContext) {
6-
76

8-
let disposable = vscode.commands.registerCommand('resx-editor.deleteResource', () => {
9-
vscode.window.showInformationMessage('Hello World from Resx!');
10-
});
11-
12-
context.subscriptions.push(disposable);
137
context.subscriptions.push(ResxProvider.register(context));
148

159
}

src/resxProvider.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ export class ResxProvider implements vscode.CustomTextEditorProvider {
2828
};
2929
webviewPanel.webview.html = this._getWebviewContent(webviewPanel.webview);
3030

31+
let disposable = vscode.commands.registerCommand('resx-editor.deleteResource', () => {
32+
33+
webviewPanel.webview.postMessage({
34+
type: 'delete'
35+
});
36+
});
37+
38+
this.context.subscriptions.push(disposable);
39+
3140
async function updateWebview() {
3241
webviewPanel.webview.postMessage({
3342
type: 'update',

src/webview/webview.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,23 @@ import { provideVSCodeDesignSystem, vsCodeDataGrid, vsCodeDataGridCell, vsCodeDa
22

33
const vscode = acquireVsCodeApi();
44
provideVSCodeDesignSystem().register(vsCodeDataGrid(), vsCodeDataGridRow(), vsCodeDataGridCell());
5+
let currentRowData = null;
56

67
(function () {
78

89
var table = /** @type {HTMLElement} */ (document.getElementById("resource-table"));
910

1011
table.onclick = cellClick;
12+
table.oncontextmenu = cellRightClick;
1113

14+
function cellRightClick(cell) {
15+
const sourceElement = cell.target;
16+
currentRowData = sourceElement._rowData;
17+
}
1218

1319
function cellClick(cell) {
1420
const sourceElement = cell.target;
21+
currentRowData = sourceElement._rowData;
1522

1623
if (sourceElement && sourceElement.className !== "column-header") {
1724
const handleChange = (target) => {
@@ -60,6 +67,15 @@ provideVSCodeDesignSystem().register(vsCodeDataGrid(), vsCodeDataGridRow(), vsCo
6067

6168
vscode.setState({ text });
6269

70+
return;
71+
case 'delete':
72+
if (currentRowData) {
73+
const index = table.rowsData.indexOf(currentRowData);
74+
if (index > -1) {
75+
table.rowsData.splice(index, 1);
76+
refreshResxData();
77+
}
78+
}
6379
return;
6480
}
6581
});

0 commit comments

Comments
 (0)