blob: 30d4ddefa7ae10bd73642c8605f71e589e67279c [file] [log] [blame]
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);
}
}