Home | History | Annotate | Download | only in filtershow
      1 package com.android.gallery3d.filtershow;
      2 
      3 import android.view.View;
      4 import android.view.ViewParent;
      5 import android.widget.FrameLayout;
      6 
      7 import com.android.gallery3d.filtershow.cache.ImageLoader;
      8 import com.android.gallery3d.filtershow.editors.Editor;
      9 import com.android.gallery3d.filtershow.imageshow.ImageShow;
     10 
     11 import java.util.HashMap;
     12 import java.util.Vector;
     13 
     14 public class EditorPlaceHolder {
     15     private static final String LOGTAG = "EditorPlaceHolder";
     16 
     17     private FilterShowActivity mActivity = null;
     18     private FrameLayout mContainer = null;
     19     private HashMap<Integer, Editor> mEditors = new HashMap<Integer, Editor>();
     20     private Vector<ImageShow> mOldViews = new Vector<ImageShow>();
     21     private ImageLoader mImageLoader = null;
     22 
     23     public EditorPlaceHolder(FilterShowActivity activity) {
     24         mActivity = activity;
     25     }
     26 
     27     public void setContainer(FrameLayout container) {
     28         mContainer = container;
     29     }
     30 
     31     public void addEditor(Editor c) {
     32         mEditors.put(c.getID(), c);
     33     }
     34 
     35     public boolean contains(int type) {
     36         if (mEditors.get(type) != null) {
     37             return true;
     38         }
     39         return false;
     40     }
     41 
     42     public Editor showEditor(int type) {
     43         Editor editor = mEditors.get(type);
     44         if (editor == null) {
     45             return null;
     46         }
     47 
     48         try {
     49             editor.createEditor(mActivity, mContainer);
     50             editor.setImageLoader(mImageLoader);
     51             mContainer.setVisibility(View.VISIBLE);
     52             mContainer.removeAllViews();
     53             View eview = editor.getTopLevelView();
     54             ViewParent parent = eview.getParent();
     55 
     56             if (parent != null && parent instanceof FrameLayout) {
     57                 ((FrameLayout) parent).removeAllViews();
     58             }
     59 
     60             mContainer.addView(eview);
     61             hideOldViews();
     62             editor.setVisibility(View.VISIBLE);
     63             return editor;
     64         } catch (Exception e) {
     65             e.printStackTrace();
     66         }
     67         return null;
     68     }
     69 
     70     public void setOldViews(Vector<ImageShow> views) {
     71         mOldViews = views;
     72     }
     73 
     74     public void hide() {
     75         mContainer.setVisibility(View.GONE);
     76     }
     77 
     78     public void hideOldViews() {
     79         for (View view : mOldViews) {
     80             view.setVisibility(View.GONE);
     81         }
     82     }
     83 
     84     public void setImageLoader(ImageLoader imageLoader) {
     85         mImageLoader = imageLoader;
     86     }
     87 
     88     public Editor getEditor(int editorId) {
     89         return mEditors.get(editorId);
     90     }
     91 
     92 }
     93