01: /**********************************************************************************
02: * $URL:https://source.sakaiproject.org/svn/osp/trunk/glossary/tool/src/java/org/theospi/portfolio/help/control/GlossaryEditController.java $
03: * $Id:GlossaryEditController.java 9134 2006-05-08 20:28:42Z chmaurer@iupui.edu $
04: ***********************************************************************************
05: *
06: * Copyright (c) 2005, 2006 The Sakai Foundation.
07: *
08: * Licensed under the Educational Community License, Version 1.0 (the "License");
09: * you may not use this file except in compliance with the License.
10: * You may obtain a copy of the License at
11: *
12: * http://www.opensource.org/licenses/ecl1.php
13: *
14: * Unless required by applicable law or agreed to in writing, software
15: * distributed under the License is distributed on an "AS IS" BASIS,
16: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: * See the License for the specific language governing permissions and
18: * limitations under the License.
19: *
20: **********************************************************************************/package org.theospi.portfolio.help.control;
21:
22: import java.util.Map;
23:
24: import org.apache.commons.logging.Log;
25: import org.apache.commons.logging.LogFactory;
26: import org.sakaiproject.metaobj.shared.model.PersistenceException;
27: import org.sakaiproject.metaobj.utils.mvc.intf.LoadObjectController;
28: import org.springframework.validation.Errors;
29: import org.springframework.web.servlet.ModelAndView;
30: import org.theospi.portfolio.help.model.GlossaryEntry;
31:
32: public class GlossaryEditController extends HelpController implements
33: LoadObjectController {
34: protected final transient Log logger = LogFactory
35: .getLog(getClass());
36:
37: public Object fillBackingObject(Object incomingModel, Map request,
38: Map session, Map application) throws Exception {
39: GlossaryEntry entry = (GlossaryEntry) incomingModel;
40:
41: if (entry.getId() == null) {
42: return entry;
43: } else {
44: return getHelpManager().getGlossary().load(entry.getId());
45: }
46: }
47:
48: public ModelAndView handleRequest(Object requestModel, Map request,
49: Map session, Map application, Errors errors) {
50: GlossaryEntry entry = (GlossaryEntry) requestModel;
51: getHelpManager().removeFromSession(entry);
52:
53: try {
54: if (entry.getId() == null) {
55: entry = getHelpManager().addEntry(entry);
56: } else {
57: getHelpManager().updateEntry(entry);
58: }
59: } catch (PersistenceException e) {
60: errors.rejectValue(e.getField(), e.getErrorCode(), e
61: .getErrorInfo(), e.getDefaultMessage());
62: }
63:
64: if (entry != null && entry.getId() != null) {
65: return new ModelAndView("success", "newTermId", entry
66: .getId().getValue());
67: } else {
68: return new ModelAndView("success");
69: }
70:
71: }
72: }
|