1package com.android.gallery3d.filtershow.controller;
2
3import android.app.ActionBar.LayoutParams;
4import android.content.Context;
5import android.graphics.Bitmap;
6import android.view.LayoutInflater;
7import android.view.View;
8import android.view.ViewGroup;
9import android.widget.ImageButton;
10import android.widget.ImageView.ScaleType;
11import android.widget.LinearLayout;
12
13import com.android.gallery3d.R;
14import com.android.gallery3d.filtershow.cache.RenderingRequest;
15import com.android.gallery3d.filtershow.cache.RenderingRequestCaller;
16import com.android.gallery3d.filtershow.editors.Editor;
17
18import java.util.Vector;
19
20public class StyleChooser implements Control {
21    private final String LOGTAG = "StyleChooser";
22    protected ParameterStyles mParameter;
23    protected LinearLayout mLinearLayout;
24    protected Editor mEditor;
25    private View mTopView;
26    private Vector<ImageButton> mIconButton = new Vector<ImageButton>();
27    protected int mLayoutID = R.layout.filtershow_control_style_chooser;
28
29    @Override
30    public void setUp(ViewGroup container, Parameter parameter, Editor editor) {
31        container.removeAllViews();
32        mEditor = editor;
33        Context context = container.getContext();
34        mParameter = (ParameterStyles) parameter;
35        LayoutInflater inflater =
36                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
37        mTopView = inflater.inflate(mLayoutID, container, true);
38        mLinearLayout = (LinearLayout) mTopView.findViewById(R.id.listStyles);
39        mTopView.setVisibility(View.VISIBLE);
40        int n = mParameter.getNumberOfStyles();
41        mIconButton.clear();
42        LayoutParams lp = new LayoutParams(120, 120);
43        for (int i = 0; i < n; i++) {
44            final ImageButton button = new ImageButton(context);
45            button.setScaleType(ScaleType.CENTER_CROP);
46            button.setLayoutParams(lp);
47            button.setBackgroundResource(android.R.color.transparent);
48            mIconButton.add(button);
49            final int buttonNo = i;
50            button.setOnClickListener(new View.OnClickListener() {
51                @Override
52                public void onClick(View arg0) {
53                    mParameter.setSelected(buttonNo);
54                }
55            });
56            mLinearLayout.addView(button);
57            mParameter.getIcon(i, new RenderingRequestCaller() {
58                @Override
59                public void available(RenderingRequest request) {
60                    Bitmap bmap = request.getBitmap();
61                    if (bmap == null) {
62                        return;
63                    }
64                    button.setImageBitmap(bmap);
65                }
66            });
67        }
68    }
69
70    @Override
71    public View getTopView() {
72        return mTopView;
73    }
74
75    @Override
76    public void setPrameter(Parameter parameter) {
77        mParameter = (ParameterStyles) parameter;
78        updateUI();
79    }
80
81    @Override
82    public void updateUI() {
83        if (mParameter == null) {
84            return;
85        }
86    }
87
88}
89