package com.pinecone.technology.mcommerce.learning.android.chaptor09.dataloader;
import android.app.AlertDialog;
import android.app.Fragment;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Loader;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.GridView;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.TextView;
public class EmployeesList extends Fragment implements LoaderCallbacks<Cursor> {
private static final String TAG = "EmployeesList";
private DatabaseHelper dbHelper;
static public GridView grid;
private TextView txtTest;
private Spinner spinDept1;
private String dept = "";
private SimpleCursorAdapter mAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.gridview, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
final DatabaseHelper db = new DatabaseHelper(getView().getContext());
txtTest = (TextView) getActivity().findViewById(R.id.txtTest);
grid = (GridView) getActivity().findViewById(R.id.grid);
spinDept1 = (Spinner) getActivity().findViewById(R.id.spinDept1);
TextView txt = (TextView) spinDept1.getSelectedView().findViewById(
R.id.txtDeptName);
dept = String.valueOf(txt.getText());
Utilities.ManageDeptSpinner(getActivity(), spinDept1);
String[] from = new String[] { DatabaseHelper.colName,
DatabaseHelper.colAge, DatabaseHelper.colDeptName };
int[] to = new int[] { R.id.colName, R.id.colAge, R.id.colDept };
mAdapter = new SimpleCursorAdapter(getView().getContext(),
R.layout.gridrow, null, from, to, 0);
grid.setAdapter(mAdapter);
spinDept1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
// View v = spinDept1.getSelectedView();
// TextView txt = (TextView) v.findViewById(R.id.txtDeptName);
// dept = String.valueOf(txt.getText());
onActivityCreated(getActivity().get);
Log.v(TAG, 111111 + dept);
// grid.setAdapter(mAdapter);
// sca.notifyDataSetChanged();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
grid.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// TODO Auto-generated method stub
try {
SQLiteCursor cr = (SQLiteCursor) parent
.getItemAtPosition(position);
String name = cr.getString(cr
.getColumnIndex(DatabaseHelper.colName));
int age = cr.getInt(cr
.getColumnIndex(DatabaseHelper.colAge));
String Dept = cr.getString(cr
.getColumnIndex(DatabaseHelper.colDeptName));
Employee emp = new Employee(name, age, db.GetDeptID(Dept));
emp.SetID((int) id);
AlertDialog diag = Alerts.ShowEditDialog(getView()
.getContext(), emp);
diag.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
txtTest.setText("dismissed");
// ((SimpleCursorAdapter)grid.getAdapter()).notifyDataSetChanged();
String[] from = new String[] {
DatabaseHelper.colName,
DatabaseHelper.colAge,
DatabaseHelper.colDeptName };
int[] to = new int[] { R.id.colName, R.id.colAge,
R.id.colDept };
mAdapter = new SimpleCursorAdapter(getView()
.getContext(), R.layout.gridrow, null,
from, to, 0);
grid.setAdapter(mAdapter);
}
});
diag.show();
} catch (Exception ex) {
Alerts.CatchError(getView().getContext(), ex.toString());
}
}
});
getLoaderManager().initLoader(1, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new EmpCursorLoader(getActivity(), dept);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
// TODO Auto-generated method stub
if (mAdapter != null && cursor != null)
mAdapter.swapCursor(cursor); // swap the new cursor in.
else
Log.v(TAG, "OnLoadFinished: mAdapter is null");
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
if (mAdapter != null)
mAdapter.swapCursor(null);
else
Log.v(TAG, "OnLoadFinished: mAdapter is null");
}
}