1203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardpackage com.xtremelabs.robolectric.shadows;
2203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard
37720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultzimport android.content.Intent;
40db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vrankenimport android.graphics.drawable.Drawable;
5203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardimport android.view.View;
6203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardimport android.widget.TabHost;
789e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vrankenimport android.widget.TabHost.TabContentFactory;
8203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardimport com.xtremelabs.robolectric.internal.Implementation;
9203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardimport com.xtremelabs.robolectric.internal.Implements;
10b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultzimport com.xtremelabs.robolectric.internal.RealObject;
11203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard
12203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard@SuppressWarnings({"UnusedDeclaration"})
13203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard@Implements(TabHost.TabSpec.class)
14203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richardpublic class ShadowTabSpec {
15203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard
16b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    @RealObject
17b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    TabHost.TabSpec realObject;
18b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    private String tag;
19b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    private View indicatorView;
207720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz    private Intent intent;
210db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken	private int viewId;
2289e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken	private View contentView;
230db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken	private CharSequence label;
240db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken	private Drawable icon;
25b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz
26b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    /**
27b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     * Non-Android accessor, sets the tag on the TabSpec
28b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     */
29b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    public void setTag(String tag) {
30b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz        this.tag = tag;
31b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    }
32b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz
33b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    @Implementation
34b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    public java.lang.String getTag() {
35b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz        return tag;
36b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    }
37b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz
38b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    /**
39b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     * Non-Android accessor
40b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     *
41b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     * @return the view object set in a call to {@code TabSpec#setIndicator(View)}
42b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz     */
43b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    public View getIndicatorAsView() {
44b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz        return this.indicatorView;
45b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    }
46e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken
47e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken    public String getIndicatorLabel() {
48e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken        return this.label.toString();
49e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken    }
50e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken
51e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken    public Drawable getIndicatorIcon() {
52e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken        return this.icon;
53e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken    }
54e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken
55e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	/**
56e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	 * Same as GetIndicatorLabel()
57e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	 * @return
58e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	 */
59e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	public String getText() {
60e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken		return label.toString();
61e2f20558e0dc038ee93e3aa4f439c69c6e97c050Chris Van Vranken	}
62203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard    @Implementation
63203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard    public TabHost.TabSpec setIndicator(View view) {
64b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz        this.indicatorView = view;
65b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz        return realObject;
66b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz    }
670db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken
680db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    @Implementation
690db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    public TabHost.TabSpec setIndicator(CharSequence label) {
700db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    	this.label = label;
710db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken        return realObject;
720db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    }
730db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken
740db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    @Implementation
750db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    public TabHost.TabSpec setIndicator(CharSequence label, Drawable icon) {
760db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    	this.label = label;
770db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    	this.icon = icon;
780db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken        return realObject;
790db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    }
80b8898598e493d4df40038a501ff77f2aa437e9efMike Grafton & Tyler Schultz
817720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz    /**
827720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz     * Non-Android accessor
837720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz     *
847720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz     * @return the intent object set in a call to {@code TabSpec#setContent(Intent)}
857720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz     */
867720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz    public Intent getContentAsIntent() {
877720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz        return intent;
887720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz    }
897720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz
907720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz    @Implementation
915f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richard    public android.widget.TabHost.TabSpec setContent(Intent intent) {
927720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz        this.intent = intent;
937720cdebf0a7c543dd00569149a357e1501b2063Tyler Schultz        return realObject;
94203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard    }
950db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken
9689e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    @Implementation
9789e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    public android.widget.TabHost.TabSpec setContent(TabContentFactory factory) {
9889e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    	contentView = factory.createTabContent(this.tag);
9989e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken        return realObject;
10089e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    }
10189e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken
10289e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken
1030db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    @Implementation
1040db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    public android.widget.TabHost.TabSpec setContent(int viewId) {
1050db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    	this.viewId = viewId;
1060db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken        return realObject;
1070db555ccfd46ab2157b6f9b3ebb52936ebb3e5f2Chris Van Vranken    }
10889e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken
10989e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    public int getContentViewId() {
11089e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    	return viewId;
11189e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    }
11289e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken
11389e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    public View getContentView() {
11489e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    	return contentView;
11589e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken    }
11689e9d844e025ab9de8ec19eaf4cb4c6022012254Chris Van Vranken
117203e06c477634129655bee1db352d7e574513f9cJoe Moore, Lowell Kirsh & Ryan Richard}
118