UI Android

/**
 * Copyright (c) 2011 Axa Holding Belgium, SA. All rights reserved.
 * This software is the confidential and proprietary information of the AXA Group.
 */
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ViewFlipper;
interface iViewFlipperListener{
  void viewChangedTo(String name);
}
public class NamedViewFlipper extends ViewFlipper {
  
  private Map myViewNames = new HashMap();
  private List myListeners = new ArrayList();
  public NamedViewFlipper( Context aContext ) {
    super( aContext );
  }
  public NamedViewFlipper( Context aContext, AttributeSet aAttrs ) {
    super( aContext, aAttrs );
  }
  public void setNameForView(View aView, String aName){
    myViewNames.put(aView, aName);
  }
  
  public String getCurrentViewName(){
    return myViewNames.get(getCurrentView());
  }
  
  public void flipToView(String aName){
    while(!getCurrentViewName().equals( aName )){
      super.showNext();
    }
    notifyListeners();
  }
  @Override
  public void showNext() {
    super.showNext();
    notifyListeners();
  }
  @Override
  public void showPrevious() {
    super.showPrevious();
    notifyListeners();
  }
  
  @Override
  public void setDisplayedChild( int aWhichChild ) {
    super.setDisplayedChild( aWhichChild );
    notifyListeners();
  }
  
  private void notifyListeners() {
    String theCurrentViewName = getCurrentViewName();
    for(iViewFlipperListener theListener : myListeners){
      theListener.viewChangedTo( theCurrentViewName );
    }
  }
  
  public void addViewFlipperListener(iViewFlipperListener aListener){
    myListeners.add(aListener);
  }
  
  public void removeViewFlipperListener(iViewFlipperListener aListener){
    myListeners.remove( aListener );
  }
}