package com.idega.core.user.presentation; import java.util.Iterator; import java.util.List; import java.util.Vector; import com.idega.core.user.business.UserBusiness; import com.idega.core.user.business.UserGroupBusiness; import com.idega.core.user.data.User; import com.idega.data.EntityFinder; import com.idega.presentation.IWContext; import com.idega.presentation.Page; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CloseButton; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.Window; import com.idega.user.data.UserBMPBean; /** * Title: User * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <a href="mailto:gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class BasicUserOverview extends Page { private static final String PARAMETER_DELETE_USER = "delte_ic_user"; private String styledLinkClass = "styledLinkGeneral"; public BasicUserOverview(IWContext iwc) throws Exception { //this.empty(); //this.add(this.getUsers(iwc)); } public BasicUserOverview(){ super(); } public Table getUsers(IWContext iwc) throws Exception{ List users = EntityFinder.findAllOrdered(UserBMPBean.getStaticInstance(),UserBMPBean.getColumnNameFirstName()); Table userTable = null; List adminUsers = UserGroupBusiness.getUsersContainedDirectlyRelated(iwc.getAccessController().getPermissionGroupAdministrator()); if(users != null){ if(adminUsers == null){ adminUsers = new Vector(0); } userTable = new Table(3,(users.size()>8)?users.size():8); userTable.setCellspacing(0); userTable.setHorizontalZebraColored("D8D4CD","C3BEB5"); userTable.setWidth("100%"); for (int i = 1; i <= userTable.getRows() ; i++) { userTable.setHeight(i,"20"); } int line = 1; for (int i = 0; i < users.size(); i++) { User tempUser = (User)users.get(i); if(tempUser != null){ boolean userIsSuperAdmin = iwc.getAccessController().getAdministratorUser().equals(tempUser); boolean delete = false; if(!userIsSuperAdmin){ Link aLink = new Link(new Text(tempUser.getName())); //added for a new link style aLink.setStyleClass(this.styledLinkClass); aLink.setWindowToOpen(UserPropertyWindow.class); aLink.addParameter(UserPropertyWindow.PARAMETERSTRING_USER_ID, tempUser.getID()); userTable.add(aLink,2,line); delete = true; line++; }else if(userIsSuperAdmin && iwc.isSuperAdmin() ){ // Text aText = new Text(tempUser.getName()); // userTable.add(aText,2,i+1); Link aLink = new Link(new Text(tempUser.getName())); //added for a new link style aLink.setStyleClass(this.styledLinkClass); aLink.setWindowToOpen(AdministratorPropertyWindow.class); aLink.addParameter(UserPropertyWindow.PARAMETERSTRING_USER_ID, tempUser.getID()); userTable.add(aLink,2,line); delete = true; line++; } if(delete && !adminUsers.contains(tempUser) && !userIsSuperAdmin && iwc.getAccessController().isAdmin(iwc)){ Link delLink = new Link(new Text("Delete")); delLink.setStyleClass(this.styledLinkClass); delLink.setWindowToOpen(ConfirmWindow.class); delLink.addParameter(BasicUserOverview.PARAMETER_DELETE_USER , tempUser.getID()); userTable.add(delLink,3,line-1); } } } } return userTable; } public void main(IWContext iwc) throws Exception { this.empty(); this.add(this.getUsers(iwc)); this.getParentPage().setAllMargins(0); this.getParentPage().setBackgroundColor("#d4d0c8"); } public static class ConfirmWindow extends Window{ public Text question; public Form myForm; public SubmitButton confirm; public CloseButton close; public Table myTable = null; public static final String PARAMETER_CONFIRM = "confirm"; public Vector parameters; public ConfirmWindow(){ super("ConfirmWindow",300,130); super.setBackgroundColor("#d4d0c8"); super.setScrollbar(false); super.setAllMargins(0); this.question = Text.getBreak(); this.myForm = new Form(); this.parameters = new Vector(); this.confirm = new SubmitButton(ConfirmWindow.PARAMETER_CONFIRM," Yes "); this.close = new CloseButton(" No "); // close.setOnFocus(); initialze(); } public void lineUpElements(){ this.myTable = new Table(2,2); this.myTable.setWidth("100%"); this.myTable.setHeight("100%"); this.myTable.setCellpadding(5); this.myTable.setCellspacing(5); //myTable.setBorder(1); this.myTable.mergeCells(1,1,2,1); this.myTable.add(this.question,1,1); this.myTable.add(this.confirm,1,2); this.myTable.add(this.close,2,2); this.myTable.setAlignment(1,1,"center"); // myTable.setAlignment(2,1,"center"); this.myTable.setAlignment(1,2,"right"); this.myTable.setAlignment(2,2,"left"); this.myTable.setVerticalAlignment(1,1,"middle"); this.myTable.setVerticalAlignment(1,2,"middle"); this.myTable.setVerticalAlignment(2,2,"middle"); this.myTable.setHeight(2,"30%"); this.myForm.add(this.myTable); } public void setQuestion(Text Question){ this.question = Question; } /*abstract*/ public void initialze(){ this.setQuestion(new Text("Are you sure you want to delete this user?")); this.maintainParameter(BasicUserOverview.PARAMETER_DELETE_USER); } public void maintainParameter(String parameter){ this.parameters.add(parameter); } /*abstract*/ public void actionPerformed(IWContext iwc)throws Exception{ String userDelId = iwc.getParameter(BasicUserOverview.PARAMETER_DELETE_USER); if(userDelId != null){ UserBusiness.deleteUser(Integer.parseInt(userDelId)); } } public void _main(IWContext iwc) throws Exception { Iterator iter = this.parameters.iterator(); while (iter.hasNext()) { String item = (String)iter.next(); this.myForm.maintainParameter(item); } String confirmThis = iwc.getParameter(ConfirmWindow.PARAMETER_CONFIRM); if(confirmThis != null){ this.actionPerformed(iwc); this.setParentToReload(); this.close(); } else{ this.empty(); if(this.myTable == null){ lineUpElements(); } this.add(this.myForm); } super._main(iwc); } } } //Class end