package net.basilwang;
import static net.basilwang.dao.Preferences.LOGON_ACCOUNT_ID;
import java.util.List;
import net.basilwang.dao.CurriculumService;
import net.basilwang.entity.Curriculum;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.preference.PreferenceManager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.text.format.Time;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import net.basilwang.R;
import br.com.dina.ui.model.BasicItem;
import br.com.dina.ui.model.ViewItem;
import br.com.dina.ui.widget.UITableView;
public class CurriculumViewPagerActivity extends StaticAttachmentActivity {
private final int REAL_LIST_NUMS = 7;
private ViewPager dayPager;
// private UITableView mTableView;
private DayViewPagerAdapter dayAdapter;
private int focusedPage = 0;
final private int today = 4;
private int mDay;
private CurriculumService curriculumService;
private class DayViewPagerAdapter extends PagerAdapter {
ViewPager container;
private View addDayViewAt(int position, int day) {
// final View mv = new View(CurriculumViewPagerActivity.this);
// mv.setLayoutParams(new ViewSwitcher.LayoutParams(
// android.view.ViewGroup.LayoutParams.MATCH_PARENT,
// android.view.ViewGroup.LayoutParams.MATCH_PARENT));
// mv.setSelectedTime(time);
View v = CurriculumViewPagerActivity.this.getLayoutInflater()
.inflate(R.layout.dayview, container, false);
v.setTag(day);
container.addView(v, position);
if (day == today) {
reloadData(v);
}
return v;
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeViewAt(position);
}
@Override
public void finishUpdate(View container) {
}
@Override
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(View container, int position) {
this.container = (ViewPager) container;
// int day=0;
final Time time = new Time();
time.set(System.currentTimeMillis());
time.month += (position - 1); // add the offset from the center time
// day += (position - 1); // add the offset from the center time
int day = today + (position - 1);
return addDayViewAt(position, day);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
private View removeDayViewAt(ViewPager container, int position) {
final View mv = (View) container.getChildAt(position);
container.removeViewAt(position);
return mv;
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View container) {
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.curriculum_viewpager);
curriculumService = new CurriculumService(this);
dayAdapter = new DayViewPagerAdapter();
dayPager = (ViewPager) findViewById(R.id.pager);
dayPager.setAdapter(dayAdapter);
dayPager.setCurrentItem(1, false);
dayPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
if (state == ViewPager.SCROLL_STATE_IDLE) {
final int oldLeftDay = Integer.valueOf(((View) dayPager
.getChildAt(0)).getTag().toString());
final int oldCenterDay = Integer.valueOf(((View) dayPager
.getChildAt(1)).getTag().toString());
int oldRightDay;
if (dayPager.getChildAt(2) != null)
oldRightDay = Integer.valueOf(((View) dayPager
.getChildAt(2)).getTag().toString());
else
oldRightDay = 0;
Log.v("test", oldLeftDay + "" + oldCenterDay + ""
+ oldRightDay);
if (focusedPage == 0) {
// HistoryMonthActivity.this.setTitle(Utils
// .formatMonthYear(HistoryMonthActivity.this,
// oldTopTime));
int day = oldLeftDay;
day = (day == 1 ? REAL_LIST_NUMS : day - 1);
// TODO: load and switch shown events
((View) dayPager.getChildAt(0)).setTag(day);
((View) dayPager.getChildAt(1)).setTag(oldLeftDay);
((View) dayPager.getChildAt(2)).setTag(oldCenterDay);
} else if (focusedPage == 2) {
// HistoryMonthActivity.this.setTitle(Utils
// .formatMonthYear(HistoryMonthActivity.this,
// oldBottomTime));
int day = oldRightDay;
day = (day % REAL_LIST_NUMS == 0 ? 1 : day + 1);
// TODO: load and switch shown events
((View) dayPager.getChildAt(0)).setTag(oldCenterDay);
((View) dayPager.getChildAt(1)).setTag(oldRightDay);
((View) dayPager.getChildAt(2)).setTag(day);
}
// always set to middle page to continue to be able to
// scroll up/down
dayPager.setCurrentItem(1, false);
reloadData(dayPager.getChildAt(1));
}
}
@Override
public void onPageSelected(int position) {
focusedPage = position;
// View fragment=dayPager.getChildAt(position);
// TextView tv=(TextView)fragment.findViewById(R.id.test);
// tv.setText(fragment.getTag().toString());
// ListView
// list=(ListView)fragment.findViewById(R.id.dayviewlist);
// CurriculumAdapter adapter = new
// CurriculumAdapter(Integer.valueOf(fragment.getTag().toString()),
// CurriculumViewPagerActivity.this);
// list.setAdapter(adapter);
}
});
}
private void reloadData(View fragment) {
mDay = Integer.valueOf(fragment.getTag().toString());
TextView tv = (TextView) fragment.findViewById(R.id.dayofweek);
switch (mDay) {
case 1:
tv.setText(R.string.day1);
break;
case 2:
tv.setText(R.string.day2);
break;
case 3:
tv.setText(R.string.day3);
break;
case 4:
tv.setText(R.string.day4);
break;
case 5:
tv.setText(R.string.day5);
break;
case 6:
tv.setText(R.string.day6);
break;
case 7:
tv.setText(R.string.day7);
break;
}
// TextView tv = (TextView) fragment.findViewById(R.id.test);
// tv.setText(fragment.getTag().toString());
// ListView list = (ListView) fragment
// .findViewById(R.id.dayviewlist);
// CurriculumAdapter adapter = new CurriculumAdapter(Integer
// .valueOf(fragment.getTag().toString()),
// CurriculumViewPagerActivity.this);
// list.setAdapter(adapter);
UITableView mTableView = (UITableView) fragment
.findViewById(R.id.tableView);
populateList(mTableView, fragment);
mTableView.commit();
}
// protected UITableView getUITableView() {
// return mTableView;
// }
protected void populateList(UITableView mTableView, View parent) {
// 2012-5-27 basilwang must clear list when change view pager
mTableView.clear();
// mTableView.addBasicItem("Example 1", "Summary text 1");
// mTableView.addBasicItem("Example 1");
// mTableView.addBasicItem("Example 2", "Summary text 2");
// mTableView.addBasicItem(new BasicItem("Disabled item",
// "this is a disabled item", false));
// mTableView.addBasicItem("Example 3", "Summary text 3");
// mTableView.addBasicItem(new BasicItem("Disabled item",
// "this is a disabled item", false));
//
//
// LayoutInflater mInflater = (LayoutInflater)
// getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// RelativeLayout view = (RelativeLayout)
// mInflater.inflate(R.layout.custom_view3, null);
// ViewItem viewItem = new ViewItem(view);
// mTableView.addViewItem(viewItem);
int accountId = PreferenceManager.getDefaultSharedPreferences(this)
.getInt(LOGON_ACCOUNT_ID, 0);
List<Curriculum> curriculumList = this.curriculumService
.getCurriculumListByDay("don't use", mDay, accountId);
if (curriculumList.size() == 0) {
mTableView.addBasicItem(new BasicItem(getResources().getString(
R.string.norecord), "", false));
} else {
LayoutInflater mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (Curriculum c : curriculumList) {
RelativeLayout v = (RelativeLayout) mInflater.inflate(
R.layout.custom_view3, null);
TextView txtView = (TextView) v.findViewById(R.id.title);
txtView.setText(c.getName());
ViewItem v2 = new ViewItem(v);
v2.setClickable(false);
mTableView.addViewItem(v2);
}
}
}
}