Pro návrat k původnímu vzhledu je třeba při zvýraznění uložit výchozí stav. Použijeme k tomu pole. V javascriptu může být pole "děravé", což se nám bude hodit, pokud bychom barvu (či jiné atributy vzhledu nastavovali) jen pro některé objekty. Můžeme totiž chtít mít zvýrazněných několik objektů současně a ty pak vrátit na jejich (třeba každého jiný) výchozí stav.[br][br]Funkce vypadá docela podobně, jen je delší jednak o ukládání do pole,[br]jednak o použití uložené barvy. Příkaz setColor totiž vyžaduje zadat barvu po složkách, zatímco funkce getColor získá barvu jako jedno hexadecimální číslo.[br][br]Jako indikátor toho, zda je objekt zvýrazněn, opět použijeme vrstvu.[br][br]function ggbOnInit() {[br] ggbApplet.registerClickListener("emph");[br]}[br]var colors = []; // pole na barvy[br]var sizes = []; // pole na velikosti bodů[br]var thicks = []; // pole na síly čar[br][br]function emph(par) {[br] var i = ggbApplet.getLayer(par);[br] ggbApplet.setLayer(par, Math.abs(1 - i));[br] var index = 0;[br] while (ggbApplet.getObjectName(index) != par) { [br] index++; // zjistíme, jaké číslo má v konstrukci objekt, na který jsme kliknuli [br] } // a to bude index do polí s vlastnostmi [br] if (i == 0) { [color=#3c78d8] // chceme zvýrazňovat[/color][br] colors[index] = ggbApplet.getColor(par); [color=#3c78d8] // uložíme původní stav[/color][br] thicks[index] = ggbApplet.getLineThickness(par);[br] sizes[index] = ggbApplet.getPointSize(par);[br] ggbApplet.setLineThickness(par, 8); [color=#3c78d8]// a zvýrazníme[/color][br] ggbApplet.setPointSize(par, 6);[br] ggbApplet.setColor(par, 255, 0, 0);[br] } else { [color=#3c78d8] [color=#6aa84f]// chceme se vrátit k původnímu stavu[/color][/color] [br] ggbApplet.setLineThickness(par, thicks[index]); [color=#6aa84f]// obnovíme původní sílu čáry a velikost bodu[/color][br] ggbApplet.setPointSize(par, sizes[index]);[br] var saved = colors[index]; [color=#6aa84f]// vezmeme původní barvu a rozebereme na složky[/color][br] var ur = parseInt(saved.substr(1, 2), 16);[br] var ug = parseInt(saved.substr(3, 2), 16);[br] var ub = parseInt(saved.substr(5, 2), 16);[br] ggbApplet.setColor(par, ur, ug, ub); [color=#6aa84f]// ... a vrátíme[/color][br] }[br]}[br][br]Jednodušší varianta pak uloží všechny barvy (či další vlastnosti) hned po načtení appletu, tedy ve funkci ggbOnInit().[br]var prvky = [];[br]var barvy = [];[br]function ggbOnInit() {[br] ggbApplet.registerClickListener("obarvi");[br] prvky = ggbApplet.getAllObjectNames(); [br] prvky.forEach(ulozBarvu);[br]}[br]