Skip to content
This repository was archived by the owner on Feb 7, 2024. It is now read-only.

Commit db23744

Browse files
authored
Merge pull request #152 from zowe/progress-bar
Progress bar
2 parents 4bf4054 + 57be12e commit db23744

5 files changed

+93
-46
lines changed

src/commands/clearResourceFilterCommand.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*/
1111

12-
import { commands, TreeView, window } from "vscode";
12+
import { commands, ProgressLocation, TreeView, window } from "vscode";
1313
import { CICSLocalFileTree } from "../trees/CICSLocalFileTree";
1414
import { CICSProgramTree } from "../trees/CICSProgramTree";
1515
import { CICSTransactionTree } from "../trees/CICSTransactionTree";
@@ -30,8 +30,17 @@ export function getClearResourceFilterCommand(tree: CICSTree, treeview: TreeView
3030
}
3131
for (const node of allSelectedNodes) {
3232
node.clearFilter();
33+
window.withProgress({
34+
title: 'Loading Resources',
35+
location: ProgressLocation.Notification,
36+
cancellable: false
37+
}, async (_, token) => {
38+
token.onCancellationRequested(() => {
39+
console.log("Cancelling the loading of resources");
40+
});
3341
await node.loadContents();
3442
tree._onDidChangeTreeData.fire(undefined);
43+
});
3544
}
3645
}
3746
);

src/commands/filterLocalFileCommand.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*/
1111

12-
import { commands, TreeView, window } from "vscode";
12+
import { commands, ProgressLocation, TreeView, window } from "vscode";
1313
import { CICSLocalFileTree } from "../trees/CICSLocalFileTree";
1414
import { CICSTree } from "../trees/CICSTree";
1515
import { getPatternFromFilter } from "../utils/FilterUtils";
@@ -20,7 +20,7 @@ export function getFilterLocalFilesCommand(tree: CICSTree, treeview: TreeView<an
2020
"cics-extension-for-zowe.filterLocalFiles",
2121
async (node) => {
2222
const selection = treeview.selection;
23-
let chosenNode;
23+
let chosenNode: CICSLocalFileTree;
2424
if (node) {
2525
chosenNode = node;
2626
} else if (selection[selection.length-1] && selection[selection.length-1] instanceof CICSLocalFileTree) {
@@ -36,8 +36,17 @@ export function getFilterLocalFilesCommand(tree: CICSTree, treeview: TreeView<an
3636
}
3737
await persistentStorage.addLocalFileSearchHistory(pattern!);
3838
chosenNode.setFilter(pattern!);
39-
await chosenNode.loadContents();
40-
tree._onDidChangeTreeData.fire(undefined);
39+
window.withProgress({
40+
title: 'Loading Local Files',
41+
location: ProgressLocation.Notification,
42+
cancellable: false
43+
}, async (_, token) => {
44+
token.onCancellationRequested(() => {
45+
console.log("Cancelling the loading of local files");
46+
});
47+
await chosenNode.loadContents();
48+
tree._onDidChangeTreeData.fire(undefined);
49+
});
4150
}
4251
);
4352
}

src/commands/filterProgramsCommand.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*/
1111

12-
import { commands, TreeView, window } from "vscode";
12+
import { commands, ProgressLocation, TreeView, window } from "vscode";
1313
import { CICSProgramTree } from "../trees/CICSProgramTree";
1414
import { CICSTree } from "../trees/CICSTree";
1515
import { getPatternFromFilter } from "../utils/FilterUtils";
@@ -20,7 +20,7 @@ export function getFilterProgramsCommand(tree: CICSTree, treeview: TreeView<any>
2020
"cics-extension-for-zowe.filterPrograms",
2121
async (node) => {
2222
const selection = treeview.selection;
23-
let chosenNode;
23+
let chosenNode: CICSProgramTree;
2424
if (node) {
2525
chosenNode = node;
2626
} else if (selection[selection.length-1] && selection[selection.length-1] instanceof CICSProgramTree) {
@@ -36,8 +36,17 @@ export function getFilterProgramsCommand(tree: CICSTree, treeview: TreeView<any>
3636
}
3737
await persistentStorage.addProgramSearchHistory(pattern!);
3838
chosenNode.setFilter(pattern!);
39+
window.withProgress({
40+
title: 'Loading Programs',
41+
location: ProgressLocation.Notification,
42+
cancellable: false
43+
}, async (_, token) => {
44+
token.onCancellationRequested(() => {
45+
console.log("Cancelling the loading of programs");
46+
});
3947
await chosenNode.loadContents();
4048
tree._onDidChangeTreeData.fire(undefined);
49+
});
4150
}
4251
);
4352
}

src/commands/filterTransactionCommand.ts

+13-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*/
1111

12-
import { commands, TreeView, window } from "vscode";
12+
import { commands, ProgressLocation, TreeView, window } from "vscode";
1313
import { CICSTransactionTree } from "../trees/CICSTransactionTree";
1414
import { CICSTree } from "../trees/CICSTree";
1515
import { getPatternFromFilter } from "../utils/FilterUtils";
@@ -20,7 +20,7 @@ export function getFilterTransactionCommand(tree: CICSTree, treeview: TreeView<a
2020
"cics-extension-for-zowe.filterTransactions",
2121
async (node) => {
2222
const selection = treeview.selection;
23-
let chosenNode;
23+
let chosenNode: CICSTransactionTree;
2424
if (node) {
2525
chosenNode = node;
2626
} else if (selection[selection.length-1] && selection[selection.length-1] instanceof CICSTransactionTree) {
@@ -36,8 +36,17 @@ export function getFilterTransactionCommand(tree: CICSTree, treeview: TreeView<a
3636
}
3737
await persistentStorage.addTransactionSearchHistory(pattern!);
3838
chosenNode.setFilter(pattern!);
39-
await chosenNode.loadContents();
40-
tree._onDidChangeTreeData.fire(undefined);
39+
window.withProgress({
40+
title: 'Loading Transactions',
41+
location: ProgressLocation.Notification,
42+
cancellable: false
43+
}, async (_, token) => {
44+
token.onCancellationRequested(() => {
45+
console.log("Cancelling the loading of transactions");
46+
});
47+
await chosenNode.loadContents();
48+
tree._onDidChangeTreeData.fire(undefined);
49+
});
4150
}
4251
);
4352
}

src/commands/getFilterPlexResources.ts

+46-35
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*/
1111

12-
import { commands, TreeItemCollapsibleState, TreeView, window } from "vscode";
12+
import { commands, ProgressLocation, TreeItemCollapsibleState, TreeView, window } from "vscode";
1313
import { CICSRegionsContainer } from "../trees/CICSRegionsContainer";
1414
import { CICSRegionTree } from "../trees/CICSRegionTree";
1515
import { CICSTree } from "../trees/CICSTree";
@@ -21,7 +21,7 @@ export function getFilterPlexResources(tree: CICSTree, treeview: TreeView<any>)
2121
"cics-extension-for-zowe.filterPlexResources",
2222
async (node) => {
2323
const selection = treeview.selection;
24-
let chosenNode;
24+
let chosenNode: any;
2525
if (node) {
2626
chosenNode = node;
2727
} else if (selection[selection.length-1] && selection[selection.length-1] instanceof CICSRegionsContainer) {
@@ -32,7 +32,7 @@ export function getFilterPlexResources(tree: CICSTree, treeview: TreeView<any>)
3232
}
3333
const plex = chosenNode.getParent();
3434
const plexProfile = plex.getProfile();
35-
let resourceToFilter;
35+
let resourceToFilter: any;
3636
if (plexProfile.profile.regionName && plexProfile.profile.cicsPlex) {
3737
resourceToFilter = await window.showQuickPick(["Programs", "Local Transactions", "Local Files"]);
3838
} else {
@@ -53,44 +53,55 @@ export function getFilterPlexResources(tree: CICSTree, treeview: TreeView<any>)
5353
return;
5454
}
5555
const pattern = await getPatternFromFilter(resourceToFilter.slice(0,-1), resourceHistory);
56+
if (pattern) {
57+
if (resourceToFilter === "Programs"){
58+
await persistentStorage.addProgramSearchHistory(pattern);
59+
} else if(resourceToFilter === "Local Transactions"){
60+
await persistentStorage.addTransactionSearchHistory(pattern);
61+
} else if (resourceToFilter === "Local Files"){
62+
await persistentStorage.addLocalFileSearchHistory(pattern);
63+
} else if (resourceToFilter === "Regions"){
64+
await persistentStorage.addRegionSearchHistory(pattern);
65+
}
5666

57-
if (resourceToFilter === "Programs"){
58-
await persistentStorage.addProgramSearchHistory(pattern!);
59-
} else if(resourceToFilter === "Local Transactions"){
60-
await persistentStorage.addTransactionSearchHistory(pattern!);
61-
} else if (resourceToFilter === "Local Files"){
62-
await persistentStorage.addLocalFileSearchHistory(pattern!);
63-
} else if (resourceToFilter === "Regions"){
64-
await persistentStorage.addRegionSearchHistory(pattern!);
65-
}
66-
67-
chosenNode.collapsibleState = TreeItemCollapsibleState.Expanded;
67+
chosenNode.collapsibleState = TreeItemCollapsibleState.Expanded;
6868

69-
if (resourceToFilter === "Regions"){
70-
chosenNode.filterRegions(pattern!, tree);
71-
} else {
72-
for (const region of chosenNode.children){
73-
if (region instanceof CICSRegionTree) {
74-
if (region.getIsActive()) {
75-
let treeToFilter;
76-
if (resourceToFilter === "Programs"){
77-
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreeprogram."))[0];
78-
} else if (resourceToFilter === "Local Transactions"){
79-
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreetransaction."))[0];
80-
} else if (resourceToFilter === "Local Files"){
81-
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreelocalfile."))[0];
82-
}
83-
if (treeToFilter) {
84-
treeToFilter.setFilter(pattern!);
85-
await treeToFilter.loadContents();
86-
treeToFilter.collapsibleState = TreeItemCollapsibleState.Expanded;
69+
if (resourceToFilter === "Regions"){
70+
chosenNode.filterRegions(pattern!, tree);
71+
} else {
72+
window.withProgress({
73+
title: 'Loading Resources',
74+
location: ProgressLocation.Notification,
75+
cancellable: true
76+
}, async (_, token) => {
77+
token.onCancellationRequested(() => {
78+
console.log("Cancelling the loading of resources");
79+
});
80+
for (const region of chosenNode.children){
81+
if (region instanceof CICSRegionTree) {
82+
if (region.getIsActive()) {
83+
let treeToFilter;
84+
if (resourceToFilter === "Programs"){
85+
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreeprogram."))[0];
86+
} else if (resourceToFilter === "Local Transactions"){
87+
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreetransaction."))[0];
88+
} else if (resourceToFilter === "Local Files"){
89+
treeToFilter = region.children?.filter((child: any) => child.contextValue.includes("cicstreelocalfile."))[0];
90+
}
91+
if (treeToFilter) {
92+
treeToFilter.setFilter(pattern!);
93+
await treeToFilter.loadContents();
94+
treeToFilter.collapsibleState = TreeItemCollapsibleState.Expanded;
95+
}
96+
region.collapsibleState = TreeItemCollapsibleState.Expanded;
8797
}
88-
region.collapsibleState = TreeItemCollapsibleState.Expanded;
8998
}
9099
}
100+
tree._onDidChangeTreeData.fire(undefined);
101+
});
91102
}
103+
tree._onDidChangeTreeData.fire(undefined);
92104
}
93-
tree._onDidChangeTreeData.fire(undefined);
94-
}
105+
}
95106
);
96107
}

0 commit comments

Comments
 (0)