1 31 32 package org.opencms.workplace.commons; 33 34 import org.opencms.file.CmsGroup; 35 import org.opencms.jsp.CmsJspActionElement; 36 import org.opencms.main.CmsException; 37 import org.opencms.main.CmsRuntimeException; 38 import org.opencms.security.CmsPrincipal; 39 import org.opencms.util.CmsStringUtil; 40 import org.opencms.workplace.list.A_CmsListDefaultJsAction; 41 import org.opencms.workplace.list.A_CmsListDialog; 42 import org.opencms.workplace.list.CmsListColumnAlignEnum; 43 import org.opencms.workplace.list.CmsListColumnDefinition; 44 import org.opencms.workplace.list.CmsListDefaultAction; 45 import org.opencms.workplace.list.CmsListDirectAction; 46 import org.opencms.workplace.list.CmsListItem; 47 import org.opencms.workplace.list.CmsListMetadata; 48 import org.opencms.workplace.list.CmsListOrderEnum; 49 import org.opencms.workplace.tools.CmsToolMacroResolver; 50 51 import java.util.ArrayList ; 52 import java.util.Iterator ; 53 import java.util.List ; 54 55 import javax.servlet.http.HttpServletRequest ; 56 import javax.servlet.http.HttpServletResponse ; 57 import javax.servlet.jsp.PageContext ; 58 59 68 public class CmsGroupSelectionList extends A_CmsListDialog { 69 70 71 public static final String LIST_ACTION_ICON = "ai"; 72 73 74 public static final String LIST_ACTION_SELECT = "js"; 75 76 77 public static final String LIST_COLUMN_ICON = "ci"; 78 79 80 public static final String LIST_COLUMN_NAME = "cn"; 81 82 83 public static final String LIST_ID = "lug"; 84 85 86 private String m_paramFlags; 87 88 89 private String m_paramUser; 90 91 96 public CmsGroupSelectionList(CmsJspActionElement jsp) { 97 98 super( 99 jsp, 100 LIST_ID, 101 Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_NAME_0), 102 LIST_COLUMN_NAME, 103 CmsListOrderEnum.ORDER_ASCENDING, 104 LIST_COLUMN_NAME); 105 } 106 107 114 public CmsGroupSelectionList(PageContext context, HttpServletRequest req, HttpServletResponse res) { 115 116 this(new CmsJspActionElement(context, req, res)); 117 } 118 119 122 public String dialogTitle() { 123 124 StringBuffer html = new StringBuffer (512); 126 html.append("<div class='screenTitle'>\n"); 127 html.append("\t<table width='100%' cellspacing='0'>\n"); 128 html.append("\t\t<tr>\n"); 129 html.append("\t\t\t<td>\n"); 130 if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(getParamUser())) { 131 html.append(Messages.get().getBundle(getLocale()).key( 132 Messages.GUI_GROUPSELECTION_USER_TITLE_1, 133 getParamUser())); 134 } else { 135 html.append(Messages.get().getBundle(getLocale()).key(Messages.GUI_GROUPSELECTION_INTRO_TITLE_0)); 136 } 137 html.append("\n\t\t\t</td>"); 138 html.append("\t\t</tr>\n"); 139 html.append("\t</table>\n"); 140 html.append("</div>\n"); 141 return CmsToolMacroResolver.resolveMacros(html.toString(), this); 142 } 143 144 147 public void executeListMultiActions() throws CmsRuntimeException { 148 149 throwListUnsupportedActionException(); 150 } 151 152 155 public void executeListSingleActions() throws CmsRuntimeException { 156 157 throwListUnsupportedActionException(); 158 } 159 160 165 public String getParamFlags() { 166 167 return m_paramFlags; 168 } 169 170 175 public String getParamUser() { 176 177 return m_paramUser; 178 } 179 180 185 public void setParamFlags(String flags) { 186 187 m_paramFlags = flags; 188 } 189 190 195 public void setParamUser(String userName) { 196 197 m_paramUser = userName; 198 } 199 200 203 protected void fillDetails(String detailId) { 204 205 } 207 208 215 protected List getGroups() throws CmsException { 216 217 List ret = new ArrayList (); 218 if (getParamUser() != null) { 219 ret.addAll(getCms().getGroupsOfUser(getParamUser())); 220 } else { 221 ret.addAll(getCms().getGroups()); 222 } 223 if (getParamFlags() != null) { 224 int flags = Integer.parseInt(getParamFlags()); 225 return CmsPrincipal.filterFlag(ret, flags); 226 } 227 return ret; 228 } 229 230 233 protected List getListItems() throws CmsException { 234 235 List ret = new ArrayList (); 236 237 List groups = getGroups(); 239 Iterator itGroups = groups.iterator(); 240 while (itGroups.hasNext()) { 241 CmsGroup group = (CmsGroup)itGroups.next(); 242 CmsListItem item = getList().newItem(group.getId().toString()); 243 item.set(LIST_COLUMN_NAME, group.getName()); 244 ret.add(item); 245 } 246 return ret; 247 } 248 249 252 protected void setColumns(CmsListMetadata metadata) { 253 254 CmsListColumnDefinition iconCol = new CmsListColumnDefinition(LIST_COLUMN_ICON); 256 iconCol.setName(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_COLS_ICON_0)); 257 iconCol.setHelpText(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_COLS_ICON_HELP_0)); 258 iconCol.setWidth("20"); 259 iconCol.setAlign(CmsListColumnAlignEnum.ALIGN_CENTER); 260 iconCol.setSorteable(false); 261 CmsListDirectAction iconAction = new CmsListDirectAction(LIST_ACTION_ICON); 263 iconAction.setName(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_ICON_NAME_0)); 264 iconAction.setHelpText(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_ICON_HELP_0)); 265 iconAction.setIconPath("buttons/group.png"); 266 iconAction.setEnabled(false); 267 iconCol.addDirectAction(iconAction); 268 metadata.addColumn(iconCol); 270 271 CmsListColumnDefinition nameCol = new CmsListColumnDefinition(LIST_COLUMN_NAME); 273 nameCol.setName(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_COLS_NAME_0)); 274 nameCol.setWidth("100%"); 275 CmsListDefaultAction selectAction = new A_CmsListDefaultJsAction(LIST_ACTION_SELECT) { 276 277 280 public String jsCode() { 281 282 return "window.opener.setGroupFormValue('" 283 + getItem().get(LIST_COLUMN_NAME) 284 + "'); window.opener.focus(); window.close();"; 285 } 286 }; 287 selectAction.setName(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_ACTION_SELECT_NAME_0)); 288 selectAction.setHelpText(Messages.get().container(Messages.GUI_GROUPSELECTION_LIST_ACTION_SELECT_HELP_0)); 289 nameCol.addDefaultAction(selectAction); 290 metadata.addColumn(nameCol); 292 } 293 294 297 protected void setIndependentActions(CmsListMetadata metadata) { 298 299 } 301 302 305 protected void setMultiActions(CmsListMetadata metadata) { 306 307 } 309 310 313 protected void validateParamaters() throws Exception { 314 315 try { 316 getCms().readUser(getParamUser()).getName(); 317 } catch (Exception e) { 318 setParamUser(null); 319 } 320 try { 321 Integer.valueOf(getParamFlags()); 322 } catch (Throwable e) { 323 setParamFlags(null); 324 } 325 } 326 } 327 | Popular Tags |