//clase principal
package com.example.nav;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Arrays;
import java.util.Date;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.androidplot.xy.LineAndPointFormatter;
import com.androidplot.xy.SimpleXYSeries;
import com.androidplot.xy.XYPlot;
import com.androidplot.xy.XYSeries;
public class MainActivity extends FragmentActivity {
ViewPager Tab;// Las tabs
TabPagerAdapter TabAdapter;
ActionBar actionBar;
CharSequence tituloDelMenu;
private Curso[] cursos = new Curso[0];// toda la informaciómn (todos los
// cursos)
private Curso lastCourse = null;// el ultimo curso seleccionado
private Alumno lastAlumn = null;// el ultimo alumno seleccionado
private String[] observaciones = { "Muy mal desempeño -",
"Muy mal desempeño +", "Mal desempeño -", "Mal desempeño +",
"Desempeño regular -", "Desempeño regular +", "Buen desempeño -",
"Buen desempeño +", "Muy buen desempeño", "Excelente desempeño" };
private int[] notas = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };// observaciones y
// notas
// predeterminada
// metodo que se encarga de guardar las propiedades de la main activity en
// la clase abstracta properties, si es necesario las guarda en disco
public void saveProperties() {
Properties.setCursos(cursos);
Properties.setLastAlumn(lastAlumn);
Properties.setLastCourse(lastCourse);
Properties.setObservaciones(observaciones);
Properties.setNotas(notas);
if (Properties.isSave()) {
Properties.save();
}
}
// metodo que se encarga de cargar los valores de la clase properties a la
// main activity
public void syncProperties() {
cursos = Properties.getCursos();
lastCourse = Properties.getLastCourse();
lastAlumn = Properties.getLastAlumn();
observaciones = Properties.getObservaciones();
notas = Properties.getNotas();
}
// metodo que crea un dialogo con el grafico
public void mostrarGrafico(View view) {
mostrarGraficoDialogo dialogo = new mostrarGraficoDialogo();
FragmentManager fragmentManager = getFragmentManager();
dialogo.show(fragmentManager, getResources()
.getString(R.string.grafico));
}
// metodo que abre configuraciones, si es necesario abre el editor de notas
public void openSettings(boolean openNota) {
Intent intent = new Intent(this, Settings.class);
if (openNota) {
Properties.setOpenNota(true);
}
startActivity(intent);
}
// mezcla los atributos observaciones y notas en un solo array para poder
// visualizarlo en el seleccionador de notas
public String[] makeNotas() {
String[] notasFinal = new String[notas.length + 1];
for (int i = 0; i < notas.length; i++) {
notasFinal[i] = notas[i]
+ getResources().getString(R.string.separador)
+ observaciones[i];
}
notasFinal[notasFinal.length - 1] = getResources().getString(
R.string.editar_notas);
return notasFinal;
}
@Override
public void onBackPressed() {
Properties.setSeleccion(0);
Properties.setFirsTime(true);
refresh(0);
}
// abre el dialogo para agregar un alumno
public void addAlumnoEvent() {
agregarAlumnoDialogo dialogo = new agregarAlumnoDialogo();
FragmentManager fragmentManager = getFragmentManager();
dialogo.show(fragmentManager,
getResources().getString(R.string.agregar_alumno));
}
// abre el dialogo para agregar una nota
public void addNotaEvent() {
agregarNotaDialogo dialogo = new agregarNotaDialogo();
FragmentManager fragmentManager = getFragmentManager();
dialogo.show(fragmentManager,
getResources().getString(R.string.agregar_nota));
}
// abre el dialogo para agregar un curso
public void addCursoEvent() {
agregarCursoDialogo dialogo = new agregarCursoDialogo();
FragmentManager fragmentManager = getFragmentManager();
dialogo.show(fragmentManager,
getResources().getString(R.string.agregar_curso));
}
// metodo encargado de agregar un curso al array de cursos de esta clase
public boolean addCurso(Curso curso) {
Curso[] cursosAux = new Curso[cursos.length + 1];
for (int i = 0; i < cursos.length; i++) {
cursosAux[i] = cursos[i];
if (curso.getCurso().equalsIgnoreCase(cursosAux[i].getCurso())) {
toast(getResources().getString(R.string.error_curso_existente));
return false;
}
}
cursosAux[cursosAux.length - 1] = curso;
cursos = cursosAux;
toast(getResources().getString(R.string.agregado));
return true;
}
// metodo encargado de agregar un alumno a un curso, mediante el uso de las
// clases logicas
public boolean addAlumno(Alumno alumno, Curso curso) {
boolean cargar = false;
for (int i = 0; i < cursos.length; i++) {
if (cursos[i].getCurso().equalsIgnoreCase((curso.getCurso()))) {
cargar = cursos[i].addAlumno(alumno);
toast(getResources().getString(R.string.alumno_cargado));
break;
}
}
if (!cargar) {
toast(getResources().getString(R.string.error_alumno_existente));
return false;
}
return true;
}
// metodo encargado de agregar una nota a un alumno de un curso mediate las
// clases logicas
public boolean addNota(Nota nota, Alumno alumno, Curso curso) {
for (int i = 0; i < cursos.length; i++) {
if (cursos[i].getCurso().equalsIgnoreCase((curso.getCurso()))) {
for (int j = 0; j < cursos[i].getAlumnos().length; j++) {
if (cursos[i].getAlumnos()[j].getNombre().equalsIgnoreCase(
alumno.getNombre())) {
cursos[i].getAlumnos()[j].addNota(nota);
toast(getResources().getString(R.string.nota_agregada));
return true;
} else {
if (j == cursos[i].getAlumnos().length - 1) {
toast(getResources().getString(
R.string.no_se_encuentra_el_alumno)
+ alumno.getNombre()
+ getResources().getString(
R.string.en_el_curso)
+ curso.getCurso());
return false;
}
}
}
}
}
toast(getResources().getString(R.string.no_se_encuentra_el_curso)
+ curso.getCurso());
return false;
}
// carga los valores del grafico
public void cargarGrafico(XYPlot grafico, Number[] serie) {
XYSeries series1 = new SimpleXYSeries(Arrays.asList(serie),
SimpleXYSeries.ArrayFormat.Y_VALS_ONLY, getResources()
.getString(R.string.notas));
LineAndPointFormatter series1Format = new LineAndPointFormatter(
Color.rgb(255, 255, 255), Color.rgb(0, 153, 204),
Color.alpha(0), null);
grafico.destroyDrawingCache();
grafico.setScrollContainer(false);
grafico.clear();
grafico.addSeries(series1, series1Format);
}
// el metodo central de la aplicacion se ejecuta muy seguido, se encarga de
// refrescar la lista que sea necesaria (de cursos, alumnos o notas), y
// darles los eventos del click y del click largo
public void refresh(int tipo) {
String[] listaString = null;
ListView lista = null;
if (Properties.isFirsTime()) {
tipo = Properties.getSeleccion();
Tab.setCurrentItem(tipo);
syncProperties();
Properties.setFirsTime(false);
}
if (tipo == 0) {
listaString = new String[cursos.length];
for (int i = 0; i < listaString.length; i++) {
listaString[i] = cursos[i].getCurso();
}
lista = (ListView) findViewById(R.id.cursos);
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listaString);
lista.setAdapter(adaptador);
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
lastCourse = cursos[position];
Tab.setCurrentItem(1);
getActionBar().setTitle(cursos[position].getCurso());
Properties.setSave(true);
refresh(1);
}
});
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
toast(getResources().getString(R.string.eliminado)
+ cursos[position].getCurso());
Curso[] cursosAux = new Curso[cursos.length - 1];
int borrar = 0;
for (int i = 0; i < cursos.length; i++) {
if (cursos[i].getCurso().equalsIgnoreCase(
cursos[position].getCurso())) {
borrar++;
} else {
cursosAux[i - borrar] = cursos[i];
}
}
cursos = cursosAux;
lastCourse = null;
Properties.setSave(true);
refresh(0);
return false;
}
});
}
else {
if (tipo == 1) {
if (lastCourse == null) {
toast(getResources().getString(
R.string.no_hay_curso_seleccionado));
} else {
listaString = new String[lastCourse.getAlumnos().length];
for (int i = 0; i < listaString.length; i++) {
listaString[i] = lastCourse.getAlumnos()[i].getNombre();
}
lista = (ListView) findViewById(R.id.alumnos);
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,
listaString);
lista.setAdapter(adaptador);
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
lastAlumn = lastCourse.getAlumnos()[position];
Tab.setCurrentItem(2);
getActionBar().setTitle(
lastCourse.getAlumnos()[position]
.getNombre());
toast(lastCourse.getAlumnos()[position].getNombre());
Properties.setSave(true);
refresh(2);
}
});
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int position, long arg3) {
toast(getResources().getString(R.string.eliminado)
+ lastCourse.getAlumnos()[position]
.getNombre());
for (int i = 0; i < cursos.length; i++) {
if (cursos[i].getCurso().equalsIgnoreCase(
lastCourse.getCurso())) {
toast(lastCourse.getAlumnos()[position]
.getNombre());
cursos[i].deleteAlumno(lastCourse
.getAlumnos()[position].getNombre());
lastCourse = cursos[i];
Properties.setSave(true);
refresh(1);
}
}
return false;
}
});
}
} else {
if (tipo == 2) {
if (lastAlumn == null) {
toast(getResources().getString(
R.string.no_hay_alumno_seleccionado));
} else {
listaString = new String[lastAlumn.getHistorial()
.getNotas().length];
for (int i = 0; i < listaString.length; i++) {
listaString[(listaString.length - 1) - i] = lastAlumn
.getHistorial().getNotas()[i].getNota()
+ getResources().getString(R.string.dia)
+ lastAlumn.getHistorial().getNotas()[i]
.getFecha()
+ getResources().getString(
R.string.observacion)
+ lastAlumn.getHistorial().getNotas()[i]
.getAnotacion();
}
lista = (ListView) findViewById(R.id.historial);
ArrayAdapter<String> adaptador = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1,
listaString);
lista.setAdapter(adaptador);
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int position, long arg3) {
for (int i = 0; i < lastAlumn.getHistorial()
.getNotas().length; i++) {
if (lastAlumn.getHistorial().getNotas()[(lastAlumn
.getHistorial().getNotas().length - 1)
- i]
.getFecha()
.toString()
.equalsIgnoreCase(
lastAlumn.getHistorial()
.getNotas()[lastAlumn
.getHistorial()
.getNotas().length
- 1 - position]
.getFecha()
.toString())) {
toast(lastAlumn.getHistorial()
.getNotas()[lastAlumn
.getHistorial().getNotas().length
- 1 - position].toString());
lastAlumn
.deleteNota(lastAlumn
.getHistorial()
.getNotas()[lastAlumn
.getHistorial()
.getNotas().length
- 1 - position]);
}
}
for (int j = 0; j < cursos.length; j++) {
if (cursos[j].getCurso().equalsIgnoreCase(
lastCourse.getCurso())) {
for (int k = 0; k < cursos[j]
.getAlumnos().length; k++) {
if (cursos[j].getAlumnos()[k]
.getNombre()
.equalsIgnoreCase(
lastAlumn
.getNombre())) {
cursos[j].getAlumnos()[k] = lastAlumn;
}
}
}
}
Properties.setSave(true);
refresh(2);
return false;
}
});
TextView nombre = (TextView) findViewById(R.id.alumno);
TextView notamax = (TextView) findViewById(R.id.notamax);
TextView notamin = (TextView) findViewById(R.id.notamin);
TextView promedio = (TextView) findViewById(R.id.promedio);
TextView estado = (TextView) findViewById(R.id.estado);
ImageView estadoIM = (ImageView) findViewById(R.id.estadoIM);
nombre.setText(lastAlumn.getNombre() + "");
notamax.setText(getResources().getString(
R.string.nota_max)
+ lastAlumn.getNotaMax());
notamin.setText(getResources().getString(
R.string.nota_min)
+ lastAlumn.getNotaMin());
promedio.setText(getResources().getString(
R.string.promedio)
+ lastAlumn.getPromedio());
if (lastAlumn.getEstado() == 5) {
estado.setText(getResources().getString(
R.string.estado)
+ getResources().getString(
R.string.excelente));
estadoIM.setImageResource(R.drawable.ic_muy_bien);
} else if (lastAlumn.getEstado() == 4) {
estado.setText(getResources().getString(
R.string.estado)
+ getResources().getString(R.string.bien));
estadoIM.setImageResource(R.drawable.ic_bien);
} else if (lastAlumn.getEstado() == 3) {
estado.setText(getResources().getString(
R.string.estado)
+ getResources()
.getString(R.string.regular));
estadoIM.setImageResource(R.drawable.ic_regular);
} else if (lastAlumn.getEstado() == 2) {
estado.setText(getResources().getString(
R.string.estado)
+ getResources().getString(R.string.mal));
estadoIM.setImageResource(R.drawable.ic_mal);
} else if (lastAlumn.getEstado() == 1) {
estado.setText(getResources().getString(
R.string.estado)
+ getResources()
.getString(R.string.muy_mal));
estadoIM.setImageResource(R.drawable.ic_muy_malpng);
}
}
}
}
}
observaciones = Properties.getObservaciones();
notas = Properties.getNotas();
saveProperties();
}
// metodo para mostrar una notificacion toast
public void toast(String texto) {
Toast.makeText(this, texto, Toast.LENGTH_SHORT).show();
}
// metodo sobrescrito que se encarga de refrescar un tab cuando la
// aplicacion vuelve luego de ser pausada
@Override
protected void onResume() {
try {
refresh(Tab.getCurrentItem());
} catch (Exception e) {
System.out.println("no podemos hacer el on resume refresh");
}
super.onResume();
}
@Override
protected void onStart() {
try {
refresh(Tab.getCurrentItem());
} catch (Exception e) {
System.out.println("no podemos hacer el on resume refresh");
}
super.onStart();
}
@Override
protected void onRestart() {
try {
refresh(Tab.getCurrentItem());
} catch (Exception e) {
System.out.println("no podemos hacer el on resume refresh");
}
super.onRestart();
}
// metodo sobrescrito de inicio de la aplicacion, aca se crean las tabs
// ademas de cargar las propiedades en disco
@Override
protected void onCreate(Bundle savedInstanceState) {
Properties.load();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
Tab = (ViewPager) findViewById(R.id.pager);
Tab.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar = getActionBar();
actionBar.setSelectedNavigationItem(position);
}
});
Tab.setAdapter(TabAdapter);
actionBar = getActionBar();
// Enable Tabs on Action Bar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabReselected(android.app.ActionBar.Tab tab,
FragmentTransaction ft) {
refresh(tab.getPosition());
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
if (tab.getPosition() == 1 && lastCourse == null) {
Tab.setCurrentItem(0);
toast(getResources()
.getString(R.string.seleccione_un_curso));
} else {
if (tab.getPosition() == 2 && lastAlumn == null) {
Tab.setCurrentItem(0);
toast(getResources().getString(
R.string.seleccione_un_alumno));
} else {
try {
refresh(tab.getPosition());
} catch (Exception e) {
System.out.println(getResources().getString(
R.string.no_es_posible_refrescar));
}
Tab.setCurrentItem(tab.getPosition());
if (Tab.getCurrentItem() == 0) {
setTitle(getResources().getString(
R.string.tus_cursos));
}
if (Tab.getCurrentItem() == 1) {
setTitle(lastCourse.getCurso());
}
if (Tab.getCurrentItem() == 2) {
setTitle(lastAlumn.getNombre());
}
}
}
}
@Override
public void onTabUnselected(android.app.ActionBar.Tab tab,
FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
// Add New Tab
actionBar.addTab(actionBar.newTab()
.setText(getResources().getString(R.string.cursos))
.setTabListener(tabListener));
actionBar.addTab(actionBar.newTab()
.setText(getResources().getString(R.string.ultimo_curso))
.setTabListener(tabListener));
actionBar.addTab(actionBar.newTab()
.setText(getResources().getString(R.string.ultimo_alumno))
.setTabListener(tabListener));
}
// metodo de creacion de la action bar
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
/* Called whenever we call invalidateOptionsMenu() */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// Cuando abris o cerras el nav draw se esconde o aparece el icono de
// search respectivamente
if (Tab.getCurrentItem() == 0) {
refresh(0);
}
if (Tab.getCurrentItem() == 1) {
refresh(1);
}
if (Tab.getCurrentItem() == 2) {
refresh(2);
}
return super.onPrepareOptionsMenu(menu);
}
// metodo que ocurre cuando se selecciona un item de la action bar, aquí se
// dirigen los eventso de cada botón
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (Tab.getCurrentItem() == 0) {
refresh(0);
}
if (Tab.getCurrentItem() == 1) {
refresh(1);
}
if (Tab.getCurrentItem() == 2) {
refresh(2);
}
switch (item.getItemId()) {
case R.id.action_websearch:
Intent intent = new Intent(this, Search.class);
startActivity(intent);
return true;
case R.id.action_import:
File archivoT = null;
FileReader fr = null;
BufferedReader br = null;
// ///////////////
try {
// Apertura del fichero y creacion de BufferedReader para poder
// hacer una lectura comoda (disponer del metodo readLine()).
archivoT = new File(Environment.getExternalStorageDirectory()
+ "/cargar.txt");
fr = new FileReader(archivoT);
br = new BufferedReader(fr);
// Lectura del fichero
String linea;
while ((linea = br.readLine()) != null)
if (linea.startsWith("#")) {
Curso curso = new Curso(linea.split("#")[1]);
addCurso(curso);
lastCourse = curso;
} else {
Alumno alumno = new Alumno(linea);
lastCourse.addAlumno(alumno);
lastAlumn = alumno;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// En el finally cerramos el fichero, para asegurarnos
// que se cierra tanto si todo va bien como si salta
// una excepcion.
try {
if (null != fr) {
fr.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
saveProperties();
refresh(0);
return true;
case R.id.action_settings:
openSettings(false);
return true;
case R.id.action_export:
if (Tab.getCurrentItem() == 0) {
toast(getResources().getString(R.string.exportando_curso)
+ lastCourse.getCurso());
PdfManager.crearPdfCurso(MainActivity.this, lastCourse);
PdfManager
.showPdfFile(lastCourse.getCurso(), MainActivity.this);
}
if (Tab.getCurrentItem() == 1) {
toast(getResources().getString(R.string.exportando_curso)
+ lastCourse.getCurso());
PdfManager.crearPdfCurso(MainActivity.this, lastCourse);
PdfManager
.showPdfFile(lastCourse.getCurso(), MainActivity.this);
}
if (Tab.getCurrentItem() == 2) {
toast(getResources().getString(R.string.exportando_alumno)
+ lastAlumn.getNombre());
System.out.println(lastAlumn.getNombre());
PdfManager.crearPdfAlumno(MainActivity.this, lastCourse,
lastAlumn);
PdfManager
.showPdfFile(lastAlumn.getNombre(), MainActivity.this);
}
return true;
case R.id.action_mail:
if (Tab.getCurrentItem() == 0) {
toast(getResources().getString(R.string.exportando_curso)
+ lastCourse.getCurso());
PdfManager.crearPdfCurso(MainActivity.this, lastCourse);
PdfManager.sendPdfByEmail(lastCourse.getCurso(),
Properties.getMail(),
getResources().getString(R.string.informe_de)
+ lastCourse.getCurso(), MainActivity.this);
}
if (Tab.getCurrentItem() == 1) {
toast(getResources().getString(R.string.exportando_curso)
+ lastCourse.getCurso());
PdfManager.crearPdfCurso(MainActivity.this, lastCourse);
PdfManager.sendPdfByEmail(lastCourse.getCurso(),
Properties.getMail(),
getResources().getString(R.string.informe_de)
+ lastCourse.getCurso(), MainActivity.this);
}
if (Tab.getCurrentItem() == 2) {
toast(getResources().getString(R.string.exportando_alumno)
+ lastAlumn.getNombre());
PdfManager.crearPdfAlumno(MainActivity.this, lastCourse,
lastAlumn);
PdfManager.sendPdfByEmail(lastAlumn.getNombre(),
Properties.getMail(),
getResources().getString(R.string.informe_de)
+ lastAlumn.getNombre(), MainActivity.this);
}
return true;
case R.id.action_add:
if (Tab.getCurrentItem() == 0) {
addCursoEvent();
}
if (Tab.getCurrentItem() == 1) {
addAlumnoEvent();
}
if (Tab.getCurrentItem() == 2) {
addNotaEvent();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
// setea el título de la action bar
@Override
public void setTitle(CharSequence title) {
tituloDelMenu = title;
getActionBar().setTitle(tituloDelMenu);
}
// clases para crear dialogos, se setean los eventos y demás
public class agregarCursoDialogo extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View agregarCursoDialog = inflater.inflate(
R.layout.add_dialog, null);
builder.setView(agregarCursoDialog)
.setMessage(
getResources().getString(R.string.agregar_curso))
.setPositiveButton(
getResources().getString(R.string.aceptar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
EditText nombre1 = (EditText) agregarCursoDialog
.findViewById(R.id.input);
String nombre = nombre1.getText()
.toString();
Curso curso = new Curso(nombre);
boolean carga = addCurso(curso);
Properties.setSave(true);
refresh(0);
}
})
.setNegativeButton(
getResources().getString(R.string.cancelar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// User cancelled the dialog
}
});
// Create the AlertDialog object and return it
return builder.create();
}
}
public class agregarAlumnoDialogo extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) { //
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View agregarAlumnoDialog = inflater.inflate(
R.layout.add_dialog, null);
builder.setView(agregarAlumnoDialog)
.setMessage(
getResources().getString(R.string.agregar_alumno))
.setPositiveButton(
getResources().getString(R.string.aceptar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
EditText nombre1 = (EditText) agregarAlumnoDialog
.findViewById(R.id.input);
String nombre = nombre1.getText()
.toString();
boolean carga = addAlumno(
new Alumno(nombre), lastCourse);
Properties.setSave(true);
refresh(1);
}
})
.setNegativeButton(
getResources().getString(R.string.cancelar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
}
});
return builder.create();
}
}
public class agregarNotaDialogo extends DialogFragment {
int nota = 0;
String anotacion;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) { //
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View agregarNotaDialog = inflater.inflate(
R.layout.add_nota_dialog, null);
final Spinner spinner = (Spinner) agregarNotaDialog
.findViewById(R.id.nota);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
agregarNotaDialog.getContext(),
android.R.layout.simple_spinner_item, makeNotas());
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView,
View view, int position, long id) {
if (position == makeNotas().length - 1) {
openSettings(true);
dismiss();
} else {
nota = notas[position];
anotacion = observaciones[position];
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
builder.setView(agregarNotaDialog);
builder.setMessage(getResources().getString(R.string.agregar_nota))
.setPositiveButton(
getResources().getString(R.string.aceptar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
if (spinner.getSelectedItem() == null) {
toast(getResources()
.getString(
R.string.no_hay_nota_seleccionada));
}
boolean carga = addNota(new Nota(
new Date(), nota, anotacion),
lastAlumn, lastCourse);
Properties.setSave(true);
refresh(2);
}
})
.setNegativeButton(
getResources().getString(R.string.cancelar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
}
});
return builder.create();
}
}
public class mostrarGraficoDialogo extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) { //
Number[] serieDeNotas = new Number[lastAlumn.getHistorial()
.getNotas().length];
for (int i = 0; i < serieDeNotas.length; i++) {
serieDeNotas[i] = lastAlumn.getHistorial().getNotas()[i]
.getNota();
}
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
final View mostrarGraficoDialog = inflater.inflate(
R.layout.grafico, null);
builder.setView(mostrarGraficoDialog)
.setMessage(
getResources().getString(R.string.grafico_de)
+ lastAlumn.getNombre())
.setPositiveButton(
getResources().getString(R.string.aceptar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
}
})
.setNegativeButton(
getResources().getString(R.string.cancelar),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
}
});
XYPlot grafico = (XYPlot) mostrarGraficoDialog
.findViewById(R.id.grafico);
cargarGrafico(grafico, serieDeNotas);
return builder.create();
}
}
}