package com.zhan_dui.dictionary.cursoradapters;
import org.holoeverywhere.app.Dialog;
import android.content.Context;
import android.database.Cursor;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
import com.emilsjolander.components.stickylistheaders.StickyListHeadersAdapter;
import com.viewpagerindicator.TitlePageIndicator;
import com.zhan_dui.dictionary.R;
import com.zhan_dui.dictionary.asynctasks.QueryAsyncTask;
import com.zhan_dui.dictionary.datacenter.DictionaryDataCenter;
import com.zhan_dui.dictionary.listeners.IndicatorOnPageChangeListener;
import com.zhan_dui.dictionary.pageradapter.QueryManageFragmentPager;
public class WordAdapter extends CursorAdapter implements
StickyListHeadersAdapter {
private LayoutInflater mLayoutInflater;
private Context mContext;
private Cursor mCursor;
@SuppressWarnings("deprecation")
public WordAdapter(Context context, Cursor c) {
super(context, c);
mContext = context;
mLayoutInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mCursor = c;
}
private HeaderViewHolder headerViewHolder;
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mLayoutInflater.inflate(R.layout.header, parent,
false);
headerViewHolder = new HeaderViewHolder();
headerViewHolder.text = (TextView) convertView
.findViewById(R.id.text);
convertView.setTag(headerViewHolder);
} else {
headerViewHolder = (HeaderViewHolder) convertView.getTag();
}
mCursor.moveToPosition(position);
char headerChar = mCursor.getString(mCursor.getColumnIndex("word"))
.subSequence(0, 1).charAt(0);
headerViewHolder.text.setText(headerChar + "");
return convertView;
}
@Override
public long getHeaderId(int position) {
mCursor.moveToPosition(position);
return mCursor.getString(mCursor.getColumnIndex("word"))
.subSequence(0, 1).charAt(0);
}
private ViewHolder viewHolder;
@Override
public void bindView(View v, Context context, Cursor c) {
viewHolder = (ViewHolder) v.getTag();
viewHolder.text.setText(c.getString(c.getColumnIndex("word")));
}
@Override
public View newView(Context context, Cursor c, ViewGroup viewGroup) {
View view = mLayoutInflater.inflate(R.layout.word_item, viewGroup,
false);
TextView textView = (TextView) view.findViewById(R.id.word);
ViewHolder viewHolder = new ViewHolder();
viewHolder.text = textView;
view.setTag(viewHolder);
view.setOnClickListener(new OnClickExpanded());
return view;
}
class OnClickExpanded implements OnClickListener {
@Override
public void onClick(View v) {
Dialog dialog = new Dialog(mContext);
View query_View = mLayoutInflater.inflate(R.layout.query, null);
ViewPager mViewPager = (ViewPager) query_View
.findViewById(R.id.viewpager);
TitlePageIndicator mTitlePageIndicator = (TitlePageIndicator) query_View
.findViewById(R.id.titles);
QueryManageFragmentPager mQueryManageFragmentPager = new QueryManageFragmentPager();
mViewPager.setAdapter(mQueryManageFragmentPager);
mTitlePageIndicator.setViewPager(mViewPager);
mTitlePageIndicator
.setOnPageChangeListener(new IndicatorOnPageChangeListener());
ViewHolder holder = (ViewHolder) v.getTag();
String textString = (String) holder.text.getText();
DictionaryDataCenter.instance(mContext).clear();
mQueryManageFragmentPager.notifyDataSetChanged();
mTitlePageIndicator.notifyDataSetChanged();
new QueryAsyncTask(mContext, mTitlePageIndicator,
mQueryManageFragmentPager, textString).execute();
dialog.setTitle(textString);
dialog.setContentView(query_View);
dialog.show();
}
}
class HeaderViewHolder {
TextView text;
}
class ViewHolder {
TextView text;
}
}