content: package com.handmark.pulltorefresh.library;
  
  import java.util.HashSet;
  
  import android.graphics.Typeface;
  import android.graphics.drawable.Drawable;
  
  import com.handmark.pulltorefresh.library.internal.LoadingLayout;
  
  public class LoadingLayoutProxy implements ILoadingLayout {
  
  	private final HashSet<LoadingLayout> mLoadingLayouts;
  
  	LoadingLayoutProxy() {
  		mLoadingLayouts = new HashSet<LoadingLayout>();
  	}
  
  	/**
  	 * This allows you to add extra LoadingLayout instances to this proxy. This
  	 * is only necessary if you keep your own instances, and want to have them
  	 * included in any
  	 * {@link PullToRefreshBase#createLoadingLayoutProxy(boolean, boolean)
  	 * createLoadingLayoutProxy(...)} calls.
  	 * 
  	 * @param layout - LoadingLayout to have included.
  	 */
  	public void addLayout(LoadingLayout layout) {
  		if (null != layout) {
  			mLoadingLayouts.add(layout);
  		}
  	}
  
  	@Override
  	public void setLastUpdatedLabel(CharSequence label) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setLastUpdatedLabel(label);
  		}
  	}
  
  	@Override
  	public void setLoadingDrawable(Drawable drawable) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setLoadingDrawable(drawable);
  		}
  	}
  
  	@Override
  	public void setRefreshingLabel(CharSequence refreshingLabel) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setRefreshingLabel(refreshingLabel);
  		}
  	}
  
  	@Override
  	public void setPullLabel(CharSequence label) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setPullLabel(label);
  		}
  	}
  
  	@Override
  	public void setReleaseLabel(CharSequence label) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setReleaseLabel(label);
  		}
  	}
  
  	public void setTextTypeface(Typeface tf) {
  		for (LoadingLayout layout : mLoadingLayouts) {
  			layout.setTextTypeface(tf);
  		}
  	}
  }
  