Android Open Source - Team7-301Project Observable






From Project

Back to project page Team7-301Project.

License

The source code is released under:

Apache License

If you think the Android project Team7-301Project listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ca.ualberta.cs.models;
/*from  ww w.  j  ava 2s. co m*/
import java.util.ArrayList;
import java.util.Iterator;

import ca.ualberta.cs.views.Observer;

import android.app.Activity;

/**
 * Contains a list of all the views who are "observing" this model. All classes which are added here must implement the Observer interface.
 * The code for this class is based heavily on Abram Hindle's "MVC and Android" slides.
 * @author bbruner
 *
 * @param <T> This is the data type of the view
 */
public abstract class Observable<T extends Observer>
{
  private ArrayList<T> observers;
  
  public Observable()
  {
    observers = new ArrayList<T>();
  }
  
  /**
   * Add an observer to the class.
   * @param observer The observer to add.
   */
  public void addObserver(T observer)
  {
    if( !this.observers.contains(observer) )
    {
      this.observers.add(observer);
    }
  }
  
  /**
   * Delete an observer from the class
   * @param observer The observer to delete.
   */
  public void deleteObserver(T observer)
  {
    this.observers.remove(observer);
  }
  
  /**
   * Notify all the observers that data has changed.
   */
  public void notifyObservers()
  {
    Iterator<T> iter = this.observers.iterator();
    
    while( iter.hasNext() )
    {
      iter.next().update(this);
    }
  }
  
}




Java Source Code List

ca.ualberta.cs.controllers.AuthorController.java
ca.ualberta.cs.controllers.BrowseController.java
ca.ualberta.cs.controllers.ForumEntryController.java
ca.ualberta.cs.controllers.SearchController.java
ca.ualberta.cs.f14t07_application.Hits.java
ca.ualberta.cs.f14t07_application.LogoActivity.java
ca.ualberta.cs.f14t07_application.Post.java
ca.ualberta.cs.intent_singletons.BrowseRequestSingleton.java
ca.ualberta.cs.intent_singletons.ContextSingleton.java
ca.ualberta.cs.intent_singletons.EntrySingleton.java
ca.ualberta.cs.intent_singletons.ForumEntrySingleton.java
ca.ualberta.cs.models.Answer.java
ca.ualberta.cs.models.AuthorModel.java
ca.ualberta.cs.models.DataManager.java
ca.ualberta.cs.models.Entry.java
ca.ualberta.cs.models.ForumEntryList.java
ca.ualberta.cs.models.ForumEntry.java
ca.ualberta.cs.models.JsonDriver.java
ca.ualberta.cs.models.Observable.java
ca.ualberta.cs.models.Question.java
ca.ualberta.cs.models.Reply.java
ca.ualberta.cs.remote_server.NetworkChecker.java
ca.ualberta.cs.remote_server.SearchHit.java
ca.ualberta.cs.remote_server.SearchResponse.java
ca.ualberta.cs.remote_server.SimpleSearchCommand.java
ca.ualberta.cs.views.AnswerActivity.java
ca.ualberta.cs.views.AnswerListAdapter.java
ca.ualberta.cs.views.AskActivity.java
ca.ualberta.cs.views.BrowseActivity.java
ca.ualberta.cs.views.HelpActivity.java
ca.ualberta.cs.views.MainScreenActivity.java
ca.ualberta.cs.views.Observer.java
ca.ualberta.cs.views.QuestionActivity.java
ca.ualberta.cs.views.ReplyListAdapter.java