<\/div>";
+
+ document.getElementById(parent).innerHTML = strVar;
+
$(function() {// on dom ready
function onChange(event) {
var reader = new FileReader();
@@ -31,7 +142,6 @@ var VQI_pathwayEditor = function(parent,services) {
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;
}
@@ -372,12 +482,12 @@ var VQI_pathwayEditor = function(parent,services) {
var vid = orderedSelectedNodes[1]._private.data['GraphId'];
var result = findPath(JSON.parse(states[states.length - 1]), sid, vid);
console.log(result);
- for(var i = 0; i < result[0].length; i++){
- cy.elements("edge[GraphId = \""+result[0][i]+"\"]").select();
+ for (var i = 0; i < result[0].length; i++) {
+ cy.elements("edge[GraphId = \"" + result[0][i] + "\"]").select();
}
dialogPathfind.dialog("close");
}
-
+
function saveState() {
var nodes = cy.$('node');
var edges = cy.$('edge');
@@ -389,7 +499,17 @@ var VQI_pathwayEditor = function(parent,services) {
if (states.length > 1) {
cy.$('node').remove();
cy.$('edge').remove();
- states.pop()
+ stateRecycle.push(states.pop());
+ var obj = JSON.parse(states[states.length - 1]);
+ window.cy.add(obj.elements)
+ }
+ }
+
+ function redo() {
+ if (stateRecycle.length > 1) {
+ cy.$('node').remove();
+ cy.$('edge').remove();
+ states.push(stateRecycle.pop());
var obj = JSON.parse(states[states.length - 1]);
window.cy.add(obj.elements)
}
@@ -466,12 +586,12 @@ var VQI_pathwayEditor = function(parent,services) {
// node & edge elements (selected state)
.selector('edge:selected').css({
- 'background-color' : 'yellow',
- 'line-color' : 'yellow',
- 'target-arrow-color' : 'yellow',
- 'source-arrow-color' : 'yellow'
+ 'background-color' : 'green',
+ 'line-color' : 'green',
+ 'target-arrow-color' : 'green',
+ 'source-arrow-color' : 'green'
}).selector('node:selected').css({
- 'background-color' : 'yellow'
+ 'background-color' : 'green'
})
// misc
@@ -524,11 +644,11 @@ var VQI_pathwayEditor = function(parent,services) {
// custom event handlers
cy.on('click', 'node', function(event) {
- if(orderedSelectedNodes.length < 2)
+ if (orderedSelectedNodes.length < 2)
orderedSelectedNodes.push(event.cyTarget);
else
orderedSelectedNodes.shift();
- orderedSelectedNodes.push(event.cyTarget);
+ orderedSelectedNodes.push(event.cyTarget);
});
cy.on('cxttapstart ', 'node', function(event) {
@@ -738,14 +858,14 @@ var VQI_pathwayEditor = function(parent,services) {
close : function() {
}
});
-
- function dialogPathfindOpen(event){
+
+ function dialogPathfindOpen(event) {
dialogPathfind.dialog("open");
}
-
+
dialogPathfind = $("#" + parent + "-dialog-form-find-path").dialog({
open : function(event) {
- document.getElementById(parent + "-sid").value = orderedSelectedNodes[0]._private.data['name'];
+ document.getElementById(parent + "-sid").value = orderedSelectedNodes[0]._private.data['name'];
document.getElementById(parent + "-vid").value = orderedSelectedNodes[1]._private.data['name'];
},
autoOpen : false,
@@ -797,114 +917,6 @@ var VQI_pathwayEditor = function(parent,services) {
document.getElementById(parent + '-unbundle').addEventListener('click', unbundle);
document.getElementById(parent + '-produceJSON').addEventListener('click', produceJSON);
document.getElementById(parent + '-undo').addEventListener('click', undo);
+ document.getElementById(parent + '-redo').addEventListener('click', redo);
});
-
- // Outer Control Layout
-
- var parentDiv = document.getElementById(parent);
-
- var strVar = "";
- strVar += "
<\/input>";
- strVar += "