1 16 package org.outerj.daisy.frontend; 17 18 import org.outerj.daisy.frontend.util.AbstractDaisyApple; 19 import org.outerj.daisy.frontend.util.HttpMethodNotAllowedException; 20 import org.outerj.daisy.frontend.components.siteconf.SiteConf; 21 import org.outerj.daisy.repository.LocaleHelper; 22 import org.outerj.daisy.repository.clientimpl.RemoteRepositoryImpl; 23 import org.outerj.daisy.publisher.Publisher; 24 import org.apache.cocoon.components.flow.apples.StatelessAppleController; 25 import org.apache.cocoon.components.flow.apples.AppleRequest; 26 import org.apache.cocoon.components.flow.apples.AppleResponse; 27 import org.apache.cocoon.environment.Request; 28 import org.apache.cocoon.xml.SaxBuffer; 29 import org.apache.avalon.framework.service.Serviceable; 30 import org.apache.avalon.framework.service.ServiceManager; 31 import org.apache.avalon.framework.service.ServiceException; 32 import org.outerx.daisy.x10Publisher.PublisherRequestDocument; 33 34 import java.util.Map ; 35 import java.util.HashMap ; 36 import java.util.Locale ; 37 38 public class MyCommentsApple extends AbstractDaisyApple implements StatelessAppleController, Serviceable { 39 private ServiceManager serviceManager; 40 41 public void service(ServiceManager serviceManager) throws ServiceException { 42 this.serviceManager = serviceManager; 43 } 44 45 protected void processInternal(AppleRequest appleRequest, AppleResponse appleResponse) throws Exception { 46 Request request = appleRequest.getCocoonRequest(); 47 48 RemoteRepositoryImpl repository = (RemoteRepositoryImpl)WikiHelper.getRepository(request, serviceManager); 49 Locale locale = WikiHelper.getLocale(request); 50 SiteConf siteConf = WikiHelper.getSiteConf(request); 51 52 56 String action = request.getParameter("action"); 57 if (action == null) { 58 } else if (action.equals("deleteComment")) { 60 if (request.getMethod().equals("POST")) { 61 long commentId = RequestUtil.getLongParameter(request, "commentId"); 62 long documentId = RequestUtil.getLongParameter(request, "documentId"); 63 long branchId = RequestUtil.getBranchId(request, siteConf.getBranchId(), repository); 64 long languageId = RequestUtil.getLanguageId(request, siteConf.getLanguageId(), repository); 65 repository.getCommentManager().deleteComment(documentId, branchId, languageId, commentId); 66 } else { 67 throw new HttpMethodNotAllowedException(request.getMethod()); 68 } 69 } else { 70 throw new Exception ("Unsupported action parameter value: \"" + action + "\"."); 71 } 72 73 77 Map viewData = new HashMap (); 78 viewData.put("localeAsString", LocaleHelper.getString(locale)); 79 viewData.put("pageContext", new PageContext(getMountPoint(), siteConf, repository, getLayoutType(), getSkin(), getContext())); 80 81 PublisherRequestDocument publisherRequestDocument = PublisherXmlRequestBuilder.loadPublisherRequest("mycommentspage_pubreq.xml", viewData, serviceManager, getContext()); 82 SaxBuffer publisherResponse = new SaxBuffer(); 83 Publisher publisher = (Publisher)repository.getExtension("Publisher"); 84 publisher.processRequest(publisherRequestDocument, publisherResponse); 85 86 viewData.put("pageXml", publisherResponse); 87 88 appleResponse.sendPage("MyCommentsPipe", viewData); 89 } 90 } | Popular Tags |