You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/04/11 18:27:36 UTC
[camel-karavan] branch main updated: Vscode view reread (#301)
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 <ma...@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;
}
};