ShadowView.java revision 0b378afcde0200166e546c46a7642015accfce49
167142e6509cdc6c82290e955ae69400462cf52a9Christian Williams & Ian Fisherpackage com.xtremelabs.droidsugar.fakes; 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; 85411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williamsimport android.view.ViewParent; 90c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugolimport com.xtremelabs.droidsugar.ProxyDelegatingHandler; 100b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport com.xtremelabs.droidsugar.util.Implements; 116eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 12c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.ArrayList; 1351fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.HashMap; 14c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.List; 1551fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.Map; 16c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 17198b49fe81283e340891361045a8bdeb01f35e04Tyler Schultz@SuppressWarnings({"UnusedDeclaration"}) 180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(View.class) 196eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzpublic class FakeView { 20f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol public static final int UNINITIALIZED_ATTRIBUTE = -1000; 21f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol 225411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams protected View realView; 236eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 246eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private int id; 256eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private List<View> children = new ArrayList<View>(); 260c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol private FakeView parent; 276eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private Context context; 28eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz public boolean selected; 29810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore private View.OnClickListener onClickListener; 30c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz private Object tag; 31775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard private boolean enabled = true; 32f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol public int visibility = UNINITIALIZED_ATTRIBUTE; 3318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int height; 3418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int width; 3518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingLeft; 3618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingTop; 3718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingRight; 3818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingBottom; 39686237bc49c2d8ff1891cb5fadaa7aaaf1cf9bddChristian Williams & Tyler Schultz public ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(0, 0); 4044ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams private Map<Integer, Object> tags = new HashMap<Integer, Object>(); 41cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public boolean clickable; 42cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public boolean focusable; 435411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams protected View.OnKeyListener onKeyListener; 445411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public boolean hasFocus; 455411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams private View.OnFocusChangeListener onFocusChangeListener; 466eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 476eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public FakeView(View view) { 486eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.realView = view; 496eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 506eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void __constructor__(Context context) { 526eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.context = context; 536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 55684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams public void __constructor__(Context context, AttributeSet attrs) { 56684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams __constructor__(context); 57684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 58684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 596eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void setId(int id) { 606eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.id = id; 616eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 626eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 63cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public void setClickable(boolean clickable) { 64cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz this.clickable = clickable; 65cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz } 66cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz 67cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public void setFocusable(boolean focusable) { 68cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz this.focusable = focusable; 69cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz } 70cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz 716eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getId() { 726eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return id; 736eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 746eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 75a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz public static View inflate(Context context, int resource, ViewGroup root) { 7647bd528af49de6d8459c8aeda60b88cc7a3c961fChristian Williams View view = FakeContextWrapper.resourceLoader.viewLoader.inflateView(context, resource); 77a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz if (root != null) { 78a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz root.addView(view); 79a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz } 80a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz return view; 81a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz } 82a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz 836eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public View findViewById(int id) { 84e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz if (id == this.id) { 85e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz return realView; 86e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz } 876eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 88e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz for (View child : children) { 896eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz View found = child.findViewById(id); 906eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz if (found != null) { 916eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return found; 926eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 936eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 946eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return null; 956eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 966eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 970c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol public View getRootView() { 980c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol FakeView root = this; 990c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol while(root.parent != null) { 1000c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol root = root.parent; 1010c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol } 1020c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol return root.realView; 1030c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol } 1040c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol 1056eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void addView(View child) { 1066eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz children.add(child); 107ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore childProxy(child).parent = this; 108ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 109ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore 110ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore private FakeView childProxy(View child) { 111ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore return (FakeView) ProxyDelegatingHandler.getInstance().proxyFor(child); 1126eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1136eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1146eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getChildCount() { 1156eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return children.size(); 1166eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1176eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 118d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz public ViewGroup.LayoutParams getLayoutParams() { 119d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz return layoutParams; 120d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz } 121d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz 122b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard public void setLayoutParams(ViewGroup.LayoutParams params) { 123b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard layoutParams = params; 124b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard } 125b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard 1266eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public View getChildAt(int index) { 1276eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return children.get(index); 1286eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1296eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1305411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public final ViewParent getParent() { 1315411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams return (ViewParent) parent.realView; 1325411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 1335411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 134ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore public void removeAllViews() { 135ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore for (View child : children) { 136ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore childProxy(child).parent = null; 137ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 138ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore children.clear(); 139ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 140ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore 1416eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public final Context getContext() { 1426eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return context; 1436eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1446eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1456eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public Resources getResources() { 1466eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return context.getResources(); 1476eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1486eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1496eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getVisibility() { 1506eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return visibility; 1516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1526eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void setVisibility(int visibility) { 1546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.visibility = visibility; 1556eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 156eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz 157eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz public void setSelected(boolean selected) { 158eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz this.selected = selected; 159eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz } 160810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore 161acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz public boolean isSelected() { 162acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz return this.selected; 163acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz } 164acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz 165775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard public boolean isEnabled() { 166775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard return this.enabled; 167775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard } 168775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard 169775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard public void setEnabled(boolean enabled) { 170775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard this.enabled = enabled; 171775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard } 172775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard 173810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore public void setOnClickListener(View.OnClickListener onClickListener) { 174810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore this.onClickListener = onClickListener; 175810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 176810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore 177810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore public boolean performClick() { 178810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore if (onClickListener != null) { 179810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore onClickListener.onClick(realView); 180810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore return true; 181810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } else { 182810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore return false; 183810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 184810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 185c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 1865411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setOnKeyListener(View.OnKeyListener onKeyListener) { 1875411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams this.onKeyListener = onKeyListener; 1885411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 1895411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 190c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz public Object getTag() { 191c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz return this.tag; 192c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz } 193c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 194c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz public void setTag(Object tag) { 195c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz this.tag = tag; 196c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz } 19718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 19818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public final int getHeight() { 19918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return height; 20018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 20118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 20218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public final int getWidth() { 20318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return width; 20418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 20518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 20618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public void setPadding(int left, int top, int right, int bottom) { 20718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingLeft = left; 20818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingTop = top; 20918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingRight = right; 21018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingBottom = bottom; 21118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 21218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 21318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingTop() { 21418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingTop; 21518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 21618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 21718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingLeft() { 21818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingLeft; 21918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 22018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 22118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingRight() { 22218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingRight; 22318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 22418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 22518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingBottom() { 22618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingBottom; 22718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 22851fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultz 22944ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams public Object getTag(int key) { 23044ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams return tags.get(key); 23144ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams } 23244ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams 23344ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams public void setTag(int key, Object value) { 23444ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams tags.put(key, value); 23544ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams } 2365411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2375411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setViewFocus(boolean hasFocus) { 2385411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams this.hasFocus = hasFocus; 2395411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams if (onFocusChangeListener != null) { 2405411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams onFocusChangeListener.onFocusChange(realView, hasFocus); 2415411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2425411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2435411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2445411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public boolean hasFocus() { 2455411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams return hasFocus; 2465411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2475411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2485411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setOnFocusChangeListener(View.OnFocusChangeListener listener) { 2495411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams onFocusChangeListener = listener; 2505411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz} 252