package org.exoplatform.forum.webui.popup; import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; import org.exoplatform.forum.service.JCRPageList; import org.exoplatform.forum.service.UserProfile; import org.exoplatform.forum.webui.UIForumPageIterator; import org.exoplatform.ks.common.webui.UIPopupAction; import org.exoplatform.ks.common.webui.UIPopupContainer; import org.exoplatform.webui.application.WebuiRequestContext; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.config.annotation.EventConfig; import org.exoplatform.webui.core.UIPopupComponent; import org.exoplatform.webui.core.lifecycle.UIFormLifecycle; import org.exoplatform.webui.event.Event; import org.exoplatform.webui.event.EventListener; import org.exoplatform.webui.event.Event.Phase; import org.exoplatform.webui.form.UIForm; /** * Created by The eXo Platform SARL * Author : Ha Mai Van * ha.mai@exoplatform.com * Sebt 09, 2008 11:29:18 AM */ @ComponentConfig( lifecycle = UIFormLifecycle.class, template = "app:/templates/forum/webui/popup/UIViewResultSearchUser.gtmpl", events = { @EventConfig(listeners = UIViewResultSearchUser.ViewUserActionListener.class), @EventConfig(listeners = UIViewResultSearchUser.CloseActionListener.class,phase = Phase.DECODE) } ) public class UIViewResultSearchUser extends UIForm implements UIPopupComponent { private List<UserProfile> userProfiles = new ArrayList<UserProfile>(); private JCRPageList pageList; private static String FORUM_PAGE_ITERATOR = "ForumUserPageIterator"; private String[] permissionUser = null; private long totalPage = 0; public UIViewResultSearchUser() throws Exception { addChild(UIForumPageIterator.class, null, FORUM_PAGE_ITERATOR); WebuiRequestContext context = WebuiRequestContext.getCurrentInstance(); ResourceBundle res = context.getApplicationResourceBundle(); permissionUser = new String[] { res.getString("UIForumPortlet.label.PermissionAdmin").toLowerCase(), res.getString("UIForumPortlet.label.PermissionModerator").toLowerCase(), res.getString("UIForumPortlet.label.PermissionUser").toLowerCase(), res.getString("UIForumPortlet.label.PermissionGuest").toLowerCase() }; this.setActions(new String[] { "Close" }); } public void setPageListSearch(JCRPageList pageList) { this.pageList = pageList; this.pageList.setPageSize(5); this.getChild(UIForumPageIterator.class).updatePageList(this.pageList); } @SuppressWarnings( { "unused", "unchecked" }) private List<UserProfile> getListUserProfile() throws Exception { UIForumPageIterator pageIterator = this.getChild(UIForumPageIterator.class); int page = pageIterator.getPageSelected(); List<UserProfile> listUserProfile = pageList.getPage(page); pageIterator.setSelectPage(pageList.getCurrentPage()); if (listUserProfile == null) listUserProfile = new ArrayList<UserProfile>(); this.userProfiles = new ArrayList<UserProfile>(); for (UserProfile userProfile : listUserProfile) { this.userProfiles.add(userProfile); } return this.userProfiles; } public void activate() throws Exception { } public void deActivate() throws Exception { } static public class ViewUserActionListener extends EventListener<UIViewResultSearchUser> { public void execute(Event<UIViewResultSearchUser> event) throws Exception { UIViewResultSearchUser uiForm = event.getSource(); String userId = event.getRequestContext().getRequestParameter(OBJECTID); UIPopupContainer popupContainer = uiForm.getAncestorOfType(UIPopupContainer.class); UIModeratorManagementForm moderatorManagementForm = popupContainer.getChild(UIModeratorManagementForm.class); moderatorManagementForm.setValueSearch(userId); popupContainer.getChild(UIPopupAction.class).deActivate(); event.getRequestContext().addUIComponentToUpdateByAjax(popupContainer); } } static public class CloseActionListener extends EventListener<UIViewResultSearchUser> { public void execute(Event<UIViewResultSearchUser> event) throws Exception { UIViewResultSearchUser uiForm = event.getSource(); UIPopupContainer popupContainer = uiForm.getAncestorOfType(UIPopupContainer.class); popupContainer.getChild(UIPopupAction.class).deActivate(); event.getRequestContext().addUIComponentToUpdateByAjax(popupContainer); } } public String[] getPermissionUser() { return permissionUser; } public void setPermissionUser(String[] permissionUser) { this.permissionUser = permissionUser; } public long getTotalPage() { return totalPage; } public void setTotalPage(long totalPage) { this.totalPage = totalPage; } }