1package com.android.gallery3d.filtershow; 2 3import android.view.View; 4import android.view.ViewParent; 5import android.widget.FrameLayout; 6 7import com.android.gallery3d.filtershow.cache.ImageLoader; 8import com.android.gallery3d.filtershow.editors.Editor; 9import com.android.gallery3d.filtershow.imageshow.ImageShow; 10 11import java.util.HashMap; 12import java.util.Vector; 13 14public 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