From d9057c6e73c1fb6fefa75c47bce907cda2ff957e Mon Sep 17 00:00:00 2001 From: ivp08001 Date: Fri, 9 Oct 2015 11:25:23 -0400 Subject: [PATCH 01/12] Delete code.js~ --- code.js~ | 79 -------------------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 code.js~ diff --git a/code.js~ b/code.js~ deleted file mode 100644 index f9eba4f..0000000 --- a/code.js~ +++ /dev/null @@ -1,79 +0,0 @@ -$(function(){ // on dom ready - -$('#cy').cytoscape({ - style: cytoscape.stylesheet() - .selector('node').css({ - 'content': 'data(name)', - 'text-valign': 'center', - 'color': 'black', - 'text-outline-color': '#000' - }) - .selector('edge').css({ - 'target-arrow-shape': 'triangle' - }) - .selector(':selected').css({ - 'background-color': 'black', - 'line-color': 'black', - 'target-arrow-color': 'black', - 'source-arrow-color': 'black' - }) - .selector('.faded').css({ - 'opacity': 1, - 'text-opacity': 0 - }) - .selector('.green').css({ - 'color': 'green' - }) - .selector('.red').css({ - 'color': 'red' - }), - - elements: { - nodes: [ - { data: { id: 'p53', name: 'p53' } }, - { data: { id: 'MDM2', name: 'MDM2' } }, - { data: { id: 'p14ARF', name: 'p14/ARF' } }, - { data: { id: 'p21', name: 'p21' } }, - { data: { id: 'Rb', name: 'Rb' } }, - { data: { id: 'E2F', name: 'E2F' } }, - { data: { id: 'CDK2', name: 'CDK2' } }, - { data: { id: 'CKS1', name: 'CKS1' } }, - { data: { id: 'Skp2', name: 'Skp2' } } - ], - edges: [ - { data: { source: 'p53', target: 'p21' } }, - { data: { source: 'MDM2', target: 'p53' } }, - { data: { source: 'p14ARF', target: 'MDM2' } }, - { data: { source: 'Rb', target: 'E2F' } }, - { data: { source: 'CDK2', target: 'Rb' } }, - { data: { source: 'CKS1', target: 'Skp2' } } - ] - }, - - - layout: { - name: 'grid', - padding: 10 - }, - - // on graph initial layout done (could be async depending on layout...) - ready: function(){ - - window.cy = this; - - // giddy up... - - cy.elements().unselectify(); - - cy.on('tap', 'node', function(e){ - e.preventDefault(); - - var node = this; - console.log(node.position()); - $('#information').append(node.id() + ', '); - node.addClass('green'); - }); - } -}); - -}); // on dom ready From 9608567dac06839f79111ec395bf75b525f7548f Mon Sep 17 00:00:00 2001 From: ivp08001 Date: Fri, 9 Oct 2015 11:25:34 -0400 Subject: [PATCH 02/12] Delete .code.js.swo --- .code.js.swo | Bin 28672 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .code.js.swo diff --git a/.code.js.swo b/.code.js.swo deleted file mode 100644 index a7ae1babc0052e3d9d2b4a5ade2a0f2538c70cff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 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 From a10d851e96392bd5d2b9658fac38046d17c05f42 Mon Sep 17 00:00:00 2001 From: ivp08001 Date: Fri, 9 Oct 2015 11:25:39 -0400 Subject: [PATCH 03/12] Delete .code.js.swp --- .code.js.swp | Bin 24576 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .code.js.swp diff --git a/.code.js.swp b/.code.js.swp deleted file mode 100644 index d09c1c083334481b21bc32d17d005b9621f65dd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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 L?HsR{Z7TgYN&E;` From e17c13a0348c8ff820f5c39532a0ed59372cd198 Mon Sep 17 00:00:00 2001 From: ivp08001 Date: Fri, 9 Oct 2015 11:25:56 -0400 Subject: [PATCH 04/12] Delete code.js --- code.js | 879 -------------------------------------------------------- 1 file changed, 879 deletions(-) delete mode 100644 code.js diff --git a/code.js b/code.js deleted file mode 100644 index 5108d56..0000000 --- a/code.js +++ /dev/null @@ -1,879 +0,0 @@ -var pathwayEditor = function(parent) { - - // Globals - var states = []; - var lastEvent = 0; - var selectedForQueryNodes = []; - var selectedForEditNodes = []; - var selectedForEditEdges = []; - var bundleCounter = 0; - var edgeCounter = 0; - var nodeCounter = 0; - var loadCounts = 0; - var target = 0; - var header = ""; - var counts = {}; - var str_info; - //var rna2Color = {'red_bg',[1,2,3,4,5],'green_bg',[6,7,8,9,10]} - //var cnv2Color = {'red_border',[1,2,3,4,5],'purple_border',[6,7,8,9,10]} - //var mut2Color = {'',[1,2,3,4,5],'red_shadow',[6,7,8,9,10]} - - $(function() {// on dom ready - function onChange(event) { - var reader = new FileReader(); - reader.onload = onReaderLoad; - reader.readAsText(event.target.files[0]); - } - - function setElements(obj) { - if (loadCounts == 0) { - header = obj.data; - visual_pathway(obj); - } else { - saveState(); - for (var i = 0; i < obj.elements.nodes.length; i++) { - obj.elements.nodes[i].position.x = obj.elements.nodes[i].position.x + 1000 * loadCounts; - } - window.cy.add(obj.elements) - } - loadCounts++; - } - - function onSelect(event) { - var val = event.target.value; - $.post('http://137.99.11.36/pathwayVisual/PathwayParser/ajaxJSON.php', { - pid : val - }, function(data) { - var obj = JSON.parse(data); - setElements(obj); - }); - } - - function onReaderLoad(event) { - var obj = JSON.parse(event.target.result); - setElements(obj); - } - - function removeNodes(event) { - saveState(); - selectedForEditNodes.remove(); - } - - function removeEdges(event) { - saveState(); - selectedForEditEdges.remove(); - } - - function addNode(event) { - saveState(); - var name = "n" + nodeCounter; - var node = []; - - node.push({ - group : "nodes", - data : { - GraphId : name, - LabelSize : 10, - SUID : name, - Type : "Protein", - Valign : "Middle", - Width : 100, - Height : 25, - id : name, - name : name, - selected : false, - shared_name : name - }, - position : { - x : 500, - y : 500 - }, - css : { - 'border-color' : 'black', - 'color' : 'black' - } - }) - - nodeCounter++; - window.cy.add(node); - } - - function addEdge(event) { - saveState(); - for (var i = 0; i < selectedForEditNodes.length - 1; i++) { - var sourceE = selectedForEditNodes[i].data('GraphId'); - var targetE = selectedForEditNodes[i + 1].data('GraphId'); - - var edge = []; - - edge.push({ - group : "edges", - data : { - id : "e" + edgeCounter, - SUID : "e" + edgeCounter, - LineThickness : 1.0, - EndArrow : "Line", - Coords : [{ - "x" : 0, - "y" : 0 - }, { - "x" : 0, - "y" : 0 - }], - GraphId : "e" + edgeCounter, - ZOrder : "12288", - source : sourceE, - target : targetE, - StartArrow : "Line", - selected : false - }, - selected : false - }) - - edgeCounter++; - window.cy.add(edge); - } - } - - function unbundle(event) { - saveState(); - - var nodes = []; - var edges = []; - - for (var i = 0; i < selectedForEditNodes.size(); i++) { - nodes.push({ - group : "nodes", - data : { - GraphId : selectedForEditNodes[i].data('GraphId'), - LabelSize : selectedForEditNodes[i].data('LabelSize'), - SUID : selectedForEditNodes[i].data('SUID'), - Type : selectedForEditNodes[i].data('Type'), - Valign : selectedForEditNodes[i].data('Valign'), - Width : selectedForEditNodes[i].data('Width'), - Height : selectedForEditNodes[i].data('Height'), - id : selectedForEditNodes[i].data('id'), - name : selectedForEditNodes[i].data('name'), - selected : selectedForEditNodes[i].data('selected'), - shared_name : selectedForEditNodes[i].data('shared_name'), - }, - position : { - x : selectedForEditNodes[i].position('x'), - y : selectedForEditNodes[i].position('y') - }, - css : { - 'border-color' : 'red' - } - }); - - for (var j = 0; j < selectedForEditNodes[i].connectedEdges().size(); j++) { - edges.push({ - group : "edges", - data : { - id : selectedForEditNodes[i].connectedEdges()[j].data('id'), - SUID : selectedForEditNodes[i].connectedEdges()[j].data('SUID'), - LineThickness : selectedForEditNodes[i].connectedEdges()[j].data('LineThickness'), - EndArrow : selectedForEditNodes[i].connectedEdges()[j].data('EndArrow'), - Coords : selectedForEditNodes[i].connectedEdges()[j].data('Coords'), - GraphId : selectedForEditNodes[i].connectedEdges()[j].data('GraphId'), - ZOrder : selectedForEditNodes[i].connectedEdges()[j].data('ZOrder'), - source : selectedForEditNodes[i].connectedEdges()[j].data('source'), - target : selectedForEditNodes[i].connectedEdges()[j].data('target'), - StartArrow : selectedForEditNodes[i].connectedEdges()[j].data('StartArrow'), - selected : selectedForEditNodes[i].connectedEdges()[j].data('selected') - }, - selected : selectedForEditNodes[i].connectedEdges()[j].selected - }) - } - } - - // Remove old nodes - selectedForEditNodes.remove(); - - // Add new nodes - window.cy.add(nodes.concat(edges)); - } - - function bundle(event) { - saveState(); - var nodes = []; - var edges = []; - // Create new parent - nodes.push({ - group : "nodes", - data : { - GraphId : "n" + bundleCounter, - LabelSize : 10, - SUID : "b6fd7", - Type : "Protein", - Valign : "Middle", - Width : 80.75, - Height : 100, - id : "n" + bundleCounter, - name : "n" + bundleCounter, - selected : false, - shared_name : "n" + bundleCounter - }, - position : { - x : 500, - y : 500 - }, - css : { - "border-color" : "red" - } - }) - - // Create copies of old nodes - for (var i = 0; i < selectedForEditNodes.size(); i++) { - if ( typeof selectedForEditNodes[i].data('parent') == 'undefined') { - nodes.push({ - group : "nodes", - data : { - GraphId : selectedForEditNodes[i].data('GraphId'), - LabelSize : selectedForEditNodes[i].data('LabelSize'), - SUID : selectedForEditNodes[i].data('SUID'), - Type : selectedForEditNodes[i].data('Type'), - Valign : selectedForEditNodes[i].data('Valign'), - Width : selectedForEditNodes[i].data('Width'), - Height : selectedForEditNodes[i].data('Height'), - id : selectedForEditNodes[i].data('id'), - name : selectedForEditNodes[i].data('name'), - selected : selectedForEditNodes[i].data('selected'), - shared_name : selectedForEditNodes[i].data('shared_name'), - parent : "n" + bundleCounter - }, - position : { - x : selectedForEditNodes[i].position('x'), - y : selectedForEditNodes[i].position('y') - }, - css : { - 'border-color' : 'red' - } - }); - } else { - nodes.push({ - group : "nodes", - data : { - GraphId : selectedForEditNodes[i].data('GraphId'), - LabelSize : selectedForEditNodes[i].data('LabelSize'), - SUID : selectedForEditNodes[i].data('SUID'), - Type : selectedForEditNodes[i].data('Type'), - Valign : selectedForEditNodes[i].data('Valign'), - Width : selectedForEditNodes[i].data('Width'), - Height : selectedForEditNodes[i].data('Height'), - id : selectedForEditNodes[i].data('id'), - name : selectedForEditNodes[i].data('name'), - selected : selectedForEditNodes[i].data('selected'), - shared_name : selectedForEditNodes[i].data('shared_name'), - parent : selectedForEditNodes[i].data('parent') - }, - position : { - x : selectedForEditNodes[i].position('x'), - y : selectedForEditNodes[i].position('y') - }, - css : { - 'border-color' : 'red' - } - }); - } - for (var j = 0; j < selectedForEditNodes[i].connectedEdges().size(); j++) { - edges.push({ - group : "edges", - data : { - id : selectedForEditNodes[i].connectedEdges()[j].data('id'), - SUID : selectedForEditNodes[i].connectedEdges()[j].data('SUID'), - LineThickness : selectedForEditNodes[i].connectedEdges()[j].data('LineThickness'), - EndArrow : selectedForEditNodes[i].connectedEdges()[j].data('EndArrow'), - Coords : selectedForEditNodes[i].connectedEdges()[j].data('Coords'), - GraphId : selectedForEditNodes[i].connectedEdges()[j].data('GraphId'), - ZOrder : selectedForEditNodes[i].connectedEdges()[j].data('ZOrder'), - source : selectedForEditNodes[i].connectedEdges()[j].data('source'), - target : selectedForEditNodes[i].connectedEdges()[j].data('target'), - StartArrow : selectedForEditNodes[i].connectedEdges()[j].data('StartArrow'), - selected : selectedForEditNodes[i].connectedEdges()[j].data('selected') - }, - selected : selectedForEditNodes[i].connectedEdges()[j].selected - }) - } - } - - // Remove old nodes - selectedForEditNodes.remove(); - - // Add new nodes - window.cy.add(nodes.concat(edges)); - - bundleCounter++; - } - - function produceJSON(event) { - download(states[states.length - 1], "data.txt", "text/plain"); - } - - function findPath(Json, sid, vid) { - var nodes = Json['elements']['nodes']; - var edges = Json['elements']['edges']; - var result = []; - //array of arrays containing the graphids for edges in the path - var path = []; - var nodeTrack = []; - - function mapLocation(x, y) { - var deta = 3; - for (var j = 0; j < nodes.length; j++) { - var x0 = nodes[j]['position']['x']; - var y0 = nodes[j]['position']['y']; - var w = nodes[j]['data']['Width']; - var h = nodes[j]['data']['Height']; - - if (x > x0 - w / 2 - deta & x < x0 + w / 2 + deta & y > y0 - h / 2 - deta & y < y0 + h / 2 + deta) { - return nodes[j]['data']['SUID']; - - } - } - } - - function findEdgeBySource(gid) { - nodeTrack.push(gid); - for (var i = 0; i < edges.length; i++) { - var s = (!('source' in edges[i]['data']) ? mapLocation(edges[i]['data']['Coords'][0]['x'], edges[i]['data']['Coords'][0]['y']) : edges[i]['data']['source']); - if (s == gid) { - var cl = edges[i]['data']['Coords'].length; - var t = (!('target' in edges[i]['data']) ? mapLocation(edges[i]['data']['Coords'][cl - 1]['x'], edges[i]['data']['Coords'][cl - 1]['y']) : edges[i]['data']['target']); - - if (t == vid) { - //console.log(path); - path.push(edges[i]['data']['id']); - result.push(path); - path = []; - nodeTrack = []; - - } else { - - if (nodeTrack.indexOf(t) == -1) { - path.push(edges[i]['data']['id']); - - findEdgeBySource(t); - } - } - } - } - //console.log(mapLocation(60.75,188.75)) - - } - - findEdgeBySource(sid); - return result; - - } - - function wrapperFindPath(event) { - var result = findPath(JSON.parse(states[states.length - 1]), event.target[0].value, event.target[1].value); - for(var i = 0; i < result.length; i++){ - cy.elements("edge[graphid = "+result[i]+"]").select(); - } - } - - function saveState() { - var nodes = cy.$('node'); - var edges = cy.$('edge'); - var data = '{"format_version" : "1.0","generated_by" : "cytoscape-3.2.1","target_cytoscapejs_version" : "~2.1","data" :' + JSON.stringify(header) + ',"elements" : {"nodes" :' + JSON.stringify(nodes.jsons()) + ',"edges" :' + JSON.stringify(edges.jsons()) + '}}'; - states.push(data); - } - - function undo() { - if (states.length > 1) { - cy.$('node').remove(); - cy.$('edge').remove(); - states.pop() - var obj = JSON.parse(states[states.length - 1]); - window.cy.add(obj.elements) - } - } - - function visual_pathway(obj) { - $('#' + parent + '-cy').cytoscape({ - style : cytoscape.stylesheet() - - // node elements default css (unselected state) - .selector('node').css({ - 'content' : 'data(name)', - 'text-valign' : 'center', - 'color' : 'black', - 'padding-left' : 2, - 'padding-right' : 2, - 'font-family' : 'data(LabelSize)', - 'background-color' : 'white' - }).selector('node[Type="GeneProduct"]').css({ - 'shape' : 'rectangle', - 'width' : 'data(Width)', - 'height' : 'data(Height)', - 'text-valign' : 'middle', - 'background-color' : 'white', - 'border-color' : 'black', - 'border-width' : 1 - }).selector('node[Type="Protein"]').css({ - 'shape' : 'rectangle', - 'width' : 'data(Width)', - 'height' : 'data(Height)', - 'background-color' : 'white', - 'color' : '#ff3333', - 'border-color' : '#ff3333', - 'border-style' : 'solid', - 'border-width' : 1 - }).selector('node[Shape="Brace"]').css({ - 'shape' : 'rectangle', - 'width' : '1', - 'height' : 'data(Width)', - 'background-color' : 'black', - 'color' : 'black', - 'border-color' : 'black', - 'border-style' : 'solid', - 'border-width' : 1 - }).selector('node[FillColor="ffffff"]').css({ - 'background-color' : 'white', - 'color' : 'blue', - 'text-halign' : 'center', - 'text-valign' : 'top' - }) - - // edge elements default css (unselected) - .selector('edge').css({ - 'line-color' : 'black', - 'line-style' : 'solid', - 'width' : 1 - }).selector('edge[LineStyle="Dashed"]').css({ - 'line-style' : 'dashed', - 'line-color' : 'black', - 'background-color' : 'black', - 'color' : 'black' - }).selector('edge[EndArrow="Arrow"]').css({ - 'target-arrow-shape' : 'triangle', - 'target-arrow-color' : 'black', - 'target-arrow-fill' : 'filled' - }).selector('edge[EndArrow="TBar"]').css({ - 'target-arrow-shape' : 'tee', - 'target-arrow-color' : 'black', - 'target-arrow-fill' : 'filled' - }).selector('edge[ConnectorType="Elbow"]').css({ - 'line-color' : 'yellow', - 'line-style' : 'solid' - }) - - // node & edge elements (selected state) - .selector('edge:selected').css({ - 'background-color' : 'yellow', - 'line-color' : 'yellow', - 'target-arrow-color' : 'yellow', - 'source-arrow-color' : 'yellow' - }).selector('node:selected').css({ - 'background-color' : 'yellow' - }) - - // misc - .selector('.faded').css({ - 'opacity' : 1, - 'text-opacity' : 0 - }) - - // query purpose - .selector('.green_bg').css({ - 'background-color' : 'LightGreen', - 'color' : 'black' - }).selector('.red_bg').css({ - 'background-color' : 'LightSalmon', - 'color' : 'black' - }).selector('.purple_border').css({ - 'border-color' : 'MediumPurple', - 'border-width' : 3 - }).selector('.red_border').css({ - 'border-color' : 'red', - 'border-width' : 3 - }).selector('.red_shadow').css({ - 'shadow-opacity' : 1, - 'shadow-color' : 'red', - 'border-width' : 1 - }).selector('.red_circle').css({ - 'background-color' : 'red', - 'shape' : 'ellipse', - 'background-opacity' : 0.5 - }).selector('.green_circle').css({ - 'background-color' : 'green', - 'shape' : 'ellipse', - 'background-opacity' : 0.5 - }).selector('.reset_all').css({ - 'background-color' : 'white', - 'border-color' : 'black', - 'border-width' : 1 - }), - - elements : obj.elements, - - layout : { - name : 'preset', - padding : 10 - }, - - ready : function() { - window.cy = this; - var selectedNodes = []; - - // custom event handlers - cy.on('click', 'node', function(event) { - - }); - - cy.on('cxttapstart ', 'node', function(event) { - target = event.cyTarget; - dialogNode.dialog("open"); - }); - - cy.on('cxttapstart ', 'edge', function(event) { - target = event.cyTarget; - dialogEdge.dialog("open"); - }); - - cy.on('select', 'node', function(event) { - selectedForEditNodes = cy.$('node:selected'); - // saveState(); - }); - - cy.on('unselect', 'node', function(event) { - selectedForEditNodes = cy.$('node:selected'); - // saveState(); - }); - - cy.on('select', 'edge', function(event) { - selectedForEditEdges = cy.$('edge:selected'); - // saveState(); - }); - - cy.on('unselect', 'edge', function(event) { - selectedForEditEdges = cy.$('edge:selected'); - // saveState(); - }); - - cy.on('free', 'node', function(event) { - saveState(); - }); - - cy.on('data', 'node', function(event) { - // saveState(); - }); - - cy.on('style', 'node', function(event) { - // saveState(); - }); - - saveState(); - }, - - // initial viewport state: - zoom : 1, - pan : { - x : 0, - y : 0 - }, - - // interaction options: - minZoom : 1e-50, - maxZoom : 1e50, - zoomingEnabled : true, - userZoomingEnabled : true, - panningEnabled : true, - userPanningEnabled : true, - boxSelectionEnabled : true, - selectionType : 'additive', - touchTapThreshold : 8, - desktopTapThreshold : 4, - autolock : false, - autoungrabify : false, - autounselectify : false, - - // rendering options: - headless : false, - styleEnabled : true, - hideEdgesOnViewport : false, - hideLabelsOnViewport : false, - textureOnViewport : false, - motionBlur : false, - motionBlurOpacity : 0.2, - wheelSensitivity : 1, - pixelRatio : 1, - initrender : function(evt) {/* ... */ - }, - renderer : {/* ... */ } - }); - } - - function clone(obj) { - if (null == obj || "object" != typeof obj) - return obj; - var copy = obj.constructor(); - for (var attr in obj) { - if (obj.hasOwnProperty(attr)) - copy[attr] = obj[attr]; - } - return copy; - } - - function setNodeStyle(target, background, border, shadow) { - target.removeClass(); - if (background != '') - target.addClass(background); - if (border != '') - target.addClass(border); - if (shadow != '') - target.addClass(shadow); - } - - function editEdge() { - saveState(); - var direction = document.getElementById(parent + "-direction").value; - var type = document.getElementById(parent + "-type-edge").value; - target.data('StartArrow', type); - target.data('EndArrow', type); - if (document.getElementById(parent + '-direction').checked) { - var edge = []; - - edge.push({ - group : "edges", - data : { - id : target.data('id'), - SUID : target.data('SUID'), - LineThickness : target.data('LineThickness'), - EndArrow : target.data('EndArrow'), - Coords : target.data('Coords'), - GraphId : target.data('GraphId'), - ZOrder : target.data('ZOrder'), - source : target.data('target'), - target : target.data('source'), - StartArrow : target.data('StartArrow'), - selected : target.data('Selected') - }, - selected : false - }) - target.remove(); - window.cy.add(edge); - } - dialogEdge.dialog("close"); - } - - function editNode() { - saveState(); - var name = document.getElementById(parent + "-gene-name").value; - var width = document.getElementById(parent + "-width").value; - var height = document.getElementById(parent + "-height").value; - target.data('name', name); - target.data('Width', width); - target.data('Height', height); - - var node_name = target.data("shared_name"); - selectedForQueryNodes.push(node_name); - var node_id = target.data("id"); - var rna = document.getElementById(parent + "-rna").value; - var cnv = document.getElementById(parent + "-cnv").value; - var mut = document.getElementById(parent + "-mut").value; - - // RNA - if (rna > 5) { - setNodeStyle(target, 'red_bg', '', ''); - } else { - setNodeStyle(target, 'green_bg', '', ''); - } - - if (cnv > 5) { - setNodeStyle(target, '', 'red_border', ''); - } else { - setNodeStyle(target, 'green_bg', '', ''); - } - - if (mut > 5) { - setNodeStyle(target, 'red_bg', '', ''); - } else { - setNodeStyle(target, 'green_bg', '', ''); - } - - $('#' + parent + '-variable').val($('#' + parent + '-variable').val() + node_name + " "); - dialogNode.dialog("close"); - } - - // On Page Start - - dialogNode = $("#" + parent + "-dialog-form-node").dialog({ - open : function(event) { - document.getElementById(parent + "-gene-name").value = target.data('name'); - }, - autoOpen : false, - height : 300, - width : 350, - buttons : { - "submit" : editNode, - Cancel : function() { - dialogNode.dialog("close"); - } - }, - close : function() { - } - }); - - dialogEdge = $("#" + parent + "-dialog-form-edge").dialog({ - autoOpen : false, - height : 300, - width : 350, - buttons : { - "submit" : editEdge, - Cancel : function() { - dialogEdge.dialog("close"); - } - }, - close : function() { - } - }); - - var select = document.getElementById(parent + "-pathwaySelector"); - - $.get('http://137.99.11.36/pathwayVisual/PathwayParser/ajaxJSON.php', { - pathwayList : '1' - }, function(data) { - var obj = JSON.parse(data); - for (var i = 0; i < obj.length; i++) { - var opt = obj[i].NAME; - var val = obj[i].ID; - var el = document.createElement("option"); - el.textContent = opt; - el.value = val; - select.appendChild(el); - } - }); - - /* for(var i = 0; i < options.length; i++) { - var opt = options[i]; - var el = document.createElement("option"); - el.textContent = opt; - el.value = opt; - select.appendChild(el); - }​ - */ - document.getElementById(parent + '-file').addEventListener('change', onChange); - document.getElementById(parent + '-form-find-path').addEventListener('submit', wrapperFindPath); - document.getElementById(parent + '-deleteNodes').addEventListener('click', removeNodes); - document.getElementById(parent + '-pathwaySelector').addEventListener('change', onSelect); - document.getElementById(parent + '-deleteNodes').addEventListener('click', removeNodes); - document.getElementById(parent + '-deleteEdges').addEventListener('click', removeEdges); - document.getElementById(parent + '-addNode').addEventListener('click', addNode); - document.getElementById(parent + '-addEdge').addEventListener('click', addEdge); - document.getElementById(parent + '-bundle').addEventListener('click', bundle); - document.getElementById(parent + '-unbundle').addEventListener('click', unbundle); - document.getElementById(parent + '-produceJSON').addEventListener('click', produceJSON); - document.getElementById(parent + '-undo').addEventListener('click', undo); - }); - - // Outer Control Layout - - var parentDiv = document.getElementById(parent); - - var strVar = ""; - strVar += " <\/input>"; - strVar += "