Index: tools/profviz/profviz.js |
diff --git a/tools/profviz/profviz.js b/tools/profviz/profviz.js |
index cbfee7a0d19dae921b42eff2070e75309ea1ba2e..7af12adc7e9b2e684fcaee55aa7ea29d38b92e74 100644 |
--- a/tools/profviz/profviz.js |
+++ b/tools/profviz/profviz.js |
@@ -29,6 +29,7 @@ var worker_scripts = [ |
"../csvparser.js", |
"../splaytree.js", |
"../codemap.js", |
+ "../consarray.js", |
"../profile.js", |
"../profile_view.js", |
"../logreader.js", |
@@ -42,11 +43,12 @@ function plotWorker() { |
var worker = null; |
var delegateList = { |
- "log" : log, |
- "error" : logError, |
- "display" : display, |
- "range" : setRange, |
- "script" : scriptLoaded |
+ "log" : log, |
+ "error" : logError, |
+ "displayplot" : displayplot, |
+ "displayprof" : displayprof, |
+ "range" : setRange, |
+ "script" : scriptLoaded |
} |
function initialize() { |
@@ -97,15 +99,26 @@ function UIWrapper() { |
"start", |
"file"]; |
- this.log = document.getElementById("log"); |
- this.plot = document.getElementById('plot'); |
+ var other_elements = ["log", |
+ "plot", |
+ "prof", |
+ "instructions", |
+ "credits", |
+ "toggledisplay"]; |
+ |
for (var i in input_elements) { |
var id = input_elements[i]; |
this[id] = document.getElementById(id); |
} |
+ for (var i in other_elements) { |
+ var id = other_elements[i]; |
+ this[id] = document.getElementById(id); |
+ } |
+ |
this.freeze = function() { |
this.plot.style.webkitFilter = "grayscale(1)"; |
+ this.prof.style.color = "#bbb"; |
for (var i in input_elements) { |
this[input_elements[i]].disabled = true; |
} |
@@ -113,6 +126,7 @@ function UIWrapper() { |
this.thaw = function() { |
this.plot.style.webkitFilter = ""; |
+ this.prof.style.color = "#000"; |
for (var i in input_elements) { |
this[input_elements[i]].disabled = false; |
} |
@@ -123,6 +137,34 @@ function UIWrapper() { |
this.log.value = ""; |
this.range_start.value = "automatic"; |
this.range_end.value = "automatic"; |
+ this.toggle("plot"); |
+ this.plot.src = ""; |
+ this.prof.value = ""; |
+ } |
+ |
+ this.toggle = function(mode) { |
+ if (mode) this.toggledisplay.next_mode = mode; |
+ if (this.toggledisplay.next_mode == "plot") { |
+ this.toggledisplay.next_mode = "prof"; |
+ this.plot.style.display = "block"; |
+ this.prof.style.display = "none"; |
+ this.toggledisplay.innerHTML = "Show profile"; |
+ } else { |
+ this.toggledisplay.next_mode = "plot"; |
+ this.plot.style.display = "none"; |
+ this.prof.style.display = "block"; |
+ this.toggledisplay.innerHTML = "Show plot"; |
+ } |
+ } |
+ |
+ this.info = function(field) { |
+ var down_arrow = "\u25bc"; |
+ var right_arrow = "\u25b6"; |
+ if (field && this[field].style.display != "none") field = null; // Toggle. |
+ this.credits.style.display = "none"; |
+ this.instructions.style.display = "none"; |
+ if (!field) return; |
+ this[field].style.display = "block"; |
} |
} |
@@ -144,7 +186,7 @@ function logError(text) { |
} |
-function display(args) { |
+function displayplot(args) { |
if (error_logged) { |
log("Plot failed.\n\n"); |
} else { |
@@ -157,6 +199,15 @@ function display(args) { |
} |
ui.thaw(); |
+ ui.toggle("plot"); |
+} |
+ |
+ |
+function displayprof(args) { |
+ if (error_logged) return; |
+ ui.prof.value = args; |
+ this.prof.style.color = ""; |
+ ui.toggle("prof"); |
} |
@@ -217,11 +268,12 @@ function setRange(args) { |
function onload() { |
- kResX = 1600; |
- kResY = 900; |
+ kResX = 1200; |
+ kResY = 600; |
error_logged = false; |
ui = new UIWrapper(); |
ui.reset(); |
+ ui.info(null); |
worker = new plotWorker(); |
worker.reset(); |
} |