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;
     }
   };
 

Reply via email to