EENX15/simulink_export/html/rtwshrink.js
2021-04-15 16:54:53 +02:00

211 lines
5.9 KiB
JavaScript

// Copyright 2011-2017 The MathWorks, Inc.
function RTW_STRUCT(prop, value) {
this.prop = prop;
if (typeof(value) == 'undefined') {
this.value = "";
} else {
this.value = value;
}
}
// initialize the cache when code generation report is first loaded
function RTW_BOOK() {
this.length = 0;
this.rtw_pages = new Array();
this.getPage = function(file) {
return this.rtw_pages[file];
};
this.addPage = function(file) {
var page;
if (this.hasPage(file)) {
page = this.rtw_pages[file];
} else {
page = new RTW_PAGE(file);
this.rtw_pages[file] = page;
}
return page;
};
this.hasPage = function(file) {
return typeof(this.rtw_pages[file]) != 'undefined';
};
this.removePage = function(file) {
var tmp;
if (typeof(this.rtw_pages[file]) != 'undefined') {
tmp = this.rtw_pages[file];
delete this.rtw_pages[file];
this.length--;
}
return tmp;
};
}
if (!RTW_BOOK.instance) {
RTW_BOOK.instance = new RTW_BOOK();
}
function RTW_PAGE() {
this.length = 0;
this.items = new Array();
this.pagename = '';
if (arguments.length > 0 && typeof(arguments[1]) != 'undefined') {
this.pagename = arguments[1];
}
this.getItem = function(id) {
return this.items[id];
};
this.getItems = function() {
return this.items;
};
this.addItem = function(id, value) {
var tmp;
if (typeof(value) != 'undefined') {
if (typeof(this.items[id]) != 'undefined') {
this.length++;
} else {
tmp = this.items[id];
}
this.items[id] = value;
this.length++;
}
return tmp;
};
this.hasItem = function(id) {
return typeof(this.items[id]) != 'undefined';
};
this.removeItem = function(id) {
var tmp;
if (typeof(this.items[id]) != 'undefined') {
tmp = this.items[id];
delete this.items[id];
this.length--;
}
return tmp;
};
}
function rtwTableShrink(doc, obj, id, isSymbol) {
var hide, hide_text, show, show_text;
if (isSymbol) {
hide = "[-]";
hide_text = hide;
show = "[+]";
show_text = show;
} else {
hide = "[<u>hide</u>]";
hide_text = "[hide]";
show = "[<u>show</u>]";
show_text = "[show]";
}
hide = "<span class='shrink-button'>" + hide + "</span>";
show = "<span class='shrink-button'>" + show + "</span>";
if (doc.getElementsByName) {
var o = doc.getElementsByName(id);
for (var oid = 0; oid < o.length; ++oid) {
if (o[oid].style.display === "none") {
o[oid].style.display = "";
} else {
o[oid].style.display = "none";
}
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
}
// IE supports innerText while other browsers support textContent
if (obj.textContent) {
var objText = obj.textContent;
} else {
var objText = obj.innerText;
}
if (objText.toLowerCase() === show_text.toLowerCase()) {
obj.innerHTML = hide;
} else {
obj.innerHTML = show;
}
if (addToPage) {
addToPage(doc, obj, 'innerHTML');
}
}
function rtwTableExpand(doc, controlObj, id) {
if (doc.getElementById) {
var obj = doc.getElementById(id);
if (obj && obj.style.display === "none") {
rtwTableShrink(doc, controlObj, id, false);
}
}
}
function restoreState(docObj) {
var filename = docObj.location.href;
if (RTW_BOOK.instance && RTW_BOOK.instance.hasPage(filename)) {
var page = RTW_BOOK.instance.getPage(filename);
var items = page.getItems();
var elem;
if (docObj.getElementsByName) {
for (var i in items) {
var o = docObj.getElementsByName(i);
for (var oid = 0; oid < o.length; ++oid) {
elem = o[oid];
if (items[i].prop === 'display') {
if (elem.style.display === 'none') {
elem.style.display = '';
} else {
elem.style.display = 'none';
}
} else if (items[i].prop === 'innerHTML') {
elem.innerHTML = items[i].value;
}
}
}
}
}
}
function addToPage(docObj, obj, prop) {
var filename = docObj.location.href;
if (RTW_BOOK.instance) {
var page;
if (RTW_BOOK.instance.hasPage(filename)) {
page = RTW_BOOK.instance.getPage(filename);
} else {
page = RTW_BOOK.instance.addPage(filename);
}
if (page.hasItem(obj.id)) {
page.removeItem(obj.id);
} else {
var my_struct;
if (prop === "display") {
my_struct = new RTW_STRUCT(prop, obj.style.display);
} else {
my_struct = new RTW_STRUCT(prop, obj.innerHTML);
}
page.addItem(obj.id, my_struct);
}
}
}
function rtwSwitchView(doc, obj1, obj2) {
if (doc.getElementsByName) {
var o = doc.getElementsByName(obj1);
for (var oid = 0; oid < o.length; ++oid) {
o[oid].style.display = "none";
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
var o = doc.getElementsByName(obj2);
for (var oid = 0; oid < o.length; ++oid) {
o[oid].style.display = "";
}
if (o.length >= 0 && addToPage) {
addToPage(doc, o[0], 'display');
}
}
}