001 package org.apache.myfaces.tobago.event; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one or more 005 * contributor license agreements. See the NOTICE file distributed with 006 * this work for additional information regarding copyright ownership. 007 * The ASF licenses this file to You under the Apache License, Version 2.0 008 * (the "License"); you may not use this file except in compliance with 009 * the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 020 import org.apache.myfaces.tobago.component.UIPopup; 021 import org.apache.commons.logging.Log; 022 import org.apache.commons.logging.LogFactory; 023 024 import javax.faces.event.ActionListener; 025 import javax.faces.event.ActionEvent; 026 import javax.faces.event.AbortProcessingException; 027 import javax.faces.context.FacesContext; 028 import java.io.Serializable; 029 030 /* 031 * Created by IntelliJ IDEA. 032 * User: bommel 033 * Date: Dec 23, 2006 034 * Time: 10:59:53 AM 035 */ 036 public class PopupActionListener implements ActionListener, Serializable { 037 038 private static final Log LOG = LogFactory.getLog(PopupActionListener.class); 039 040 private String popupId; 041 042 public PopupActionListener() { 043 } 044 045 public PopupActionListener(String popupId) { 046 this.popupId = popupId; 047 if (LOG.isDebugEnabled()) { 048 LOG.debug("Add ActionListener: "+ popupId); 049 } 050 } 051 052 public PopupActionListener(UIPopup popup) { 053 this.popupId = ":"+popup.getClientId(FacesContext.getCurrentInstance()); 054 if (LOG.isDebugEnabled()) { 055 LOG.debug("Add ActionListener: "+popupId); 056 } 057 } 058 059 public void processAction(ActionEvent actionEvent) throws AbortProcessingException { 060 UIPopup popup = (UIPopup) actionEvent.getComponent().findComponent(popupId); 061 062 if (popup != null) { 063 if (LOG.isDebugEnabled()) { 064 LOG.debug("activated " 065 + actionEvent.getComponent().getClientId(FacesContext.getCurrentInstance())); 066 } 067 popup.setActivated(true); 068 } else { 069 LOG.error("Found no popup for " +popupId); 070 } 071 } 072 073 }