package org.kvj.lima1.android.ui;
import org.json.JSONObject;
import org.kvj.bravo7.SuperActivity;
import org.kvj.lima1.android.ui.adapter.PageListAdapter;
import org.kvj.lima1.android.ui.controller.Lima1App;
import org.kvj.lima1.android.ui.controller.Lima1Controller;
import org.kvj.lima1.android.ui.controller.Lima1Service;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
public class PageList extends
SuperActivity<Lima1App, Lima1Controller, Lima1Service> {
private ListView list = null;
private PageListAdapter adapter = null;
boolean archived = false;
public PageList() {
super(Lima1Service.class);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_list);
list = (ListView) findViewById(R.id.page_list_list);
adapter = new PageListAdapter(this);
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long id) {
itemClick(pos);
}
});
}
protected void itemClick(int pos) {
Intent showPage = new Intent(this, PageActivity.class);
JSONObject sheet = adapter.getItem(pos);
showPage.putExtra("sheet_id", sheet.optLong("id"));
startActivity(showPage);
}
@Override
public void onController(Lima1Controller controller) {
if (null == this.controller) {
adapter.setController(controller);
}
adapter.reload(archived);
super.onController(controller);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_sync:
String result = controller.sync();
if (null != result) {
notifyUser(result);
}
break;
case R.id.menu_reload:
archived = !archived;
adapter.reload(archived);
break;
}
return true;
}
}