ShadowView.java revision 684ccc2fc5a1c79aa45af22b95c37f7c509a00c1
16eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzpackage com.xtremelabs.droidsugar.view;
26eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
36eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport android.content.Context;
46eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport android.content.res.Resources;
5684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williamsimport android.util.AttributeSet;
66eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport android.view.View;
7d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultzimport android.view.ViewGroup;
80c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugolimport com.xtremelabs.droidsugar.ProxyDelegatingHandler;
96eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
10c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.ArrayList;
1151fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.HashMap;
12c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.List;
1351fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.Map;
14c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz
15198b49fe81283e340891361045a8bdeb01f35e04Tyler Schultz@SuppressWarnings({"UnusedDeclaration"})
166eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzpublic class FakeView {
17f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol    public static final int UNINITIALIZED_ATTRIBUTE = -1000;
18f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol
196eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    private View realView;
206eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
216eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    private int id;
226eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    private List<View> children = new ArrayList<View>();
230c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol    private FakeView parent;
246eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    private Context context;
25eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz    public boolean selected;
26810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore    private View.OnClickListener onClickListener;
27c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz    private Object tag;
28775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard    private boolean enabled = true;
29f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol    public int visibility = UNINITIALIZED_ATTRIBUTE;
3018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int height;
3118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int width;
3218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int paddingLeft;
3318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int paddingTop;
3418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int paddingRight;
3518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int paddingBottom;
36686237bc49c2d8ff1891cb5fadaa7aaaf1cf9bddChristian Williams & Tyler Schultz    public ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(0, 0);
3744ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams    private Map<Integer, Object> tags = new HashMap<Integer, Object>();
38cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    public boolean clickable;
39cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    public boolean focusable;
406eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
416eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public FakeView(View view) {
426eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        this.realView = view;
436eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
446eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
456eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public void __constructor__(Context context) {
466eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        this.context = context;
476eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
486eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
49684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams    public void __constructor__(Context context, AttributeSet attrs) {
50684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams        __constructor__(context);
51684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams    }
52684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams
536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public void setId(int id) {
546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        this.id = id;
556eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
566eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
57cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    public void setClickable(boolean clickable) {
58cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz        this.clickable = clickable;
59cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    }
60cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz
61cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    public void setFocusable(boolean focusable) {
62cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz        this.focusable = focusable;
63cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz    }
64cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz
656eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public int getId() {
666eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return id;
676eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
686eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
69a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz    public static View inflate(Context context, int resource, ViewGroup root) {
70a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz        View view = FakeContextWrapper.viewLoader.inflateView(context, resource);
71a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz        if (root != null) {
72a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz            root.addView(view);
73a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz        }
74a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz        return view;
75a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz    }
76a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz
776eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public View findViewById(int id) {
78e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz        if (id == this.id) {
79e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz            return realView;
80e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz        }
816eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
82e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz        for (View child : children) {
836eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz            View found = child.findViewById(id);
846eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz            if (found != null) {
856eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz                return found;
866eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz            }
876eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        }
886eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return null;
896eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
906eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
910c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol    public View getRootView() {
920c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol        FakeView root = this;
930c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol        while(root.parent != null) {
940c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol            root = root.parent;
950c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol        }
960c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol        return root.realView;
970c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol    }
980c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol
996eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public void addView(View child) {
1006eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        children.add(child);
101ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore        childProxy(child).parent = this;
102ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore    }
103ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore
104ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore    private FakeView childProxy(View child) {
105ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore        return (FakeView) ProxyDelegatingHandler.getInstance().proxyFor(child);
1066eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1076eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
1086eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public int getChildCount() {
1096eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return children.size();
1106eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1116eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
112d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz    public ViewGroup.LayoutParams getLayoutParams() {
113d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz        return layoutParams;
114d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz    }
115d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz
116b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard    public void setLayoutParams(ViewGroup.LayoutParams params) {
117b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard        layoutParams = params;
118b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard    }
119b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard
1206eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public View getChildAt(int index) {
1216eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return children.get(index);
1226eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1236eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
124ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore    public void removeAllViews() {
125ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore        for (View child : children) {
126ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore            childProxy(child).parent = null;
127ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore        }
128ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore        children.clear();
129ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore    }
130ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore
1316eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public final Context getContext() {
1326eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return context;
1336eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1346eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
1356eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public Resources getResources() {
1366eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return context.getResources();
1376eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1386eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
1396eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public int getVisibility() {
1406eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        return visibility;
1416eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
1426eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
1436eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    public void setVisibility(int visibility) {
1446eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz        this.visibility = visibility;
1456eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz    }
146eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz
147eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz    public void setSelected(boolean selected) {
148eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz        this.selected = selected;
149eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz    }
150810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore
151acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz    public boolean isSelected() {
152acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz        return this.selected;
153acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz    }
154acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz
155775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard    public boolean isEnabled() {
156775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard        return this.enabled;
157775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard    }
158775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard
159775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard    public void setEnabled(boolean enabled) {
160775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard        this.enabled = enabled;
161775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard    }
162775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard
163810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore    public void setOnClickListener(View.OnClickListener onClickListener) {
164810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore        this.onClickListener = onClickListener;
165810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore    }
166810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore
167810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore    public boolean performClick() {
168810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore        if (onClickListener != null) {
169810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore            onClickListener.onClick(realView);
170810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore            return true;
171810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore        } else {
172810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore            return false;
173810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore        }
174810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore    }
175c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz
176c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz    public Object getTag() {
177c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz        return this.tag;
178c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz    }
179c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz
180c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz    public void setTag(Object tag) {
181c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz        this.tag = tag;
182c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz    }
18318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
18418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public final int getHeight() {
18518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return height;
18618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
18718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
18818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public final int getWidth() {
18918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return width;
19018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
19118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
19218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public void setPadding(int left, int top, int right, int bottom) {
19318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        paddingLeft = left;
19418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        paddingTop = top;
19518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        paddingRight = right;
19618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        paddingBottom = bottom;
19718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
19818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
19918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int getPaddingTop() {
20018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return paddingTop;
20118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
20218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
20318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int getPaddingLeft() {
20418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return paddingLeft;
20518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
20618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
20718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int getPaddingRight() {
20818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return paddingRight;
20918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
21018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard
21118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    public int getPaddingBottom() {
21218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard        return paddingBottom;
21318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard    }
21451fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultz
21544ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams    public Object getTag(int key) {
21644ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams        return tags.get(key);
21744ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams    }
21844ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams
21944ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams    public void setTag(int key, Object value) {
22044ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams        tags.put(key, value);
22144ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams    }
2226eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz}
223