package com.android.gallery3d.filtershow; import android.view.View; import android.view.ViewParent; import android.widget.FrameLayout; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.editors.Editor; import com.android.gallery3d.filtershow.imageshow.ImageShow; import java.util.HashMap; import java.util.Vector; public class EditorPlaceHolder { private static final String LOGTAG = "EditorPlaceHolder"; private FilterShowActivity mActivity = null; private FrameLayout mContainer = null; private HashMap<Integer, Editor> mEditors = new HashMap<Integer, Editor>(); private Vector<ImageShow> mOldViews = new Vector<ImageShow>(); private ImageLoader mImageLoader = null; public EditorPlaceHolder(FilterShowActivity activity) { mActivity = activity; } public void setContainer(FrameLayout container) { mContainer = container; } public void addEditor(Editor c) { mEditors.put(c.getID(), c); } public boolean contains(int type) { if (mEditors.get(type) != null) { return true; } return false; } public Editor showEditor(int type) { Editor editor = mEditors.get(type); if (editor == null) { return null; } try { editor.createEditor(mActivity, mContainer); editor.setImageLoader(mImageLoader); mContainer.setVisibility(View.VISIBLE); mContainer.removeAllViews(); View eview = editor.getTopLevelView(); ViewParent parent = eview.getParent(); if (parent != null && parent instanceof FrameLayout) { ((FrameLayout) parent).removeAllViews(); } mContainer.addView(eview); hideOldViews(); editor.setVisibility(View.VISIBLE); return editor; } catch (Exception e) { e.printStackTrace(); } return null; } public void setOldViews(Vector<ImageShow> views) { mOldViews = views; } public void hide() { mContainer.setVisibility(View.GONE); } public void hideOldViews() { for (View view : mOldViews) { view.setVisibility(View.GONE); } } public void setImageLoader(ImageLoader imageLoader) { mImageLoader = imageLoader; } public Editor getEditor(int editorId) { return mEditors.get(editorId); } }