package com.piglet.ui;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.piglet.App;
import com.piglet.R;
import com.piglet.adapter.DbAdapter;
import com.piglet.dao.pojo.ConnectionInfo;
import com.piglet.dao.pojo.Database;
import com.piglet.utils.Constant;
import com.umeng.analytics.MobclickAgent;
public class DbActivity extends Activity {
private ConnectionInfo info;
private ListView listView;
private DbAdapter adapter;
private TextView tips;
private ProgressBar progressBar;
public static final int WHAT_DATABASE_RETURNED = 0;
public static final int WHAT_DATABASE_EMPTY = 1;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case Constant.value.WHAT_DATA_RETURNED:
tips.setVisibility(View.GONE);
progressBar.setVisibility(View.GONE);
List<Database> list = (List<Database>) msg.obj;
adapter.addAll(list);
break;
case Constant.value.WHAT_DATA_EMPTY:
tips.setText(R.string.empty_databases);
progressBar.setVisibility(View.GONE);
break;
case Constant.value.WHAT_FAILED_TO_CONNECT:
progressBar.setVisibility(View.GONE);
tips.setText(R.string.fail_to_connect);
break;
}
super.handleMessage(msg);
}
};
/**
* Called when the activity is first created.
*
* @param savedInstanceState
* If the activity is being re-initialized after previously being
* shut down then this Bundle contains the data it most recently
* supplied in onSaveInstanceState(Bundle). <b>Note: Otherwise it
* is null.</b>
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_db);
info = (ConnectionInfo) getIntent().getSerializableExtra(Constant.key.CONNECTION_INFO);
tips = (TextView) findViewById(R.id.tips);
tips.setText(R.string.show_db_working);
progressBar = (ProgressBar) findViewById(R.id.progressbar);
listView = (ListView) findViewById(R.id.dblist);
adapter = new DbAdapter(this);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent it = new Intent();
it.setClass(getApplicationContext(), TbActivity.class);
it.putExtra(Constant.key.DATABASE, adapter.getItemObject(position).getName());
startActivity(it);
}
});
initData();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(com.piglet.R.menu.main, menu);
return true;
}
private void initData() {
App.get().connect(info);
App.get().showDbs(handler);
}
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
}