Skip to content
This repository was archived by the owner on Nov 28, 2022. It is now read-only.

Commit 569face

Browse files
author
Tim Etchells
authored
Update project object on projectCreation event (#243)
eclipse-archived/codewind#720 Signed-off-by: Tim Etchells <timetchells@ibm.com>
1 parent 3b15891 commit 569face

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

dev/src/codewind/connection/MCSocket.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ export default class MCSocket implements vscode.Disposable {
6565
.on("connect", this.connection.onConnect) // non-nls
6666
.on("disconnect", this.connection.onDisconnect) // non-nls
6767

68-
// .on(SocketEvents.Types.PROJECT_CREATED, this.onProjectCreated)
69-
.on(SocketEvents.Types.PROJECT_BOUND, this.onProjectCreated)
68+
.on(SocketEvents.Types.PROJECT_BOUND, this.onProjectBound)
69+
70+
.on(SocketEvents.Types.PROJECT_CREATED, this.onProjectCreation)
7071
.on(SocketEvents.Types.PROJECT_CHANGED, this.onProjectChanged)
7172
.on(SocketEvents.Types.PROJECT_STATUS_CHANGED, this.onProjectStatusChanged)
7273
.on(SocketEvents.Types.PROJECT_CLOSED, this.onProjectClosed)
@@ -91,7 +92,7 @@ export default class MCSocket implements vscode.Disposable {
9192
this.socket.disconnect();
9293
}
9394

94-
private readonly onProjectCreated = async (payload: { success: boolean; projectID?: string; error?: string; }): Promise<void> => {
95+
private readonly onProjectBound = async (payload: { success: boolean; projectID?: string; error?: string; }): Promise<void> => {
9596
await this.connection.forceUpdateProjectList();
9697

9798
if (payload.projectID) {
@@ -120,9 +121,15 @@ export default class MCSocket implements vscode.Disposable {
120121
}
121122
}
122123

124+
private readonly onProjectCreation = async (payload: any): Promise<void> => {
125+
// https://github.com/eclipse/codewind/issues/720#issuecomment-543801321
126+
// creation event is now, apparently, the same as changed event
127+
this.onProjectChanged(payload);
128+
}
129+
123130
private readonly onProjectStatusChanged = async (payload: { projectID: string }): Promise<void> => {
124131
// Log.d("onProjectStatusChanged", payload);
125-
// I don't see any reason why these should be handled differently
132+
// portal emits the entire inf file with a statusChanged event, so we can treat this the same as projectChanged
126133
this.onProjectChanged(payload);
127134
}
128135

dev/src/codewind/project/Project.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export default class Project implements vscode.QuickPickItem {
224224
}
225225

226226
const ports = projectInfo.ports;
227-
if (ports != null) {
227+
if (ports) {
228228
this.updatePorts(ports);
229229
}
230230
else if (this._state.isStarted) {
@@ -596,8 +596,10 @@ export default class Project implements vscode.QuickPickItem {
596596
}
597597
else if (currentPort !== newPortNumber) {
598598
if (isNaN(newPortNumber)) {
599+
if (this._ports[portType]) {
600+
Log.d(`Unset ${portType} for ${this.name}`);
601+
}
599602
this._ports[portType] = undefined;
600-
// Log.d(`Unset ${portType} for ${this.name}`);
601603
}
602604
else if (newPortNumber !== currentPort) {
603605
Log.d(`New ${portType} for ${this.name} is ${newPortNumber}`);

0 commit comments

Comments
 (0)