Re: Struts and javascript




i dont think if i get you right
this page common.jsp should be container for
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>



taglibs only??

this is my tree.jsp page where i store javascript tree menu:



<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>







<%

response.setHeader("Cache-Control","no-cache,no-store"); //HTTP 1.1

response.setHeader("Pragma","no-cache"); //HTTP 1.0

response.setDateHeader ("Expires", 0); //prevents caching at the proxy
server

%>



<script language="JavaScript" src="/PracaMag/pages/tree.js"></script>

<script language="JavaScript" src="/PracaMag/pages/tree_items.js"></script>

<script language="JavaScript" src="/PracaMag/pages/tree_tpl.js"></script>

<style>

a, A:link, a:visited, a:active, A:hover

{color: #000000; text-decoration: none; font-family: Tahoma, Verdana;
font-size: 12px}

</style>

<table>

<tr>

<td>

<script language="JavaScript">

new tree (TREE_ITEMS, TREE_TPL);

</script>

</td>

</tr>

</table>



this is tree.js



function tree (a_items, a_template) {

this.a_tpl = a_template;

this.a_config = a_items;

this.o_root = this;

this.a_index = [];

this.o_selected = null;

this.n_depth = -1;


var o_icone = new Image(),

o_iconl = new Image();

o_icone.src = a_template['icon_e'];

o_iconl.src = a_template['icon_l'];

a_template['im_e'] = o_icone;

a_template['im_l'] = o_iconl;

for (var i = 0; i < 64; i++)

if (a_template['icon_' + i]) {

var o_icon = new Image();

a_template['im_' + i] = o_icon;

o_icon.src = a_template['icon_' + i];

}


this.toggle = function (n_id) { var o_item = this.a_index[n_id];
o_item.open(o_item.b_opened) };

this.select = function (n_id) { return this.a_index[n_id].select(); };

this.mout = function (n_id) { this.a_index[n_id].upstatus(true) };

this.mover = function (n_id) { this.a_index[n_id].upstatus() };

this.a_children = [];

for (var i = 0; i < a_items.length; i++)

new tree_item(this, i);

this.n_id = trees.length;

trees[this.n_id] = this;


for (var i = 0; i < this.a_children.length; i++) {

document.write(this.a_children[i].init());

this.a_children[i].open();

}

}

function tree_item (o_parent, n_order) {

this.n_depth = o_parent.n_depth + 1;

this.a_config = o_parent.a_config[n_order + (this.n_depth ? 2 : 0)];

if (!this.a_config) return;

this.o_root = o_parent.o_root;

this.o_parent = o_parent;

this.n_order = n_order;

this.b_opened = !this.n_depth;

this.n_id = this.o_root.a_index.length;

this.o_root.a_index[this.n_id] = this;

o_parent.a_children[n_order] = this;

this.a_children = [];

for (var i = 0; i < this.a_config.length - 2; i++)

new tree_item(this, i);

this.get_icon = item_get_icon;

this.open = item_open;

this.select = item_select;

this.init = item_init;

this.upstatus = item_upstatus;

this.is_last = function () { return this.n_order ==
this.o_parent.a_children.length - 1 };

}

function item_open (b_close) {

var o_idiv = get_element('i_div' + this.o_root.n_id + '_' + this.n_id);

if (!o_idiv) return;


if (!o_idiv.innerHTML) {

var a_children = [];

for (var i = 0; i < this.a_children.length; i++)

a_children[i]= this.a_children[i].init();

o_idiv.innerHTML = a_children.join('');

}

o_idiv.style.display = (b_close ? 'none' : 'block');


this.b_opened = !b_close;

var o_jicon = document.images['j_img' + this.o_root.n_id + '_' + this.n_id],

o_iicon = document.images['i_img' + this.o_root.n_id + '_' + this.n_id];

if (o_jicon) o_jicon.src = this.get_icon(true);

if (o_iicon) o_iicon.src = this.get_icon();

this.upstatus();

}

function item_select (b_deselect) {

if (!b_deselect) {

var o_olditem = this.o_root.o_selected;

this.o_root.o_selected = this;

if (o_olditem) o_olditem.select(true);

}

var o_iicon = document.images['i_img' + this.o_root.n_id + '_' + this.n_id];

if (o_iicon) o_iicon.src = this.get_icon();

get_element('i_txt' + this.o_root.n_id + '_' + this.n_id).style.fontWeight =
b_deselect ? 'normal' : 'bold';


this.upstatus();

return Boolean(this.a_config[1]);

}

function item_upstatus (b_clear) {

window.setTimeout('window.status="' + (b_clear ? '' : this.a_config[0] +
(this.a_config[1] ? ' ('+ this.a_config[1] + ')' : '')) + '"', 10);

}

function item_init () {

var a_offset = [],

o_current_item = this.o_parent;

for (var i = this.n_depth; i > 1; i--) {

a_offset[i] = '<img src="' + this.o_root.a_tpl[o_current_item.is_last() ?
'icon_e' : 'icon_l'] + '" border="0" align="absbottom">';

o_current_item = o_current_item.o_parent;

}

return '<table cellpadding="0" cellspacing="0" border="0"><tr><td nowrap>' +
(this.n_depth ? a_offset.join('') + (this.a_children.length

? '<a href="javascript: trees[' + this.o_root.n_id + '].toggle(' + this.n_id
+ ')" onmouseover="trees[' + this.o_root.n_id + '].mover(' + this.n_id + ')"
onmouseout="trees[' + this.o_root.n_id + '].mout(' + this.n_id + ')"><img
src="' + this.get_icon(true) + '" border="0" align="absbottom" name="j_img'
+ this.o_root.n_id + '_' + this.n_id + '"></a>'

: '<img src="' + this.get_icon(true) + '" border="0" align="absbottom">') :
'')

+ '<html:link forward="showitem"><img src="' + this.get_icon() + '"
border="0" align="absbottom" name="i_img' + this.o_root.n_id + '_' +
this.n_id + '" class="t' + this.o_root.n_id + 'im">' + this.a_config[0] +
'</html:link></td></tr></table>' + (this.a_children.length ? '<div
id="i_div' + this.o_root.n_id + '_' + this.n_id + '"
style="display:none"></div>' : '');

}

function item_get_icon (b_junction) {

return this.o_root.a_tpl['icon_' + ((this.n_depth ? 0 : 32) +
(this.a_children.length ? 16 : 0) + (this.a_children.length && this.b_opened
? 8 : 0) + (!b_junction && this.o_root.o_selected == this ? 4 : 0) +
(b_junction ? 2 : 0) + (b_junction && this.is_last() ? 1 : 0))];

}

var trees = [];

get_element = document.all ?

function (s_id) { return document.all[s_id] } :

function (s_id) { return document.getElementById(s_id) };



and this is what was before i put <html:link>

'<a href="' + this.a_config[1] + '" target="' + this.o_root.a_tpl['target']
+ '" onclick="return trees[' + this.o_root.n_id + '].select(' + this.n_id +
')" ondblclick="trees[' + this.o_root.n_id + '].toggle(' + this.n_id + ')"
onmouseover="trees[' + this.o_root.n_id + '].mover(' + this.n_id + ')"
onmouseout="trees[' + this.o_root.n_id + '].mout(' + this.n_id + ')"
class="t' + this.o_root.n_id + 'i" id="i_txt' + this.o_root.n_id + '_' +
this.n_id + '"><img src="' + this.get_icon() + '" border="0"
align="absbottom" name="i_img' + this.o_root.n_id + '_' + this.n_id + '"
class="t' + this.o_root.n_id + 'im">' + this.a_config[0] + '</a>



it doesnt create me anything on the reult page cause its create dynamically

any suggestions??

thx

Macin Goldyn


.



Relevant Pages

  • LazyTree converted to a Checkbox Tree, but checkbox clear?
    ... I have been working with lazytree.js to convert it to a checkbox tree. ... var tree = new CLazyTree ... n.addDoc ('Player 1'); ...
    (comp.lang.javascript)
  • Dynamically populated tree with XMLHttpRequest - help with Internet Explorer
    ... I have written a dynamically populated tree in JavaScript. ... var closedImg = new Image; ... xmlhttp = new XMLHttpRequest; ...
    (comp.lang.javascript)
  • insert E4X XML tree inside existing DOM tree
    ... In the SVG document below, an E4X XML tree is built up from scratch and put inside the variable 'fresh'. ... Any attempt, however, to append this fresh tree to the existing SVG DOM tree seems to fail, possibly because there's a document mismatch. ... var components; ...
    (comp.text.xml)
  • dynamic tree hierarchy in javascript
    ... i want to create a dynamic tree hierarchy in javascript.there are two ... cursor: pointer; ... var openImg = new Image; ...
    (comp.lang.javascript)
  • Re: Best lex/yacc for C++?
    ... Well amongst other things I would like to fill STL map templates with thing ... like var["name"] = etc, also I would call some classes to log info like ... I parsed the tree and created a tree of classes of it. ... would be a solution although of course you get a lot of type casting and ...
    (comp.lang.cpp)