1 31 32 package org.opencms.workplace.demos.list; 33 34 import org.opencms.file.CmsGroup; 35 import org.opencms.file.CmsUser; 36 import org.opencms.i18n.CmsMessageContainer; 37 import org.opencms.jsp.CmsJspActionElement; 38 import org.opencms.main.CmsException; 39 import org.opencms.main.CmsRuntimeException; 40 import org.opencms.util.CmsUUID; 41 import org.opencms.workplace.CmsDialog; 42 import org.opencms.workplace.list.A_CmsListDialog; 43 import org.opencms.workplace.list.CmsListColumnAlignEnum; 44 import org.opencms.workplace.list.CmsListColumnDefinition; 45 import org.opencms.workplace.list.CmsListDateMacroFormatter; 46 import org.opencms.workplace.list.CmsListDefaultAction; 47 import org.opencms.workplace.list.CmsListDirectAction; 48 import org.opencms.workplace.list.CmsListItem; 49 import org.opencms.workplace.list.CmsListItemDetails; 50 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 51 import org.opencms.workplace.list.CmsListMetadata; 52 import org.opencms.workplace.list.CmsListPrintIAction; 53 import org.opencms.workplace.list.CmsListSearchAction; 54 import org.opencms.workplace.list.I_CmsListFormatter; 55 import org.opencms.workplace.tools.accounts.Messages; 56 57 import java.util.ArrayList ; 58 import java.util.Date ; 59 import java.util.HashMap ; 60 import java.util.Iterator ; 61 import java.util.List ; 62 import java.util.Locale ; 63 import java.util.Map ; 64 65 import javax.servlet.http.HttpServletRequest ; 66 import javax.servlet.http.HttpServletResponse ; 67 import javax.servlet.jsp.PageContext ; 68 69 78 public class CmsListDemo7 extends A_CmsListDialog { 79 80 81 public static final String LIST_ACTION_DELETE = "ad"; 82 83 84 public static final String LIST_COLUMN_ACTIVATE = "ca"; 85 86 87 public static final String LIST_COLUMN_DELETE = "cd"; 88 89 90 public static final String LIST_COLUMN_EMAIL = "cm"; 91 92 93 public static final String LIST_COLUMN_LASTLOGIN = "cl"; 94 95 96 public static final String LIST_COLUMN_LOGIN = "ci"; 97 98 99 public static final String LIST_COLUMN_NAME = "cn"; 100 101 102 public static final String LIST_DEFACTION_EDIT = "de"; 103 104 105 public static final String LIST_DETAIL_GROUPS = "dg"; 106 107 108 public static final String LIST_ID = "lsu1"; 109 110 111 private static final String PARAM_USERID = "userid"; 112 113 118 public CmsListDemo7(CmsJspActionElement jsp) { 119 120 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null); 121 } 122 123 130 public CmsListDemo7(PageContext context, HttpServletRequest req, HttpServletResponse res) { 131 132 this(new CmsJspActionElement(context, req, res)); 133 } 134 135 138 public void executeListMultiActions() throws CmsRuntimeException { 139 140 throwListUnsupportedActionException(); 141 } 142 143 146 public void executeListSingleActions() { 147 148 CmsListItem item = getSelectedItem(); 149 CmsUUID userId = new CmsUUID(item.getId()); 150 151 Map params = new HashMap (); 152 params.put(PARAM_USERID, userId); 153 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 155 if (getParamListAction().equals(LIST_DEFACTION_EDIT)) { 156 } else if (LIST_ACTION_DELETE.equals(getParamListAction())) { 159 getList().removeItem(userId.toString(), getLocale()); 163 } else { 164 throwListUnsupportedActionException(); 165 } 166 listSave(); 167 } 168 169 172 protected void fillDetails(String detailId) { 173 174 List users = getList().getAllContent(); 176 Iterator itUsers = users.iterator(); 177 while (itUsers.hasNext()) { 178 CmsListItem item = (CmsListItem)itUsers.next(); 179 String userName = item.get(LIST_COLUMN_LOGIN).toString(); 180 StringBuffer html = new StringBuffer (512); 181 try { 182 if (detailId.equals(LIST_DETAIL_GROUPS)) { 183 Iterator itGroups = getCms().getGroupsOfUser(userName).iterator(); 185 while (itGroups.hasNext()) { 186 html.append(((CmsGroup)itGroups.next()).getName()); 187 if (itGroups.hasNext()) { 188 html.append("<br>"); 189 } 190 html.append("\n"); 191 } 192 } else { 193 continue; 194 } 195 } catch (Exception e) { 196 } 198 item.set(detailId, html.toString()); 199 } 200 } 201 202 205 protected List getListItems() throws CmsException { 206 207 List ret = new ArrayList (); 208 List users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER); 210 Iterator itUsers = users.iterator(); 211 while (itUsers.hasNext()) { 212 CmsUser user = (CmsUser)itUsers.next(); 213 CmsListItem item = getList().newItem(user.getId().toString()); 214 item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled())); 215 item.set(LIST_COLUMN_LOGIN, user.getName()); 216 item.set(LIST_COLUMN_NAME, user.getFullName()); 217 item.set(LIST_COLUMN_EMAIL, user.getEmail()); 218 item.set(LIST_COLUMN_LASTLOGIN, new Date (user.getLastlogin())); 219 ret.add(item); 220 } 221 return ret; 222 } 223 224 227 protected void initMessages() { 228 229 addMessages(Messages.get().getBundleName()); 231 addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName()); 232 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 233 super.initMessages(); 235 } 236 237 240 protected void setColumns(CmsListMetadata metadata) { 241 242 CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE); 244 actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0)); 245 actCol.setWidth("30"); 246 actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 247 actCol.setSorteable(true); 248 I_CmsListFormatter actFormatter = new I_CmsListFormatter() { 249 250 253 public String format(Object data, Locale locale) { 254 255 if (data instanceof Boolean ) { 256 Boolean val = (Boolean )data; 257 if (val.booleanValue()) { 258 return "<img SRC='" + getResourceUri("list/active.png") + "'>"; 259 } 260 } 261 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>"; 262 } 263 264 }; 265 actCol.setFormatter(actFormatter); 266 metadata.addColumn(actCol); 267 268 CmsListColumnDefinition deleteCol = new CmsListColumnDefinition(LIST_COLUMN_DELETE); 270 deleteCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_0)); 271 deleteCol.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_HELP_0)); 272 deleteCol.setWidth("20"); 273 deleteCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 274 deleteCol.setSorteable(false); 275 CmsListDirectAction deleteAction = new CmsListDirectAction(LIST_ACTION_DELETE); 277 deleteAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_NAME_0)); 278 deleteAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_HELP_0)); 279 deleteAction.setConfirmationMessage(new CmsMessageContainer(null, "Do you want to delete the selected user?")); 280 deleteAction.setIconPath(ICON_DELETE); 281 deleteCol.addDirectAction(deleteAction); 282 metadata.addColumn(deleteCol); 283 284 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 286 loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0)); 287 loginCol.setWidth("20%"); 288 loginCol.setSorteable(true); 289 CmsListDefaultAction defEditAction = new CmsListDefaultAction(LIST_DEFACTION_EDIT); 291 defEditAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_NAME_0)); 292 defEditAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_HELP_0)); 293 loginCol.addDefaultAction(defEditAction); 294 metadata.addColumn(loginCol); 295 296 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 298 nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0)); 299 nameCol.setWidth("30%"); 300 nameCol.setSorteable(true); 301 metadata.addColumn(nameCol); 302 303 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 305 emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0)); 306 emailCol.setWidth("30%"); 307 emailCol.setSorteable(true); 308 metadata.addColumn(emailCol); 309 310 CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN); 312 lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0)); 313 lastLoginCol.setWidth("20%"); 314 lastLoginCol.setSorteable(true); 315 lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 316 metadata.addColumn(lastLoginCol); 317 } 318 319 322 protected void setIndependentActions(CmsListMetadata metadata) { 323 324 CmsListItemDetails userGroupsDetails = new CmsListItemDetails(LIST_DETAIL_GROUPS); 326 userGroupsDetails.setAtColumn(LIST_COLUMN_LOGIN); 327 userGroupsDetails.setVisible(false); 328 userGroupsDetails.setShowActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_NAME_0)); 329 userGroupsDetails.setShowActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_HELP_0)); 330 userGroupsDetails.setHideActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_NAME_0)); 331 userGroupsDetails.setHideActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_HELP_0)); 332 userGroupsDetails.setName(Messages.get().container(Messages.GUI_USERS_DETAIL_GROUPS_NAME_0)); 333 userGroupsDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 334 Messages.GUI_USERS_DETAIL_GROUPS_NAME_0))); 335 metadata.addItemDetails(userGroupsDetails); 336 337 } 338 339 342 protected void setMultiActions(CmsListMetadata metadata) { 343 344 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN)); 346 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL)); 347 metadata.setSearchAction(searchAction); 348 349 metadata.getIndependentAction(CmsListPrintIAction.LIST_ACTION_ID).setVisible(false); 351 } 352 353 } | Popular Tags |