ShadowView.java revision a89236397e869467b3fc6f7208f551da61235795
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; 6924f851cb0ec279b6974744ce623f25bdc657551Ryan Richardimport android.view.MotionEvent; 76eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport android.view.View; 8d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultzimport android.view.ViewGroup; 95411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williamsimport android.view.ViewParent; 100c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugolimport com.xtremelabs.droidsugar.ProxyDelegatingHandler; 110b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport com.xtremelabs.droidsugar.util.Implements; 126eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 13c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.ArrayList; 1451fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.HashMap; 15c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultzimport java.util.List; 1651fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultzimport java.util.Map; 17c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 18198b49fe81283e340891361045a8bdeb01f35e04Tyler Schultz@SuppressWarnings({"UnusedDeclaration"}) 190b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(View.class) 206eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzpublic class FakeView { 21a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz @Deprecated 22f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol public static final int UNINITIALIZED_ATTRIBUTE = -1000; 23f33e228a6f3eed1c97488df2ca30da315324aa1eHarry Ugol 245411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams protected View realView; 256eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 266eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private int id; 276eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private List<View> children = new ArrayList<View>(); 280c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol private FakeView parent; 296eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private Context context; 30eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz public boolean selected; 31810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore private View.OnClickListener onClickListener; 32c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz private Object tag; 33775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard private boolean enabled = true; 34a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz public int visibility = View.VISIBLE; 3518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int height; 3618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int width; 3718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingLeft; 3818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingTop; 3918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingRight; 4018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int paddingBottom; 41686237bc49c2d8ff1891cb5fadaa7aaaf1cf9bddChristian Williams & Tyler Schultz public ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(0, 0); 4244ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams private Map<Integer, Object> tags = new HashMap<Integer, Object>(); 43cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public boolean clickable; 44cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public boolean focusable; 454d4b979c716f731be80852e7c04fdbe9862be3f0Ian Fisher & Phil Goodwin public int backgroundResourceId = -1; 465411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams protected View.OnKeyListener onKeyListener; 475411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public boolean hasFocus; 485411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams private View.OnFocusChangeListener onFocusChangeListener; 491c46c94a5affe7beeb8c6bfcb5ec0ed509e5fdbdRyan Richard public boolean wasInvalidated; 50924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard private View.OnTouchListener onTouchListener; 516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 526eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public FakeView(View view) { 536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.realView = view; 546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 556eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 566eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void __constructor__(Context context) { 576eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.context = context; 586eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 596eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 60684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams public void __constructor__(Context context, AttributeSet attrs) { 61684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams __constructor__(context); 62684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams } 63684ccc2fc5a1c79aa45af22b95c37f7c509a00c1Christian Williams 646eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void setId(int id) { 656eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.id = id; 666eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 676eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 68cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public void setClickable(boolean clickable) { 69cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz this.clickable = clickable; 70cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz } 71cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz 72cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz public void setFocusable(boolean focusable) { 73cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz this.focusable = focusable; 74cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz } 75cc4bd26d94f6eba2a0dc3dae0065c8df2296a95eIan Fisher & Tyler Schultz 766eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getId() { 776eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return id; 786eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 796eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 80a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz public static View inflate(Context context, int resource, ViewGroup root) { 8147bd528af49de6d8459c8aeda60b88cc7a3c961fChristian Williams View view = FakeContextWrapper.resourceLoader.viewLoader.inflateView(context, resource); 82a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz if (root != null) { 83a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz root.addView(view); 84a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz } 85a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz return view; 86a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz } 87a66c979cb64d406c1646a0909bd9a0b6b6ccd802Ian Fisher & Tyler Schultz 886eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public View findViewById(int id) { 89e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz if (id == this.id) { 90e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz return realView; 91e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz } 926eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 93e617325bfe357b73644421064cae37e0a033eed7Christian Williams & Tyler Schulz for (View child : children) { 946eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz View found = child.findViewById(id); 956eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz if (found != null) { 966eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return found; 976eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 986eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 996eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return null; 1006eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1016eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1020c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol public View getRootView() { 1030c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol FakeView root = this; 1040c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol while(root.parent != null) { 1050c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol root = root.parent; 1060c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol } 1070c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol return root.realView; 1080c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol } 1090c40acb66824054e469b3afbc3609ba39bbdac1cChristian Williams & Harry Ugol 1106eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void addView(View child) { 1116eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz children.add(child); 112ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore childProxy(child).parent = this; 113ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 114ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore 115ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore private FakeView childProxy(View child) { 116ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore return (FakeView) ProxyDelegatingHandler.getInstance().proxyFor(child); 1176eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1186eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1196eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getChildCount() { 1206eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return children.size(); 1216eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1226eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 123d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz public ViewGroup.LayoutParams getLayoutParams() { 124d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz return layoutParams; 125d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz } 126d4f5daf12f1d112cf06b8b8914437ed6c0b3a677Ryan Richard & Tyler Schultz 127b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard public void setLayoutParams(ViewGroup.LayoutParams params) { 128b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard layoutParams = params; 129b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard } 130b0336c5991d124b6b157b9dc976ade56d00cba3eChristian Williams & Ryan Richard 1316eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public View getChildAt(int index) { 1326eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return children.get(index); 1336eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1346eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1355411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public final ViewParent getParent() { 136a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz return parent == null ? null : (ViewParent) parent.realView; 1375411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 1385411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 139ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore public void removeAllViews() { 140ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore for (View child : children) { 141ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore childProxy(child).parent = null; 142ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 143ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore children.clear(); 144ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore } 145ea0871e869748032b7ba534d2b213f83b399c4a9Christian Williams & Joe Moore 146a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz public void removeViewAt(int position) { 147a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz childProxy(children.remove(position)).parent = null; 148a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz } 149a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz 1506eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public final Context getContext() { 1516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return context; 1526eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1546eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public Resources getResources() { 1556eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return context.getResources(); 1566eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1576eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1584d4b979c716f731be80852e7c04fdbe9862be3f0Ian Fisher & Phil Goodwin public void setBackgroundResource(int backgroundResourceId) { 1594d4b979c716f731be80852e7c04fdbe9862be3f0Ian Fisher & Phil Goodwin this.backgroundResourceId = backgroundResourceId; 1604d4b979c716f731be80852e7c04fdbe9862be3f0Ian Fisher & Phil Goodwin } 1614d4b979c716f731be80852e7c04fdbe9862be3f0Ian Fisher & Phil Goodwin 1626eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public int getVisibility() { 1636eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz return visibility; 1646eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 1656eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 1666eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void setVisibility(int visibility) { 1676eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz this.visibility = visibility; 1686eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 169eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz 170eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz public void setSelected(boolean selected) { 171eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz this.selected = selected; 172eaadc83b187e31670dec8837d0851c0646522987Joe Moore & Tyler Schultz } 173810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore 174acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz public boolean isSelected() { 175acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz return this.selected; 176acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz } 177acb084f15b3b6e2496136ee8449b5d64ccb54939Ryan Richard & Tyler Schultz 178775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard public boolean isEnabled() { 179775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard return this.enabled; 180775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard } 181775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard 182775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard public void setEnabled(boolean enabled) { 183775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard this.enabled = enabled; 184775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard } 185775ccf7ae53d9b4c77d3adf2514f26747cebd89cIan Fisher & Ryan Richard 186810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore public void setOnClickListener(View.OnClickListener onClickListener) { 187810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore this.onClickListener = onClickListener; 188810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 189810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore 190810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore public boolean performClick() { 191810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore if (onClickListener != null) { 192810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore onClickListener.onClick(realView); 193810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore return true; 194810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } else { 195810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore return false; 196810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 197810ca4e6f0dc6d69504b3e03ef61155f10083fbeChristian Williams & Joe Moore } 198c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 1995411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setOnKeyListener(View.OnKeyListener onKeyListener) { 2005411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams this.onKeyListener = onKeyListener; 2015411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2025411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 203c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz public Object getTag() { 204c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz return this.tag; 205c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz } 206c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz 207c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz public void setTag(Object tag) { 208c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz this.tag = tag; 209c6f46aeb970c9111e2e79b806451f63b4853950bIan Fisher & Tyler Schultz } 21018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 21118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public final int getHeight() { 21218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return height; 21318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 21418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 21518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public final int getWidth() { 21618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return width; 21718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 21818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 219924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard public final int getMeasuredWidth() { 220924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard return width; 221924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard } 222924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard 22318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public void setPadding(int left, int top, int right, int bottom) { 22418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingLeft = left; 22518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingTop = top; 22618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingRight = right; 22718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard paddingBottom = bottom; 22818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 22918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 23018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingTop() { 23118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingTop; 23218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 23318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 23418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingLeft() { 23518141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingLeft; 23618141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 23718141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 23818141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingRight() { 23918141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingRight; 24018141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 24118141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard 24218141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard public int getPaddingBottom() { 24318141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard return paddingBottom; 24418141e608f2e60c866a9b7729909e9ce3b9eb588Ian Fisher & Ryan Richard } 24551fe0b279e9f5568683d9ef67921f922a51c05d5Christian Williams & Tyler Schultz 24644ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams public Object getTag(int key) { 24744ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams return tags.get(key); 24844ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams } 24944ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams 25044ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams public void setTag(int key, Object value) { 25144ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams tags.put(key, value); 25244ade170c5bc611222ed25d5b1f8e7745104057dChristian Williams } 2535411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2545411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setViewFocus(boolean hasFocus) { 2555411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams this.hasFocus = hasFocus; 2565411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams if (onFocusChangeListener != null) { 2575411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams onFocusChangeListener.onFocusChange(realView, hasFocus); 2585411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2595411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2605411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2615411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public boolean hasFocus() { 2625411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams return hasFocus; 2635411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2645411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams 2655411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams public void setOnFocusChangeListener(View.OnFocusChangeListener listener) { 2665411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams onFocusChangeListener = listener; 2675411bf7cde998b5c2e70b69fe3d7227b6783ab7cChristian Williams } 2681c46c94a5affe7beeb8c6bfcb5ec0ed509e5fdbdRyan Richard 2691c46c94a5affe7beeb8c6bfcb5ec0ed509e5fdbdRyan Richard public void invalidate() { 2701c46c94a5affe7beeb8c6bfcb5ec0ed509e5fdbdRyan Richard wasInvalidated = true; 2711c46c94a5affe7beeb8c6bfcb5ec0ed509e5fdbdRyan Richard } 272924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard 273924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard public void setOnTouchListener(View.OnTouchListener onTouchListener) { 274924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard this.onTouchListener = onTouchListener; 275924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard } 276924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard 277924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard public boolean dispatchTouchEvent(MotionEvent event) { 278924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard if (onTouchListener != null) { 279924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard return onTouchListener.onTouch(realView, event); 280924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard } 281924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard return false; 282924f851cb0ec279b6974744ce623f25bdc657551Ryan Richard } 2832ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin 2842ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin public String innerText() { 2852ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin return ""; 2862ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin } 2876eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz} 288