KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > outerj > daisy > frontend > NavigationPreviewApple


1 /*
2  * Copyright 2004 Outerthought bvba and Schaubroeck nv
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

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 JavaDoc;
32 import java.util.HashMap JavaDoc;
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 JavaDoc {
42         Request request = appleRequest.getCocoonRequest();
43
44         String JavaDoc 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         // Note: do this via POST since navigation XML can get large
53
SaxBuffer result = new SaxBuffer();
54         NavigationManager navigationManager = (NavigationManager)repository.getExtension("NavigationManager");
55         navigationManager.generatePreviewNavigationTree(result, navigationXml, branchId, languageId);
56
57         Map JavaDoc viewData = new HashMap JavaDoc();
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