1 31 32 package org.opencms.workplace.tools.database; 33 34 import org.opencms.importexport.CmsVfsImportExportHandler; 35 import org.opencms.jsp.CmsJspActionElement; 36 import org.opencms.main.OpenCms; 37 import org.opencms.util.CmsStringUtil; 38 import org.opencms.widgets.CmsCalendarWidget; 39 import org.opencms.widgets.CmsCheckboxWidget; 40 import org.opencms.widgets.CmsComboWidget; 41 import org.opencms.widgets.CmsInputWidget; 42 import org.opencms.widgets.CmsSelectWidgetOption; 43 import org.opencms.widgets.CmsVfsFileWidget; 44 import org.opencms.workplace.CmsWidgetDialog; 45 import org.opencms.workplace.CmsWidgetDialogParameter; 46 import org.opencms.workplace.CmsWorkplaceSettings; 47 import org.opencms.workplace.tools.CmsToolDialog; 48 import org.opencms.workplace.tools.CmsToolManager; 49 50 import java.io.File ; 51 import java.io.IOException ; 52 import java.util.ArrayList ; 53 import java.util.HashMap ; 54 import java.util.Iterator ; 55 import java.util.List ; 56 import java.util.Map ; 57 58 import javax.servlet.ServletException ; 59 import javax.servlet.http.HttpServletRequest ; 60 import javax.servlet.http.HttpServletResponse ; 61 import javax.servlet.jsp.PageContext ; 62 63 72 public class CmsDatabaseExportDialog extends CmsWidgetDialog { 73 74 75 public static final String [] PAGES = {"page1"}; 76 77 78 protected static final String EXPORT_ACTION_REPORT = PATH_WORKPLACE + "admin/database/reports/export.jsp"; 79 80 81 private CmsVfsImportExportHandler m_exportHandler; 82 83 88 public CmsDatabaseExportDialog(CmsJspActionElement jsp) { 89 90 super(jsp); 91 } 92 93 100 public CmsDatabaseExportDialog(PageContext context, HttpServletRequest req, HttpServletResponse res) { 101 102 this(new CmsJspActionElement(context, req, res)); 103 } 104 105 108 public void actionCommit() throws IOException , ServletException { 109 110 List errors = new ArrayList (); 111 String exportFileName = OpenCms.getSystemInfo().getAbsoluteRfsPathRelativeToWebInf( 113 OpenCms.getSystemInfo().getPackagesRfsPath() + File.separator + m_exportHandler.getFileName()); 114 m_exportHandler.setFileName(exportFileName); 115 setDialogObject(m_exportHandler); 116 Map params = new HashMap (); 117 params.put(CmsDatabaseExportReport.PARAM_CLASSNAME, this.getClass().getName()); 119 params.put(PARAM_STYLE, CmsToolDialog.STYLE_NEW); 121 params.put(PARAM_CLOSELINK, CmsToolManager.linkForToolPath(getJsp(), "/database")); 123 getToolManager().jspForwardPage(this, EXPORT_ACTION_REPORT, params); 125 setCommitErrors(errors); 127 } 128 129 132 protected String createDialogHtml(String dialog) { 133 134 StringBuffer result = new StringBuffer (1024); 135 136 result.append(createWidgetTableStart()); 138 139 result.append(createWidgetErrorHeader()); 141 142 result.append(createWidgetBlockStart(key(Messages.GUI_DATABASE_EXPORT_FILE_BLOCK_0))); 144 result.append(createDialogRowsHtml(0, 0)); 145 result.append(createWidgetBlockEnd()); 146 147 result.append(createWidgetBlockStart(key(Messages.GUI_DATABASE_EXPORT_SETTINGS_BLOCK_0))); 149 result.append(createDialogRowsHtml(1, 6)); 150 result.append(createWidgetBlockEnd()); 151 152 result.append(createWidgetBlockStart(key(Messages.GUI_DATABASE_EXPORT_RESOURCES_BLOCK_0))); 154 result.append(createDialogRowsHtml(7, 7)); 155 result.append(createWidgetBlockEnd()); 156 157 result.append(createWidgetTableEnd()); 159 160 return result.toString(); 161 } 162 163 166 protected void defineWidgets() { 167 168 initDatabaseExportObject(); 170 171 List exportFiles = getComboExportFiles(); 172 if (exportFiles.isEmpty()) { 173 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "fileName", PAGES[0], new CmsInputWidget())); 175 } else { 176 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "fileName", PAGES[0], new CmsComboWidget( 178 exportFiles))); 179 } 180 181 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "includeUnchanged", PAGES[0], new CmsCheckboxWidget())); 182 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "exportUserdata", PAGES[0], new CmsCheckboxWidget())); 183 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "exportWebusers", PAGES[0], new CmsCheckboxWidget())); 184 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "includeSystem", PAGES[0], new CmsCheckboxWidget())); 185 addWidget(new CmsWidgetDialogParameter( 186 m_exportHandler, 187 "contentAge", 188 "0", 189 PAGES[0], 190 new CmsCalendarWidget(), 191 0, 192 1)); 193 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "recursive", PAGES[0], new CmsCheckboxWidget())); 194 195 addWidget(new CmsWidgetDialogParameter(m_exportHandler, "exportPaths", "/", PAGES[0], new CmsVfsFileWidget( 196 false, 197 getCms().getRequestContext().getSiteRoot()), 1, CmsWidgetDialogParameter.MAX_OCCURENCES)); 198 } 199 200 207 protected List getComboExportFiles() { 208 209 List result = new ArrayList (8); 210 Iterator i = CmsDatabaseImportFromServer.getFileListFromServer(false).iterator(); 211 while (i.hasNext()) { 212 String fileName = (String )i.next(); 213 String helpText = key(Messages.GUI_EDITOR_HELP_EXPORTFILE_1, new String [] {fileName}); 214 result.add(new CmsSelectWidgetOption(fileName, false, null, helpText)); 215 } 216 return result; 217 } 218 219 222 protected String [] getPageArray() { 223 224 return PAGES; 225 } 226 227 230 protected void initDatabaseExportObject() { 231 232 Object o; 233 234 if (CmsStringUtil.isEmpty(getParamAction())) { 235 o = new CmsVfsImportExportHandler(); 236 } else { 237 o = getDialogObject(); 239 } 240 241 if (!(o instanceof CmsVfsImportExportHandler)) { 242 m_exportHandler = new CmsVfsImportExportHandler(); 244 } else { 245 m_exportHandler = (CmsVfsImportExportHandler)o; 247 } 248 249 if (CmsStringUtil.isEmpty(getParamAction()) && m_exportHandler.getExportPaths().size() < 1) { 250 List initialPaths = new ArrayList (1); 252 initialPaths.add("/"); 253 m_exportHandler.setExportPaths(initialPaths); 254 } 255 } 256 257 260 protected void initMessages() { 261 262 addMessages(Messages.get().getBundleName()); 264 super.initMessages(); 266 } 267 268 271 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 272 273 super.initWorkplaceRequestValues(settings, request); 275 276 setDialogObject(m_exportHandler); 278 } 279 } | Popular Tags |