wcDocker user interface.

This commit is contained in:
Christopher Ganas 2015-03-30 21:43:07 -04:00
parent 7dc19ef6f7
commit 25587582c1

67
web/client/ui.js Normal file
View File

@ -0,0 +1,67 @@
// Scripts to load after UI has been initialized.
var scripts = ["/client/controls.js", "/client/ida.js", "/client/idump.js", "/client/regmem.js",
"/client/vtimeline.js", "/client/strace.js", "/client/haddrline.js",
"/client/static/static.js", "/client/static/graph.js"];
$(document).ready(function() {
var myDocker = new wcDocker(document.body, {"theme": "qira_theme", "themePath": "/"});
var cfgDef = $.Deferred();
var memoryDef = $.Deferred();
var flatDef = $.Deferred();
var dynamicDef = $.Deferred();
var timelineDef = $.Deferred();
myDocker.registerPanelType('Timeline', {
onCreate: function(myPanel, options) {
var layout = myPanel.layout();
layout.addItem($("<div id='vtimelinebox'></div>"));
timelineDef.resolve();
},
});
myDocker.registerPanelType('Dynamic', {
onCreate: function(myPanel, options) {
myPanel.layout().addItem($($("#dynamic-template").remove().text()));
dynamicDef.resolve();
},
});
myDocker.registerPanelType('Memory', {
onCreate: function(myPanel, options) {
myPanel.layout().addItem($($("#hexeditor-template").remove().text()));
memoryDef.resolve();
},
});
myDocker.registerPanelType('Flat', {
onCreate: function(myPanel, options) {
myPanel.layout().addItem($("<div class='fill' id='flat-static'></div>"));
flatDef.resolve();
},
});
myDocker.registerPanelType('Control Flow', {
onCreate: function(myPanel, options) {
myPanel.layout().addItem($("<div class='fill' id='cfg-static'></div>"));
cfgDef.resolve();
},
});
var timelinePanel = myDocker.addPanel("Timeline", wcDocker.DOCK.LEFT, null);
//Limit the width of the vtimeline. Scrollbar exists if it overflows.
timelinePanel.maxSize(100, 0);
var dynamicPanel = myDocker.addPanel("Dynamic", wcDocker.DOCK.RIGHT, timelinePanel);
var cfgPanel = myDocker.addPanel("Control Flow", wcDocker.DOCK.RIGHT, dynamicPanel);
var flatPanel = myDocker.addPanel("Flat", wcDocker.DOCK.BOTTOM, cfgPanel, {h: 300});
var memoryPanel = myDocker.addPanel("Memory", wcDocker.DOCK.BOTTOM, dynamicPanel, {h: 400});
$.when(timelineDef, dynamicDef, cfgDef, flatDef, memoryDef)
.done(function() {
//UI elements now exist in the DOM.
head.load(scripts);
});
});