View Javadoc

1   package de.tivsource.page.admin.actions.others.manual;
2   
3   import java.util.Date;
4   import java.util.List;
5   
6   import org.apache.logging.log4j.LogManager;
7   import org.apache.logging.log4j.Logger;
8   import org.apache.struts2.ServletActionContext;
9   import org.apache.struts2.convention.annotation.Action;
10  import org.apache.struts2.convention.annotation.Actions;
11  import org.apache.struts2.convention.annotation.Result;
12  
13  import de.tivsource.ejb3plugin.InjectEJB;
14  import de.tivsource.page.admin.actions.EmptyAction;
15  import de.tivsource.page.common.css.CSSGroup;
16  import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
17  import de.tivsource.page.dao.manual.ManualDaoLocal;
18  import de.tivsource.page.dao.picture.PictureDaoLocal;
19  import de.tivsource.page.dao.property.PropertyDaoLocal;
20  import de.tivsource.page.entity.enumeration.Language;
21  import de.tivsource.page.entity.manual.Manual;
22  import de.tivsource.page.entity.picture.Picture;
23  
24  /**
25   * 
26   * @author Marc Michele
27   *
28   */
29  public class EditAction extends EmptyAction {
30  
31  	/**
32  	 * Serial Version UID.
33  	 */
34  	private static final long serialVersionUID = -8055397581589809541L;
35  
36  	/**
37       * Statischer Logger der Klasse.
38       */
39      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
40  
41      @InjectEJB(name = "CSSGroupDao")
42      private CSSGroupDaoLocal cssGroupDaoLocal;
43  
44      @InjectEJB(name="ManualDao")
45      private ManualDaoLocal manualDaoLocal;
46  
47      @InjectEJB(name="PictureDao")
48      private PictureDaoLocal pictureDaoLocal;
49  
50      @InjectEJB(name="PropertyDao")
51      private PropertyDaoLocal propertyDaoLocal;
52  
53      private Manual manual;
54  
55      private String lang;
56  
57      private List<Picture> pictureList;
58  
59      private List<CSSGroup> cssGroupList;
60  
61      public Manual getManual() {
62          return manual;
63      }
64  
65  	public void setManual(Manual manual) {
66          this.manual = manual;
67      }
68  	
69      public String getLang() {
70          return lang;
71      }
72  
73      public void setLang(String lang) {
74          this.lang = lang;
75      }
76  
77      @Override
78      public void prepare() {
79          super.prepare();
80          pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.manual.picture").getValue());
81          cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
82      }
83  
84      @Override
85      @Actions({
86          @Action(
87          		value = "edit", 
88          		results = { 
89          				@Result(name = "success", type = "redirectAction", location = "index.html"),
90          				@Result(name = "input",   type = "tiles", location = "manualEditForm"),
91          				@Result(name = "error",   type = "tiles", location = "manualEditError")
92          				}
93          )
94      })
95      public String execute() throws Exception {
96      	LOGGER.info("execute() aufgerufen.");
97  
98          String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
99          String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
100 
101     	if(manual != null) {
102     		LOGGER.info("News UUID: " + manual.getUuid());
103     		Manual dbManual = manualDaoLocal.findByUuid(manual.getUuid());
104     		
105 
106             if(lang.contentEquals(new StringBuffer("EN"))) {
107                 manual.getContentMap().put(Language.DE, dbManual.getContentObject(Language.DE));
108                 dbManual.getContentMap().get(Language.EN).setContent(manual.getContent(Language.EN));
109                 dbManual.getContentMap().get(Language.EN).setModified(new Date());
110 
111                 manual.getDescriptionMap().put(Language.DE, dbManual.getDescriptionObject(Language.DE));
112                 String noLineBreaks = manual.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
113                 dbManual.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
114                 dbManual.getDescriptionMap().get(Language.EN).setKeywords(manual.getKeywords(Language.EN));
115                 dbManual.getDescriptionMap().get(Language.EN).setName(manual.getName(Language.EN));
116             } else {
117                 dbManual.getContentMap().get(Language.DE).setContent(manual.getContent(Language.DE));
118                 dbManual.getContentMap().get(Language.DE).setModified(new Date());
119 
120                 String noLineBreaks = manual.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
121                 dbManual.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
122                 dbManual.getDescriptionMap().get(Language.DE).setKeywords(manual.getKeywords(Language.DE));;
123                 dbManual.getDescriptionMap().get(Language.DE).setName(manual.getName(Language.DE));
124             }
125 
126 
127     		dbManual.setModified(new Date());
128     		dbManual.setVisible(manual.getVisible());
129     		dbManual.setModifiedBy(remoteUser);
130     		dbManual.setModifiedAddress(remoteAddress);
131     		dbManual.setPicture(manual.getPicture());
132     		dbManual.setPictureOnPage(manual.getPictureOnPage());
133     		dbManual.setOrderNumber(manual.getOrderNumber());
134     		dbManual.setCssGroup(manual.getCssGroup());
135 
136 
137     		manualDaoLocal.merge(dbManual);
138             return SUCCESS;
139     	}
140     	else {
141     		return ERROR;
142     	}
143 
144     }// Ende execute()
145 
146 	public List<Picture> getPictureList() {
147 	    return pictureList;
148 	}
149 
150     public List<CSSGroup> getCssGroupList() {
151         LOGGER.info("getCssGroupList() aufgerufen.");
152         LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
153         return cssGroupList;
154     }
155 
156 }// Ende class