1 31 32 package org.opencms.workplace.tools.modules; 33 34 import org.opencms.configuration.CmsConfigurationException; 35 import org.opencms.db.CmsExportPoint; 36 import org.opencms.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsRuntimeException; 38 import org.opencms.main.OpenCms; 39 import org.opencms.module.CmsModule; 40 import org.opencms.security.CmsRoleViolationException; 41 import org.opencms.workplace.list.A_CmsListDialog; 42 import org.opencms.workplace.list.CmsListColumnAlignEnum; 43 import org.opencms.workplace.list.CmsListColumnDefinition; 44 import org.opencms.workplace.list.CmsListDefaultAction; 45 import org.opencms.workplace.list.CmsListDirectAction; 46 import org.opencms.workplace.list.CmsListItem; 47 import org.opencms.workplace.list.CmsListMetadata; 48 import org.opencms.workplace.list.CmsListMultiAction; 49 import org.opencms.workplace.list.CmsListOrderEnum; 50 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 CmsExportpointsList extends A_CmsListDialog { 73 74 75 public static final String LIST_ACTION_DELETE = "ad"; 76 77 78 public static final String LIST_ACTION_EDIT = "ae"; 79 80 81 public static final String LIST_COLUMN_DELETE = "cd"; 82 83 84 public static final String LIST_COLUMN_DESTINATION = "ct"; 85 86 87 public static final String LIST_COLUMN_EDIT = "ce"; 88 89 90 public static final String LIST_COLUMN_SERVERDESTINATION = "cs"; 91 92 93 public static final String LIST_COLUMN_URI = "cu"; 94 95 96 public static final String LIST_DEFACTION_EDIT = "de"; 97 98 99 public static final String LIST_ID = "lmep"; 100 101 102 public static final String LIST_MACTION_DELETE = "md"; 103 104 105 public static final String PARAM_EXPORTPOINT = "exportpoint"; 106 107 108 public static final String PARAM_MODULE = "module"; 109 110 111 public static final String PATH_BUTTONS = "tools/modules/buttons/"; 112 113 114 private String m_paramModule; 115 116 121 public CmsExportpointsList(CmsJspActionElement jsp) { 122 123 super( 124 jsp, 125 LIST_ID, 126 Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_NAME_0), 127 LIST_COLUMN_URI, 128 CmsListOrderEnum.ORDER_ASCENDING, 129 null); 130 } 131 132 139 public CmsExportpointsList(PageContext context, HttpServletRequest req, HttpServletResponse res) { 140 141 this(new CmsJspActionElement(context, req, res)); 142 } 143 144 149 public void executeListMultiActions() { 150 151 if (getParamListAction().equals(LIST_MACTION_DELETE)) { 152 String moduleName = getParamModule(); 153 Iterator itItems = getSelectedItems().iterator(); 155 156 while (itItems.hasNext()) { 157 CmsModule module = (CmsModule)OpenCms.getModuleManager().getModule(moduleName).clone(); 158 CmsListItem listItem = (CmsListItem)itItems.next(); 159 String exportpointName = listItem.getId(); 160 deleteExportpoint(module, exportpointName); 161 } 162 } 163 Map objects = (Map )getSettings().getListObject(); 165 if (objects != null) { 166 objects.remove(CmsModulesList.class.getName()); 167 } 168 listSave(); 169 170 } 171 172 175 public void executeListSingleActions() throws IOException , ServletException { 176 177 String moduleName = getParamModule(); 178 String exportpointName = getSelectedItem().getId(); 179 180 Map params = new HashMap (); 181 params.put(PARAM_MODULE, moduleName); 182 params.put(PARAM_EXPORTPOINT, exportpointName); 183 184 if (getParamListAction().equals(LIST_ACTION_DELETE)) { 185 CmsModule module = (CmsModule)OpenCms.getModuleManager().getModule(moduleName).clone(); 187 deleteExportpoint(module, exportpointName); 188 } else if (getParamListAction().equals(LIST_ACTION_EDIT) || getParamListAction().equals(LIST_DEFACTION_EDIT)) { 189 params.put(PARAM_ACTION, DIALOG_INITIAL); 191 getToolManager().jspForwardTool(this, "/modules/edit/exportpoints/edit", params); 192 } 193 Map objects = (Map )getSettings().getListObject(); 195 if (objects != null) { 196 objects.remove(CmsModulesList.class.getName()); 197 } 198 listSave(); 199 } 200 201 206 public String getParamModule() { 207 208 return m_paramModule; 209 } 210 211 215 public void setParamModule(String paramModule) { 216 217 m_paramModule = paramModule; 218 } 219 220 223 protected void fillDetails(String detailId) { 224 225 } 227 228 231 protected List getListItems() { 232 233 List ret = new ArrayList (); 234 235 String moduleName = getParamModule(); 236 CmsModule module = OpenCms.getModuleManager().getModule(moduleName); 237 List exportpoints = module.getExportPoints(); 239 Iterator i = exportpoints.iterator(); 240 while (i.hasNext()) { 241 CmsExportPoint exportpoint = (CmsExportPoint)i.next(); 242 CmsListItem item = getList().newItem(exportpoint.getUri()); 243 item.set(LIST_COLUMN_URI, exportpoint.getUri()); 245 item.set(LIST_COLUMN_DESTINATION, exportpoint.getConfiguredDestination()); 247 item.set(LIST_COLUMN_SERVERDESTINATION, exportpoint.getDestinationPath()); 249 250 ret.add(item); 251 } 252 return ret; 253 } 254 255 258 protected void initMessages() { 259 260 addMessages(Messages.get().getBundleName()); 262 super.initMessages(); 264 } 265 266 269 protected void setColumns(CmsListMetadata metadata) { 270 271 CmsListColumnDefinition editCol = new CmsListColumnDefinition(LIST_COLUMN_EDIT); 273 editCol.setName(Messages.get().container(Messages.GUI_MODULES_LIST_COLS_EDIT_0)); 274 editCol.setWidth("20"); 275 editCol.setSorteable(false); 276 editCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 277 CmsListDirectAction editColAction = new CmsListDirectAction(LIST_ACTION_EDIT); 279 editColAction.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_EDIT_NAME_0)); 280 editColAction.setHelpText(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_EDIT_HELP_0)); 281 editColAction.setIconPath(PATH_BUTTONS + "module_exportpoints.png"); 282 editColAction.setEnabled(true); 283 editColAction.setConfirmationMessage(null); 284 editCol.addDirectAction(editColAction); 285 metadata.addColumn(editCol); 286 287 CmsListColumnDefinition delCol = new CmsListColumnDefinition(LIST_COLUMN_DELETE); 289 delCol.setName(Messages.get().container(Messages.GUI_MODULES_LIST_COLS_DELETE_0)); 290 delCol.setWidth("20"); 291 delCol.setSorteable(false); 292 delCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 293 CmsListDirectAction delDependency = new CmsListDirectAction(LIST_ACTION_DELETE); 295 delDependency.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_DELETE_NAME_0)); 296 delDependency.setConfirmationMessage(Messages.get().container( 297 Messages.GUI_EXPORTPOINTS_LIST_ACTION_DELETE_CONF_0)); 298 delDependency.setIconPath(ICON_DELETE); 299 delDependency.setEnabled(true); 300 delDependency.setHelpText(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_DELETE_HELP_0)); 301 delCol.addDirectAction(delDependency); 302 metadata.addColumn(delCol); 303 304 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_URI); 306 nameCol.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_COLS_URI_0)); 307 nameCol.setWidth("40%"); 308 nameCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT); 309 CmsListDefaultAction nameColAction = new CmsListDefaultAction(LIST_DEFACTION_EDIT); 311 nameColAction.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_OVERVIEW_NAME_0)); 312 nameColAction.setIconPath(null); 313 nameColAction.setHelpText(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_ACTION_OVERVIEW_HELP_0)); 314 nameColAction.setEnabled(true); 315 nameColAction.setConfirmationMessage(null); 316 nameCol.addDefaultAction(nameColAction); 318 metadata.addColumn(nameCol); 319 320 CmsListColumnDefinition destinationCol = new CmsListColumnDefinition(LIST_COLUMN_DESTINATION); 322 destinationCol.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_COLS_DESTINATION_0)); 323 destinationCol.setWidth("30%"); 324 destinationCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT); 325 metadata.addColumn(destinationCol); 326 327 CmsListColumnDefinition serverDestinationCol = new CmsListColumnDefinition(LIST_COLUMN_SERVERDESTINATION); 329 serverDestinationCol.setName(Messages.get().container(Messages.GUI_EXPORTPOINTS_LIST_COLS_SERVERDESTINATION_0)); 330 serverDestinationCol.setWidth("30%"); 331 serverDestinationCol.setAlign(CmsListColumnAlignEnum.ALIGN_LEFT); 332 metadata.addColumn(serverDestinationCol); 333 334 } 335 336 339 protected void setIndependentActions(CmsListMetadata metadata) { 340 341 } 343 344 347 protected void setMultiActions(CmsListMetadata metadata) { 348 349 CmsListMultiAction deleteDependencies = new CmsListMultiAction(LIST_MACTION_DELETE); 351 deleteDependencies.setName(Messages.get().container(Messages.GUI_DEPENDENCIES_LIST_ACTION_MDELETE_NAME_0)); 352 deleteDependencies.setConfirmationMessage(Messages.get().container( 353 Messages.GUI_DEPENDENCIES_LIST_ACTION_MDELETE_CONF_0)); 354 deleteDependencies.setIconPath(ICON_MULTI_DELETE); 355 deleteDependencies.setEnabled(true); 356 deleteDependencies.setHelpText(Messages.get().container(Messages.GUI_DEPENDENCIES_LIST_ACTION_MDELETE_HELP_0)); 357 metadata.addMultiAction(deleteDependencies); 358 } 359 360 363 protected void validateParamaters() throws Exception { 364 365 if (OpenCms.getModuleManager().getModule(getParamModule()) == null) { 366 throw new Exception (); 369 } 370 } 371 372 378 private void deleteExportpoint(CmsModule module, String exportpoint) { 379 380 List oldExportpoints = module.getExportPoints(); 381 List newExportpoints = new ArrayList (); 382 Iterator i = oldExportpoints.iterator(); 383 while (i.hasNext()) { 384 CmsExportPoint exp = (CmsExportPoint)i.next(); 385 if (!exp.getUri().equals(exportpoint)) { 386 newExportpoints.add(exp); 387 } 388 } 389 module.setExportPoints(newExportpoints); 390 try { 392 OpenCms.getModuleManager().updateModule(getCms(), module); 393 } catch (CmsConfigurationException ce) { 394 throw new CmsRuntimeException(Messages.get().container( 396 Messages.ERR_ACTION_EXPORTPOINTS_DELETE_2, 397 exportpoint, 398 module.getName()), ce); 399 400 } catch (CmsRoleViolationException re) { 401 throw new CmsRuntimeException(Messages.get().container( 402 Messages.ERR_ACTION_EXPORTPOINTS_DELETE_2, 403 exportpoint, 404 module.getName()), re); 405 } 406 getList().removeItem(exportpoint, getLocale()); 407 } 408 } | Popular Tags |