/*************************************************************************** * Copyright (C) 2003-2009 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. * **************************************************************************/ package org.exoplatform.ecm.webui.component.admin.templates.clv; import org.exoplatform.ecm.webui.component.admin.UIECMAdminPortlet; 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.UIComponent; import org.exoplatform.webui.core.UIPopupContainer; import org.exoplatform.webui.core.UIPopupWindow; import org.exoplatform.webui.event.Event; import org.exoplatform.webui.event.EventListener; import org.exoplatform.webui.ext.manager.UIAbstractManager; /** * Created by The eXo Platform SARL * Author : Dang Van Minh * minh.dang@exoplatform.com * Jan 22, 2013 * 9:47:27 AM */ @ComponentConfig(template = "system:/groovy/webui/core/UITabPane_New.gtmpl", events = { @EventConfig(listeners = UICLVTemplatesManager.SelectTabActionListener.class) }) public class UICLVTemplatesManager extends UIAbstractManager{ public static final String NEW_TEMPLATE = "CLVTemplatePopup" ; public static final String EDIT_CLV_TEMPLATE = "EditCLVTemplatePopup" ; public static final String CONTENT_TEMPLATE_ID = "ContentTemplateContainer"; public static final String CATE_TEMPLATE_ID = "CateTemplateContainer"; public static final String PAGE_TEMPLATE_ID = "PageTemplateContainer"; public static final String CATE_TEMPLATE_LIST_ID = "CateTemplateList"; public static final String PAGE_TEMPLATE_LIST_ID = "PageTemplateList"; public static final String CONTENT_TEMPLATE_TYPE = "contents"; public static final String CATEGORY_TEMPLATE_TYPE = "category"; public static final String PAGINATOR_TEMPLATE_TYPE = "paginators"; private String selectedTabId = "ContentTemplateContainer"; public UICLVTemplatesManager() throws Exception { UICLVTemplateContainer uiContentTemp = addChild(UICLVTemplateContainer.class, null, CONTENT_TEMPLATE_ID) ; uiContentTemp.getChild(UICLVTemplateList.class).setTemplateFilter(CONTENT_TEMPLATE_TYPE); UICLVTemplateContainer uiCateTemp = addChild(UICLVTemplateContainer.class, null, CATE_TEMPLATE_ID) ; uiCateTemp.getChild(UICLVTemplateList.class).setTemplateFilter(CATEGORY_TEMPLATE_TYPE); uiCateTemp.getChild(UICLVTemplateList.class).setId(CATE_TEMPLATE_LIST_ID); UICLVTemplateContainer uiPageTemp = addChild(UICLVTemplateContainer.class, null, PAGE_TEMPLATE_ID) ; uiPageTemp.getChild(UICLVTemplateList.class).setTemplateFilter(PAGINATOR_TEMPLATE_TYPE); uiPageTemp.getChild(UICLVTemplateList.class).setId(PAGE_TEMPLATE_LIST_ID); setSelectedTab(CONTENT_TEMPLATE_ID); } @Override public void refresh() throws Exception { UICLVTemplateContainer templateContainer = ((UICLVTemplateContainer)getChildById(CONTENT_TEMPLATE_ID)); templateContainer.update(); templateContainer.getChild(UICLVTemplateList.class).getUIPageIterator().setId(CONTENT_TEMPLATE_ID + "PageIterator"); templateContainer.getChild(UICLVTemplateList.class).refresh( templateContainer.getChild(UICLVTemplateList.class).getUIPageIterator().getCurrentPage()); UICLVTemplateContainer templateCateContainer = ((UICLVTemplateContainer)getChildById(CATE_TEMPLATE_ID)); templateCateContainer.update(); templateCateContainer.getChild(UICLVTemplateList.class).getUIPageIterator().setId(CATE_TEMPLATE_ID + "PageIterator"); templateCateContainer.getChild(UICLVTemplateList.class).refresh( templateCateContainer.getChild(UICLVTemplateList.class).getUIPageIterator().getCurrentPage()); UICLVTemplateContainer templatePageContainer = ((UICLVTemplateContainer)getChildById(PAGE_TEMPLATE_ID)); templatePageContainer.update(); templatePageContainer.getChild(UICLVTemplateList.class).getUIPageIterator().setId(PAGE_TEMPLATE_ID + "PageIterator"); templatePageContainer.getChild(UICLVTemplateList.class).refresh( templatePageContainer.getChild(UICLVTemplateList.class).getUIPageIterator().getCurrentPage()); } public String getSelectedTabId() { return selectedTabId; } public void setSelectedTab(String renderTabId) { selectedTabId = renderTabId; } public void setSelectedTab(int index) { selectedTabId = getChild(index - 1).getId(); } public boolean isEditingTemplate() { UIECMAdminPortlet adminPortlet = this.getAncestorOfType(UIECMAdminPortlet.class); UIPopupContainer popupContainer = adminPortlet.getChild(UIPopupContainer.class); UIPopupWindow uiPopup = popupContainer.getChild(UIPopupWindow.class); uiPopup.setId(EDIT_CLV_TEMPLATE); return (uiPopup != null && uiPopup.isShow() && uiPopup.isRendered()); } static public class SelectTabActionListener extends EventListener<UICLVTemplatesManager> { public void execute(Event<UICLVTemplatesManager> event) throws Exception { WebuiRequestContext context = event.getRequestContext(); String renderTab = context.getRequestParameter(UIComponent.OBJECTID); if (renderTab == null) return; event.getSource().setSelectedTab(renderTab); WebuiRequestContext parentContext = (WebuiRequestContext)context.getParentAppRequestContext(); if (parentContext != null) { parentContext.setResponseComplete(true); } else { context.setResponseComplete(true); } } } }