| 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); |
| } |
| |
| } |