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