1 31 32 package org.opencms.workplace.tools.projects; 33 34 import org.opencms.file.CmsProject; 35 import org.opencms.jsp.CmsJspActionElement; 36 import org.opencms.main.CmsException; 37 import org.opencms.main.CmsRuntimeException; 38 import org.opencms.workplace.CmsDialog; 39 import org.opencms.workplace.list.A_CmsListDialog; 40 import org.opencms.workplace.list.CmsListColumnAlignEnum; 41 import org.opencms.workplace.list.CmsListColumnDefinition; 42 import org.opencms.workplace.list.CmsListDateMacroFormatter; 43 import org.opencms.workplace.list.CmsListDefaultAction; 44 import org.opencms.workplace.list.CmsListDirectAction; 45 import org.opencms.workplace.list.CmsListItem; 46 import org.opencms.workplace.list.CmsListItemActionIconComparator; 47 import org.opencms.workplace.list.CmsListItemDetails; 48 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 49 import org.opencms.workplace.list.CmsListMetadata; 50 import org.opencms.workplace.list.CmsListMultiAction; 51 import org.opencms.workplace.list.CmsListOrderEnum; 52 import org.opencms.workplace.list.CmsListSearchAction; 53 54 import java.io.IOException ; 55 import java.util.ArrayList ; 56 import java.util.Date ; 57 import java.util.HashMap ; 58 import java.util.Iterator ; 59 import java.util.List ; 60 import java.util.Map ; 61 62 import javax.servlet.ServletException ; 63 import javax.servlet.http.HttpServletRequest ; 64 import javax.servlet.http.HttpServletResponse ; 65 import javax.servlet.jsp.PageContext ; 66 67 76 public class CmsProjectsList extends A_CmsListDialog { 77 78 79 public static final String LIST_ACTION_DELETE = "ad"; 80 81 82 public static final String LIST_ACTION_EDIT = "ae"; 83 84 85 public static final String LIST_ACTION_FILES = "af"; 86 87 88 public static final String LIST_ACTION_LOCK = "al"; 89 90 91 public static final String LIST_ACTION_PUBLISH_DISABLED = "apd"; 92 93 94 public static final String LIST_ACTION_PUBLISH_ENABLED = "ape"; 95 96 97 public static final String LIST_ACTION_UNLOCK = "au"; 98 99 100 public static final String LIST_COLUMN_CREATION = "cc"; 101 102 103 public static final String LIST_COLUMN_DELETE = "cd"; 104 105 106 public static final String LIST_COLUMN_DESCRIPTION = "cr"; 107 108 109 public static final String LIST_COLUMN_EDIT = "ce"; 110 111 112 public static final String LIST_COLUMN_FILES = "cf"; 113 114 115 public static final String LIST_COLUMN_LOCK = "cl"; 116 117 118 public static final String LIST_COLUMN_MANAGER = "cm"; 119 120 121 public static final String LIST_COLUMN_NAME = "cn"; 122 123 124 public static final String LIST_COLUMN_OWNER = "co"; 125 126 127 public static final String LIST_COLUMN_PUBLISH = "cp"; 128 129 130 public static final String LIST_COLUMN_USER = "cu"; 131 132 133 public static final String LIST_DEFACTION_FILES = "df"; 134 135 136 public static final String LIST_DETAIL_RESOURCES = "dr"; 137 138 139 public static final String LIST_ID = "lp"; 140 141 142 public static final String LIST_MACTION_DELETE = "md"; 143 144 145 public static final String LIST_MACTION_UNLOCK = "mu"; 146 147 148 public static final String PATH_BUTTONS = "tools/projects/buttons/"; 149 150 155 public CmsProjectsList(CmsJspActionElement jsp) { 156 157 super( 158 jsp, 159 LIST_ID, 160 Messages.get().container(Messages.GUI_PROJECTS_LIST_NAME_0), 161 LIST_COLUMN_NAME, 162 CmsListOrderEnum.ORDER_ASCENDING, 163 null); 164 } 165 166 173 public CmsProjectsList(PageContext context, HttpServletRequest req, HttpServletResponse res) { 174 175 this(new CmsJspActionElement(context, req, res)); 176 } 177 178 183 public void actionDeleteProject() throws Exception { 184 185 String pId = getJsp().getRequest().getParameter(CmsEditProjectDialog.PARAM_PROJECTID); 186 getCms().deleteProject(new Integer (pId).intValue()); 187 refreshList(); 188 actionCloseDialog(); 189 } 190 191 199 public void executeListMultiActions() throws CmsRuntimeException { 200 201 if (getParamListAction().equals(LIST_MACTION_DELETE)) { 202 List removedItems = new ArrayList (); 204 try { 205 Iterator itItems = getSelectedItems().iterator(); 206 while (itItems.hasNext()) { 207 CmsListItem listItem = (CmsListItem)itItems.next(); 208 int pId = new Integer (listItem.getId()).intValue(); 209 getCms().deleteProject(pId); 210 removedItems.add(listItem.getId()); 211 } 212 } catch (CmsException e) { 213 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_DELETE_SELECTED_PROJECTS_0), e); 214 } finally { 215 getList().removeAllItems(removedItems, getLocale()); 216 } 217 } else if (getParamListAction().equals(LIST_MACTION_UNLOCK)) { 218 try { 220 Iterator itItems = getSelectedItems().iterator(); 221 while (itItems.hasNext()) { 222 CmsListItem listItem = (CmsListItem)itItems.next(); 223 int pId = new Integer (listItem.getId()).intValue(); 224 getCms().unlockProject(pId); 225 } 226 } catch (CmsException e) { 227 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_UNLOCK_SELECTED_PROJECTS_0), e); 228 } 229 } else { 230 throwListUnsupportedActionException(); 231 } 232 listSave(); 233 } 234 235 238 public void executeListSingleActions() throws IOException , ServletException { 239 240 Integer projectId = new Integer (getSelectedItem().getId()); 241 String projectName = getSelectedItem().get(LIST_COLUMN_NAME).toString(); 242 243 Map params = new HashMap (); 244 245 params.put(CmsEditProjectDialog.PARAM_PROJECTID, projectId.toString()); 246 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 248 249 if (getParamListAction().equals(LIST_DEFACTION_FILES)) { 250 params.put(CmsProjectFilesDialog.PARAM_SHOW_EXPLORER, Boolean.TRUE.toString()); 252 getToolManager().jspForwardTool(this, "/projects/files", params); 253 } else if (getParamListAction().equals(LIST_ACTION_EDIT)) { 254 getToolManager().jspForwardTool(this, "/projects/edit", params); 255 } else if (getParamListAction().equals(LIST_ACTION_FILES)) { 256 getSettings().setCollector(new CmsProjectFilesCollector()); 257 getToolManager().jspForwardTool(this, "/projects/files", params); 258 } else if (getParamListAction().equals(LIST_ACTION_PUBLISH_ENABLED)) { 259 getToolManager().jspForwardTool(this, "/projects/publish", params); 260 } else if (getParamListAction().equals(LIST_ACTION_DELETE)) { 261 try { 263 getCms().deleteProject(projectId.intValue()); 264 getList().removeItem(projectId.toString(), getLocale()); 265 } catch (CmsException e) { 266 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_DELETE_PROJECT_1, projectName), e); 267 } 268 } else if (getParamListAction().equals(LIST_ACTION_LOCK)) { 269 } else if (getParamListAction().equals(LIST_ACTION_UNLOCK)) { 271 try { 273 getCms().unlockProject(projectId.intValue()); 274 } catch (CmsException e) { 275 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_UNLOCK_PROJECT_1, projectName), e); 276 } 277 } else { 278 throwListUnsupportedActionException(); 279 } 280 listSave(); 281 } 282 283 286 protected void fillDetails(String detailId) { 287 288 List projects = getList().getAllContent(); 289 Iterator itProjects = projects.iterator(); 290 while (itProjects.hasNext()) { 291 CmsListItem item = (CmsListItem)itProjects.next(); 292 try { 293 if (detailId.equals(LIST_DETAIL_RESOURCES)) { 294 CmsProject project = getCms().readProject(new Integer (item.getId()).intValue()); 295 StringBuffer html = new StringBuffer (512); 296 Iterator resources = getCms().readProjectResources(project).iterator(); 297 while (resources.hasNext()) { 298 html.append(resources.next().toString()); 299 html.append("<br>"); 300 } 301 item.set(LIST_DETAIL_RESOURCES, html.toString()); 302 } 303 } catch (Exception e) { 304 } 306 } 307 } 308 309 312 protected List getListItems() throws CmsException { 313 314 List ret = new ArrayList (); 315 List projects = getCms().getAllManageableProjects(); 317 Iterator itProjects = projects.iterator(); 318 while (itProjects.hasNext()) { 319 CmsProject project = (CmsProject)itProjects.next(); 320 CmsListItem item = getList().newItem(new Integer (project.getId()).toString()); 321 item.set(LIST_COLUMN_NAME, project.getName()); 322 item.set(LIST_COLUMN_DESCRIPTION, project.getDescription()); 323 try { 324 item.set(LIST_COLUMN_OWNER, getCms().readUser(project.getOwnerId()).getName()); 325 } catch (Exception e) { 326 } 328 try { 329 item.set(LIST_COLUMN_MANAGER, getCms().readGroup(project.getManagerGroupId()).getName()); 330 } catch (Exception e) { 331 } 333 try { 334 item.set(LIST_COLUMN_USER, getCms().readGroup(project.getGroupId()).getName()); 335 } catch (Exception e) { 336 } 338 item.set(LIST_COLUMN_CREATION, new Date (project.getDateCreated())); 339 StringBuffer html = new StringBuffer (512); 340 Iterator resources = getCms().readProjectResources(project).iterator(); 341 while (resources.hasNext()) { 342 html.append(resources.next().toString()); 343 html.append("<br>"); 344 } 345 item.set(LIST_DETAIL_RESOURCES, html.toString()); 346 ret.add(item); 347 } 348 349 return ret; 350 } 351 352 355 protected void initMessages() { 356 357 addMessages(Messages.get().getBundleName()); 359 super.initMessages(); 361 } 362 363 366 protected void setColumns(CmsListMetadata metadata) { 367 368 CmsListColumnDefinition filesCol = new CmsListColumnDefinition(LIST_COLUMN_FILES); 370 filesCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_FILES_0)); 371 filesCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_FILES_HELP_0)); 372 filesCol.setWidth("20"); 373 filesCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 374 filesCol.setSorteable(false); 375 CmsListDirectAction filesAction = new CmsListDirectAction(LIST_ACTION_FILES); 377 filesAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_FILES_NAME_0)); 378 filesAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_FILES_HELP_0)); 379 filesAction.setIconPath(PATH_BUTTONS + "project.png"); 380 filesCol.addDirectAction(filesAction); 381 metadata.addColumn(filesCol); 383 384 CmsListColumnDefinition lockCol = new CmsListColumnDefinition(LIST_COLUMN_LOCK); 386 lockCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_LOCK_0)); 387 lockCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_LOCK_HELP_0)); 388 lockCol.setWidth("20"); 389 lockCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 390 lockCol.setListItemComparator(new CmsListItemActionIconComparator()); 391 392 CmsListDirectAction lockAction = new CmsListDirectAction(LIST_ACTION_LOCK) { 394 395 398 public boolean isVisible() { 399 400 if (getItem() != null) { 401 try { 402 return getCms().countLockedResources(new Integer (getItem().getId()).intValue()) == 0; 403 } catch (CmsException e) { 404 } 406 } 407 return super.isVisible(); 408 } 409 }; 410 lockAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_LOCK_NAME_0)); 411 lockAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_LOCK_HELP_0)); 412 lockAction.setConfirmationMessage(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_LOCK_CONF_0)); 413 lockAction.setIconPath(PATH_BUTTONS + "project_lock.png"); 414 lockAction.setEnabled(false); 415 lockCol.addDirectAction(lockAction); 416 417 CmsListDirectAction unlockAction = new CmsListDirectAction(LIST_ACTION_UNLOCK) { 419 420 423 public boolean isVisible() { 424 425 if (getItem() != null) { 426 try { 427 return getCms().countLockedResources(new Integer (getItem().getId()).intValue()) != 0; 428 } catch (CmsException e) { 429 } 431 } 432 return super.isVisible(); 433 } 434 }; 435 unlockAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_UNLOCK_NAME_0)); 436 unlockAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_UNLOCK_HELP_0)); 437 unlockAction.setConfirmationMessage(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_UNLOCK_CONF_0)); 438 unlockAction.setIconPath(PATH_BUTTONS + "project_unlock.png"); 439 lockCol.addDirectAction(unlockAction); 440 441 metadata.addColumn(lockCol); 443 444 CmsListColumnDefinition publishCol = new CmsListColumnDefinition(LIST_COLUMN_PUBLISH); 446 publishCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_PUBLISH_0)); 447 publishCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_PUBLISH_HELP_0)); 448 publishCol.setWidth("20"); 449 publishCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 450 publishCol.setSorteable(false); 451 452 CmsListDirectAction publishEnabledAction = new CmsListDirectAction(LIST_ACTION_PUBLISH_ENABLED) { 454 455 458 public boolean isVisible() { 459 460 if (getItem() != null) { 461 try { 462 return getCms().countLockedResources(new Integer (getItem().getId()).intValue()) == 0; 463 } catch (CmsException e) { 464 } 466 } 467 return super.isVisible(); 468 } 469 }; 470 publishEnabledAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_ENABLED_NAME_0)); 471 publishEnabledAction.setHelpText(Messages.get().container( 472 Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_ENABLED_HELP_0)); 473 publishEnabledAction.setConfirmationMessage(Messages.get().container( 474 Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_ENABLED_CONF_0)); 475 publishEnabledAction.setIconPath(PATH_BUTTONS + "project_publish.png"); 476 publishCol.addDirectAction(publishEnabledAction); 477 478 CmsListDirectAction publishDisabledAction = new CmsListDirectAction(LIST_ACTION_PUBLISH_DISABLED) { 480 481 484 public boolean isVisible() { 485 486 if (getItem() != null) { 487 try { 488 return getCms().countLockedResources(new Integer (getItem().getId()).intValue()) != 0; 489 } catch (CmsException e) { 490 } 492 } 493 return super.isVisible(); 494 } 495 }; 496 publishDisabledAction.setName(Messages.get().container( 497 Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_DISABLED_NAME_0)); 498 publishDisabledAction.setHelpText(Messages.get().container( 499 Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_DISABLED_HELP_0)); 500 publishDisabledAction.setConfirmationMessage(Messages.get().container( 501 Messages.GUI_PROJECTS_LIST_ACTION_PUBLISH_DISABLED_CONF_0)); 502 publishDisabledAction.setIconPath(PATH_BUTTONS + "project_publish_disabled.png"); 503 publishDisabledAction.setEnabled(false); 504 publishCol.addDirectAction(publishDisabledAction); 505 506 metadata.addColumn(publishCol); 508 509 CmsListColumnDefinition editCol = new CmsListColumnDefinition(LIST_COLUMN_EDIT); 511 editCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_EDIT_0)); 512 editCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_EDIT_HELP_0)); 513 editCol.setWidth("20"); 514 editCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 515 editCol.setSorteable(false); 516 CmsListDirectAction editAction = new CmsListDirectAction(LIST_ACTION_EDIT); 518 editAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_EDIT_NAME_0)); 519 editAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_EDIT_HELP_0)); 520 editAction.setIconPath(PATH_BUTTONS + "project_edit.png"); 521 editCol.addDirectAction(editAction); 522 metadata.addColumn(editCol); 524 525 CmsListColumnDefinition deleteCol = new CmsListColumnDefinition(LIST_COLUMN_DELETE); 527 deleteCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_DELETE_0)); 528 deleteCol.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_DELETE_HELP_0)); 529 deleteCol.setWidth("20"); 530 deleteCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 531 deleteCol.setSorteable(false); 532 CmsListDirectAction deleteAction = new CmsListDirectAction(LIST_ACTION_DELETE); 534 deleteAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_DELETE_NAME_0)); 535 deleteAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_DELETE_HELP_0)); 536 deleteAction.setConfirmationMessage(Messages.get().container(Messages.GUI_PROJECTS_LIST_ACTION_DELETE_CONF_0)); 537 deleteAction.setIconPath(ICON_DELETE); 538 deleteCol.addDirectAction(deleteAction); 539 metadata.addColumn(deleteCol); 541 542 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 544 nameCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_NAME_0)); 545 nameCol.setWidth("15%"); 546 CmsListDefaultAction defEditAction = new CmsListDefaultAction(LIST_DEFACTION_FILES); 548 defEditAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_DEFACTION_EDIT_NAME_0)); 549 defEditAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_DEFACTION_EDIT_HELP_0)); 550 nameCol.addDefaultAction(defEditAction); 551 metadata.addColumn(nameCol); 553 554 CmsListColumnDefinition descriptionCol = new CmsListColumnDefinition(LIST_COLUMN_DESCRIPTION); 556 descriptionCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_DESCRIPTION_0)); 557 descriptionCol.setWidth("35%"); 558 descriptionCol.setTextWrapping(true); 559 metadata.addColumn(descriptionCol); 560 561 CmsListColumnDefinition ownerCol = new CmsListColumnDefinition(LIST_COLUMN_OWNER); 563 ownerCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_OWNER_0)); 564 ownerCol.setWidth("12%"); 565 metadata.addColumn(ownerCol); 566 567 CmsListColumnDefinition managerCol = new CmsListColumnDefinition(LIST_COLUMN_MANAGER); 569 managerCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_MANAGER_0)); 570 managerCol.setWidth("12%"); 571 metadata.addColumn(managerCol); 572 573 CmsListColumnDefinition userCol = new CmsListColumnDefinition(LIST_COLUMN_USER); 575 userCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_USER_0)); 576 userCol.setWidth("12%"); 577 metadata.addColumn(userCol); 578 579 CmsListColumnDefinition creationCol = new CmsListColumnDefinition(LIST_COLUMN_CREATION); 581 creationCol.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_COLS_CREATION_0)); 582 creationCol.setWidth("14%"); 583 creationCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 584 metadata.addColumn(creationCol); 585 } 586 587 590 protected void setIndependentActions(CmsListMetadata metadata) { 591 592 CmsListItemDetails resourcesDetails = new CmsListItemDetails(LIST_DETAIL_RESOURCES); 594 resourcesDetails.setAtColumn(LIST_COLUMN_NAME); 595 resourcesDetails.setVisible(false); 596 resourcesDetails.setShowActionName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_SHOW_RESOURCES_NAME_0)); 597 resourcesDetails.setShowActionHelpText(Messages.get().container( 598 Messages.GUI_PROJECTS_DETAIL_SHOW_RESOURCES_HELP_0)); 599 resourcesDetails.setHideActionName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_HIDE_RESOURCES_NAME_0)); 600 resourcesDetails.setHideActionHelpText(Messages.get().container( 601 Messages.GUI_PROJECTS_DETAIL_HIDE_RESOURCES_HELP_0)); 602 resourcesDetails.setName(Messages.get().container(Messages.GUI_PROJECTS_DETAIL_RESOURCES_NAME_0)); 603 resourcesDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 604 Messages.GUI_PROJECTS_DETAIL_RESOURCES_NAME_0))); 605 metadata.addItemDetails(resourcesDetails); 606 607 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_NAME)); 609 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_DESCRIPTION)); 610 metadata.setSearchAction(searchAction); 611 } 612 613 616 protected void setMultiActions(CmsListMetadata metadata) { 617 618 CmsListMultiAction unlockProject = new CmsListMultiAction(LIST_MACTION_UNLOCK); 620 unlockProject.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_MACTION_UNLOCK_NAME_0)); 621 unlockProject.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_MACTION_UNLOCK_HELP_0)); 622 unlockProject.setConfirmationMessage(Messages.get().container(Messages.GUI_PROJECTS_LIST_MACTION_UNLOCK_CONF_0)); 623 unlockProject.setIconPath(PATH_BUTTONS + "project_unlock.png"); 624 metadata.addMultiAction(unlockProject); 625 626 CmsListMultiAction deleteMultiAction = new CmsListMultiAction(LIST_MACTION_DELETE); 628 deleteMultiAction.setName(Messages.get().container(Messages.GUI_PROJECTS_LIST_MACTION_DELETE_NAME_0)); 629 deleteMultiAction.setHelpText(Messages.get().container(Messages.GUI_PROJECTS_LIST_MACTION_DELETE_HELP_0)); 630 deleteMultiAction.setConfirmationMessage(Messages.get().container( 631 Messages.GUI_PROJECTS_LIST_MACTION_DELETE_CONF_0)); 632 deleteMultiAction.setIconPath(ICON_MULTI_DELETE); 633 metadata.addMultiAction(deleteMultiAction); 634 } 635 } | Popular Tags |