View Javadoc

1   package de.tivsource.page.admin.actions.maintenance.cssgroup;
2   
3   import java.util.Date;
4   import java.util.Iterator;
5   import java.util.SortedSet;
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.CSSFile;
20  import de.tivsource.page.common.css.CSSGroup;
21  import de.tivsource.page.dao.cssfile.CSSFileDaoLocal;
22  import de.tivsource.page.dao.cssgroup.CSSGroupDaoLocal;
23  
24  /**
25   * 
26   * @author Marc Michele
27   *
28   */
29  @TilesDefinitions({
30    @TilesDefinition(name="cssGroupEditForm", 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/maintenance.jsp"),
33      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/cssgroup/edit_form.jsp")
34    }),
35    @TilesDefinition(name="cssGroupEditError", extend = "adminTemplate", putAttributes = {
36      @TilesPutAttribute(name = "navigation", value = "/WEB-INF/tiles/active/navigation/maintenance.jsp"),
37      @TilesPutAttribute(name = "content",    value = "/WEB-INF/tiles/active/view/cssgroup/edit_error.jsp")
38    })
39  })
40  public class EditAction extends EmptyAction {
41  
42      /**
43       * Serial Version UID.
44       */
45      private static final long serialVersionUID = -5770235481070099665L;
46  
47      /**
48       * Statischer Logger der Klasse.
49       */
50      private static final Logger LOGGER = LogManager.getLogger(EditAction.class);
51  
52      @InjectEJB(name="CSSFileDao")
53      private CSSFileDaoLocal cssFileDaoLocal;
54      
55      @InjectEJB(name="CSSGroupDao")
56      private CSSGroupDaoLocal cssGroupDaoLocal;
57  
58      private CSSGroup cssGroup;
59  
60      /**
61       * @return the cssGroup
62       */
63      public CSSGroup getCssGroup() {
64          return cssGroup;
65      }
66  
67      /**
68       * @param cssGroup
69       *            the cssGroup to set
70       */
71      public void setCssGroup(CSSGroup cssGroup) {
72          this.cssGroup = cssGroup;
73      }
74  
75      @Override
76      @Actions({
77          @Action(
78              value = "edit",
79              results = {
80                  @Result(name = "success", type = "redirectAction", location = "index.html"),
81                  @Result(name = "input",   type = "tiles", location = "cssGroupEditForm"),
82                  @Result(name = "error",   type = "tiles", location = "cssGroupEditError")
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 (cssGroup != null) {
93              LOGGER.info("UUID der CSS-Datei: " + cssGroup.getUuid());
94              // Lösche die vorhanden Files
95              cssGroupDaoLocal.deleteFiles(cssGroup);
96              CSSGroup dbCssGroup = cssGroupDaoLocal.findByUuid(cssGroup.getUuid());
97              LOGGER.info("Anzahl der Einträge in Files Set des Datenbank Objektes: " + dbCssGroup.getFiles().size());
98              dbCssGroup.setName(cssGroup.getName());
99              dbCssGroup.setDescription(cssGroup.getDescription());
100             dbCssGroup.setLanguage(cssGroup.getLanguage());
101             dbCssGroup.setModifiedAddress(remoteAddress);
102             dbCssGroup.setModified(new Date());
103             dbCssGroup.setModifiedBy(remoteUser);
104             dbCssGroup.setFiles(createFileSet(cssGroup.getFiles(), dbCssGroup));
105             cssGroupDaoLocal.merge(dbCssGroup);
106             return SUCCESS;
107         } else {
108             return ERROR;
109         }
110 
111     }// Ende execute()
112 
113     private SortedSet<CSSFile> createFileSet(SortedSet<CSSFile> files, CSSGroup cssGroup) {
114         LOGGER.info("createFileSet(SortedSet<CSSFile> files, CSSGroup cssGroup)");
115         if (files != null) {
116             Iterator<CSSFile> newCssFiles = files.iterator();
117             while (newCssFiles.hasNext()) {
118                 CSSFile next = newCssFiles.next();
119                 LOGGER.info("UUID der CSS-Datei die hinzugefügt wird: " + next.getUuid());
120                 LOGGER.info("Version der CSS-Datei die hinzugefügt wird: " + next.getVersion());
121                 cssGroup.getFiles().add(cssFileDaoLocal.findByUuid(next.getUuid()));
122             }
123             // Füge die Gruppe in die Dateien ein
124             Iterator<CSSFile> cssFiles = cssGroup.getFiles().iterator();
125             while (cssFiles.hasNext()) {
126                 CSSFile next = cssFiles.next();
127                 next.getGroups().add(cssGroup);
128             }
129         }// Ende if
130         return cssGroup.getFiles();
131     }
132 
133 }// Ende class