1 16 package org.outerj.daisy.books.frontend; 17 18 import org.outerj.daisy.frontend.util.AbstractDaisyApple; 19 import org.outerj.daisy.frontend.PageContext; 20 import org.outerj.daisy.frontend.SkinConfHelper; 21 import org.outerj.daisy.frontend.WikiHelper; 22 import org.outerj.daisy.books.publisher.BookPublisher; 23 import org.outerj.daisy.books.publisher.PublishTaskInfo; 24 import org.outerj.daisy.repository.Repository; 25 import org.apache.cocoon.components.flow.apples.StatelessAppleController; 26 import org.apache.cocoon.components.flow.apples.AppleRequest; 27 import org.apache.cocoon.components.flow.apples.AppleResponse; 28 import org.apache.cocoon.environment.Request; 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.apache.avalon.framework.activity.Disposable; 33 34 import java.util.Map ; 35 import java.util.HashMap ; 36 37 public class ListPublishTasksApple extends AbstractDaisyApple implements StatelessAppleController, Serviceable, Disposable { 38 private ServiceManager serviceManager; 39 private BookPublisher bookPublisher; 40 41 public void service(ServiceManager serviceManager) throws ServiceException { 42 this.serviceManager = serviceManager; 43 this.bookPublisher = (BookPublisher)serviceManager.lookup(BookPublisher.ROLE); 44 } 45 46 public void dispose() { 47 serviceManager.release(bookPublisher); 48 } 49 50 protected void processInternal(AppleRequest appleRequest, AppleResponse appleResponse) throws Exception { 51 Request request = appleRequest.getCocoonRequest(); 52 Repository repository = WikiHelper.getRepository(request, serviceManager); 53 54 if (repository.isInRole("guest") && repository.getActiveRoleIds().length == 1) { 55 throw new Exception ("Users in the guest role are not allowed to retrieve the list of book publish tasks."); 56 } 57 58 PublishTaskInfo[] taskInfos = bookPublisher.getTaskOverview(WikiHelper.getLocale(request)); 59 Map viewData = new HashMap (); 60 viewData.put("pageContext", new PageContext(getMountPoint(), repository, getLayoutType(), getSkin(), SkinConfHelper.getGlobalSkinConf(serviceManager), getContext())); 61 viewData.put("publishTasks", taskInfos); 62 63 appleResponse.sendPage("PublishTasksPipe", viewData); 64 } 65 } 66 | Popular Tags |