View Javadoc

1   package de.tivsource.page.admin.actions.others.contententry;
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 com.opensymphony.xwork2.Preparable;
18  
19  import de.tivsource.ejb3plugin.InjectEJB;
20  import de.tivsource.page.admin.actions.EmptyAction;
21  import de.tivsource.page.common.menuentry.ContentEntry;
22  import de.tivsource.page.dao.contententry.ContentEntryDaoLocal;
23  import de.tivsource.page.dao.contentitem.ContentItemDaoLocal;
24  import de.tivsource.page.dao.property.PropertyDaoLocal;
25  import de.tivsource.page.entity.contentitem.ContentItem;
26  import de.tivsource.page.entity.enumeration.Language;
27  
28  /**
29   * 
30   * @author Marc Michele
31   *
32   */
33  @TilesDefinitions({
34    @TilesDefinition(name="contentEntryAddForm",  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/contententry/add_form.jsp")
38    }),
39    @TilesDefinition(name="contentEntryAddError",  extend = "adminTemplate", putAttributes = {
40  	@TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
41  	@TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
42  	@TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/contententry/add_error.jsp")
43    })
44  })
45  public class AddAction extends EmptyAction implements Preparable {
46  
47  	/**
48  	 * Serial Version UID.
49  	 */
50  	private static final long serialVersionUID = 8805512413826287971L;
51  
52  	/**
53       * Statischer Logger der Klasse.
54       */
55      private static final Logger LOGGER = LogManager.getLogger(AddAction.class);
56  
57      @InjectEJB(name="ContentEntryDao")
58      private ContentEntryDaoLocal contentEntryDaoLocal;
59  
60  	@InjectEJB(name="ContentItemDao")
61      private ContentItemDaoLocal contentItemDaoLocal;
62  
63      @InjectEJB(name="PropertyDao")
64      private PropertyDaoLocal propertyDaoLocal;
65      
66      private ContentEntry contentEntry;
67  
68      private List<ContentItem> contentItems;
69  
70      public ContentEntry getContentEntry() {
71          return contentEntry;
72      }
73  
74      public void setContentEntry(ContentEntry contentEntry) {
75          this.contentEntry = contentEntry;
76      }
77  
78      public List<ContentItem> getContentItems() {
79      	return contentItems;
80      }
81  
82      @Override
83      public void prepare() {
84      	contentItems = contentItemDaoLocal.findAllUnassigned(0, contentItemDaoLocal.countAllUnassigned());
85      }
86      
87  	@Override
88      @Actions({
89          @Action(
90          		value = "add", 
91          		results = { 
92          				@Result(name = "success", type = "redirectAction", location = "index.html"),
93          				@Result(name = "input", type="tiles", location = "contentEntryAddForm"),
94          				@Result(name = "error", type="tiles", location = "contentEntryAddError")
95          				}
96          )
97      })
98      public String execute() throws Exception {
99      	LOGGER.info("execute() aufgerufen.");
100 
101         String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
102         String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
103 
104     	if(contentEntry != null) {
105 
106     	    contentEntry.setUuid(UUID.randomUUID().toString());
107     	    contentEntry.setTechnical("CI_" + contentEntry.getContentItem().getTechnical());
108     	    contentEntry.setModified(new Date());
109     	    contentEntry.setCreated(new Date());
110     	    contentEntry.setModifiedBy(remoteUser);
111     	    contentEntry.setModifiedAddress(remoteAddress);
112 
113     	    contentEntry.getDescriptionMap().get(Language.DE).setUuid(UUID.randomUUID().toString());
114     	    contentEntry.getDescriptionMap().get(Language.DE).setNamingItem(contentEntry);
115     	    contentEntry.getDescriptionMap().get(Language.DE).setLanguage(Language.DE);
116     	    contentEntry.getDescriptionMap().get(Language.DE).setName(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getName());
117     	    contentEntry.getDescriptionMap().get(Language.DE).setDescription(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getDescription());
118     	    contentEntry.getDescriptionMap().get(Language.DE).setKeywords(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getKeywords());
119 
120             contentEntry.getDescriptionMap().get(Language.EN).setUuid(UUID.randomUUID().toString());
121             contentEntry.getDescriptionMap().get(Language.EN).setNamingItem(contentEntry);
122             contentEntry.getDescriptionMap().get(Language.EN).setLanguage(Language.EN);
123     	    contentEntry.getDescriptionMap().get(Language.EN).setName(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getName());
124     	    contentEntry.getDescriptionMap().get(Language.EN).setDescription(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getDescription());
125     	    contentEntry.getDescriptionMap().get(Language.EN).setKeywords(contentEntry.getContentItem().getDescriptionMap().get(Language.DE).getKeywords());
126            
127 
128     		contentEntryDaoLocal.merge(contentEntry);
129 
130             return SUCCESS;
131     	}
132     	else {
133     		return ERROR;
134     	}
135     	
136     	
137     }// Ende execute()
138 
139 }// Ende class