1 16 package org.outerj.daisy.frontend; 17 18 import org.outerj.daisy.frontend.util.AbstractDaisyApple; 19 import org.outerj.daisy.frontend.components.siteconf.SiteConf; 20 import org.outerj.daisy.repository.Repository; 21 import org.outerj.daisy.navigation.NavigationManager; 22 import org.apache.cocoon.components.flow.apples.StatelessAppleController; 23 import org.apache.cocoon.components.flow.apples.AppleRequest; 24 import org.apache.cocoon.components.flow.apples.AppleResponse; 25 import org.apache.cocoon.environment.Request; 26 import org.apache.cocoon.xml.SaxBuffer; 27 import org.apache.avalon.framework.service.Serviceable; 28 import org.apache.avalon.framework.service.ServiceManager; 29 import org.apache.avalon.framework.service.ServiceException; 30 31 import java.util.Map ; 32 import java.util.HashMap ; 33 34 public class NavigationPreviewApple extends AbstractDaisyApple implements StatelessAppleController, Serviceable { 35 private ServiceManager serviceManager; 36 37 public void service(ServiceManager serviceManager) throws ServiceException { 38 this.serviceManager = serviceManager; 39 } 40 41 protected void processInternal(AppleRequest appleRequest, AppleResponse appleResponse) throws Exception { 42 Request request = appleRequest.getCocoonRequest(); 43 44 String navigationXml = RequestUtil.getStringParameter(request, "navigationXml", null); 45 46 Repository repository = WikiHelper.getRepository(request, serviceManager); 47 SiteConf siteConf = WikiHelper.getSiteConf(request); 48 49 long branchId = RequestUtil.getBranchId(request, siteConf.getBranchId(), repository); 50 long languageId = RequestUtil.getLanguageId(request, siteConf.getLanguageId(), repository); 51 52 SaxBuffer result = new SaxBuffer(); 54 NavigationManager navigationManager = (NavigationManager)repository.getExtension("NavigationManager"); 55 navigationManager.generatePreviewNavigationTree(result, navigationXml, branchId, languageId); 56 57 Map viewData = new HashMap (); 58 viewData.put("pageContext", new PageContext(getMountPoint(), siteConf, repository, getLayoutType(), getSkin(), getContext())); 59 viewData.put("pageXml", result); 60 61 appleResponse.sendPage("NavigationPreviewPipe", viewData); 62 } 63 } 64 | Popular Tags |