package it.nic.uniapp; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import it.nic.uniapp.adapters.EsameAdapter; import it.nic.uniapp.core.PageLoader; import it.nic.uniapp.core.PageLoader.PageType; import it.nic.uniapp.db.DBHandler; import it.nic.uniapp.db.EsameEntity; import it.nic.uniapp.db.IDBHandler; import it.nic.uniapp.util.Util; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.Button; import android.widget.ListView; public class ListaEsami extends Activity { private PageLoader pageLoader = null; private IDBHandler dbhandler = null; private Bundle bundle = null; public static final String TAG = "ListaEsami"; public static final String KEY1 = "Modifica_Esame__key1"; private ListView listaEsami = null; private Button btnBack = null; private Button btnAddEsame = null; private EsameAdapter adapter = null; private List<EsameEntity> lista = null; private ArrayList<String> stringhe = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lista_esami); dbhandler = new DBHandler(this); try { dbhandler.copyDataBase(this); } catch (IOException e) { e.printStackTrace(); } try { this.lista = this.dbhandler.getAllEsami(); } catch (SQLException e1) { e1.printStackTrace(); } this.adapter = new EsameAdapter(this, this.lista); this.listaEsami = (ListView) this.findViewById(R.id.lista_esami__listView1); registerForContextMenu(listaEsami); this.btnBack = (Button) this.findViewById(R.id.lista_esami__btnBACK); this.btnAddEsame = (Button) this.findViewById(R.id.lista_esami__btnAddEsame); this.listaEsami.setAdapter(adapter); this.btnBack.setOnClickListener(btn_OnClickListener); this.btnAddEsame.setOnClickListener(btn_OnClickListener); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 1){ Bundle b = data.getExtras(); if (b != null && b.containsKey(UpdateEsame.KEY2)) { try { dbhandler.updateEsameById(b); lista = dbhandler.getAllEsami(); adapter = new EsameAdapter(this, this.lista); this.listaEsami.setAdapter(adapter); adapter.notifyDataSetChanged(); } catch (SQLException e) { e.printStackTrace(); } } else if (b != null && b.containsKey("Esame")) { try { lista = dbhandler.getAllEsami(); adapter = new EsameAdapter(this, lista); this.listaEsami.setAdapter(adapter); adapter.notifyDataSetChanged(); } catch (SQLException e1) { e1.printStackTrace(); } } } } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); EsameEntity entity = (EsameEntity) (this.adapter.getItem(info.position)); Log.v(TAG, entity.toString()); switch (item.getItemId()) { case R.id.menu__modifica: this.pageLoader = new PageLoader(); this.stringhe = new ArrayList<String>(); this.stringhe.add(Integer.toString(entity.getId())); this.stringhe.add(entity.getData()); this.stringhe.add(entity.getNome()); this.stringhe.add(entity.getTotCred()); this.stringhe.add(entity.getVoto()); this.stringhe.add(entity.getCredAcq()); this.bundle = new Bundle(); bundle.putStringArrayList(KEY1, this.stringhe); pageLoader.startPageDependentActivity(this, PageType.UpdateEsame, true, bundle); return true; case R.id.menu__eliminaTutti: try { dbhandler.deleteAllEsami(); lista = dbhandler.getAllEsami(); adapter = new EsameAdapter(this, this.lista); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // / --- this.adapter = new EsameAdapter(this, this.lista); this.listaEsami.setAdapter(adapter); adapter.notifyDataSetChanged(); // --- return true; case R.id.menu__elimina: try { dbhandler.deleteEsameById(entity.getId()); lista = dbhandler.getAllEsami(); adapter = new EsameAdapter(this, this.lista); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // / --- this.adapter = new EsameAdapter(this, this.lista); this.listaEsami.setAdapter(adapter); adapter.notifyDataSetChanged(); // --- Util.showToast(this, entity.getNome() + " rimosso"); return true; case R.id.menu__annulla: // non fa nulla default: return super.onContextItemSelected(item); } } private void OnClick(View view) { String tag = view.getTag() != null ? (String) view.getTag() : null; if (tag != null && tag.equals("lista_esami__btnBACK")) { this.finish(); } else if (tag != null && tag.equals("lista_esami__btnAddEsame")) { Intent i = new Intent(this, AddEsame.class); startActivityForResult(i, 1); } } private OnClickListener btn_OnClickListener = new OnClickListener() { public void onClick(View view) { OnClick(view); } }; @Override protected void onResume() { super.onResume(); adapter.notifyDataSetChanged(); }; }