View Javadoc

1   package de.tivsource.page.admin.actions.others.picture;
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  import org.apache.struts2.tiles.annotation.TilesDefinition;
13  import org.apache.struts2.tiles.annotation.TilesDefinitions;
14  import org.apache.struts2.tiles.annotation.TilesPutAttribute;
15  
16  import de.tivsource.ejb3plugin.InjectEJB;
17  import de.tivsource.page.admin.actions.EmptyAction;
18  import de.tivsource.page.dao.gallery.GalleryDaoLocal;
19  import de.tivsource.page.dao.picture.PictureDaoLocal;
20  import de.tivsource.page.entity.enumeration.Language;
21  import de.tivsource.page.entity.gallery.Gallery;
22  import de.tivsource.page.entity.picture.Picture;
23  
24  /**
25   * 
26   * @author Marc Michele
27   *
28   */
29  @TilesDefinitions({
30    @TilesDefinition(name="pictureEditForm", extend = "adminTemplate", putAttributes = {
31      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
32      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
33      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/picture/edit_form.jsp")
34    })
35  })
36  public class EditAction extends EmptyAction {
37  
38  	/**
39  	 * Serial Version UID.
40  	 */
41  	private static final long serialVersionUID = 4375251545367946812L;
42  
43  	/**
44       * Statischer Logger der Klasse.
45       */
46      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
47  
48      @InjectEJB(name="PictureDao")
49      private PictureDaoLocal pictureDaoLocal;
50  
51      @InjectEJB(name="GalleryDao")
52      private GalleryDaoLocal galleryDaoLocal;
53  
54      private Picture picture;
55  
56      private String lang;
57  
58      public Picture getPicture() {
59          return picture;
60      }
61  
62      public void setPicture(Picture picture) {
63          this.picture = picture;
64      }
65  
66      public String getLang() {
67          return lang;
68      }
69  
70      public void setLang(String lang) {
71          this.lang = lang;
72      }
73  
74      @Override
75      @Actions({
76          @Action(
77          		value = "edit", 
78          		results = { 
79          				@Result(name = "success", type = "redirectAction", location = "index.html"),
80          				@Result(name = "input",   type = "tiles", location = "pictureEditForm"),
81          				@Result(name = "error",   type = "tiles", location = "pictureEditError")
82          				}
83          )
84      })
85      public String execute() throws Exception {
86      	LOGGER.info("execute() aufgerufen.");
87  
88          String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
89          String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
90      	
91      	if(picture != null) {
92      		LOGGER.info("UUID des Events: " + picture.getUuid());
93      		Picture dbPicture = pictureDaoLocal.findByUuid(picture.getUuid());
94  
95              if(lang.contentEquals(new StringBuffer("EN"))) {
96                  picture.getDescriptionMap().put(Language.DE, dbPicture.getDescriptionMap().get(Language.DE));
97                  String noLineBreaks = picture.getDescriptionMap().get(Language.EN).getDescription().replaceAll("(\\r|\\n)", "");
98                  dbPicture.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
99                  dbPicture.getDescriptionMap().get(Language.EN).setKeywords(picture.getDescriptionMap().get(Language.EN).getKeywords());
100                 dbPicture.getDescriptionMap().get(Language.EN).setName(picture.getDescriptionMap().get(Language.EN).getName());
101             } else {
102             	String noLineBreaks = picture.getDescriptionMap().get(Language.DE).getDescription().replaceAll("(\\r|\\n)", "");
103                 dbPicture.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
104                 dbPicture.getDescriptionMap().get(Language.DE).setKeywords(picture.getDescriptionMap().get(Language.DE).getKeywords());;
105                 dbPicture.getDescriptionMap().get(Language.DE).setName(picture.getDescriptionMap().get(Language.DE).getName());
106             }
107 
108             dbPicture.setOrderNumber(picture.getOrderNumber());
109             dbPicture.setVisible(picture.getVisible());
110             dbPicture.setGallery(picture.getGallery());
111             
112     		dbPicture.setModified(new Date());
113     		dbPicture.setModifiedBy(remoteUser);
114     		dbPicture.setModifiedAddress(remoteAddress);
115     		
116     		pictureDaoLocal.merge(dbPicture);
117             return SUCCESS;
118     	}
119     	else {
120     		return ERROR;
121     	}
122 
123     }// Ende execute()
124 
125 	public List<Gallery> getGalleryList() {
126 		return galleryDaoLocal.findAll(0, galleryDaoLocal.countAll());
127 	}
128 
129 }// Ende class