Prvni commit.
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
/*
|
||||
* [Česky]
|
||||
* Projekt: Robot Karel
|
||||
* Copyright: Viz KOPIROVANI v kořenovém adresáři projektu
|
||||
*
|
||||
* [English]
|
||||
* Project: Karel, the Robot
|
||||
* Copyright: See COPYING in the top level directory
|
||||
*/
|
||||
|
||||
// JavaScript - funkce konzole pro ladění
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Globální nastavení ~====================================================
|
||||
|
||||
// Maximální počet řádek ve výpisu
|
||||
// TODO: Nastavení v uživatelském rozhraní
|
||||
nastaveni.pocet_radek_vypisu = 120;
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Globální proměnné ~=====================================================
|
||||
|
||||
// Informace o vypisu
|
||||
vypisy = new Object();
|
||||
|
||||
// Aktuální počet řádek výpisu
|
||||
vypisy.pocet_radek = 0;
|
||||
|
||||
// Sledování myši
|
||||
vypisy.stisknute = false;
|
||||
|
||||
// Výpis v obráceném pořadí (novější první)
|
||||
vypisy.obracene = true;
|
||||
|
||||
// Úrovně ladicích výpisů
|
||||
CHYBA = 1; // Činnost nelze provést a uživatel nebyl informován
|
||||
VAROVANI = 2; // Činnost nelze provést, ale uživatel byl informován
|
||||
INFORMACE = 3; // Informace o provedené (!) činnosti
|
||||
DETAIL = 4; // Detailní informace o činnosti
|
||||
LADENI = 5; // Ladicí infomace pro vývojáře
|
||||
|
||||
vypisy.nazvy_urovni = new Array(
|
||||
"chyba",
|
||||
"varování",
|
||||
"informace",
|
||||
"detail",
|
||||
"ladění"
|
||||
);
|
||||
|
||||
// Nastavená úrovně výpisů
|
||||
var uroven = unescape(hodnota_cookie("uroven_ladeni"));
|
||||
for ( var i = 0; i < vypisy.nazvy_urovni.length; i++ ) {
|
||||
if ( uroven == vypisy.nazvy_urovni[i] ) {
|
||||
vypisy.uroven = i+1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( vypisy.uroven == undefined ) {
|
||||
if ( je_oldium_dot_home ) {
|
||||
vypisy.uroven = DETAIL;
|
||||
} else {
|
||||
vypisy.uroven = INFORMACE;
|
||||
}
|
||||
}
|
||||
|
||||
// Nápověda k nastavení hloubky výpisů
|
||||
vypisy.uroven_tooltip = new Array(
|
||||
[ "Úroveň chyb", "Zapisuj pouze chyby" ],
|
||||
[ "Uroveň varování", "Zapisuj chyby a varování" ],
|
||||
[ "Úroveň informací", "Zapisuj chyby, varování a informativní zprávy" ],
|
||||
[ "Úroveň detailů",
|
||||
"Zapisuj chyby, varování, informativní a detailní zprávy" ],
|
||||
[ "Úroveň pro vývojáře", "Zapisuj všechny informace pro vývojáře" ]
|
||||
);
|
||||
|
||||
vypisy.zobrazeni_tooltip = new Array(
|
||||
[ "Ladicí konzola", "Zobraz ladicí konzolu" ],
|
||||
[ "Ladicí konzola", "Skryj ladicí konzolu" ]
|
||||
);
|
||||
|
||||
// Objekt pro práci s myší
|
||||
vypisy.mys = new Mys(new Tooltip());
|
||||
vypisy.mys.tooltip.muzu_zobrazit = function (info, detail) { return true; }
|
||||
|
||||
// ===========================================================================
|
||||
// =~ Funkce pro operace s konzolí ~==========================================
|
||||
|
||||
function ladici_vypis(uroven, funkce, info, text)
|
||||
{
|
||||
if ( uroven > vypisy.uroven ) return;
|
||||
var konzola = document.getElementById("konzola");
|
||||
if ( !konzola ) return;
|
||||
|
||||
if ( vypisy.pocet_radek == nastaveni.pocet_radek_vypisu ) {
|
||||
if ( ! vypisy.obracene ) {
|
||||
// Smaž první řádku ve výpisu
|
||||
konzola.removeChild(konzola.firstChild); // Text
|
||||
konzola.removeChild(konzola.firstChild); // <BR />
|
||||
vypisy.pocet_radek--;
|
||||
} else {
|
||||
// Smaž poslední řádku ve výpisu
|
||||
konzola.removeChild(konzola.lastChild); // <BR />
|
||||
konzola.removeChild(konzola.lastChild); // Text
|
||||
vypisy.pocet_radek--;
|
||||
}
|
||||
}
|
||||
|
||||
if ( text == undefined ) {
|
||||
text = info;
|
||||
info = undefined;
|
||||
}
|
||||
|
||||
var cas = formatuj_text(new Date());
|
||||
if ( info != undefined ) {
|
||||
info = formatuj_text(info);
|
||||
}
|
||||
|
||||
var element_radka = document.createElement("SPAN");
|
||||
var element_cas = element_radka.cloneNode(false);
|
||||
var element_uroven = element_radka.cloneNode(false);
|
||||
var element_funkce = element_radka.cloneNode(false);
|
||||
if ( info != undefined ) var element_info = element_radka.cloneNode(false);
|
||||
var element_text = element_radka.cloneNode(false);
|
||||
var element_mezera = document.createTextNode("\u00A0"); //
|
||||
var element_br = document.createElement("BR");
|
||||
|
||||
// Text
|
||||
element_cas.appendChild(document.createTextNode(cas));
|
||||
element_funkce.appendChild(document.createTextNode(funkce));
|
||||
element_uroven.appendChild(document.createTextNode(
|
||||
"["+vypisy.nazvy_urovni[uroven-1]+"]"));
|
||||
if ( info != undefined )
|
||||
element_info.appendChild(document.createTextNode("("+info+")"));
|
||||
element_text.appendChild(document.createTextNode(text));;
|
||||
|
||||
// Styly
|
||||
element_radka.className = "radka";
|
||||
element_cas.className = "cas";
|
||||
element_uroven.className = "uroven";
|
||||
element_funkce.className = "funkce";
|
||||
if ( info != undefined ) element_info.className = "info";
|
||||
element_text.className = "text";
|
||||
|
||||
// Tvar
|
||||
element_radka.appendChild(element_cas);
|
||||
element_radka.appendChild(element_mezera.cloneNode(false));
|
||||
element_radka.appendChild(element_uroven);
|
||||
element_radka.appendChild(element_mezera.cloneNode(false));
|
||||
element_radka.appendChild(element_funkce);
|
||||
if ( info != undefined ) {
|
||||
element_radka.appendChild(element_mezera.cloneNode(false));
|
||||
element_radka.appendChild(element_info);
|
||||
}
|
||||
element_radka.appendChild(element_mezera);
|
||||
element_radka.appendChild(element_text);
|
||||
|
||||
// Zařazení do HTML
|
||||
if ( ! vypisy.obracene ) {
|
||||
konzola.appendChild(element_radka);
|
||||
konzola.appendChild(element_br);
|
||||
} else {
|
||||
konzola.insertBefore(element_br, konzola.firstChild);
|
||||
konzola.insertBefore(element_radka, konzola.firstChild);
|
||||
}
|
||||
|
||||
vypisy.pocet_radek++;
|
||||
}
|
||||
|
||||
vypisy.mys.proved_vyber = function(objekt)
|
||||
{
|
||||
if ( objekt == "vypis" ) {
|
||||
return false;
|
||||
} else {
|
||||
vypisy.uroven = objekt.slice(-1);
|
||||
nastav_cookie("uroven_ladeni",
|
||||
escape(vypisy.nazvy_urovni[vypisy.uroven-1]), 365);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
vypisy.mys.prekresli_stav = function(objekt, detail, zvyraznen, stisknut,
|
||||
vybran)
|
||||
{
|
||||
if ( objekt != "vypis" ) {
|
||||
var element=document.getElementById("uroven");
|
||||
ladici_vypis(LADENI,"vypisy.mys.prekresli_stav",objekt,
|
||||
"nastavuji odpovídající pozadí");
|
||||
element.className = objekt;
|
||||
}
|
||||
}
|
||||
|
||||
vypisy.mys.proved_stisk = function(objekt)
|
||||
{
|
||||
if ( objekt == "vypis" ) {
|
||||
var element = document.getElementById("konzola");
|
||||
var konzola = element.parentNode;
|
||||
var ikona = document.getElementById("vypis-ikona");
|
||||
|
||||
if ( konzola.style.display != "block" ) {
|
||||
konzola.style.display = "block";
|
||||
ikona.className = "ikona-sbalit";
|
||||
} else {
|
||||
konzola.style.display = "none";
|
||||
ikona.className = "ikona-rozbalit";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
vypisy.mys.tooltip.obnov = function (tooltip, info, detail)
|
||||
{
|
||||
if ( info == 'vypis' ) {
|
||||
var element = document.getElementById("konzola");
|
||||
var konzola = element.parentNode;
|
||||
var id = ( konzola.style.display != "block" ) ? 0 : 1;
|
||||
tvoric.obnov_tooltip( tooltip, "",
|
||||
vypisy.zobrazeni_tooltip[id][0], vypisy.zobrazeni_tooltip[id][1] );
|
||||
} else {
|
||||
tvoric.obnov_tooltip( tooltip, "", detail.nadpis, detail.popis );
|
||||
}
|
||||
}
|
||||
|
||||
function uroven_ladeni(uroven)
|
||||
{
|
||||
vypisy.mys.vyber("uroven-"+uroven);
|
||||
}
|
||||
Reference in New Issue
Block a user