/****************************************************************************** * Product: Posterita Ajax UI * * Copyright (C) 2007 Posterita Ltd. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. 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, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * For the text or an alternative of this public license, you may reach us * * Posterita Ltd., 3, Draper Avenue, Quatre Bornes, Mauritius * * or via info@posterita.org or http://www.posterita.org/ * * * * Contributors: * * - Heng Sin Low * * * * Sponsors: * * - Idalica Corporation * *****************************************************************************/ package org.adempiere.webui.window; import java.util.Properties; import org.adempiere.webui.IWebClient; import org.adempiere.webui.component.FWindow; import org.adempiere.webui.panel.LoginPanel; import org.adempiere.webui.panel.RolePanel; import org.compiere.util.Env; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.Events; /** * * @author <a href="mailto:agramdass@gmail.com">Ashley G Ramdass</a> * @date Feb 25, 2007 * @version $Revision: 0.10 $ * @author <a href="mailto:sendy.yagambrum@posterita.org">Sendy Yagambrum</a> * @date July 18, 2007 */ public class LoginWindow extends FWindow implements EventListener { /** * */ private static final long serialVersionUID = -365979563919913804L; private IWebClient app; private Properties ctx; private LoginPanel pnlLogin; private RolePanel pnlRole; public LoginWindow(IWebClient app) { this.ctx = Env.getCtx(); this.app = app; initComponents(); init(); // add listener on 'ENTER' key for the login window addEventListener(Events.ON_OK,this); } private void init() { this.appendChild(pnlLogin); this.setStyle("background-color: transparent"); } private void initComponents() { pnlLogin = new LoginPanel(ctx, this); } public void loginOk(String userName, String password) { pnlRole = new RolePanel(ctx, this, userName, password); this.getChildren().clear(); this.appendChild(pnlRole); } public void loginCompleted() { app.loginCompleted(); } public void loginCancelled() { pnlLogin = new LoginPanel(ctx, this); this.getChildren().clear(); this.appendChild(pnlLogin); } public void onEvent(Event event) { // check that 'ENTER' key is pressed if (Events.ON_OK.equals(event.getName())) { /** * LoginWindow can have as a child, either LoginPanel or RolePanel * If LoginPanel is currently a child, validate login when * 'ENTER' key is pressed or validate Roles if RolePanel is * currently a child */ RolePanel rolePanel = (RolePanel)this.getFellowIfAny("rolePanel"); if (rolePanel != null) { rolePanel.validateRoles(); } LoginPanel loginPanel = (LoginPanel)this.getFellowIfAny("loginPanel"); if (loginPanel != null) { loginPanel.validateLogin(); } } } }