/*************************************************************************** * 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.faq.webui.viewer; import java.util.ArrayList; import java.util.List; import org.exoplatform.container.PortalContainer; import org.exoplatform.faq.rendering.RenderHelper; import org.exoplatform.faq.service.CategoryInfo; import org.exoplatform.faq.service.FAQService; import org.exoplatform.faq.service.Question; import org.exoplatform.faq.service.Utils; import org.exoplatform.faq.webui.FAQUtils; import org.exoplatform.resolver.ResourceResolver; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; 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.UIContainer; import org.exoplatform.webui.event.Event; import org.exoplatform.webui.event.EventListener; /** * Created by The eXo Platform SAS * Author : Vu Duy Tu * tu.duy@exoplatform.com * Jun 24, 2009 - 4:32:48 AM */ @ComponentConfig( events = { @EventConfig(listeners = UIViewer.ChangePathActionListener.class) } ) @SuppressWarnings("unused") public class UIViewer extends UIContainer { private FAQService fAqService; private String path = Utils.CATEGORY_HOME; private boolean useAjax = false; private RenderHelper renderHelper = new RenderHelper(); private Log log = ExoLogger.getLogger(UIViewer.class); public UIViewer() { fAqService = (FAQService) PortalContainer.getComponent(FAQService.class); } private List<String> arrangeList(List<String> list) { List<String> newList = new ArrayList<String>(); if (list.isEmpty() || list.size() == 0) { newList.add("<img src=\"/faq/skin/DefaultSkin/webui/background/HomeIcon.gif\" alt=\"" + Utils.CATEGORY_HOME + "\"/>"); } else { for (int i = (list.size() - 1); i >= 0; i--) { if (i == (list.size() - 1)) { newList.add("<img src=\"/faq/skin/DefaultSkin/webui/background/HomeIcon.gif\" alt=\"" + list.get(i) + "\"/>"); } else { newList.add(list.get(i)); } } } return newList; } public ResourceResolver getTemplateResourceResolver(WebuiRequestContext context, String template) { return new FAQResourceResolver(); } public String getTemplate() { return "FAQViewerTemplate"; } private CategoryInfo getCategoryInfo() throws Exception { useAjax = FAQUtils.getUseAjaxFAQPortlet(); return fAqService.getCategoryInfo(path, FAQUtils.getCategoriesIdFAQPortlet()); } private String render(String s) { Question question = new Question(); question.setDetail(s); return renderHelper.renderQuestion(question); } static public class ChangePathActionListener extends EventListener<UIViewer> { public void execute(Event<UIViewer> event) throws Exception { String path = event.getRequestContext().getRequestParameter(OBJECTID); UIViewer viewer = event.getSource(); viewer.path = path; event.getRequestContext().addUIComponentToUpdateByAjax(viewer); } } }