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.CmsWorkplaceSettings; 40 import org.opencms.workplace.list.A_CmsListDialog; 41 import org.opencms.workplace.list.CmsListColumnAlignEnum; 42 import org.opencms.workplace.list.CmsListColumnDefinition; 43 import org.opencms.workplace.list.CmsListDateMacroFormatter; 44 import org.opencms.workplace.list.CmsListItem; 45 import org.opencms.workplace.list.CmsListItemDetails; 46 import org.opencms.workplace.list.CmsListItemDetailsFormatter; 47 import org.opencms.workplace.list.CmsListMetadata; 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.io.IOException ; 53 import java.util.ArrayList ; 54 import java.util.Date ; 55 import java.util.Iterator ; 56 import java.util.List ; 57 import java.util.Locale ; 58 59 import javax.servlet.ServletException ; 60 import javax.servlet.http.HttpServletRequest ; 61 import javax.servlet.http.HttpServletResponse ; 62 import javax.servlet.jsp.JspException ; 63 import javax.servlet.jsp.PageContext ; 64 65 74 public class CmsListDemo13 extends A_CmsListDialog { 75 76 77 public static final String LIST_COLUMN_ACTIVATE = "ca"; 78 79 80 public static final String LIST_COLUMN_EMAIL = "cm"; 81 82 83 public static final String LIST_COLUMN_LASTLOGIN = "cl"; 84 85 86 public static final String LIST_COLUMN_LOGIN = "ci"; 87 88 89 public static final String LIST_COLUMN_NAME = "cn"; 90 91 92 public static final String LIST_DETAIL_GROUPS = "dg"; 93 94 95 public static final String LIST_ID = "lsu1"; 96 97 102 public CmsListDemo13(CmsJspActionElement jsp) { 103 104 super(jsp, LIST_ID, Messages.get().container(Messages.GUI_USERS_LIST_NAME_0), null, null, null); 105 } 106 107 114 public CmsListDemo13(PageContext context, HttpServletRequest req, HttpServletResponse res) { 115 116 this(new CmsJspActionElement(context, req, res)); 117 } 118 119 122 public void actionDialog() throws JspException , ServletException , IOException { 123 124 switch (getAction()) { 125 case ACTION_OK: 126 break; 128 case ACTION_CANCEL: 129 setAction(ACTION_CANCEL); 130 actionCloseDialog(); 131 break; 132 default: 133 super.actionDialog(); 134 } 135 } 136 137 140 protected String customHtmlEnd() { 141 142 StringBuffer result = new StringBuffer (512); 143 result.append(super.customHtmlEnd()); 144 result.append(dialogSpacer()); 145 result.append("<form name='actions' method='post' action='"); 146 result.append(getDialogRealUri()); 147 result.append("' class='nomargin' onsubmit=\"return submitAction('ok', null, 'actions');\">\n"); 148 result.append(allParamsAsHidden()); 149 result.append(dialogButtonRow(HTML_START)); 150 dialogButtonsHtml(result, BUTTON_OK, ""); 151 dialogButtonsHtml(result, BUTTON_CANCEL, ""); 152 result.append(dialogButtonRow(HTML_END)); 153 result.append("</form>\n"); 154 return result.toString(); 155 } 156 157 160 protected String customHtmlStart() { 161 162 StringBuffer result = new StringBuffer (512); 163 result.append(dialogBlockStart("Demo block title")); result.append("some blah-blah:\n"); 165 result.append("nqfqfoi qwemofmfq qmwfomfq fqofepqo fqmpfoqe qdxmpdqwmqwp dqwpq df; " 166 + "kpqwef qp fdqpfqkm mxaoi wcvm qc o;ewmv wvj wemv w iomvwe mv " 167 + "ewoi;vmew vw eom evwm ew oim vew wv iom oiew jom vewoim vwoim vwe vewoimvew qjceeviwlkdk"); 168 result.append(dialogBlockEnd()); 169 return result.toString(); 170 } 171 172 175 protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) { 176 177 super.initWorkplaceRequestValues(settings, request); 178 if (DIALOG_OK.equals(getParamAction())) { 179 setAction(ACTION_OK); 180 } 181 } 182 183 186 public void executeListMultiActions() throws CmsRuntimeException { 187 188 throwListUnsupportedActionException(); 189 } 190 191 194 public void executeListSingleActions() { 195 196 throwListUnsupportedActionException(); 197 } 198 199 202 protected void fillDetails(String detailId) { 203 204 List users = getList().getAllContent(); 206 Iterator itUsers = users.iterator(); 207 while (itUsers.hasNext()) { 208 CmsListItem item = (CmsListItem)itUsers.next(); 209 String userName = item.get(LIST_COLUMN_LOGIN).toString(); 210 StringBuffer html = new StringBuffer (512); 211 try { 212 if (detailId.equals(LIST_DETAIL_GROUPS)) { 213 Iterator itGroups = getCms().getGroupsOfUser(userName).iterator(); 215 while (itGroups.hasNext()) { 216 html.append(((CmsGroup)itGroups.next()).getName()); 217 if (itGroups.hasNext()) { 218 html.append("<br>"); 219 } 220 html.append("\n"); 221 } 222 } else { 223 continue; 224 } 225 } catch (Exception e) { 226 } 228 item.set(detailId, html.toString()); 229 } 230 } 231 232 235 protected List getListItems() throws CmsException { 236 237 List ret = new ArrayList (); 238 List users = getCms().getUsers(CmsUser.USER_TYPE_SYSTEMUSER); 240 Iterator itUsers = users.iterator(); 241 while (itUsers.hasNext()) { 242 CmsUser user = (CmsUser)itUsers.next(); 243 CmsListItem item = getList().newItem(user.getId().toString()); 244 item.set(LIST_COLUMN_ACTIVATE, Boolean.valueOf(user.isEnabled())); 245 item.set(LIST_COLUMN_LOGIN, user.getName()); 246 item.set(LIST_COLUMN_NAME, user.getFullName()); 247 item.set(LIST_COLUMN_EMAIL, user.getEmail()); 248 item.set(LIST_COLUMN_LASTLOGIN, new Date (user.getLastlogin())); 249 ret.add(item); 250 } 251 return ret; 252 } 253 254 257 protected void initMessages() { 258 259 addMessages(Messages.get().getBundleName()); 261 addMessages(org.opencms.workplace.Messages.get().getBundleName()); 262 addMessages(org.opencms.workplace.demos.list.Messages.get().getBundleName()); 263 addMessages(org.opencms.workplace.demos.Messages.get().getBundleName()); 264 super.initMessages(); 266 } 267 268 271 protected void setColumns(CmsListMetadata metadata) { 272 273 CmsListColumnDefinition actCol = new CmsListColumnDefinition(LIST_COLUMN_ACTIVATE); 275 actCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_ACTIVATE_0)); 276 actCol.setWidth("30"); 277 actCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 278 actCol.setSorteable(true); 279 I_CmsListFormatter actFormatter = new I_CmsListFormatter() { 280 281 284 public String format(Object data, Locale locale) { 285 286 if (data instanceof Boolean ) { 287 Boolean val = (Boolean )data; 288 if (val.booleanValue()) { 289 return "<img SRC='" + getResourceUri("list/active.png") + "'>"; 290 } 291 } 292 return "<img SRC='" + getResourceUri("list/inactive.png") + "'>"; 293 } 294 295 }; 296 actCol.setFormatter(actFormatter); 297 metadata.addColumn(actCol); 298 299 CmsListColumnDefinition loginCol = new CmsListColumnDefinition(LIST_COLUMN_LOGIN); 301 loginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LOGIN_0)); 302 loginCol.setWidth("20%"); 303 loginCol.setSorteable(true); 304 305 metadata.addColumn(loginCol); 307 308 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 310 nameCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_USERNAME_0)); 311 nameCol.setWidth("30%"); 312 nameCol.setSorteable(true); 313 metadata.addColumn(nameCol); 314 315 CmsListColumnDefinition emailCol = new CmsListColumnDefinition(LIST_COLUMN_EMAIL); 317 emailCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_EMAIL_0)); 318 emailCol.setWidth("30%"); 319 emailCol.setSorteable(true); 320 metadata.addColumn(emailCol); 321 322 CmsListColumnDefinition lastLoginCol = new CmsListColumnDefinition(LIST_COLUMN_LASTLOGIN); 324 lastLoginCol.setName(Messages.get().container(Messages.GUI_USERS_LIST_COLS_LASTLOGIN_0)); 325 lastLoginCol.setWidth("20%"); 326 lastLoginCol.setSorteable(true); 327 lastLoginCol.setFormatter(CmsListDateMacroFormatter.getDefaultDateFormatter()); 328 metadata.addColumn(lastLoginCol); 329 } 330 331 334 protected void setIndependentActions(CmsListMetadata metadata) { 335 336 CmsListItemDetails userGroupsDetails = new CmsListItemDetails(LIST_DETAIL_GROUPS); 338 userGroupsDetails.setAtColumn(LIST_COLUMN_LOGIN); 339 userGroupsDetails.setVisible(false); 340 userGroupsDetails.setShowActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_NAME_0)); 341 userGroupsDetails.setShowActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_SHOW_GROUPS_HELP_0)); 342 userGroupsDetails.setHideActionName(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_NAME_0)); 343 userGroupsDetails.setHideActionHelpText(Messages.get().container(Messages.GUI_USERS_DETAIL_HIDE_GROUPS_HELP_0)); 344 userGroupsDetails.setName(Messages.get().container(Messages.GUI_USERS_DETAIL_GROUPS_NAME_0)); 345 userGroupsDetails.setFormatter(new CmsListItemDetailsFormatter(Messages.get().container( 346 Messages.GUI_USERS_DETAIL_GROUPS_NAME_0))); 347 metadata.addItemDetails(userGroupsDetails); 348 349 } 350 351 354 protected void setMultiActions(CmsListMetadata metadata) { 355 356 CmsListSearchAction searchAction = new CmsListSearchAction(metadata.getColumnDefinition(LIST_COLUMN_LOGIN)); 358 searchAction.addColumn(metadata.getColumnDefinition(LIST_COLUMN_EMAIL)); 359 metadata.setSearchAction(searchAction); 360 } 361 362 } | Popular Tags |