package com.appspot.thinkhea;
import java.util.Vector;
import android.app.Activity;
import android.content.Intent;
import android.database.SQLException;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import com.appspot.thinkhea.model.MyDBHelper;
import com.appspot.thinkhea.model.Picture;
import com.appspot.thinkhea.model.Player;
import com.appspot.thinkhea.model.Record;
import com.appspot.thinkhea.view.SeleableGridRecordAdapter;
public class PanelSelectPlayerForRecord extends Activity {
private Vector<Picture> c;
private MyDBHelper db;
private GridView v;
private String tag = "PanelListSelectPicture";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawableResource(R.drawable.bg);
setTitle(R.string.desc_record_list_select);
setContentView(R.layout.panel_add_record);
// handle list event and model
v = (GridView) findViewById(R.id.RecordGridView);
v.setFocusable(true);
v.setClickable(true);
v.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position,
long id) {
((SeleableGridRecordAdapter) a.getAdapter())
.setSelected(position);
}
});
loadPictures();
// Add Button Listener
Button b = (Button) findViewById(R.id.BtnGoBack);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(PanelSelectPlayerForRecord.this,
PanelListRecord.class);
PanelSelectPlayerForRecord.this.startActivity(myIntent);
}
});
// Add Button Listener
Button ba = (Button) findViewById(R.id.BtnAddRecordNext);
ba.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
GridView lv = (GridView) findViewById(R.id.RecordGridView);
Vector<Picture> pics = ((SeleableGridRecordAdapter) lv
.getAdapter()).getSelected();
if (pics.size() <= 1 || pics.size() >= 11) {
Toast.makeText(PanelSelectPlayerForRecord.this,
"Please select 2 ~ 10 players for a game.",
Toast.LENGTH_SHORT).show();
return;
}
// save selected Game into DB
long result = savePictures(pics);
if (result == -1) {
Toast.makeText(PanelSelectPlayerForRecord.this,
tag + " Error in adding record.",
Toast.LENGTH_SHORT).show();
return;
}
Toast.makeText(PanelSelectPlayerForRecord.this, "Record saved.",
Toast.LENGTH_SHORT).show();
Bundle bundle = new Bundle();
bundle.putString("RECORD_ID", result + "");
Intent myIntent = new Intent(PanelSelectPlayerForRecord.this,
PanelGridPlayerRecord.class);
myIntent.putExtras(bundle);
PanelSelectPlayerForRecord.this.startActivity(myIntent);
}
});
}
protected long savePictures(Vector<Picture> pics) {
if (db == null) {
db = new MyDBHelper(this);
}
Record r = new Record();
Vector<Player> p = r.getPlayerList();
for (int b = 0; b < pics.size(); b++) {
Player c = new Player();
int pid = pics.get(b).getId();
c.setId(pid);
p.add(c);
}
db.open();
long result = -1;
try {
result = db.addRecord(r);
} catch (SQLException e) {
Log.e(tag, "SQLException - addRecord");
}
db.close();
return result;
}
protected void loadPictures() {
// load data from DB
if (c != null) {
c.clear();
}
if (db == null) {
db = new MyDBHelper(this);
}
db.open();
c = db.getAllPicutres();
db.close();
SeleableGridRecordAdapter iAdapter = new SeleableGridRecordAdapter(
this, c);
// handle list event and model
v.setAdapter(iAdapter);
}
}
|