protected AbsPage zTreeItem(Action action, Button option, FolderMountpointItem folderItem) throws HarnessException { logger.info( myPageName() + " zTreeItem(" + action + ", " + option + "," + folderItem.getName() + ")"); tracer.trace(action + " then " + option + " on Folder Item = " + folderItem.getName()); AbsPage page = null; String actionLocator = null; String optionLocator = null; if ((action == null) || (option == null) || (folderItem == null)) { throw new HarnessException("Must define an action, option, and addressbook"); } if (folderItem.getName().equals("USER_ROOT")) { actionLocator = "css=div#ztih__main_Contacts__ADDRBOOK_div"; } else { actionLocator = "css=div#zti__main_Contacts__" + folderItem.getId() + "_div"; } if (action == Action.A_RIGHTCLICK) { optionLocator = "css=div[id='ZmActionMenu_contacts_ADDRBOOK']"; if (option == Button.B_TREE_NEWFOLDER) { optionLocator += " div[id='NEW_ADDRBOOK'] td[id$='_title']"; page = new DialogCreateFolder(MyApplication, ((AppAjaxClient) MyApplication).zPageAddressbook); } else if (option == Button.B_DELETE) { optionLocator += " div[id='DELETE_WITHOUT_SHORTCUT'] td[id$='_title']"; page = null; } else if (option == Button.B_RENAME) { optionLocator += " div[id='RENAME_FOLDER'] td[id$='_title']"; page = new DialogRenameFolder(MyApplication, ((AppAjaxClient) MyApplication).zPageAddressbook); } else if (option == Button.B_TREE_EDIT) { optionLocator += " div[id='EDIT_PROPS'] td[id$='_title']"; page = new DialogEditFolder(MyApplication, ((AppAjaxClient) MyApplication).zPageAddressbook); } else if (option == Button.B_TREE_FOLDER_EMPTY) { optionLocator += " div[id='EMPTY_FOLDER'] td[id$='_title']"; page = new DialogWarning( DialogWarning.DialogWarningID.EmptyFolderWarningMessage, MyApplication, ((AppAjaxClient) MyApplication).zPageAddressbook); } else { throw new HarnessException("implement action:" + action + " option:" + option); } // Default right-click behavior zRightClickAt(actionLocator, "0,0"); zWaitForBusyOverlay(); zClickAt(optionLocator, "0,0"); zWaitForBusyOverlay(); if (page != null) { page.zWaitForActive(); } return (page); } else { throw new HarnessException("implement action:" + action + " option:" + option); } }