Skip to content

Commit 4a5cc6d

Browse files
committed
draft code for compiler and simulator node
Signed-off-by: Jiyoung Yun <[email protected]>
1 parent ad4c8f3 commit 4a5cc6d

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

src/Tests/Toolchain/ToolchainProvider.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ suite("Toolchain", function () {
8282
const toolchain = new DebianToolchain(
8383
new ToolchainInfo("npm", "package manager for Node.js")
8484
);
85-
const collapsibleState = vscode.TreeItemCollapsibleState.None;
85+
const collapsibleState = vscode.TreeItemCollapsibleState.Expanded;
8686
let node = new ToolchainNode(label, backendName, toolchain);
8787
assert.strictEqual(node.label, label);
8888
assert.strictEqual(node.collapsibleState, collapsibleState);
@@ -102,7 +102,7 @@ suite("Toolchain", function () {
102102
[dependencyInfo]
103103
)
104104
);
105-
const collapsibleState = vscode.TreeItemCollapsibleState.None;
105+
const collapsibleState = vscode.TreeItemCollapsibleState.Expanded;
106106
let node = new ToolchainNode(label, backendName, toolchain);
107107
assert.strictEqual(node.label, label);
108108
assert.strictEqual(node.collapsibleState, collapsibleState);
@@ -184,7 +184,7 @@ suite("Toolchain", function () {
184184
const toolchain = new DebianToolchain(
185185
new ToolchainInfo("npm", "package manager for Node.js")
186186
);
187-
const collapsibleState = vscode.TreeItemCollapsibleState.None;
187+
const collapsibleState = vscode.TreeItemCollapsibleState.Expanded;
188188
let node = new ToolchainNode(label, backend, toolchain);
189189
let provider = new ToolchainProvider();
190190
let treeItem = provider.getTreeItem(node);

src/Toolchain/ToolchainProvider.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export class ToolchainNode extends BaseNode {
6060
public readonly backend: string,
6161
public readonly toolchain: Toolchain
6262
) {
63-
super(label, vscode.TreeItemCollapsibleState.None);
63+
super(label, vscode.TreeItemCollapsibleState.Expanded);
6464
if (DefaultToolchain.getInstance().isEqual(toolchain)) {
6565
const backendThemeColor = new vscode.ThemeColor("charts.green");
6666
this.iconPath = new vscode.ThemeIcon("layers", backendThemeColor);
@@ -80,6 +80,24 @@ export class ToolchainNode extends BaseNode {
8080
}
8181
}
8282

83+
export class CompilerNode extends BaseNode {
84+
constructor() {
85+
super("compiler", vscode.TreeItemCollapsibleState.None);
86+
const chartsThemeColor = new vscode.ThemeColor("charts.blue");
87+
this.iconPath = new vscode.ThemeIcon("circuit-board", chartsThemeColor);
88+
this.contextValue = "compiler";
89+
}
90+
}
91+
92+
export class SimulatorNode extends BaseNode {
93+
constructor() {
94+
super("simulator", vscode.TreeItemCollapsibleState.None);
95+
const chartsThemeColor = new vscode.ThemeColor("charts.blue");
96+
this.iconPath = new vscode.ThemeIcon("inspect", chartsThemeColor);
97+
this.contextValue = "simulator";
98+
}
99+
}
100+
83101
// NodeBuilder creates BackendNodes or ToolchainNodes
84102
export class NodeBuilder {
85103
static createBackendNodes(): BackendNode[] {
@@ -112,6 +130,16 @@ export class NodeBuilder {
112130
return tnode;
113131
});
114132
}
133+
134+
static createChildNodes(bnode: BaseNode): BaseNode[] {
135+
if (bnode instanceof ToolchainNode === false) {
136+
return [];
137+
}
138+
139+
const cnode = new CompilerNode();
140+
const snode = new SimulatorNode();
141+
return [cnode, snode];
142+
}
115143
}
116144

117145
// ToolchainProvider provides TreeData
@@ -168,8 +196,10 @@ export class ToolchainProvider implements vscode.TreeDataProvider<BaseNode> {
168196
public getChildren(element?: BaseNode): Thenable<BaseNode[]> {
169197
if (element === undefined) {
170198
return Promise.resolve(NodeBuilder.createBackendNodes());
171-
} else {
199+
} else if (element instanceof BackendNode === true) {
172200
return Promise.resolve(NodeBuilder.createToolchainNodes(element));
201+
} else {
202+
return Promise.resolve(NodeBuilder.createChildNodes(element));
173203
}
174204
}
175205

0 commit comments

Comments
 (0)