package br.com.dina.ui.widget;
import br.com.dina.ui.R;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class UIButton extends LinearLayout {
private LayoutInflater mInflater;
private LinearLayout mButtonContainer;
private ClickListener mClickListener;
private CharSequence mTitle;
private CharSequence mSubtitle;
private int mImage;
public UIButton(Context context, AttributeSet attrs) {
super(context, attrs);
this.setClickable(true);
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mButtonContainer = (LinearLayout) mInflater.inflate(R.layout.list_item_single, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.UIButton, 0, 0);
mTitle = a.getString(R.styleable.UIButton_uititle);
mSubtitle = a.getString(R.styleable.UIButton_uisubtitle);
mImage = a.getResourceId(R.styleable.UIButton_uiimage, -1);
if(mTitle != null) {
((TextView) mButtonContainer.findViewById(R.id.title)).setText(mTitle.toString());
} else {
((TextView) mButtonContainer.findViewById(R.id.title)).setText("subtitle");
}
if(mSubtitle != null) {
((TextView) mButtonContainer.findViewById(R.id.subtitle)).setText(mSubtitle.toString());
} else {
((TextView) mButtonContainer.findViewById(R.id.subtitle)).setVisibility(View.GONE);
}
if(mImage > -1) {
((ImageView) mButtonContainer.findViewById(R.id.image)).setImageResource(mImage);
}
mButtonContainer.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mClickListener != null)
mClickListener.onClick(UIButton.this);
}
});
addView(mButtonContainer, params);
}
public interface ClickListener {
void onClick(View view);
}
/**
*
* @param listener
*/
public void addClickListener(ClickListener listener) {
this.mClickListener = listener;
}
/**
*
*/
public void removeClickListener() {
this.mClickListener = null;
}
}