1 31 32 package org.opencms.workplace.tools.projects; 33 34 import org.opencms.file.CmsProject; 35 import org.opencms.file.CmsResource; 36 import org.opencms.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsException; 38 import org.opencms.main.CmsLog; 39 import org.opencms.workplace.CmsDialog; 40 import org.opencms.workplace.CmsWorkplace; 41 import org.opencms.workplace.CmsWorkplaceSettings; 42 import org.opencms.workplace.explorer.CmsExplorer; 43 import org.opencms.workplace.list.A_CmsListExplorerDialog; 44 import org.opencms.workplace.list.CmsListMetadata; 45 import org.opencms.workplace.list.CmsListResourcesCollector; 46 47 import java.util.ArrayList ; 48 import java.util.HashMap ; 49 import java.util.Iterator ; 50 import java.util.List ; 51 import java.util.Map ; 52 53 import javax.servlet.http.HttpServletRequest ; 54 import javax.servlet.http.HttpServletResponse ; 55 import javax.servlet.jsp.PageContext ; 56 57 import org.apache.commons.logging.Log; 58 59 68 public class CmsProjectFilesDialog extends A_CmsListExplorerDialog { 69 70 71 public static final String LIST_ID = "lpr"; 72 73 74 public static final String PARAM_SHOW_EXPLORER = "showexplorer"; 75 76 77 private static final Log LOG = CmsLog.getLog(CmsProjectFilesDialog.class); 78 79 80 private String m_paramProjectid; 81 82 83 private String m_paramShowexplorer; 84 85 90 public CmsProjectFilesDialog(CmsJspActionElement jsp) { 91 92 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_PROJECT_FILES_LIST_NAME_0)); 93 } 94 95 102 public CmsProjectFilesDialog(PageContext context, HttpServletRequest req, HttpServletResponse res) { 103 104 this(new CmsJspActionElement(context, req, res)); 105 } 106 107 110 public void executeListMultiActions() { 111 112 throwListUnsupportedActionException(); 113 } 114 115 118 public void executeListSingleActions() { 119 120 throwListUnsupportedActionException(); 121 } 122 123 128 public String getParamProjectid() { 129 130 return m_paramProjectid; 131 } 132 133 138 public String getParamShowexplorer() { 139 140 return m_paramShowexplorer; 141 } 142 143 148 public void setParamProjectid(String projectId) { 149 150 m_paramProjectid = projectId; 151 } 152 153 158 public void setParamShowexplorer(String showExplorer) { 159 160 m_paramShowexplorer = showExplorer; 161 } 162 163 166 protected void fillDetails(String detailId) { 167 168 } 170 171 174 protected List getListItems() throws CmsException { 175 176 int projectId = new Integer (getProject().getId()).intValue(); 177 if (LOG.isDebugEnabled()) { 178 LOG.debug(Messages.get().getBundle().key(Messages.LOG_READ_PROJECT_VIEW_START_0)); 179 } 180 List resources = getCms().readProjectView(projectId, CmsResource.STATE_KEEP); 181 if (LOG.isDebugEnabled()) { 182 LOG.debug(Messages.get().getBundle().key(Messages.LOG_READ_PROJECT_VIEW_END_1, new Integer (resources.size()))); 183 } 184 return getListItemsFromResources(resources); 185 } 186 187 190 protected CmsProject getProject() { 191 192 int projectId = new Integer (getParamProjectid()).intValue(); 193 try { 194 return getCms().readProject(projectId); 195 } catch (CmsException e) { 196 return super.getProject(); 197 } 198 } 199 200 203 protected void initMessages() { 204 205 addMessages(Messages.get().getBundleName()); 207 super.initMessages(); 209 } 210 211 214 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 215 216 super.initWorkplaceRequestValues(settings, request); 217 218 if (Boolean.valueOf(getParamShowexplorer()).booleanValue()) { 220 int projectId = getProject().getId(); 221 if (LOG.isDebugEnabled()) { 222 LOG.debug(Messages.get().getBundle().key(Messages.LOG_READ_PROJECT_VIEW_START_0)); 223 } 224 List resources; 225 try { 226 resources = getCms().readProjectView(projectId, CmsResource.STATE_KEEP); 227 Iterator itRes = resources.iterator(); 228 while (itRes.hasNext()) { 229 CmsResource resource = (CmsResource)itRes.next(); 230 if (!resource.getRootPath().startsWith(getJsp().getRequestContext().getSiteRoot()) 231 && !resource.getRootPath().startsWith(CmsWorkplace.VFS_PATH_SYSTEM)) { 232 itRes.remove(); 233 } 234 } 235 } catch (CmsException e) { 236 if (LOG.isDebugEnabled()) { 237 LOG.debug(e.getMessage(), e); 238 } 239 resources = new ArrayList (); 240 } 241 if (LOG.isDebugEnabled()) { 242 LOG.debug(Messages.get().getBundle().key(Messages.LOG_READ_PROJECT_VIEW_END_1, new Integer (resources.size()))); 243 } 244 Map params = new HashMap (); 245 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 247 params.putAll(getToolManager().getCurrentTool(this).getHandler().getParameters(this)); 248 249 getSettings().setExplorerProjectId(projectId); 250 getSettings().setExplorerPage(1); 251 getSettings().setCollector(new CmsListResourcesCollector(resources)); 252 getSettings().setExplorerMode(CmsExplorer.VIEW_LIST); 253 try { 254 getToolManager().jspForwardPage(this, PATH_DIALOGS + "list-explorer.jsp", params); 255 } catch (Exception e) { 256 throw new RuntimeException (e); 257 } 258 } 259 } 260 261 264 protected void setMultiActions(CmsListMetadata metadata) { 265 266 } 268 269 272 protected void validateParamaters() throws Exception { 273 274 getCms().readProject(Integer.parseInt(getParamProjectid())); 275 } 276 } 277 | Popular Tags |