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.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsException; 38 import org.opencms.main.CmsRuntimeException; 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.CmsListItem; 44 import org.opencms.workplace.list.CmsListItemDetails; 45 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 46 import org.opencms.workplace.list.CmsListMetadata; 47 import org.opencms.workplace.list.CmsListPrintIAction; 48 import org.opencms.workplace.list.CmsListSearchAction; 49 import org.opencms.workplace.list.I_CmsListFormatter; 50 import org.opencms.workplace.tools.accounts.Messages; 51 52 import java.util.ArrayList ; 53 import java.util.Date ; 54 import java.util.Iterator ; 55 import java.util.List ; 56 import java.util.Locale ; 57 58 import javax.servlet.http.HttpServletRequest ; 59 import javax.servlet.http.HttpServletResponse ; 60 import javax.servlet.jsp.PageContext ; 61 62 71 public class CmsListDemo5 extends A_CmsListDialog { 72 73 74 public static final String LIST_COLUMN_ACTIVATE = "ca"; 75 76 77 public static final String LIST_COLUMN_EMAIL = "cm"; 78 79 80 public static final String LIST_COLUMN_LASTLOGIN = "cl"; 81 82 83 public static final String LIST_COLUMN_LOGIN = "ci"; 84 85 86 public static final String LIST_COLUMN_NAME = "cn"; 87 88 89 public static final String LIST_DETAIL_GROUPS = "dg"; 90 91 92 public static final String LIST_ID = "lsu1"; 93 94 99 public CmsListDemo5(CmsJspActionElement jsp) { 100 101 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null); 102 } 103 104 111 public CmsListDemo5(PageContext context, HttpServletRequest req, HttpServletResponse res) { 112 113 this(new CmsJspActionElement(context, req, res)); 114 } 115 116 119 public void executeListMultiActions() throws CmsRuntimeException { 120 121 throwListUnsupportedActionException(); 122 } 123 124 127 public void executeListSingleActions() { 128 129 throwListUnsupportedActionException(); 130 } 131 132 135 protected void fillDetails(String detailId) { 136 137 List users = getList().getAllContent(); 139 Iterator itUsers = users.iterator(); 140 while (itUsers.hasNext()) { 141 CmsListItem item = (CmsListItem)itUsers.next(); 142 String userName = item.get(LIST_COLUMN_LOGIN).toString(); 143 StringBuffer html = new StringBuffer (512); 144 try { 145 if (detailId.equals(LIST_DETAIL_GROUPS)) { 146 Iterator itGroups = getCms().getGroupsOfUser(userName).iterator(); 148 while (itGroups.hasNext()) { 149 html.append(((CmsGroup)itGroups.next()).getName()); 150 if (itGroups.hasNext()) { 151 html.append("<br>"); 152 } 153 html.append("\n"); 154 } 155 } else { 156 continue; 157 } 158 } catch (Exception e) { 159 } 161 item.set(detailId, html.toString()); 162 } 163 } 164 165 168 protected List getListItems() throws CmsException { 169 170 List ret = new ArrayList (); 171 List users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER); 173 Iterator itUsers = users.iterator(); 174 while (itUsers.hasNext()) { 175 CmsUser user = (CmsUser)itUsers.next(); 176 CmsListItem item = getList().newItem(user.getId().toString()); 177 item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled())); 178 item.set(LIST_COLUMN_LOGIN, user.getName()); 179 item.set(LIST_COLUMN_NAME, user.getFullName()); 180 item.set(LIST_COLUMN_EMAIL, user.getEmail()); 181 item.set(LIST_COLUMN_LASTLOGIN, new Date (user.getLastlogin())); 182 ret.add(item); 183 } 184 return ret; 185 } 186 187 190 protected void initMessages() { 191 192 addMessages(Messages.get().getBundleName()); 194 addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName()); 195 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 196 super.initMessages(); 198 } 199 200 203 protected void setColumns(CmsListMetadata metadata) { 204 205 CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE); 207 actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0)); 208 actCol.setWidth("30"); 209 actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 210 actCol.setSorteable(true); 211 I_CmsListFormatter actFormatter = new I_CmsListFormatter() { 212 213 216 public String format(Object data, Locale locale) { 217 218 if (data instanceof Boolean ) { 219 Boolean val = (Boolean )data; 220 if (val.booleanValue()) { 221 return "<img SRC='" + getResourceUri("list/active.png") + "'>"; 222 } 223 } 224 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>"; 225 } 226 227 }; 228 actCol.setFormatter(actFormatter); 229 metadata.addColumn(actCol); 230 231 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 233 loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0)); 234 loginCol.setWidth("20%"); 235 loginCol.setSorteable(true); 236 237 metadata.addColumn(loginCol); 239 240 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 242 nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0)); 243 nameCol.setWidth("30%"); 244 nameCol.setSorteable(true); 245 metadata.addColumn(nameCol); 246 247 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 249 emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0)); 250 emailCol.setWidth("30%"); 251 emailCol.setSorteable(true); 252 metadata.addColumn(emailCol); 253 254 CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN); 256 lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0)); 257 lastLoginCol.setWidth("20%"); 258 lastLoginCol.setSorteable(true); 259 lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 260 metadata.addColumn(lastLoginCol); 261 } 262 263 266 protected void setIndependentActions(CmsListMetadata metadata) { 267 268 CmsListItemDetails userGroupsDetails = new CmsListItemDetails(LIST_DETAIL_GROUPS); 270 userGroupsDetails.setAtColumn(LIST_COLUMN_LOGIN); 271 userGroupsDetails.setVisible(false); 272 userGroupsDetails.setShowActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_NAME_0)); 273 userGroupsDetails.setShowActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_HELP_0)); 274 userGroupsDetails.setHideActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_NAME_0)); 275 userGroupsDetails.setHideActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_HELP_0)); 276 userGroupsDetails.setName(Messages.get().container(Messages.GUI_USERS_DETAIL_GROUPS_NAME_0)); 277 userGroupsDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 278 Messages.GUI_USERS_DETAIL_GROUPS_NAME_0))); 279 metadata.addItemDetails(userGroupsDetails); 280 281 } 282 283 286 protected void setMultiActions(CmsListMetadata metadata) { 287 288 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN)); 290 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL)); 291 metadata.setSearchAction(searchAction); 292 293 metadata.getIndependentAction(CmsListPrintIAction.LIST_ACTION_ID).setVisible(false); 295 } 296 297 } | Popular Tags |