View Javadoc

1   package de.tivsource.page.admin.actions.others.subsumption;
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.common.css.CSSGroup;
19  import de.tivsource.page.dao.contentitem.ContentItemDaoLocal;
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.contentitem.ContentItem;
25  import de.tivsource.page.entity.enumeration.Language;
26  import de.tivsource.page.entity.picture.Picture;
27  import de.tivsource.page.entity.subsumption.Subsumption;
28  
29  /**
30   * 
31   * @author Marc Michele
32   *
33   */
34  @TilesDefinitions({
35    @TilesDefinition(name="subsumptionEditForm", extend = "adminTemplate", putAttributes = {
36      @TilesPutAttribute(name = "meta",       value = "/WEB-INF/tiles/active/meta/chosen.jsp"),
37      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/others.jsp"),
38      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/subsumption/edit_form.jsp")
39    })
40  })
41  public class EditAction extends EmptyAction {
42  
43  	/**
44  	 * Serial Version UID.
45  	 */
46      private static final long serialVersionUID = 7108534700587832664L;
47  
48      /**
49       * Statischer Logger der Klasse.
50       */
51      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
52  
53      @InjectEJB(name = "CSSGroupDao")
54      private CSSGroupDaoLocal cssGroupDaoLocal;
55  
56      @InjectEJB(name="ContentItemDao")
57      private ContentItemDaoLocal contentItemDaoLocal;
58  
59      @InjectEJB(name="SubsumptionDao")
60      private SubsumptionDaoLocal subsumptionDaoLocal;
61  
62      @InjectEJB(name="PictureDao")
63      private PictureDaoLocal pictureDaoLocal;
64  
65      @InjectEJB(name="PropertyDao")
66      private PropertyDaoLocal propertyDaoLocal;
67  
68      private Subsumption subsumption;
69  
70      private String lang = "DE";
71  
72      private List<Picture> pictureList;
73      
74      private List<CSSGroup> cssGroupList;
75  
76      private List<ContentItem> contentItems;
77  
78      public Subsumption getSubsumption() {
79          return subsumption;
80      }
81  
82  	public void setSubsumption(Subsumption subsumption) {
83          this.subsumption = subsumption;
84      }
85  	
86      public String getLang() {
87          return lang;
88      }
89  
90      public void setLang(String lang) {
91          this.lang = lang;
92      }
93  
94      @Override
95      public void prepare() {
96          super.prepare();
97          pictureList = pictureDaoLocal.findAll(propertyDaoLocal.findByKey("gallery.uuid.for.page.picture").getValue());
98          cssGroupList = cssGroupDaoLocal.findAll(0, cssGroupDaoLocal.countAll());
99      }
100 
101     @Override
102     @Actions({
103         @Action(
104         		value = "edit", 
105         		results = { 
106         				@Result(name = "success", type = "redirectAction", location = "index.html"),
107         				@Result(name = "input",   type = "tiles", location = "subsumptionEditForm"),
108         				@Result(name = "error",   type = "tiles", location = "subsumptionEditError")
109         				}
110         )
111     })
112     public String execute() throws Exception {
113     	LOGGER.info("execute() aufgerufen.");
114 
115         String remoteUser    = ServletActionContext.getRequest().getRemoteUser();
116         String remoteAddress = ServletActionContext.getRequest().getRemoteAddr();
117 
118     	if(subsumption != null) {
119     		LOGGER.info(subsumption.getTechnical());
120     		Subsumption dbSubsumption = subsumptionDaoLocal.findByUuid(subsumption.getUuid());
121     		contentItems = contentItemDaoLocal.findAllVisible(dbSubsumption.getUuid(), 0, contentItemDaoLocal.countAllVisible(dbSubsumption.getUuid()));
122     		
123 
124             if(lang.contentEquals(new StringBuffer("EN"))) {
125                 subsumption.getContentMap().put(Language.DE, dbSubsumption.getContentObject(Language.DE));
126                 dbSubsumption.getContentMap().get(Language.EN).setContent(subsumption.getContent(Language.EN));
127                 dbSubsumption.getContentMap().get(Language.EN).setModified(new Date());
128 
129                 subsumption.getDescriptionMap().put(Language.DE, dbSubsumption.getDescriptionObject(Language.DE));
130                 String noLineBreaks = subsumption.getDescription(Language.EN).replaceAll("(\\r|\\n)", "");
131                 dbSubsumption.getDescriptionMap().get(Language.EN).setDescription(noLineBreaks);
132                 dbSubsumption.getDescriptionMap().get(Language.EN).setKeywords(subsumption.getKeywords(Language.EN));
133                 dbSubsumption.getDescriptionMap().get(Language.EN).setName(subsumption.getName(Language.EN));
134             } else {
135                 dbSubsumption.getContentMap().get(Language.DE).setContent(subsumption.getContent(Language.DE));
136                 dbSubsumption.getContentMap().get(Language.DE).setModified(new Date());
137 
138                 String noLineBreaks = subsumption.getDescription(Language.DE).replaceAll("(\\r|\\n)", "");
139                 dbSubsumption.getDescriptionMap().get(Language.DE).setDescription(noLineBreaks);
140                 dbSubsumption.getDescriptionMap().get(Language.DE).setKeywords(subsumption.getKeywords(Language.DE));;
141                 dbSubsumption.getDescriptionMap().get(Language.DE).setName(subsumption.getName(Language.DE));
142             }
143 
144 
145     		dbSubsumption.setModified(new Date());
146     		dbSubsumption.setTechnical(subsumption.getTechnical());
147     		dbSubsumption.setVisible(subsumption.getVisible());
148     		dbSubsumption.setModifiedBy(remoteUser);
149     		dbSubsumption.setModifiedAddress(remoteAddress);
150     		dbSubsumption.setPicture(subsumption.getPicture());
151     		dbSubsumption.setPictureOnPage(subsumption.getPictureOnPage());
152     		dbSubsumption.setCssGroup(subsumption.getCssGroup());
153 
154     		LOGGER.info("Anzahl der ContentItems: " + subsumption.getContentItems().size());
155     		dbSubsumption.setContentItems(subsumption.getContentItems());
156 
157     		dbSubsumption.setShowDates(subsumption.getShowDates());
158     		dbSubsumption.setShowDescriptions(subsumption.getShowDescriptions());
159     		dbSubsumption.setShowPictures(subsumption.getShowPictures());
160     		dbSubsumption.setShowTitles(subsumption.getShowTitles());
161     		
162 
163     		subsumptionDaoLocal.merge(dbSubsumption);
164             return SUCCESS;
165     	}
166     	else {
167     		return ERROR;
168     	}
169 
170     }// Ende execute()
171 
172     public List<Picture> getPictureList() {
173         return pictureList;
174     }
175 
176     public List<CSSGroup> getCssGroupList() {
177         LOGGER.info("getCssGroupList() aufgerufen.");
178         LOGGER.info("Anzahl der CSS-Gruppen in der Liste: " + cssGroupList.size());
179         return cssGroupList;
180     }
181 
182     /**
183      * @return the contentItems
184      */
185     public List<ContentItem> getContentItems() {
186         return contentItems;
187     }
188 
189 }// Ende class