/* * Copyright (C) 2003-2007 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; import javax.jcr.RepositoryException; import javax.portlet.PortletPreferences; import javax.portlet.PortletRequest; import org.exoplatform.ecm.webui.component.admin.unlock.UIUnLockManager; import org.exoplatform.ecm.webui.utils.Utils; import org.exoplatform.services.cms.impl.DMSConfiguration; import org.exoplatform.services.cms.impl.DMSRepositoryConfiguration; import org.exoplatform.services.jcr.RepositoryService; import org.exoplatform.services.jcr.core.ManageableRepository; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; import org.exoplatform.services.wcm.utils.WCMCoreUtils; import org.exoplatform.webui.application.WebuiApplication; import org.exoplatform.webui.application.WebuiRequestContext; import org.exoplatform.webui.application.portlet.PortletRequestContext; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.config.annotation.EventConfig; import org.exoplatform.webui.core.UIPopupContainer; import org.exoplatform.webui.core.UIPopupWindow; import org.exoplatform.webui.core.UIPortletApplication; import org.exoplatform.webui.core.lifecycle.UIApplicationLifecycle; import org.exoplatform.webui.event.Event; import org.exoplatform.webui.event.EventListener; /** * Created by The eXo Platform SARL * Author : Tran The Trong * trongtt@exoplatform.com * Jul 27, 2006 */ @ComponentConfig( lifecycle = UIApplicationLifecycle.class, template = "app:/groovy/webui/component/admin/UIECMAdminPortlet.gtmpl", events = { @EventConfig(listeners = UIECMAdminPortlet.ShowHideActionListener.class)} ) public class UIECMAdminPortlet extends UIPortletApplication { /** * Logger. */ private static final Log LOG = ExoLogger.getLogger(UIECMAdminPortlet.class.getName()); private boolean isShowSideBar = true ; private boolean isSelectedRepo_ = true ; private String repoName_ = "" ; public UIECMAdminPortlet() throws Exception { UIPopupContainer uiPopupAction = addChild(UIPopupContainer.class, null, "UIECMAdminUIPopupAction"); uiPopupAction.getChild(UIPopupWindow.class).setId("UIECMAdminUIPopupWindow") ; try{ UIECMAdminControlPanel controlPanel = addChild(UIECMAdminControlPanel.class, null, null) ; controlPanel.initialize(); UIECMAdminWorkingArea workingArea = addChild(UIECMAdminWorkingArea.class, null, null); workingArea.init(); } catch(Exception e) { if (LOG.isErrorEnabled()) { LOG.error("An expected error occured while initializing the portlet", e); } } } public void initChilds() throws Exception{ UIECMAdminControlPanel controlPanel = getChild(UIECMAdminControlPanel.class); if(controlPanel == null) { controlPanel = addChild(UIECMAdminControlPanel.class, null, null) ; controlPanel.initialize(); } UIECMAdminWorkingArea workingArea = getChild(UIECMAdminWorkingArea.class) ; if(workingArea == null){ workingArea = addChild(UIECMAdminWorkingArea.class, null, null) ; } workingArea.init() ; } public String getUserAgent() { PortletRequestContext requestContext = PortletRequestContext.getCurrentInstance(); PortletRequest portletRequest = requestContext.getRequest(); return portletRequest.getProperty("User-Agent"); } public ManageableRepository getRepository() throws Exception { RepositoryService rservice = getApplicationComponent(RepositoryService.class) ; return rservice.getCurrentRepository(); } public boolean isShowSideBar() { return isShowSideBar ; } public void setShowSideBar(boolean bl) { this.isShowSideBar = bl ; } public boolean isSelectedRepo() { return isSelectedRepo_ ; } public void setSelectedRepo(boolean bl) { this.isSelectedRepo_ = bl ; } public String getRepoName() {return repoName_ ;} public void setRepoName(String name){repoName_ = name ;} static public class ShowHideActionListener extends EventListener<UIECMAdminPortlet> { public void execute(Event<UIECMAdminPortlet> event) throws Exception { UIECMAdminPortlet uiECMAdminPortlet = event.getSource() ; uiECMAdminPortlet.setShowSideBar(!uiECMAdminPortlet.isShowSideBar) ; } } public String getPreferenceRepository() { try { return getApplicationComponent(RepositoryService.class).getCurrentRepository().getConfiguration().getName(); } catch (RepositoryException e) { return null; } } public String getPreferenceWorkspace() { PortletPreferences portletPref = getPortletPreferences() ; String workspace = portletPref.getValue(Utils.WORKSPACE_NAME, "") ; return workspace ; } public PortletPreferences getPortletPreferences() { PortletRequestContext pcontext = (PortletRequestContext)WebuiRequestContext.getCurrentInstance() ; PortletRequest prequest = pcontext.getRequest() ; PortletPreferences portletPref = prequest.getPreferences() ; return portletPref ; } public void processRender(WebuiApplication app, WebuiRequestContext context) throws Exception { UIECMAdminWorkingArea uiecmAdminWorkingArea = getChild(UIECMAdminWorkingArea.class); UIUnLockManager uiUnLockManager = uiecmAdminWorkingArea.getChild(UIUnLockManager.class); if (uiUnLockManager != null && uiUnLockManager.isRendered()) { uiUnLockManager.update(); } super.processRender(app, context); } public String getDMSSystemWorkspace(String repository) throws Exception { DMSConfiguration dmsConfiguration = WCMCoreUtils.getService(DMSConfiguration.class); DMSRepositoryConfiguration dmsRepoConfig = dmsConfiguration.getConfig(); return dmsRepoConfig.getSystemWorkspace(); } }