This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push: new de0e0a5 Vscode view reread (#301) de0e0a5 is described below commit de0e0a5f645e31549b7ffbc0d3d85ca6e086b7f8 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Mon Apr 11 14:27:30 2022 -0400 Vscode view reread (#301) * First try * Fix #295 --- karavan-app/pom.xml | 2 +- karavan-app/src/main/webapp/package.json | 2 +- karavan-core/package.json | 2 +- karavan-designer/package.json | 2 +- karavan-generator/pom.xml | 2 +- karavan-vscode/package.json | 2 +- karavan-vscode/src/designerView.ts | 22 ++++++++++++++++------ karavan-vscode/src/extension.ts | 2 ++ karavan-vscode/webview/App.tsx | 4 ++++ 9 files changed, 28 insertions(+), 12 deletions(-) diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml index 1b12849..9a72a98 100644 --- a/karavan-app/pom.xml +++ b/karavan-app/pom.xml @@ -18,7 +18,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.camel.karavan</groupId> - <version>0.0.14</version> + <version>0.0.15</version> <artifactId>karavan</artifactId> <properties> <compiler-plugin.version>3.8.1</compiler-plugin.version> diff --git a/karavan-app/src/main/webapp/package.json b/karavan-app/src/main/webapp/package.json index adc9818..82e40cb 100644 --- a/karavan-app/src/main/webapp/package.json +++ b/karavan-app/src/main/webapp/package.json @@ -1,6 +1,6 @@ { "name": "karavan", - "version": "0.0.14", + "version": "0.0.15", "private": true, "scripts": { "start": "cp -r ../../../../karavan-designer/src/designer src && react-scripts start", diff --git a/karavan-core/package.json b/karavan-core/package.json index 28ada41..6223760 100644 --- a/karavan-core/package.json +++ b/karavan-core/package.json @@ -1,7 +1,7 @@ { "name": "karavan-core", "publisher": "camel-karavan", - "version": "0.0.14", + "version": "0.0.15", "description": "Apache Camel Karavan Core", "scripts": { "build": "tsc", diff --git a/karavan-designer/package.json b/karavan-designer/package.json index 2a5554f..0f10956 100644 --- a/karavan-designer/package.json +++ b/karavan-designer/package.json @@ -1,6 +1,6 @@ { "name": "karavan-designer", - "version": "0.0.14", + "version": "0.0.15", "license": "Apache-2.0", "scripts": { "start": "react-scripts start", diff --git a/karavan-generator/pom.xml b/karavan-generator/pom.xml index 563a4ed..929a65c 100644 --- a/karavan-generator/pom.xml +++ b/karavan-generator/pom.xml @@ -19,7 +19,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.camel.karavan</groupId> <artifactId>karavan-generator</artifactId> - <version>0.0.14</version> + <version>0.0.15</version> <properties> <compiler-plugin.version>3.8.1</compiler-plugin.version> <maven.compiler.parameters>true</maven.compiler.parameters> diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json index b4c8414..2dea45f 100644 --- a/karavan-vscode/package.json +++ b/karavan-vscode/package.json @@ -4,7 +4,7 @@ "displayName": "Karavan", "icon": "icons/karavan.png", "description": "Apache Camel Mastering Tool", - "version": "0.0.14", + "version": "0.0.15", "license": "Apache-2.0", "preview": true, "bugs": { diff --git a/karavan-vscode/src/designerView.ts b/karavan-vscode/src/designerView.ts index 09a63d2..0fe96d2 100644 --- a/karavan-vscode/src/designerView.ts +++ b/karavan-vscode/src/designerView.ts @@ -37,7 +37,7 @@ export class DesignerView { const integration = utils.parceYaml(filename, yaml); if (integration[0]) { - this.openKaravanWebView(filename, relativePath, integration[1]); + this.openKaravanWebView(filename, relativePath, fullPath, integration[1]); } else { vscode.window.showErrorMessage("File is not Camel Integration!") } @@ -90,7 +90,7 @@ export class DesignerView { }); } - openKaravanWebView(filename: string, relativePath: string, yaml?: string) { + openKaravanWebView(filename: string, relativePath: string, fullPath: string, yaml?: string) { if (!KARAVAN_PANELS.has(relativePath)) { // Karavan webview const panel = vscode.window.createWebviewPanel( @@ -119,10 +119,9 @@ export class DesignerView { utils.save(message.relativePath, message.yaml); break; case 'getData': - this.sendData(panel, filename, relativePath, yaml); + this.sendData(panel, filename, relativePath, fullPath, message.reread === true ? undefined : yaml); break; case 'disableStartHelp': - console.log("!!!! 2"); utils.disableStartHelp(); break; } @@ -135,6 +134,13 @@ export class DesignerView { KARAVAN_PANELS.delete(relativePath); }, null, this.context.subscriptions); + // Handle reopen + panel.onDidChangeViewState((e: vscode.WebviewPanelOnDidChangeViewStateEvent) => { + if (e.webviewPanel.active) { + e.webviewPanel.webview.postMessage({ command: 'reread' }) + } + }); + KARAVAN_PANELS.set(relativePath, panel); vscode.commands.executeCommand("setContext", KARAVAN_LOADED, true); } else { @@ -142,8 +148,7 @@ export class DesignerView { } } - sendData(panel: vscode.WebviewPanel, filename: string, relativePath: string, yaml?: string) { - + sendData(panel: vscode.WebviewPanel, filename: string, relativePath: string, fullPath: string, yaml?: string) { // Read and send Kamelets panel.webview.postMessage({ command: 'kamelets', kamelets: utils.readKamelets(this.context) }); @@ -154,6 +159,11 @@ export class DesignerView { const showStartHelp = vscode.workspace.getConfiguration().get("Karavan.showStartHelp"); panel.webview.postMessage({ command: 'showStartHelp', showStartHelp: showStartHelp}); + // Read file if required + if (!yaml || yaml.length === 0){ + yaml = fs.readFileSync(path.resolve(fullPath)).toString('utf8'); + } + // Send integration panel.webview.postMessage({ command: 'open', filename: filename, relativePath: relativePath, yaml: yaml }); diff --git a/karavan-vscode/src/extension.ts b/karavan-vscode/src/extension.ts index c0a195c..b1a73bc 100644 --- a/karavan-vscode/src/extension.ts +++ b/karavan-vscode/src/extension.ts @@ -91,6 +91,8 @@ export function activate(context: vscode.ExtensionContext) { const eipView = new EipView(context, rootPath); vscode.window.registerTreeDataProvider('eip', eipView); vscode.commands.registerCommand('eip.refresh', () => eipView.refresh()); + + // vscode.commands.onDidChangeActiveView } export function deactivate() { diff --git a/karavan-vscode/webview/App.tsx b/karavan-vscode/webview/App.tsx index 0d33792..2ccb61e 100644 --- a/karavan-vscode/webview/App.tsx +++ b/karavan-vscode/webview/App.tsx @@ -86,6 +86,10 @@ class App extends React.Component<Props, State> { this.setState({ filename: message.filename, yaml: message.yaml, scheduledYaml: message.yaml, relativePath: message.relativePath, key: Math.random().toString(), loaded: true }); } break; + case 'reread': + this.setState({ loaded: false, filename: '', key: '' }); + vscode.postMessage({ command: 'getData', reread: true}); + break; } };