/* * Copyright (C) 2003-2010 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.sample.webui.component; import java.util.ArrayList; import java.util.List; import org.exoplatform.web.application.ApplicationMessage; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.core.UIComponent; import org.exoplatform.webui.core.UIConfirmation; import org.exoplatform.webui.core.UIConfirmation.ActionConfirm; import org.exoplatform.webui.core.UIContainer; import org.exoplatform.webui.core.lifecycle.UIContainerLifecycle; import org.gatein.common.logging.Logger; import org.gatein.common.logging.LoggerFactory; /** * Created by The eXo Platform SAS Author : Nguyen Duc Khoi khoi.nguyen@exoplatform.com Apr 28, 2010 */ @ComponentConfig(lifecycle = UIContainerLifecycle.class) public class UISampleContent extends UIContainer { private Logger log = LoggerFactory.getLogger(UISampleContent.class); public static final int NODE_UIFORM = 0; public static final int NODE_UIPOPUPMESSAGE = 1; public static final int NODE_UIPOPUPCONFIRM = 2; public static final int NODE_LAZYTABPANE = 3; public static final int NODE_DOWNLOADUPLOAD = 5; public static final int NODE_REPEATER = 6; public static final int NODE_VIRTUAL_LIST = 7; public static final int NODE_RIGHTCLICKPOPUP = 8; public static final int NODE_MULTIVALUE_INPUTSET = 9; public static final ApplicationMessage MSG = new ApplicationMessage("UISampleContent.UIPopupMessage.msg", new String[] { "World !" }, ApplicationMessage.INFO); public static final String MSG_CONFIRM = "Are you sure"; public UISampleContent() throws Exception { // other uicomponents are lazy initialized addChild(UISampleUIForm.class, null, null); } public void showUIComponent(int nodeType) { switch (nodeType) { case NODE_UIFORM: showUIForm(); break; case NODE_UIPOPUPMESSAGE: showUIPopupMessage(); break; case NODE_UIPOPUPCONFIRM: showUIConfirmation(); break; case NODE_LAZYTABPANE: showUILazyTabPane(); break; case NODE_DOWNLOADUPLOAD: showUIDownloadUpload(); break; case NODE_REPEATER: showRepeater(); break; case NODE_VIRTUAL_LIST: showVirtualList(); break; case NODE_RIGHTCLICKPOPUP: showRightClickPopup(); break; case NODE_MULTIVALUE_INPUTSET: showMultiValueInputSet(); break; default: log.error("not implement yet"); } } private void showMultiValueInputSet() { UISampleMultiValueInputSet multiInputSet = getChild(UISampleMultiValueInputSet.class); setRenderedChild(multiInputSet.getId()); } private void showRightClickPopup() { UISampleRightClickPopupMenu popup = getChild(UISampleRightClickPopupMenu.class); setRenderedChild(popup.getId()); } private void showVirtualList() { UISampleVirtualList virtualList = getChild(UISampleVirtualList.class); setRenderedChild(virtualList.getId()); } private void showRepeater() { UISampleRepeater repeater = getChild(UISampleRepeater.class); setRenderedChild(repeater.getId()); } private void showUIDownloadUpload() { UISampleDownloadUpload uiDL = getChild(UISampleDownloadUpload.class); setRenderedChild(uiDL.getId()); } private void showUILazyTabPane() { UISampleLazyTabPane uiTabPane = getChild(UISampleLazyTabPane.class); setRenderedChild(uiTabPane.getId()); } private void showUIForm() { setRenderedChild(UISampleUIForm.class); } private void showUIConfirmation() { UIConfirmation uiConfirmation = getChild(UIConfirmation.class); uiConfirmation.setActions(makeActionConfirmList()); uiConfirmation.setCaller(this); uiConfirmation.addMessage(MSG_CONFIRM); uiConfirmation.setShow(true); setRenderedChild(UIConfirmation.class); } private void showUIPopupMessage() { UISamplePopupMessage uiSamplePopupMessage = getChild(UISamplePopupMessage.class); setRenderedChild(uiSamplePopupMessage.getId()); } @Override public <T extends UIComponent> T getChild(Class<T> clazz) { T uiComp = super.getChild(clazz); if (uiComp == null) { try { uiComp = addChild(clazz, null, null); } catch (Exception e) { log.error(e.getMessage(), e); } } return uiComp; } private List<ActionConfirm> makeActionConfirmList() { List<ActionConfirm> actionConfirms = new ArrayList<ActionConfirm>(); actionConfirms.add(new ActionConfirm("Yes", "Yes")); actionConfirms.add(new ActionConfirm("No", "No")); return actionConfirms; } }