Browse Source

update printIt

Nikolay Suslov 6 years ago
parent
commit
c4e563026c
3 changed files with 117 additions and 6 deletions
  1. 11 0
      public/vwf/view/aframe.js
  2. 60 3
      public/vwf/view/aframeComponent.js
  3. 46 3
      public/vwf/view/editor-new.js

+ 11 - 0
public/vwf/view/aframe.js

@@ -127,6 +127,11 @@ define(["module", "vwf/view"], function (module, view) {
 
         executed: function (nodeID, scriptText, scriptType) {
 
+            var node = this.state.nodes[nodeID];
+                
+            if (!(node)) {
+                return;
+            }
                 
                 if (scriptText.includes('var print')){
                     let print = self.nodes[nodeID].liveBindings.print;
@@ -317,6 +322,12 @@ define(["module", "vwf/view"], function (module, view) {
 
         firedEvent: function (nodeID, eventName, eventParameters) {
 
+            var node = this.state.nodes[nodeID];
+                
+            if (!(node)) {
+                return;
+            }
+
             if ( eventName == "printIt" ) {
             
                 var clientThatSatProperty = self.kernel.client();

+ 60 - 3
public/vwf/view/aframeComponent.js

@@ -71,7 +71,8 @@ define(["module", "vwf/view"], function (module, view) {
                 this.nodes[childID] = {
                     id:childID,
                     extends:childExtendsID,
-                    entityID: this.state.nodes[childID].parentID
+                    entityID: this.state.nodes[childID].parentID,
+                    liveBindings: {}
                 };
 
                 let entityID = this.state.nodes[childID].parentID;
@@ -171,9 +172,65 @@ define(["module", "vwf/view"], function (module, view) {
 
         },
 
-        // firedEvent: function (nodeID, eventName, eventParameters) {
-        // },
+        firedEvent: function (nodeID, eventName, eventParameters) {
+
+            var node = this.state.nodes[nodeID];
+                
+            if (!(node)) {
+                return;
+            }
+
+            if ( eventName == "printIt" ) {
+            
+                var clientThatSatProperty = self.kernel.client();
+                var me = self.kernel.moniker();
+               
+
+                // If the transform property was initially updated by this view....
+                if ( clientThatSatProperty == me) {
+
+
+                let selectedText = eventParameters[0];
+                let printText = _app.helpers.replaceSubStringALL(selectedText,'this','me');
+
+                if (!self.nodes[nodeID].liveBindings){
+                    self.nodes[nodeID].liveBindings = {}
+                }
+
+                //let bindObject = self.nodes[nodeID].liveBindings;
+                let bindString = 'vwf.views["vwf/view/aframeComponent"].nodes["'+ nodeID + '"].liveBindings';
+                let sender = JSON.stringify(eventParameters[1]);
+            
+                let scriptText = 'let binding = '+ bindString +'; binding.me = this; binding.sender = '+ sender +'; lively.vm.syncEval("var print = ' + printText + '",{topLevelVarRecorder: binding});';
+                vwf_view.kernel.execute(nodeID, scriptText);
+
+            }
+
+            }
+
+        },
+
+        executed: function (nodeID, scriptText, scriptType) {
+
+            var node = this.state.nodes[nodeID];
+                
+            if (!(node)) {
+                return;
+            }
+
+            if (scriptText.includes('var print')){
+                let print = self.nodes[nodeID].liveBindings.print;
+
+                let me = self.kernel.moniker();
+                let sender = self.nodes[nodeID].liveBindings.sender;
+
+                if (me == sender) {
+                    let data = JSON.stringify(print); //lively.lang.obj.inspect(print); 
+                    self.kernel.fireEvent(nodeID, "printEvent", [data]);
+                }
+            }
 
+    },
 
         ticked: function (vwfTime) {
 

+ 46 - 3
public/vwf/view/editor-new.js

@@ -2091,7 +2091,14 @@ define([
                                                                         currentNode = vwf_view.kernel.find("", "/")[0];
                                                                     }
 
-                                                                    vwf.views["vwf/view/aframe"].nodes[currentNode].liveBindings = {};
+
+                                                                    if (isAFrameEntity(currentNode)) {
+                                                                        vwf.views["vwf/view/aframe"].nodes[currentNode].liveBindings = {};
+                                                                    } else if(isAFrameComponent(currentNode)) {
+                                                                        vwf.views["vwf/view/aframeComponent"].nodes[currentNode].liveBindings = {};
+                                                                    }
+
+                                                                    
 
                                                                     document.querySelector('#liveCodeEditor')._setNode(currentNode);
                                                                     //createAceEditor(self, currentNode);
@@ -3869,8 +3876,6 @@ define([
     // -- getChildByName --------------------------------------------------------------------
 
 
-
-
     function getChildByName(node, childName) {
         var childNode = undefined;
         for (var i = 0; i < node.children.length && childNode === undefined; i++) {
@@ -3911,6 +3916,30 @@ define([
 
     }
 
+    function isAFrameComponent(nodeID) {
+        let node = self.nodes[nodeID];
+        let nodeProtos = getPrototypes(self.kernel, node.extendsID);
+
+
+            if (nodeProtos.includes('http://vwf.example.com/aframe/componentNode.vwf')) {
+                return true
+            }
+        
+
+        return false
+    }
+
+    function isAFrameEntity(nodeID) {
+        let node = self.nodes[nodeID];
+        let nodeProtos = getPrototypes(self.kernel, node.extendsID);
+
+            if (nodeProtos.includes('http://vwf.example.com/aframe/node.vwf')) {
+                return true
+            }
+        
+
+        return false
+    }
 
 
     function getPrototypes(kernel, extendsID) {
@@ -4077,6 +4106,20 @@ define([
 
     }
 
+    function codeEditorPrintitConsole (editor, nodeID) {
+        var selectedText = editor.getSession().doc.getTextRange(editor.selection.getRange());
+
+        if (selectedText == "") {
+
+            var currline = editor.getSelectionRange().start.row;
+            var selectedText = editor.session.getLine(currline);
+
+        }
+  
+        let scriptText = 'console.log(' + selectedText + ');'
+        self.kernel.execute(nodeID, scriptText);
+
+    }