KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > contineo > actions > documan > document > ChangeDocAction


1 package org.contineo.actions.documan.document;
2
3 import java.util.Collection JavaDoc;
4
5 import javax.servlet.http.HttpServletRequest JavaDoc;
6 import javax.servlet.http.HttpServletResponse JavaDoc;
7 import javax.servlet.http.HttpSession JavaDoc;
8
9 import org.apache.log4j.Level;
10 import org.apache.log4j.Logger;
11 import org.apache.struts.action.Action;
12 import org.apache.struts.action.ActionError;
13 import org.apache.struts.action.ActionErrors;
14 import org.apache.struts.action.ActionForm;
15 import org.apache.struts.action.ActionForward;
16 import org.apache.struts.action.ActionMapping;
17 import org.apache.struts.action.ActionMessage;
18 import org.apache.struts.action.ActionMessages;
19 import org.contineo.admin.Menu;
20 import org.contineo.admin.dao.MenuDAO;
21 import org.contineo.core.DateBean;
22 import org.contineo.core.LoggingManager;
23 import org.contineo.core.SessionManagement;
24 import org.contineo.documan.Document;
25 import org.contineo.documan.History;
26 import org.contineo.documan.Keywords;
27 import org.contineo.documan.dao.DocumentDAO;
28 import org.contineo.documan.dao.HistoryDAO;
29 import org.contineo.forms.DocForm;
30
31 /**
32  * Saves the changes made in the document form like changing the description or source date.
33  * Created on 20. November 2003, 16:38
34  * @author Michael Scholz
35  */

36 public class ChangeDocAction extends Action {
37
38     /**
39      * @uml.property name="logger"
40      * @uml.associationEnd
41      */

42     private Logger logger;
43
44     
45     /** Creates a new instance of ChangeDocAction */
46     public ChangeDocAction() {
47         logger = LoggingManager.getLogger(this.getClass());
48     }
49
50     public ActionForward execute(ActionMapping mapping,
51                     ActionForm form, HttpServletRequest JavaDoc request,
52                     HttpServletResponse JavaDoc response) {
53         ActionForward actionForward = new ActionForward();
54         ActionErrors errors = new ActionErrors();
55         ActionMessages messages = new ActionMessages();
56         HttpSession JavaDoc session = request.getSession();
57         if (SessionManagement.isValid(session)) {
58             String JavaDoc menuid = request.getParameter("menuId");
59             DocumentDAO ddao = new DocumentDAO();
60             MenuDAO mdao = new MenuDAO();
61             try {
62                 DocForm dform = (DocForm)form;
63                 Document doc = ddao.findByMenuId(Integer.parseInt(menuid));
64                 Menu menu = mdao.findByPrimaryKey(Integer.parseInt(menuid));
65                 menu.setMenuSort(Integer.parseInt(dform.getMenuSort()));
66                 String JavaDoc name = dform.getDocName();
67                 if (name != null && !name.equals(""))
68                     menu.setMenuText(name);
69                 doc.setMenu(menu);
70                 doc.setDocName(name);
71                 doc.setSource(dform.getSource());
72                 doc.setSourceAuthor(dform.getSourceAuthor());
73                 String JavaDoc date = dform.getSourceDate();
74                 
75                 // get current language
76
String JavaDoc language = (String JavaDoc) session.getAttribute("language");
77                 if (language == null || language.equalsIgnoreCase(""))
78                 {
79                     language = request.getParameter("language");
80                     if (language == null || language.equalsIgnoreCase(""))
81                         language = "en";
82                 }
83                 String JavaDoc dateStr = DateBean.toCompactString(date, language);
84                 if (dateStr != null)
85                     doc.setSourceDate(dateStr);
86               
87                 doc.setSourceType(dform.getSourceType());
88                 doc.setCoverage(dform.getCoverage());
89                 doc.setLanguage(dform.getLanguage());
90                 doc.clearKeywords();
91                 Keywords words = new Keywords();
92                 Collection JavaDoc keywords = words.toKeywords(dform.getKeywords());
93                 boolean stored = ddao.store(doc);
94                 doc.setKeywords(keywords);
95                 stored = ddao.store(doc);
96                 
97                 /* create history entry */
98                 String JavaDoc username = (String JavaDoc)session.getAttribute("authuser");
99                 History history = new History();
100                 history.setDocId(doc.getDocId());
101                 history.setDate(DateBean.toCompactString());
102                 history.setUsername(username);
103                 history.setEvent(History.CHANGED);
104                 HistoryDAO historyDao = new HistoryDAO();
105                 historyDao.store(history);
106                 if (!stored)
107                     errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.changedoc"));
108                 else
109                     messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.changedoc"));
110             } catch (Exception JavaDoc e) {
111                 if (logger.isEnabledFor(Level.ERROR))
112                     logger.error(e.getMessage());
113                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.changedoc"));
114             }
115             saveErrors(request, errors);
116             saveMessages(request, messages);
117             actionForward.setPath("/EditDoc.do?menuid=" + menuid);
118         } else
119             actionForward = mapping.findForward("invalid");
120         return actionForward;
121     }
122 }
123
Popular Tags