Mega Code Archive

 
Categories / Android / UI
 

Progress Monitor

//package org.anddev.andengine.util.progress; /**  * (c) 2010 Nicolas Gramlich   * (c) 2011 Zynga Inc.  *   * @author Nicolas Gramlich  * @since 18:07:35 - 09.07.2009  */ public class ProgressMonitor implements IProgressListener {   //             // Constants   //             //             // Fields   //             private final ProgressMonitor mParentProgressMonitor;   private final IProgressListener mListener;   private int mSubMonitorRangeFrom = 0;   private int mSubMonitorRangeTo = 100;   private int mProgress = 0;   //             // Constructors   //             public ProgressMonitor(final IProgressListener pListener) {     this.mListener = pListener;     this.mParentProgressMonitor = null;   }   public ProgressMonitor(final ProgressMonitor pParent){     this.mListener = null;     this.mParentProgressMonitor = pParent;   }   //             // Getter & Setter   //             public ProgressMonitor getParentProgressMonitor() {     return this.mParentProgressMonitor;   }   public int getProgress() {     return this.mProgress;   }   public void setSubMonitorRange(final int pSubMonitorRangeFrom, final int pSubMonitorRangeTo) {     this.mSubMonitorRangeFrom = pSubMonitorRangeFrom;     this.mSubMonitorRangeTo = pSubMonitorRangeTo;   }   //             // Methods for/from SuperClass/Interfaces   //             /**    * @param pProgress between 0 and 100.    */   @Override   public void onProgressChanged(final int pProgress){     this.mProgress = pProgress;     if(this.mParentProgressMonitor != null) {       this.mParentProgressMonitor.onSubProgressChanged(pProgress);     } else {       this.mListener.onProgressChanged(pProgress);     }   }   private void onSubProgressChanged(final int pSubProgress){     final int subRange = this.mSubMonitorRangeTo- this.mSubMonitorRangeFrom;     final int subProgressInRange = this.mSubMonitorRangeFrom + (int)(subRange * pSubProgress / 100f);     if(this.mParentProgressMonitor != null) {       this.mParentProgressMonitor.onSubProgressChanged(subProgressInRange);     }else{       this.mListener.onProgressChanged(subProgressInRange);     }   } } /**  * (c) 2010 Nicolas Gramlich   * (c) 2011 Zynga Inc.  *   * @author Nicolas Gramlich  * @since 20:52:44 - 03.01.2010  */  interface ProgressCallable<T> {   //             // Final Fields   //             //             // Methods   //             /**    * Computes a result, or throws an exception if unable to do so.    * @param pProgressListener    * @return computed result    * @throws Exception if unable to compute a result    */   public T call(final IProgressListener pProgressListener) throws Exception; } /**  * (c) 2010 Nicolas Gramlich   * (c) 2011 Zynga Inc.  *   * @author Nicolas Gramlich  * @since 18:07:35 - 09.07.2009  */  interface IProgressListener {   //             // Constants   //             //             // Methods   //             /**    * @param pProgress between 0 and 100.    */   public void onProgressChanged(final int pProgress); }