package com.likebamboo.osa.android.ui.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.widget.RelativeLayout;
import com.likebamboo.osa.android.R;
/**
* WebView 操作栏封装,提供 back ,refresh ,forward 功能
*
* @author likebamboo
* @version [版本号, 2015年5月20日]
* @see [相关类/方法]
* @since [产品/模块版本]
*/
public class WebViewToolBar extends RelativeLayout implements View.OnClickListener
{
/**
* 后退
*/
private View mWebviewGoBack;
/**
* 刷新
*/
private View mWebviewRefresh;
/**
* 前进
*/
private View mWebviewGoForward;
/**
* 目标WebView
*/
private WebView mTargetView = null;
public WebViewToolBar(Context context)
{
this(context, null);
}
public WebViewToolBar(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public WebViewToolBar(Context context, AttributeSet attrs, int defStyleAttr)
{
super(context, attrs, defStyleAttr);
LayoutInflater.from(context).inflate(R.layout.webview_toolbar, this, true);
if (!isInEditMode())
{
// 初始化
initView();
// 添加监听器
addListener();
}
}
/**
* 初始化界面元素
*
* @see [类、类#方法、类#成员]
*/
private void initView()
{
mWebviewGoBack = findViewById(R.id.webviewGoBack);
mWebviewGoBack.setEnabled(false);
mWebviewRefresh = findViewById(R.id.webviewRefresh);
mWebviewRefresh.setEnabled(false);
mWebviewGoForward = findViewById(R.id.webviewGoForward);
mWebviewGoForward.setEnabled(false);
}
/**
* 添加监听器
*
* @see [类、类#方法、类#成员]
*/
private void addListener()
{
mWebviewGoBack.setOnClickListener(this);
mWebviewRefresh.setOnClickListener(this);
mWebviewGoForward.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
if (v == null || mTargetView == null)
{
return;
}
switch (v.getId())
{
case R.id.webviewGoBack:// 后退
mTargetView.goBack();
break;
case R.id.webviewRefresh:// 刷新
mTargetView.reload();
break;
case R.id.webviewGoForward:// 向前
mTargetView.goForward();
break;
default:
break;
}
}
/**
* 将本控件绑定到具体的webView 上
*
* @see [类、类#方法、类#成员]
*/
public void attachToWebView(WebView target)
{
mTargetView = target;
}
/**
* 更新状态
*
* @see [类、类#方法、类#成员]
*/
public void updateStatus()
{
if (mTargetView == null)
{
return;
}
mWebviewGoBack.setEnabled(mTargetView.canGoBack());
mWebviewRefresh.setEnabled(true);
mWebviewGoForward.setEnabled(mTargetView.canGoForward());
}
}