1 31 32 package org.opencms.workplace.tools.accounts; 33 34 import org.opencms.file.CmsGroup; 35 import org.opencms.i18n.CmsMessageContainer; 36 import org.opencms.jsp.CmsJspActionElement; 37 import org.opencms.main.CmsException; 38 import org.opencms.util.CmsUUID; 39 import org.opencms.workplace.list.A_CmsListDialog; 40 import org.opencms.workplace.list.CmsHtmlList; 41 import org.opencms.workplace.list.CmsListColumnAlignEnum; 42 import org.opencms.workplace.list.CmsListColumnDefinition; 43 import org.opencms.workplace.list.CmsListItem; 44 import org.opencms.workplace.list.CmsListMetadata; 45 import org.opencms.workplace.list.CmsListOrderEnum; 46 import org.opencms.workplace.list.I_CmsListDirectAction; 47 48 import java.util.ArrayList ; 49 import java.util.Iterator ; 50 import java.util.List ; 51 52 61 public abstract class A_CmsUserGroupsList extends A_CmsListDialog { 62 63 64 public static final String LIST_ACTION_ICON = "ai"; 65 66 67 public static final String LIST_ACTION_ICON_DIRECT = "aid"; 68 69 70 public static final String LIST_ACTION_ICON_INDIRECT = "aii"; 71 72 73 public static final String LIST_ACTION_STATE_DIRECT = "asd"; 74 75 76 public static final String LIST_ACTION_STATE_INDIRECT = "asi"; 77 78 79 public static final String LIST_COLUMN_DESCRIPTION = "cd"; 80 81 82 public static final String LIST_COLUMN_ICON = "ci"; 83 84 85 public static final String LIST_COLUMN_NAME = "cn"; 86 87 88 public static final String LIST_COLUMN_STATE = "cs"; 89 90 91 private String m_paramUserid; 92 93 94 private String m_paramUsername; 95 96 104 protected A_CmsUserGroupsList( 105 CmsJspActionElement jsp, 106 String listId, 107 CmsMessageContainer listName, 108 boolean searchable) { 109 110 super(jsp, listId, listName, LIST_COLUMN_NAME, CmsListOrderEnum.ORDER_ASCENDING, searchable ? LIST_COLUMN_NAME 111 : null); 112 } 113 114 117 public CmsHtmlList getList() { 118 119 CmsHtmlList list = super.getList(); 121 if (list != null) { 122 CmsListColumnDefinition col = list.getMetadata().getColumnDefinition(LIST_COLUMN_ICON); 123 if (col != null) { 124 Iterator it = col.getDirectActions().iterator(); 125 while (it.hasNext()) { 126 I_CmsListDirectAction action = (I_CmsListDirectAction)it.next(); 127 if (action instanceof CmsGroupStateAction) { 128 ((CmsGroupStateAction)action).setUserName(m_paramUsername); 129 } 130 } 131 } 132 } 133 return list; 134 } 135 136 141 public String getParamUserid() { 142 143 return m_paramUserid; 144 } 145 146 151 public String getParamUsername() { 152 153 return m_paramUsername; 154 } 155 156 161 public void setParamUserid(String userId) { 162 163 m_paramUserid = userId; 164 } 165 166 169 protected void fillDetails(String detailId) { 170 171 } 173 174 181 protected abstract List getGroups() throws CmsException; 182 183 186 protected List getListItems() throws CmsException { 187 188 List ret = new ArrayList (); 189 190 List groups = getGroups(); 192 Iterator itGroups = groups.iterator(); 193 while (itGroups.hasNext()) { 194 CmsGroup group = (CmsGroup)itGroups.next(); 195 CmsListItem item = getList().newItem(group.getId().toString()); 196 item.set(LIST_COLUMN_NAME, group.getName()); 197 item.set(LIST_COLUMN_DESCRIPTION, group.getDescription()); 198 ret.add(item); 199 } 200 201 return ret; 202 } 203 204 207 protected void initMessages() { 208 209 addMessages(Messages.get().getBundleName()); 211 super.initMessages(); 213 } 214 215 218 protected void setColumns(CmsListMetadata metadata) { 219 220 CmsListColumnDefinition iconCol = new CmsListColumnDefinition(LIST_COLUMN_ICON); 222 iconCol.setName(Messages.get().container(Messages.GUI_GROUPS_LIST_COLS_ICON_0)); 223 iconCol.setHelpText(Messages.get().container(Messages.GUI_GROUPS_LIST_COLS_ICON_HELP_0)); 224 iconCol.setWidth("20"); 225 iconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 226 iconCol.setSorteable(false); 227 setIconAction(iconCol); 229 metadata.addColumn(iconCol); 231 setStateActionCol(metadata); 233 234 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 236 nameCol.setName(Messages.get().container(Messages.GUI_GROUPS_LIST_COLS_NAME_0)); 237 nameCol.setWidth("35%"); 238 setDefaultAction(nameCol); 240 241 metadata.addColumn(nameCol); 243 244 CmsListColumnDefinition descCol = new CmsListColumnDefinition(LIST_COLUMN_DESCRIPTION); 246 descCol.setName(Messages.get().container(Messages.GUI_GROUPS_LIST_COLS_DESCRIPTION_0)); 247 descCol.setWidth("65%"); 248 descCol.setTextWrapping(true); 249 metadata.addColumn(descCol); 251 } 252 253 258 protected abstract void setDefaultAction(CmsListColumnDefinition nameCol); 259 260 265 protected abstract void setIconAction(CmsListColumnDefinition iconCol); 266 267 270 protected void setIndependentActions(CmsListMetadata metadata) { 271 272 } 274 275 280 protected abstract void setStateActionCol(CmsListMetadata metadata); 281 282 285 protected void validateParamaters() throws Exception { 286 287 m_paramUsername = getCms().readUser(new CmsUUID(getParamUserid())).getName(); 289 } 290 } 291 | Popular Tags |