package com.gwtmobile.phonegap.client.plugins.iphone;
import com.google.gwt.core.client.JavaScriptObject;
/* Copyright (c) 2011 Smithimage (Robert Wallström)
*
* author: Robert Wallström
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
public class TabBar {
private static Callback callback;
public static native void create() /*-{
$wnd.plugins.nativeControls.createTabBar();
}-*/;
public static void creatItem(String name, String label, String image){
creatItem(name, label, image, Options.newInstance());
};
public static native void creatItem(String name, String label, String image, Options options)/*-{
$wnd.plugins.nativeControls.createTabBarItem(name, label, image, options);
}-*/;
public static void show(){
show(Options.newInstance().position("bottom"));
}
public static native void show(Options options)/*-{
$wnd.plugins.nativeControls.showTabBar(options);
}-*/;
public static native void showItems(String itemName1, Options options)/*-{
$wnd.plugins.nativeControls.showTabBarItems(itemName1, options)
}-*/;
public static native void showItems(String itemName1, String itemName2, Options options)/*-{
$wnd.plugins.nativeControls.showTabBarItems(itemName1, itemName2, options)
}-*/;
public static native void showItems(String itemName1, String itemName2, String itemName3, Options options)/*-{
$wnd.plugins.nativeControls.showTabBarItems(itemName1, itemName2, itemName3, options)
}-*/;
public static native void showItems(String itemName1, String itemName2, String itemName3, String itemName4, Options options)/*-{
$wnd.plugins.nativeControls.showTabBarItems(itemName1, itemName2, itemName3, itemName4, options)
}-*/;
public static native void showItems(String itemName1, String itemName2, String itemName3, String itemName4, String itemName5, Options options)/*-{
$wnd.plugins.nativeControls.showTabBarItems(itemName1, itemName2, itemName3, itemName4, itemName5, options)
}-*/;
public static native void hide(boolean animate)/*-{
$wnd.plugins.nativeControls.hideTabBar(animate)
}-*/;
public static native void selectItem(String name)/*-{
$wnd.plugins.nativeControls.selectTabBarItem(name);
}-*/;
public static void setCallback(Callback callback) {
TabBar.callback = callback;
}
private static void onTabItemSelected(String id) {
if (callback != null) {
callback.onSelected(id);
}
}
public interface Callback {
void onSelected(String id);
}
public static class Options extends JavaScriptObject {
public static Options newInstance() {
Options options = (Options) JavaScriptObject.createObject();
options.setOnSelectCallback();
return options;
}
protected Options() {};
public final native Options position(String p) /*-{
this.position = p;
return this;
}-*/;
public final native Options height(int h)/*-{
this.height = h;
return this;
}-*/;
public final native Options animate(boolean a)/*-{
this.animate = a;
return this;
}-*/;
private final native void setOnSelectCallback()/*-{
this.onSelect = function(id){
@com.gwtmobile.phonegap.client.plugins.iphone.TabBar::onTabItemSelected(Ljava/lang/String;)(id);
};
}-*/;
}
}