OSDN Git Service

Merge "refactor the filter/editor relationship" into gb-ub-photos-bryce
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / EditorPlaceHolder.java
1 package com.android.gallery3d.filtershow;
2
3 import android.content.Context;
4 import android.util.Log;
5 import android.view.View;
6 import android.widget.FrameLayout;
7
8 import com.android.gallery3d.filtershow.cache.ImageLoader;
9 import com.android.gallery3d.filtershow.editors.Editor;
10 import com.android.gallery3d.filtershow.imageshow.ImageShow;
11
12 import java.lang.reflect.InvocationTargetException;
13 import java.util.HashMap;
14 import java.util.Vector;
15
16 public class EditorPlaceHolder {
17     private static final String LOGTAG = "PanelController";
18
19     private FilterShowActivity mActivity = null;
20     private FrameLayout mContainer = null;
21     private HashMap<Integer, Editor> mEditors = new HashMap<Integer, Editor>();
22     private Vector<ImageShow> mOldViews = new Vector<ImageShow>();
23     private ImageLoader mImageLoader = null;
24
25     public EditorPlaceHolder(FilterShowActivity activity) {
26         mActivity = activity;
27     }
28
29     public void setContainer(FrameLayout container) {
30         mContainer = container;
31     }
32
33     public void addEditor(Editor c) {
34         mEditors.put(c.getID(), c);
35     }
36
37     public boolean contains(int type) {
38         if (mEditors.get(type) != null) {
39             return true;
40         }
41         return false;
42     }
43
44     public Editor showEditor(int type) {
45         Editor editor = mEditors.get(type);
46         if (editor == null) {
47             return null;
48         }
49
50         try {
51             editor.createEditor(mActivity, mContainer);
52             editor.setImageLoader(mImageLoader);
53             mContainer.setVisibility(View.VISIBLE);
54             mContainer.removeAllViews();
55             mContainer.addView(editor.getTopLevelView());
56             hideOldViews();
57             editor.setVisibility(View.VISIBLE);
58             return editor;
59         } catch (Exception e) {
60             e.printStackTrace();
61         }
62         return null;
63     }
64
65     public void setOldViews(Vector<ImageShow> views) {
66         mOldViews = views;
67     }
68
69     public void hideOldViews() {
70         for (View view : mOldViews) {
71             view.setVisibility(View.GONE);
72         }
73     }
74
75     public void setImageLoader(ImageLoader imageLoader) {
76         mImageLoader = imageLoader;
77     }
78 }