Skip to content

Commit c7809cb

Browse files
Add filter button
Signed-off-by: Sanjula Ganepola <Sanjula.Ganepola@ibm.com>
1 parent 32f26fe commit c7809cb

File tree

3 files changed

+65
-11
lines changed

3 files changed

+65
-11
lines changed

package.json

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,12 @@
539539
"category": "Db2 for i",
540540
"icon": "$(list-selection)"
541541
},
542+
{
543+
"command": "vscode-db2i.filterDatabaseObjectTypes",
544+
"title": "Filter Database Object Types",
545+
"category": "Db2 for i",
546+
"icon": "$(filter)"
547+
},
542548
{
543549
"command": "vscode-db2i.removeSchemaFromSchemaBrowser",
544550
"title": "Remove schema from view",
@@ -976,6 +982,10 @@
976982
"command": "vscode-db2i.importDataContextMenu",
977983
"when": "false"
978984
},
985+
{
986+
"command": "vscode-db2i.filterDatabaseObjectTypes",
987+
"when": "never"
988+
},
979989
{
980990
"command": "vscode-db2i.setSchemaFilter",
981991
"when": "never"
@@ -1140,14 +1150,19 @@
11401150
],
11411151
"view/title": [
11421152
{
1143-
"command": "vscode-db2i.refreshSchemaBrowser",
1144-
"group": "navigation",
1153+
"command": "vscode-db2i.manageSchemaBrowserList",
1154+
"group": "navigation@0",
1155+
"when": "view == schemaBrowser && vscode-db2i:manageSchemaBrowserEnabled"
1156+
},
1157+
{
1158+
"command": "vscode-db2i.filterDatabaseObjectTypes",
1159+
"group": "navigation@1",
11451160
"when": "view == schemaBrowser"
11461161
},
11471162
{
1148-
"command": "vscode-db2i.manageSchemaBrowserList",
1149-
"group": "navigation",
1150-
"when": "view == schemaBrowser && vscode-db2i:manageSchemaBrowserEnabled"
1163+
"command": "vscode-db2i.refreshSchemaBrowser",
1164+
"group": "navigation@2",
1165+
"when": "view == schemaBrowser"
11511166
},
11521167
{
11531168
"command": "vscode-db2i.resultset.settings",

src/views/schemaBrowser/contributes.json

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
"category": "Db2 for i",
2424
"icon": "$(list-selection)"
2525
},
26+
{
27+
"command": "vscode-db2i.filterDatabaseObjectTypes",
28+
"title": "Filter Database Object Types",
29+
"category": "Db2 for i",
30+
"icon": "$(filter)"
31+
},
2632
{
2733
"command": "vscode-db2i.removeSchemaFromSchemaBrowser",
2834
"title": "Remove schema from view",
@@ -114,6 +120,10 @@
114120
],
115121
"menus": {
116122
"commandPalette": [
123+
{
124+
"command": "vscode-db2i.filterDatabaseObjectTypes",
125+
"when": "never"
126+
},
117127
{
118128
"command": "vscode-db2i.setSchemaFilter",
119129
"when": "never"
@@ -173,14 +183,19 @@
173183
],
174184
"view/title": [
175185
{
176-
"command": "vscode-db2i.refreshSchemaBrowser",
177-
"group": "navigation",
186+
"command": "vscode-db2i.manageSchemaBrowserList",
187+
"group": "navigation@0",
188+
"when": "view == schemaBrowser && vscode-db2i:manageSchemaBrowserEnabled"
189+
},
190+
{
191+
"command": "vscode-db2i.filterDatabaseObjectTypes",
192+
"group": "navigation@1",
178193
"when": "view == schemaBrowser"
179194
},
180195
{
181-
"command": "vscode-db2i.manageSchemaBrowserList",
182-
"group": "navigation",
183-
"when": "view == schemaBrowser && vscode-db2i:manageSchemaBrowserEnabled"
196+
"command": "vscode-db2i.refreshSchemaBrowser",
197+
"group": "navigation@2",
198+
"when": "view == schemaBrowser"
184199
}
185200
],
186201
"view/item/context": [

src/views/schemaBrowser/index.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
import { ThemeIcon, TreeItem, workspace } from "vscode"
2+
import { ThemeIcon, TreeItem, workspace, window } from "vscode"
33
import * as vscode from "vscode"
44
import Schemas, { AllSQLTypes, InternalTypes, SQL_ESCAPE_CHAR, SQLType } from "../../database/schemas";
55
import Table from "../../database/table";
@@ -106,6 +106,30 @@ export default class schemaBrowser {
106106
}
107107
}),
108108

109+
vscode.commands.registerCommand(`vscode-db2i.filterDatabaseObjectTypes`, async () => {
110+
const currentTypes = Configuration.get(`schemaBrowser.databaseObjectTypes`);
111+
if (currentTypes) {
112+
const quickPickItems = Object.keys(currentTypes).map((key) => {
113+
return {
114+
label: key, picked: currentTypes[key]
115+
}
116+
});
117+
const selectedTypes = await window.showQuickPick(quickPickItems, {
118+
title: `Select which database object types should be shown`,
119+
canPickMany: true
120+
});
121+
if (selectedTypes) {
122+
const unselectedTypes: Record<string, boolean> = {};
123+
for (const key of Object.keys(currentTypes)) {
124+
if (!selectedTypes.find(type => type.label === key)) {
125+
unselectedTypes[key] = false;
126+
}
127+
}
128+
Configuration.set(`schemaBrowser.databaseObjectTypes`, unselectedTypes);
129+
}
130+
}
131+
}),
132+
109133
vscode.commands.registerCommand(`vscode-db2i.removeSchemaFromSchemaBrowser`, async (node: SchemaItem) => {
110134
if (node) {
111135
//Running from right click

0 commit comments

Comments
 (0)