KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > outerj > daisy > books > frontend > ListPublishTasksApple


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.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 JavaDoc;
35 import java.util.HashMap JavaDoc;
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 JavaDoc {
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 JavaDoc("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 JavaDoc viewData = new HashMap JavaDoc();
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