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.CmsListIndependentAction; 49 import org.opencms.workplace.list.CmsListItem; 50 import org.opencms.workplace.list.CmsListItemDetails; 51 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 52 import org.opencms.workplace.list.CmsListMetadata; 53 import org.opencms.workplace.list.CmsListMultiAction; 54 import org.opencms.workplace.list.CmsListPrintIAction; 55 import org.opencms.workplace.list.CmsListSearchAction; 56 import org.opencms.workplace.list.I_CmsListFormatter; 57 import org.opencms.workplace.tools.accounts.Messages; 58 59 import java.util.ArrayList ; 60 import java.util.Date ; 61 import java.util.HashMap ; 62 import java.util.Iterator ; 63 import java.util.List ; 64 import java.util.Locale ; 65 import java.util.Map ; 66 67 import javax.servlet.http.HttpServletRequest ; 68 import javax.servlet.http.HttpServletResponse ; 69 import javax.servlet.jsp.PageContext ; 70 71 80 public class CmsListDemo9 extends A_CmsListDialog { 81 82 83 public static final String LIST_ACTION_DELETE = "ad"; 84 85 86 public static final String LIST_COLUMN_ACTIVATE = "ca"; 87 88 89 public static final String LIST_COLUMN_DELETE = "cd"; 90 91 92 public static final String LIST_COLUMN_EMAIL = "cm"; 93 94 95 public static final String LIST_COLUMN_LASTLOGIN = "cl"; 96 97 98 public static final String LIST_COLUMN_LOGIN = "ci"; 99 100 101 public static final String LIST_COLUMN_NAME = "cn"; 102 103 104 public static final String LIST_DEFACTION_EDIT = "de"; 105 106 107 public static final String LIST_DETAIL_GROUPS = "dg"; 108 109 110 public static final String LIST_IACTION_REFRESH = "ir"; 111 112 113 public static final String LIST_ID = "lsu1"; 114 115 116 public static final String LIST_MACTION_ACTIVATE = "ma"; 117 118 119 private static final String PARAM_USERID = "userid"; 120 121 126 public CmsListDemo9(CmsJspActionElement jsp) { 127 128 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null); 129 } 130 131 138 public CmsListDemo9(PageContext context, HttpServletRequest req, HttpServletResponse res) { 139 140 this(new CmsJspActionElement(context, req, res)); 141 } 142 143 146 public void executeListIndepActions() { 147 148 if (getParamListAction().equals(LIST_IACTION_REFRESH)) { 149 refreshList(); 150 } 151 super.executeListIndepActions(); 152 } 153 154 157 public void executeListMultiActions() throws CmsRuntimeException { 158 159 if (getParamListAction().equals(LIST_MACTION_ACTIVATE)) { 160 try { 162 Iterator itItems = getSelectedItems().iterator(); 163 while (itItems.hasNext()) { 164 CmsListItem listItem = (CmsListItem)itItems.next(); 165 String usrName = listItem.get(LIST_COLUMN_LOGIN).toString(); 166 CmsUser user = getCms().readUser(usrName); 167 if (!user.isEnabled()) { 168 user.setEnabled(true); 169 } 171 } 172 } catch (CmsException e) { 173 throw new CmsRuntimeException(Messages.get().container(Messages.ERR_ACTIVATE_SELECTED_USERS_0), e); 174 } 175 } else { 177 throwListUnsupportedActionException(); 178 } 179 } 180 181 184 public void executeListSingleActions() { 185 186 CmsListItem item = getSelectedItem(); 187 CmsUUID userId = new CmsUUID(item.getId()); 188 189 Map params = new HashMap (); 190 params.put(PARAM_USERID, userId); 191 params.put(CmsDialog.PARAM_ACTION, CmsDialog.DIALOG_INITIAL); 193 if (getParamListAction().equals(LIST_DEFACTION_EDIT)) { 194 } else if (LIST_ACTION_DELETE.equals(getParamListAction())) { 197 getList().removeItem(userId.toString(), getLocale()); 201 } else { 202 throwListUnsupportedActionException(); 203 } 204 listSave(); 205 } 206 207 210 protected void fillDetails(String detailId) { 211 212 List users = getList().getAllContent(); 214 Iterator itUsers = users.iterator(); 215 while (itUsers.hasNext()) { 216 CmsListItem item = (CmsListItem)itUsers.next(); 217 String userName = item.get(LIST_COLUMN_LOGIN).toString(); 218 StringBuffer html = new StringBuffer (512); 219 try { 220 if (detailId.equals(LIST_DETAIL_GROUPS)) { 221 Iterator itGroups = getCms().getGroupsOfUser(userName).iterator(); 223 while (itGroups.hasNext()) { 224 html.append(((CmsGroup)itGroups.next()).getName()); 225 if (itGroups.hasNext()) { 226 html.append("<br>"); 227 } 228 html.append("\n"); 229 } 230 } else { 231 continue; 232 } 233 } catch (Exception e) { 234 } 236 item.set(detailId, html.toString()); 237 } 238 } 239 240 243 protected List getListItems() throws CmsException { 244 245 List ret = new ArrayList (); 246 List users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER); 248 Iterator itUsers = users.iterator(); 249 while (itUsers.hasNext()) { 250 CmsUser user = (CmsUser)itUsers.next(); 251 CmsListItem item = getList().newItem(user.getId().toString()); 252 item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled())); 253 item.set(LIST_COLUMN_LOGIN, user.getName()); 254 item.set(LIST_COLUMN_NAME, user.getFullName()); 255 item.set(LIST_COLUMN_EMAIL, user.getEmail()); 256 item.set(LIST_COLUMN_LASTLOGIN, new Date (user.getLastlogin())); 257 ret.add(item); 258 } 259 return ret; 260 } 261 262 265 protected void initMessages() { 266 267 addMessages(Messages.get().getBundleName()); 269 addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName()); 270 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 271 super.initMessages(); 273 } 274 275 278 protected void setColumns(CmsListMetadata metadata) { 279 280 CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE); 282 actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0)); 283 actCol.setWidth("30"); 284 actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 285 actCol.setSorteable(true); 286 I_CmsListFormatter actFormatter = new I_CmsListFormatter() { 287 288 291 public String format(Object data, Locale locale) { 292 293 if (data instanceof Boolean ) { 294 Boolean val = (Boolean )data; 295 if (val.booleanValue()) { 296 return "<img SRC='" + getResourceUri("list/active.png") + "'>"; 297 } 298 } 299 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>"; 300 } 301 302 }; 303 actCol.setFormatter(actFormatter); 304 metadata.addColumn(actCol); 305 306 CmsListColumnDefinition deleteCol = new CmsListColumnDefinition(LIST_COLUMN_DELETE); 308 deleteCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_0)); 309 deleteCol.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_COLS_DELETE_HELP_0)); 310 deleteCol.setWidth("20"); 311 deleteCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 312 deleteCol.setSorteable(false); 313 CmsListDirectAction deleteAction = new CmsListDirectAction(LIST_ACTION_DELETE); 315 deleteAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_NAME_0)); 316 deleteAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_ACTION_DELETE_HELP_0)); 317 deleteAction.setConfirmationMessage(new CmsMessageContainer(null, "Do you want to delete the selected user?")); 318 deleteAction.setIconPath(ICON_DELETE); 319 deleteCol.addDirectAction(deleteAction); 320 metadata.addColumn(deleteCol); 321 322 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 324 loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0)); 325 loginCol.setWidth("20%"); 326 loginCol.setSorteable(true); 327 CmsListDefaultAction defEditAction = new CmsListDefaultAction(LIST_DEFACTION_EDIT); 329 defEditAction.setName(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_NAME_0)); 330 defEditAction.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_DEFACTION_EDIT_HELP_0)); 331 loginCol.addDefaultAction(defEditAction); 332 metadata.addColumn(loginCol); 333 334 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 336 nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0)); 337 nameCol.setWidth("30%"); 338 nameCol.setSorteable(true); 339 metadata.addColumn(nameCol); 340 341 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 343 emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0)); 344 emailCol.setWidth("30%"); 345 emailCol.setSorteable(true); 346 metadata.addColumn(emailCol); 347 348 CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN); 350 lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0)); 351 lastLoginCol.setWidth("20%"); 352 lastLoginCol.setSorteable(true); 353 lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 354 metadata.addColumn(lastLoginCol); 355 } 356 357 360 protected void setIndependentActions(CmsListMetadata metadata) { 361 362 CmsListItemDetails userGroupsDetails = new CmsListItemDetails(LIST_DETAIL_GROUPS); 364 userGroupsDetails.setAtColumn(LIST_COLUMN_LOGIN); 365 userGroupsDetails.setVisible(false); 366 userGroupsDetails.setShowActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_NAME_0)); 367 userGroupsDetails.setShowActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_HELP_0)); 368 userGroupsDetails.setHideActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_NAME_0)); 369 userGroupsDetails.setHideActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_HELP_0)); 370 userGroupsDetails.setName(Messages.get().container(Messages.GUI_USERS_DETAIL_GROUPS_NAME_0)); 371 userGroupsDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 372 Messages.GUI_USERS_DETAIL_GROUPS_NAME_0))); 373 metadata.addItemDetails(userGroupsDetails); 374 375 CmsListIndependentAction refreshAction = new CmsListIndependentAction(LIST_IACTION_REFRESH); 377 refreshAction.setName(new CmsMessageContainer(null, "Refresh")); 378 refreshAction.setHelpText(new CmsMessageContainer(null, "Click here to refresh the list")); 379 refreshAction.setIconPath(ICON_MULTI_ADD); 380 metadata.addIndependentAction(refreshAction); 381 } 382 383 386 protected void setMultiActions(CmsListMetadata metadata) { 387 388 CmsListMultiAction activateUser = new CmsListMultiAction(LIST_MACTION_ACTIVATE); 390 activateUser.setName(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_NAME_0)); 391 activateUser.setHelpText(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_HELP_0)); 392 activateUser.setConfirmationMessage(Messages.get().container(Messages.GUI_USERS_LIST_MACTION_ACTIVATE_CONF_0)); 393 activateUser.setIconPath(ICON_MULTI_ACTIVATE); 394 metadata.addMultiAction(activateUser); 395 396 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN)); 398 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL)); 399 metadata.setSearchAction(searchAction); 400 401 metadata.getIndependentAction(CmsListPrintIAction.LIST_ACTION_ID).setVisible(false); 403 } 404 405 } | Popular Tags |