From c622d928579b82bdf3348c47d4419d8d9fba2c6d Mon Sep 17 00:00:00 2001
From: Jake <jake.read@cba.mit.edu>
Date: Sat, 1 Jun 2019 16:16:09 -0400
Subject: [PATCH] begin hello to nautilus

---
 README.md                        |  11 +-
 hunks/view.js                    |   3 +
 programs/cuttlefish/nttport.json | 204 +++++++++++++++++++++++++++++++
 view/vbzt.js                     |   4 +-
 view/vdef.js                     |  12 +-
 view/vdom.js                     |   2 +-
 6 files changed, 230 insertions(+), 6 deletions(-)
 create mode 100644 programs/cuttlefish/nttport.json

diff --git a/README.md b/README.md
index e3a7bff..b10dfce 100644
--- a/README.md
+++ b/README.md
@@ -22,11 +22,18 @@ I'm excited about this, so here's an image:
 
 # Scratch
 
-- next is nautilus refresh, refresh after link expansion, find the link and overlay ... then a video of that
+- ok
+- find link ... adding link state -> .isConnected, .gatewayIndex
+- link.makeDoorway() ... after refresh ? 
+-
+- plane overflow ?
+- links expand need to find toplevel view object
+
+- overlay, probably want to modify the message panel ...
 
 - ... -> to space
 
-- writing it all up, and proceeding to a ponyo link 
+- writing it all up, and proceeding to a ponyo link
 
 - after a merge, do unwrapping ...
 
diff --git a/hunks/view.js b/hunks/view.js
index 6034147..6e383b9 100644
--- a/hunks/view.js
+++ b/hunks/view.js
@@ -81,6 +81,8 @@ function View() {
     this.dom = $('<div>').addClass('view').get(0)
     // for nested dom elements,
     this.plane = $('<div>').addClass('plane').get(0)
+    // this needs to start with some transform ..
+    dt.writeTransform(this.plane, {x: 0, y: 0, s: 1})
     // to log, type, etc
     msgbox.init()
 
@@ -785,6 +787,7 @@ function View() {
     this.isTopLevel = true
     land.append(this.dom)
     $(this.dom).attr('id', 'NROLVIEW')
+    $(this.plane).attr('id', 'tlplane')
 
     // init transform of the plane,
     let dft = {
diff --git a/programs/cuttlefish/nttport.json b/programs/cuttlefish/nttport.json
new file mode 100644
index 0000000..f5acb67
--- /dev/null
+++ b/programs/cuttlefish/nttport.json
@@ -0,0 +1,204 @@
+{
+  "interpreterName": "cuttlefish",
+  "interpreterVersion": "v0.1",
+  "hunks": [
+    {
+      "type": "manager",
+      "name": "nrol",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": 1,
+              "inHunkInput": 0
+            }
+          ]
+        }
+      ],
+      "states": []
+    },
+    {
+      "type": "view",
+      "name": "tlview",
+      "inputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "msgs",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": 0,
+              "inHunkInput": 0
+            }
+          ]
+        }
+      ],
+      "states": []
+    },
+    {
+      "type": "link",
+      "name": "link_2",
+      "inputs": [
+        {
+          "name": "data",
+          "type": "byteArray"
+        },
+        {
+          "name": "mgrMsgs",
+          "type": "byteArray"
+        },
+        {
+          "name": "numto",
+          "type": "number"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "data",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": 5,
+              "inHunkInput": 0
+            }
+          ]
+        },
+        {
+          "name": "mgrMsgs",
+          "type": "byteArray"
+        },
+        {
+          "name": "numfrom",
+          "type": "number",
+          "connections": [
+            {
+              "inHunkIndex": 4,
+              "inHunkInput": 0
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "inputList",
+          "type": "string",
+          "value": "mgrMsgs (byteArray), numto (number)"
+        },
+        {
+          "name": "outputList",
+          "type": "string",
+          "value": "mgrMsgs (byteArray), numfrom (number)"
+        }
+      ]
+    },
+    {
+      "type": "interface/number",
+      "name": "numgen",
+      "inputs": [],
+      "outputs": [
+        {
+          "name": "num",
+          "type": "number",
+          "connections": [
+            {
+              "inHunkIndex": 2,
+              "inHunkInput": 2
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "numrep",
+          "type": "number",
+          "value": 275074
+        }
+      ]
+    },
+    {
+      "type": "interface/logger",
+      "name": "numlog",
+      "inputs": [
+        {
+          "name": "tolog",
+          "type": "any"
+        }
+      ],
+      "outputs": [],
+      "states": [
+        {
+          "name": "prefix",
+          "type": "string",
+          "value": "LOG:"
+        },
+        {
+          "name": "console",
+          "type": "boolean",
+          "value": true
+        }
+      ]
+    },
+    {
+      "type": "comm/websocketclient",
+      "name": "comm/websocketclient_5",
+      "inputs": [
+        {
+          "name": "data",
+          "type": "byteArray"
+        }
+      ],
+      "outputs": [
+        {
+          "name": "data",
+          "type": "byteArray",
+          "connections": [
+            {
+              "inHunkIndex": 2,
+              "inHunkInput": 0
+            }
+          ]
+        }
+      ],
+      "states": [
+        {
+          "name": "status",
+          "type": "string",
+          "value": "open"
+        },
+        {
+          "name": "retrycount",
+          "type": "number",
+          "value": 3
+        },
+        {
+          "name": "retryreset",
+          "type": "boolean",
+          "value": false
+        },
+        {
+          "name": "address",
+          "type": "string",
+          "value": "127.0.0.1"
+        },
+        {
+          "name": "port",
+          "type": "number",
+          "value": 2042
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/view/vbzt.js b/view/vbzt.js
index b30b931..fcb6898 100644
--- a/view/vbzt.js
+++ b/view/vbzt.js
@@ -37,7 +37,7 @@ function BezierTools(View) {
 
   this.clear = () => {
     // pick out svg elements and delete them ?
-    $(view.plane).find('.svg').remove()
+    $(view.plane).children('.svg').remove()
   }
 
   let redrawBezier = (bz) => {
@@ -67,7 +67,7 @@ function BezierTools(View) {
     svg.style.position = 'absolute'
     svg.style.left = head.x + 'px'
     svg.style.top = head.y + 'px'
-    svg.style.zIndex = '-1'
+    //svg.style.zIndex = '-1'
     svg.style.overflow = 'visible'
     svg.setAttribute('width', 12)
     svg.setAttribute('height', 12)
diff --git a/view/vdef.js b/view/vdef.js
index 7f5780a..e06a4ce 100644
--- a/view/vdef.js
+++ b/view/vdef.js
@@ -111,7 +111,12 @@ function HunkDefinition(spec, view, dt, debug) {
       evt.preventDefault()
       evt.stopPropagation()
       let ct = dt.readTransform(this.deg.core)
-      let pt = dt.readTransform(view.plane)
+      let pt
+      if(view.name !== 'tlview'){
+        pt = dt.readTransform($('#tlplane').get(0))
+      } else {
+        pt = dt.readTransform(view.plane)
+      }
       //console.log(ct, pt)
       ct.x += evt.movementX / pt.s
       ct.y += evt.movementY / pt.s
@@ -401,6 +406,10 @@ function HunkDefinition(spec, view, dt, debug) {
     element.onMoveCustomCallback = this.moveByWrappedElement
   }
 
+  this.makeDoorway = () => {
+    // writing this ... 
+  }
+
   // adden em
   this.addButton = (text, callback) => {
     let element = $(`<div>${text}</div>`).addClass('defbutton').get(0)
@@ -448,6 +457,7 @@ function HunkDefinition(spec, view, dt, debug) {
 
   if (this.type === 'link') {
     this.addButton('expand view', (evt) => {
+      // has to be a toplevel routine ...
       view.expandLink(this).then((view) => {
         /*
         $(open).text('~ collapse view ~')
diff --git a/view/vdom.js b/view/vdom.js
index d720a30..b785357 100644
--- a/view/vdom.js
+++ b/view/vdom.js
@@ -9,7 +9,7 @@ function DomTools(View) {
 
   // a utility to write a numbers-ordered transform object into the dom,
   this.writeTransform = (div, tf) => {
-    //console.log('div, tf', div, tf)
+    //console.log('vname, div, tf', view.name, div, tf)
     if(tf.s){
       div.style.transform = `scale(${tf.s})`
     } else {
-- 
GitLab