View Javadoc

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