001: /*
002: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
003: *
004: * "The contents of this file are subject to the Mozilla Public License
005: * Version 1.1 (the "License"); you may not use this file except in
006: * compliance with the License. You may obtain a copy of the License at
007: * http://www.mozilla.org/MPL/
008: *
009: * Software distributed under the License is distributed on an "AS IS"
010: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
011: * License for the specific language governing rights and limitations under
012: * the License.
013: *
014: * The Original Code is ICEfaces 1.5 open source software code, released
015: * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
016: * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
017: * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
018: *
019: * Contributor(s): _____________________.
020: *
021: * Alternatively, the contents of this file may be used under the terms of
022: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
023: * License), in which case the provisions of the LGPL License are
024: * applicable instead of those above. If you wish to allow use of your
025: * version of this file only under the terms of the LGPL License and not to
026: * allow others to use your version of this file under the MPL, indicate
027: * your decision by deleting the provisions above and replace them with
028: * the notice and other provisions required by the LGPL License. If you do
029: * not delete the provisions above, a recipient may use your version of
030: * this file under either the MPL or the LGPL License."
031: *
032: */
033:
034: package com.icesoft.faces.component.paneltabset;
035:
036: import javax.faces.component.UIComponent;
037: import javax.faces.event.FacesEvent;
038: import javax.faces.event.FacesListener;
039: import javax.faces.event.PhaseId;
040:
041: /**
042: * TabChangeEvent is an extension of FacesEvent.
043: */
044: public class TabChangeEvent extends FacesEvent {
045: /**
046: * The serialVersionUID unique identifier.
047: */
048: private static final long serialVersionUID = -7249763750612129099L;
049: /**
050: * The old selected tab index.
051: */
052: private int _oldTabIndex;
053: /**
054: * The new selected tab index.
055: */
056: private int _newTabIndex;
057:
058: /**
059: * Creates an instance.
060: *
061: * @param component
062: * @param oldTabIndex
063: * @param newTabIndex
064: */
065: public TabChangeEvent(UIComponent component, int oldTabIndex,
066: int newTabIndex) {
067: super (component);
068: _oldTabIndex = oldTabIndex;
069: _newTabIndex = newTabIndex;
070: setPhaseId(PhaseId.INVOKE_APPLICATION);
071: }
072:
073: /**
074: * Returns the old selected tab index.
075: *
076: * @return _oldTabIndex
077: */
078: public int getOldTabIndex() {
079: return _oldTabIndex;
080: }
081:
082: /**
083: * Returns the new selected tab index.
084: *
085: * @return _newTabIndex
086: */
087: public int getNewTabIndex() {
088: return _newTabIndex;
089: }
090:
091: /**
092: * Returns true when the listener is an instance of TabChangeListener
093: *
094: * @param listener
095: * @return true if listener is a TabChangeListener
096: */
097: public boolean isAppropriateListener(FacesListener listener) {
098: return listener instanceof TabChangeListener;
099: }
100:
101: /**
102: * invokes the processTabChange method on the TabChangeListener.
103: *
104: * @param listener
105: */
106: public void processListener(FacesListener listener) {
107: ((TabChangeListener) listener).processTabChange(this);
108: }
109:
110: }
|