package com.pinecone.technology.mcommerce.learning.android.chaptor09.dataloader; import android.app.Dialog; import android.app.Fragment; import android.app.LoaderManager.LoaderCallbacks; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; import android.text.Spannable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.SimpleCursorAdapter; import android.widget.Spinner; import android.widget.TextView; public class AddEmployee extends Fragment implements LoaderCallbacks<Cursor> { private static final String TAG = "AddEmployee"; EditText txtName; EditText txtAge; TextView txtEmps; DatabaseHelper dbHelper; Spinner spinDept; private SimpleCursorAdapter mAdapter; private Button btnAdd; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub dbHelper = new DatabaseHelper(getActivity()); return inflater.inflate(R.layout.addemployee, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); txtName = (EditText) getActivity().findViewById(R.id.txtName); txtAge = (EditText) getActivity().findViewById(R.id.txtAge); txtEmps = (TextView) getActivity().findViewById(R.id.txtEmps); spinDept = (Spinner) getActivity().findViewById(R.id.spinDept); btnAdd = (Button) getActivity().findViewById(R.id.btnAdd); btnAdd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub boolean ok = true; try { Spannable spn = txtAge.getText(); String name = txtName.getText().toString(); int age = Integer.valueOf(spn.toString()); int deptID = Integer.valueOf((int) spinDept .getSelectedItemId()); Employee emp = new Employee(name, age, deptID); dbHelper.AddEmployee(emp); } catch (Exception ex) { ok = false; CatchError(ex.toString()); } finally { if (ok) { // NotifyEmpAdded(); Alerts.ShowEmpAddedAlert(getActivity()); txtEmps.setText("Number of employees " + String.valueOf(dbHelper.getEmployeeCount())); } } } }); mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.deptspinnerrow, null, new String[] { DatabaseHelper.colDeptName, "_id" }, new int[] { R.id.txtDeptName }, 0); spinDept.setAdapter(mAdapter); getLoaderManager().initLoader(1, null, this); } void CatchError(String Exception) { Dialog diag = new Dialog(getActivity()); diag.setTitle("Add new Employee"); TextView txt = new TextView(getActivity()); txt.setText(Exception); diag.setContentView(txt); diag.show(); } void NotifyEmpAdded() { Dialog diag = new Dialog(getActivity()); diag.setTitle("Add new Employee"); TextView txt = new TextView(getActivity()); txt.setText("Employee Added Successfully"); diag.setContentView(txt); diag.show(); try { diag.wait(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block CatchError(e.toString()); } diag.notify(); diag.dismiss(); } @Override public Loader<Cursor> onCreateLoader(int id, Bundle args) { // TODO Auto-generated method stub return new DeptCursorLoader(getActivity(), dbHelper); } @Override public void onLoadFinished(Loader<Cursor> arg0, 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> arg0) { // TODO Auto-generated method stub if (mAdapter != null) mAdapter.swapCursor(null); else Log.v(TAG, "OnLoadFinished: mAdapter is null"); } }