?? tree.ftl
?? JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。 JSP技術是用JAVA語言作為腳本語言的
?? FTL
字號:
??
<#--
isCheckBox:是否是復選框。
checkBoxName:復選框的名稱。
valueContent:值集合,指示復選框是否選中。
isLimited:是否限制顯示內容,如果為true,則content必須存在。只有包含才content內的數據才會被顯示。
content:顯示內容的列表。
isUrl:是否有鏈接。
-->
<#macro tree root treeId="t" target="right" showDeep=0 isCheckBox=false checkBoxName="ids" valueContent=[] isLimited=false content=[] isUrl=true suffix="">
<div id=${treeId} class="p-tree">
<@drawNode node=root treeId=treeId pid=treeId target=target showDeep=showDeep isCheckBox=isCheckBox checkBoxName=checkBoxName valueContent=valueContent isLimited=isLimited content=content isUrl=isUrl suffix=suffix/>
</div>
</#macro>
<#--
DIV的ID命名規則及結構:
<pid-index>(整體)
<pid-index-s>(self,自身)
<空白列><線條列><節點列><名稱列>
</pid-index-s>
<pid-index->(子集)
...
</pid-index->
</pid-index>
node:節點
deep:深度
isEndList:祖先節點是否為末節點
pid:父級ID
index:當前層的序號
-->
<#macro drawNode node pid treeId target showDeep isCheckBox checkBoxName valueContent=valueContent deep=0 isEndList=[true] index=0 isLimited=isLimited content=content isUrl=isUrl suffix=suffix>
<#local id=pid+'-'+index />
<#if showDeep gt deep>
<#local isDisplay=true />
<#else>
<#local isDisplay=false />
</#if>
<div id="${id}">
<div id="${id}-s" onmouseover="lineOver(this)" onmouseout="lineOut(this)" onclick="lineSelected(this,'${treeId}');" isDisplay="${isDisplay?string}">
<#--空格列-->
<#if deep gt 0>
<img src="${base+'/ftl_res/jeecms/img/s.gif'}" width="15px" /><#t/>
</#if>
<#--直線列-->
<#if deep gt 1>
<#list 2..deep as i>
<#if isEndList[i-1]>
<img src="${base+'/ftl_res/jeecms/img/s.gif'}" width="15px" /><#t/>
<#else>
<img src="${base+'/ftl_res/jeecms/img/tree/elbow-line.gif'}" /><#t/>
</#if>
</#list>
</#if>
<#--節點列-->
<#if node.isLeaf??>
<#assign isLeaf=node.isLeaf/>
<#elseif (node.child)??>
<#assign isLeaf=!(node.child?size>0)/>
<#else>
<#assign isLeaf=true/>
</#if>
<#if isDisplay>
<#local openDisplay="" />
<#local closeDisplay="display:none;" />
<#else>
<#local openDisplay="display:none;" />
<#local closeDisplay="" />
</#if>
<#if isLeaf && isEndList[deep]>
<img src="${base+'/ftl_res/jeecms/img/tree/elbow-end.gif'}" /><img src="${base+'/ftl_res/jeecms/img/tree/leaf.gif'}" /><#t/>
<#elseif isLeaf && !isEndList[deep]>
<img src="${base+'/ftl_res/jeecms/img/tree/elbow.gif'}" /><img src="${base+'/ftl_res/jeecms/img/tree/leaf.gif'}" /><#t/>
<#elseif !isLeaf && isEndList[deep]>
<img id="${id}-co" src="${base+'/ftl_res/jeecms/img/tree/elbow-end-minus.gif'}" onclick="switchDisplay('${id}')" style="cursor:hand;${openDisplay}"/><#t/>
<img id="${id}-cc" src="${base+'/ftl_res/jeecms/img/tree/elbow-end-plus.gif'}" onclick="switchDisplay('${id}')" style="cursor:hand;${closeDisplay}"/><#t/>
<img id="${id}-fo" src="${base+'/ftl_res/jeecms/img/tree/folder-open.gif'}" style="${openDisplay}"/><#t/>
<img id="${id}-fc" src="${base+'/ftl_res/jeecms/img/tree/folder.gif'}" style="${closeDisplay}"/><#t/>
<#elseif !isLeaf && !isEndList[deep]>
<img id="${id}-co" src="${base+'/ftl_res/jeecms/img/tree/elbow-minus.gif'}" onclick="switchDisplay('${id}')" style="cursor:hand;${openDisplay}"/><#t/>
<img id="${id}-cc" src="${base+'/ftl_res/jeecms/img/tree/elbow-plus.gif'}" onclick="switchDisplay('${id}')" style="cursor:hand;${closeDisplay}"/><#t/>
<img id="${id}-fo" src="${base+'/ftl_res/jeecms/img/tree/folder-open.gif'}" style="${openDisplay}"/><#t/>
<img id="${id}-fc" src="${base+'/ftl_res/jeecms/img/tree/folder.gif'}" style="${closeDisplay}"/><#t/>
</#if>
<#if isCheckBox>
<input type="checkbox" name="${checkBoxName}" <#rt/>
<#if valueContent?seq_contains(node.id)>checked="true"</#if><#lt/>value="${node.id}" id="${id}-chk" class="p-tree-checkbox" size="0" hidefocus="true" onclick="switchSelect(this,'${id}','${treeId}');" /><#t/>
</#if>
<#--名稱列-->
<#if !isLeaf>
<#if !isCheckBox>
<#t/>
</#if>
<span onclick="switchDisplay('${id}')" style="cursor:hand;">${node.name}</span>
</div>
<#--子節點開始-->
<div id="${id+'-'}" style="${openDisplay}">
<#list node.child as cnode>
<#if !isLimited || content?seq_contains(cnode)>
<@drawNode node=cnode target=target showDeep=showDeep deep=deep+1 isEndList=isEndList+[!cnode_has_next] pid=id treeId=treeId index=cnode_index isCheckBox=isCheckBox checkBoxName=checkBoxName valueContent=valueContent isLimited=isLimited content=content isUrl=isUrl suffix=suffix/>
</#if>
</#list>
</div>
<#else>
<#if isCheckBox || !isUrl>
<span>${node.name}</span>
<#else>
<a href="${base+node.url!}${suffix}" target="${target}">${node.name}</a>
</#if>
</div>
</#if>
</div>
</#macro>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -