KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > services > BannerServices


1 package com.dotmarketing.services;
2
3 import com.dotmarketing.beans.Identifier;
4 import com.dotmarketing.factories.IdentifierFactory;
5 import com.dotmarketing.factories.InodeFactory;
6 import com.dotmarketing.portlets.banners.model.Banner;
7 import com.dotmarketing.portlets.files.model.File;
8 import com.dotmarketing.portlets.folders.model.Folder;
9 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
10 import com.dotmarketing.util.Config;
11 import com.dotmarketing.util.Logger;
12 import com.dotmarketing.util.UtilMethods;
13
14 /**
15  * @author will
16  */

17 public class BannerServices {
18
19     public static void writeBannerToFile(Banner banner) {
20         Identifier parentHTMLPageId = (Identifier) InodeFactory.getParentOfClass(banner,Identifier.class);
21         //gets parent identifier -- for the html page
22
HTMLPage parentHTMLPage = (HTMLPage) IdentifierFactory.getWorkingChildOfClass(parentHTMLPageId,HTMLPage.class);
23         Folder parentFolder = (Folder) InodeFactory.getParentOfClass(banner,Folder.class);
24         writeBannerToFile(banner, parentFolder, parentHTMLPage);
25     }
26     
27     public static void writeBannerToFile(Banner banner, Folder parentFolder, HTMLPage parentHTMLPage) {
28
29         // let's write this puppy out to our file
30
StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
31
32         //set all properties from the banner
33
sb.append("##Set Banner properties\n");
34         sb.append("#set( $BannerInode =\"" + banner.getInode() + "\" )\n");
35         sb.append("#set( $BannerTitle =\"" + UtilMethods.espaceForVelocity(banner.getTitle()) + "\" )\n");
36         sb.append("#set( $BannerCaption =\"" + UtilMethods.espaceForVelocity(banner.getCaption()) + "\" )\n");
37         sb.append("#set( $BannerCaption = \"#fixBreaks($BannerCaption)\")\n");
38         sb.append("#set( $BannerNewWindow =\"" + banner.isNewWindow() + "\" )\n");
39         sb.append("#set( $BannerLink =\"" + UtilMethods.espaceForVelocity(banner.getLink()) + "\" )\n");
40         sb.append("#set( $BannerStartDate =\"" + UtilMethods.dateToHTMLDate(banner.getStartDate()) + "\" )\n");
41         sb.append("#set( $BannerEndDate =\"" + UtilMethods.dateToHTMLDate(banner.getEndDate()) + "\" )\n");
42         sb.append("#set( $Active =\"" + banner.isActive() + "\" )\n");
43         sb.append("#set( $BannerBody =\"" + UtilMethods.espaceForVelocity(banner.getBody()) + "\" )\n");
44         sb.append("#set( $BannerBody = \"#fixBreaks($BannerBody)\")\n");
45         
46         //gets the parent folder
47
if (parentFolder.getInode()>0) {
48             sb.append("#set( $BannerFolderInode =\"" + parentFolder.getInode() + "\" )\n");
49             sb.append("#set( $BannerFolder =\"" + UtilMethods.espaceForVelocity(parentFolder.getPath()) + "\" )\n");
50         }
51
52         if (parentHTMLPage.getInode()>0) {
53             sb.append("#set( $BannerPageInode =\"" + parentHTMLPage.getInode() + "\" )\n");
54             parentFolder = (Folder) InodeFactory.getParentOfClass(parentHTMLPage,Folder.class);
55             if (parentFolder.getInode()>0) {
56                 sb.append("#set( $BannerPage =\"" + UtilMethods.espaceForVelocity(parentFolder.getPath() + parentHTMLPage.getPageUrl()) + "\" )\n");
57             }
58         }
59
60         String JavaDoc categories = "";
61         //get the banner categories to make a list
62
String JavaDoc[] bannerCategories = banner.getCategories();
63         if (bannerCategories!=null) {
64             for (int i=0;i<bannerCategories.length;i++) {
65                 categories += bannerCategories[i];
66                 if (i!=(bannerCategories.length-1)) {
67                     categories += ",";
68                 }
69             }
70         }
71         //sets the categories as a list on velocity
72
sb.append("#set( $BannerPlacement =\"[" + categories + "]\" )\n");
73         
74         File image = (File) InodeFactory.getInode(banner.getImage(),File.class);
75         
76         sb.append("\n\n##Set Image Banner properties\n");
77         sb.append("#set( $BannerImageInode =\"" + image.getInode() + "\" )\n");
78         sb.append("#set( $BannerImageWidth =\"" + image.getWidth() + "\" )\n");
79         sb.append("#set( $BannerImageHeight =\"" + image.getHeight() + "\" )\n");
80         sb.append("#set( $BannerImageExtension =\"" + UtilMethods.espaceForVelocity(image.getExtension()) + "\" )\n");
81         sb.append("#set( $BannerImageURI =\"" + UtilMethods.espaceForVelocity(image.getURI()) + "\" )\n");
82         sb.append("#set( $BannerImageTitle =\"" + UtilMethods.espaceForVelocity(image.getTitle()) + "\" )\n");
83         
84         try {
85             int bytedata;
86             
87             String JavaDoc velocityRootPath = Config.getStringProperty("VELOCITY_ROOT");
88             if (velocityRootPath.startsWith("/WEB-INF")) {
89                 velocityRootPath = Config.CONTEXT.getRealPath(velocityRootPath);
90             }
91             velocityRootPath += java.io.File.separator;
92
93             String JavaDoc folderPath = "banners" + java.io.File.separator;
94             
95             java.io.File JavaDoc folderDir = new java.io.File JavaDoc(velocityRootPath + folderPath);
96             folderDir.mkdir();
97             java.io.BufferedOutputStream JavaDoc tmpOut = new java.io.BufferedOutputStream JavaDoc(new java.io.FileOutputStream JavaDoc(new java.io.File JavaDoc(
98                     velocityRootPath + folderPath + banner.getInode() + "." + Config.getStringProperty("VELOCITY_BANNER_EXTENSION"))));
99
100             java.io.StringReader JavaDoc strReader = new java.io.StringReader JavaDoc(sb.toString());
101
102             //writes all data from input in output
103
while ((bytedata = strReader.read()) != -1) {
104                 tmpOut.write(bytedata);
105             }
106
107             tmpOut.close();
108             strReader.close();
109             
110         } catch (Exception JavaDoc e) {
111             Logger.error(BannerServices.class, e.toString(), e);
112         }
113         
114     }
115 }
116
Popular Tags