KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > riotfamily > riot > editor > ui > CustomEditorController


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1
3  * The contents of this file are subject to the Mozilla Public License Version
4  * 1.1 (the "License"); you may not use this file except in compliance with
5  * the License. You may obtain a copy of the License at
6  * http://www.mozilla.org/MPL/
7  *
8  * Software distributed under the License is distributed on an "AS IS" basis,
9  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
10  * for the specific language governing rights and limitations under the
11  * License.
12  *
13  * The Original Code is Riot.
14  *
15  * The Initial Developer of the Original Code is
16  * Neteye GmbH.
17  * Portions created by the Initial Developer are Copyright (C) 2006
18  * the Initial Developer. All Rights Reserved.
19  *
20  * Contributor(s):
21  * Felix Gnass [fgnass at neteye dot de]
22  *
23  * ***** END LICENSE BLOCK ***** */

24 package org.riotfamily.riot.editor.ui;
25
26 import java.util.HashMap JavaDoc;
27
28 import javax.servlet.http.HttpServletRequest JavaDoc;
29 import javax.servlet.http.HttpServletResponse JavaDoc;
30
31 import org.riotfamily.common.util.ResourceUtils;
32 import org.riotfamily.riot.editor.CustomEditorDefinition;
33 import org.riotfamily.riot.editor.EditorConstants;
34 import org.riotfamily.riot.editor.EditorRepository;
35 import org.springframework.util.Assert;
36 import org.springframework.web.servlet.ModelAndView;
37 import org.springframework.web.servlet.mvc.Controller;
38
39 public class CustomEditorController implements Controller {
40
41     private EditorRepository editorRepository;
42
43     private String JavaDoc viewName = ResourceUtils.getPath(
44             CustomEditorController.class, "CustomEditorView.ftl");
45
46
47     public CustomEditorController(EditorRepository repository) {
48         this.editorRepository = repository;
49     }
50
51     public ModelAndView handleRequest(HttpServletRequest JavaDoc request,
52             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
53
54         String JavaDoc editorId = (String JavaDoc) request.getAttribute(EditorConstants.EDITOR_ID);
55         Assert.notNull(editorId, "No editorId in request scope");
56
57         CustomEditorDefinition editorDef = (CustomEditorDefinition)
58                 editorRepository.getEditorDefinition(editorId);
59
60         Assert.notNull(editorDef, "No such editor: " + editorId);
61
62         String JavaDoc objectId = request.getParameter(EditorConstants.OBJECT_ID);
63         String JavaDoc parentId = request.getParameter(EditorConstants.PARENT_ID);
64
65         HashMap JavaDoc model = new HashMap JavaDoc();
66         model.put(EditorConstants.EDITOR_ID, editorId);
67         model.put(EditorConstants.OBJECT_ID, objectId);
68         model.put(EditorConstants.PARENT_ID, parentId);
69         model.put("editorUrl", editorDef.getTargetUrl(objectId, parentId));
70
71         return new ModelAndView(viewName, model);
72     }
73     
74     public static String JavaDoc getUrl(String JavaDoc editorId, String JavaDoc objectId, String JavaDoc parentId) {
75         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
76         sb.append("/custom/").append(editorId);
77         if (objectId != null) {
78             sb.append("?objectId=").append(objectId);
79         }
80         else if (parentId != null) {
81             sb.append("?parentId=").append(parentId);
82         }
83         return sb.toString();
84     }
85
86 }
87
Popular Tags