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