1 31 32 package org.opencms.workplace.tools.workplace.rfsfile; 33 34 import org.opencms.jsp.CmsJspActionElement; 35 import org.opencms.main.CmsRuntimeException; 36 import org.opencms.main.OpenCms; 37 import org.opencms.util.CmsDateUtil; 38 import org.opencms.util.CmsFileUtil; 39 import org.opencms.util.CmsRfsFileViewer; 40 import org.opencms.workplace.CmsDialog; 41 import org.opencms.workplace.CmsWorkplaceSettings; 42 43 import java.io.File ; 44 import java.io.IOException ; 45 import java.text.DateFormat ; 46 import java.util.Date ; 47 48 import javax.servlet.http.HttpServletRequest ; 49 import javax.servlet.http.HttpServletResponse ; 50 import javax.servlet.jsp.PageContext ; 51 52 63 public class CmsRfsFileDownloadDialog extends CmsDialog { 64 65 66 public static final String DIALOG_TYPE = "rfsfiledownload"; 67 68 private File m_downloadFile; 69 70 75 public CmsRfsFileDownloadDialog(CmsJspActionElement jsp) { 76 77 super(jsp); 78 79 } 80 81 88 public CmsRfsFileDownloadDialog(PageContext context, HttpServletRequest req, HttpServletResponse res) { 89 90 this(new CmsJspActionElement(context, req, res)); 91 } 92 93 98 public String buildDownloadFileView() { 99 100 StringBuffer result = new StringBuffer (512); 101 102 result.append(dialogBlock(HTML_START, key(Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_MSG_0), false)); 103 104 result.append("\r\n"); 105 result.append("<!-- start buildDownloadFileView -->\r\n"); 106 result.append("<table border=\"0\" style=\"padding:10px;\"}>\r\n"); 107 108 result.append(" <tr>\r\n"); 109 result.append(" <td>"); 110 result.append(key(Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_FNAME_0)); 111 result.append(":</td>\r\n"); 112 result.append(" <td >"); 113 result.append(" ").append(m_downloadFile.getName()); 114 result.append("</td>\r\n"); 115 result.append(" </tr>\r\n"); 116 117 result.append(" <tr>\r\n"); 118 result.append(" <td>"); 119 result.append(key(Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_FSIZE_0)); 120 result.append(":</td>\n"); 121 result.append(" <td>"); 122 result.append(CmsFileUtil.formatFilesize(m_downloadFile.length(), getLocale())); 123 result.append("</td>\r\n"); 124 result.append(" </tr>\r\n"); 125 126 result.append(" <tr>\r\n"); 127 result.append(" <td>"); 128 result.append(key(Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_FPATH_0)); 129 result.append(":</td>\n"); 130 result.append(" <td>"); 131 result.append(m_downloadFile.getAbsolutePath()); 132 result.append("</td>\r\n"); 133 result.append(" </tr>\r\n"); 134 135 result.append(" <tr>\r\n"); 136 result.append(" <td>"); 137 result.append(key(Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_FLMOD_0)); 138 result.append(":</td>\n"); 139 result.append(" <td>"); 140 result.append(CmsDateUtil.getDateTime(new Date (m_downloadFile.lastModified()), DateFormat.MEDIUM, getLocale())); 141 result.append("</td>\r\n"); 142 result.append(" </tr>\r\n"); 143 result.append("</table>\r\n"); 144 result.append("<!-- end buildDownloadFileView -->\r\n"); 145 result.append("\r\n"); 146 147 result.append(dialogBlock(HTML_END, m_downloadFile.getName(), true)); 148 return result.toString(); 149 } 150 151 158 public String buildDownloadScript() { 159 160 StringBuffer result = new StringBuffer (212); 161 result.append("<script type=\"text/javascript\">\r\n"); 163 result.append("function doDownload() {\r\n"); 164 result.append(" window.open(\""); 165 result.append(getJsp().link("/system/workplace/admin/workplace/logfileview/dodownload.jsp?")); 166 result.append("servletUrl="); 167 result.append(getJsp().link("/system/workplace/admin/workplace/logfileview/downloadTrigger.jsp")); 168 result.append("\", \"download\", \"width=300,height=130,left=100,top=100,menubar=no,status=no,toolbar=no\");\r\n"); 169 result.append("}\r\n"); 170 result.append("</script>\r\n"); 171 return result.toString(); 172 } 173 174 182 public String dialogButtonsOkCancel() { 183 184 StringBuffer result = new StringBuffer (); 185 result.append("<!-- button row start -->\r\n"); 186 result.append("<div class=\"dialogbuttons\" unselectable=\"on\">\r\n"); 187 result.append(" <p>\r\n "); 188 result.append("<input type=\"button\" value=\"").append( 189 key(org.opencms.workplace.Messages.GUI_DIALOG_BUTTON_DOWNLOAD_0)).append( 190 "\" onclick=\"doDownload();\" class=\"dialogbutton\">"); 191 192 result.append("<input name=\"back\" type=\"button\" value=\""); 193 result.append(key(org.opencms.workplace.Messages.GUI_DIALOG_BUTTON_BACK_0)); 194 result.append("\" onclick=\"submitAction(\'"); 195 result.append(CmsDialog.DIALOG_CANCEL); 196 result.append("\', null, 'main');\" class=\"dialogbutton\">\r\n"); 197 result.append("</div>\r\n"); 198 result.append("<!-- button row end -->\r\n"); 199 200 return result.toString(); 201 } 202 203 210 public File getDownloadFile() { 211 212 return m_downloadFile; 213 } 214 215 218 protected void initMessages() { 219 220 addMessages(org.opencms.workplace.tools.workplace.rfsfile.Messages.get().getBundleName()); 221 super.initMessages(); 222 } 223 224 227 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 228 229 m_downloadFile = getDownloadFileInternal(); 232 233 fillParamValues(request); 235 setParamDialogtype(DIALOG_TYPE); 237 if (DIALOG_CANCEL.equals(getParamAction())) { 239 setAction(ACTION_CANCEL); 240 } else if (DIALOG_OK.equals(getParamAction())) { 241 setAction(ACTION_OK); 242 } else { 243 setAction(ACTION_DEFAULT); 245 setParamTitle(key( 246 Messages.GUI_WORKPLACE_LOGVIEW_DOWNLOAD_START_TITLE_0, 247 new Object [] {getDownloadFile().getName()})); 248 } 249 } 250 251 259 private File getDownloadFileInternal() throws CmsRuntimeException { 260 261 CmsRfsFileViewer fileView = OpenCms.getWorkplaceManager().getFileViewSettings(); 263 File file = new File (fileView.getFilePath()); 264 try { 265 return file.getCanonicalFile(); 267 } catch (IOException ioex) { 268 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_FILE_ACCESS_0), ioex); 269 } 270 } 271 } | Popular Tags |