View Javadoc

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