Files
penracourses/anatomy/static/js/dwv/appgui.js
T
2020-10-15 22:54:10 +01:00

175 lines
4.7 KiB
JavaScript

/**
* Application GUI.
*/
// Default window level presets.
dwv.tool.defaultpresets = {
"default (127+/-255)": {"center": 127, "width": 255},
//"default": {"center": 127, "width": 100},
};
dwv.tool.defaultpresets.SC = {
"default (127+/-255)": {"center": 127, "width": 255},
};
// Default window level presets for CT.
dwv.tool.defaultpresets.CT = {
"mediastinum": {"center": 40, "width": 400},
"lung": {"center": -500, "width": 1500},
"bone": {"center": 500, "width": 2000},
};
// decode query
dwv.utils.decodeQuery = dwv.utils.base.decodeQuery;
// Window
dwv.gui.getWindowSize = function() {
d = dwv.gui.base.getWindowSize();
//return {"width": d["width"], "height": d["height"]+100}
h = $(window).height() - ($(document).height()-d["height"]) - 100;
return {"width": d["width"], "height": h}
}
// Progress
dwv.gui.displayProgress = function (/*percent*/) { /*does nothing*/ };
// get element
dwv.gui.getElement = dwv.gui.base.getElement;
// refresh
dwv.gui.refreshElement = dwv.gui.base.refreshElement;
// Slider
dwv.gui.Slider = null;
// Tags table
dwv.gui.DicomTags = null;
// Toolbox
dwv.gui.Toolbox = function (app)
{
this.setup = function (/*list*/)
{
// does nothing
};
this.display = function (/*bool*/)
{
// does nothing
};
this.initialise = function (list)
{
// not wonderful: first one should be scroll is more than one slice
if ( list[0] === false ) {
var inputScroll = app.getElement("scroll-button");
inputScroll.style.display = "none";
var inputZoom = app.getElement("zoom-button");
inputZoom.checked = true;
}
};
};
// Window/level
dwv.gui.WindowLevel = function (app)
{
this.setup = function ()
{
var button = document.createElement("button");
button.className = "wl-button";
button.value = "WindowLevel";
button.onclick = app.onChangeTool;
button.appendChild(document.createTextNode("Window/Level"));
var node = app.getElement("toolbar");
node.appendChild(button);
};
this.display = function (bool)
{
var button = app.getElement("wl-button");
button.disabled = bool;
};
this.initialise = function ()
{
// clear previous
dwv.html.removeNode(app.getElement("presetSelect"));
dwv.html.removeNode(app.getElement("presetLabel"));
// create preset select
var select = dwv.html.createHtmlSelect("presetSelect",
app.getViewController().getWindowLevelPresetsNames(), "wl.presets", true);
select.className = "presetSelect";
select.onchange = app.onChangeWindowLevelPreset;
select.title = "Select w/l preset.";
select.setAttribute("data-inline","true");
var label = document.createElement("label");
label.className = "presetLabel";
label.setAttribute("for", "presetSelect");
label.appendChild(document.createTextNode("Select Preset"));
var node = app.getElement("toolbar");
node.appendChild(label);
node.appendChild(select);
};
};
// Zoom
dwv.gui.ZoomAndPan = function (app)
{
this.setup = function ()
{
var button = document.createElement("button");
button.className = "zoom-button";
button.value = "ZoomAndPan";
button.onclick = app.onChangeTool;
button.appendChild(document.createTextNode("ZoomAndPan"));
var node = app.getElement("toolbar");
node.appendChild(button);
};
this.display = function (bool)
{
var button = app.getElement("zoom-button");
button.disabled = bool;
};
};
// Scroll
dwv.gui.Scroll = function (app)
{
this.setup = function ()
{
var button = document.createElement("button");
button.className = "scroll-button";
button.value = "Scroll";
button.onclick = app.onChangeTool;
button.appendChild(document.createTextNode("Scroll"));
var node = app.getElement("toolbar");
node.appendChild(button);
};
this.display = function (bool)
{
var button = app.getElement("scroll-button");
button.disabled = bool;
};
};
dwv.gui.Slider = dwv.gui.base.Slider;
// NEEDS UI
dwv.gui.Filter = dwv.gui.base.Filter;
// Filter: threshold
dwv.gui.Threshold = dwv.gui.base.Threshold;
// Filter: sharpen
dwv.gui.Sharpen = dwv.gui.base.Sharpen;
// Filter: sobel
dwv.gui.Sobel = dwv.gui.base.Sobel;
//Reset
dwv.gui.appendResetHtml = function (app)
{
var button = document.createElement("button");
button.className = "reset-button";
button.value = "reset";
button.onclick = app.onDisplayReset;
button.appendChild(document.createTextNode("Reset"));
var node = app.getElement("toolbar");
node.appendChild(button);
};