Cibref3Code
From Fxp Wiki
package vendo; // // Developped by Francois Cib, september the 30th, 2003 // // Builds a tree of the referring pages from a root pages passed as parameter // Results are nested as lists (ul, li) of links with a "class" attribute indicating // the sub-level. import com.ecyrd.jspwiki.*; import java.util.*; import java.io.*; import com.ecyrd.jspwiki.tags.WikiTagBase; import com.ecyrd.jspwiki.plugin.WikiPlugin; import com.ecyrd.jspwiki.WikiContext; import java.util.Map; public class cibref3 implements WikiPlugin { WikiEngine wiki; StringBuffer output = new StringBuffer(); public String execute (WikiContext Context, Map ParameterMap) { String pname=null; String monresult=""; String strLevel; int mylevel=4; try{ if(ParameterMap != null) { // just because I am somehow paranoid pname = (String)ParameterMap.get("pname"); strLevel = (String)ParameterMap.get("level"); mylevel = Integer.parseInt(strLevel); } wiki = Context.getEngine(); PageManager m_pageManager = wiki.getPageManager(); Collection allpages = m_pageManager.getAllPages(); ReferenceManager m_referenceManager = wiki.getReferenceManager(); Collection unrefpages = m_referenceManager.findUnreferenced(); if(allpages == null || allpages.isEmpty() ){ output.append(" allpages is null ou empty <br />"); } else { output.append(" allpages: "+ allpages.size() +"<br />"); } if(unrefpages == null || unrefpages.isEmpty() ){ output.append(" unrefpages is null ou empty <br />"); } else { output.append(" unrefpages: "+ unrefpages.size() +"<br />"); } //output.append(output); // } // catch (Exception e) { // output.append("Something bad happened!" + e); // } String mapage= pname; output.append("<h3>" +"<a href=\"" + wiki.getViewURL(mapage) + "\">" + mapage +"</h3></a>"); loopRef(m_referenceManager,mapage, mylevel, out); monresult = output.toString(); } catch(Exception e){} return "<div class=\"cibref\">" + pname + monresult + " </div>"; } private Writer out; int count = 0; public String loopRef(ReferenceManager m_referenceManager, String mypage,int level, Writer out) throws IOException { try { this.out = out; Collection pages = m_referenceManager.findReferrers(mypage); if(pages == null || pages.isEmpty() ){ //output.append("(no referringto this page)"); } if( pages != null && !pages.isEmpty() ){ output.append("<ul class=\"cibrefLevel" + count +"\">"); Iterator it = pages.iterator(); while( it.hasNext() ) { String value = (String)it.next(); output.append( "<li><a href=\"" + wiki.getViewURL(value) + "\">" + value +"</a></li> \n"); //output.append("count = " + count +"<br />"); if (count < level){ count++; loopRef(m_referenceManager, value, level, out); count--; } } output.append("</ul>"); } } catch(Exception e){} return ""; } }
Categories: Jspwiki | Java | Source Code | Wikis
