//Este método se encarga de cargar el ListBox con los nombres que se obtienen del archivo private void reload() { lsKids.Items.Clear(); swdata.moveFirst(); while (swdata.hasMoreElements()) { Swimmer sw = swdata.getSwimmer(); lsKids.Items.Add(sw.getName()); } }
//Se añaden al array todos los registros public void addAll() { ArrayList swd = new ArrayList(); for (int i = 0; i < swdata.Count; i++) { Swimmer sw = (Swimmer)swdata[i]; swd.Add(sw); } swdata = swd; }
//Se añaden al array los registros que sean femeninos public void sort(bool isFemale) { ArrayList swd = new ArrayList(); for (int i = 0; i < swdata.Count; i++) { Swimmer sw = (Swimmer)swdata[i]; if (isFemale == sw.isFemale()) { swd.Add(sw); } } swdata = swd; }
//Se lee el archivo de texto y por cada linea de crea un objeto de la clase Swimmer public SwimData(string filename) { swdata = new ArrayList(); File fl = new File(filename); fl.OpenForRead(); string s = fl.readLine(); while (s != null) { Swimmer sw = new Swimmer(s); swdata.Add(sw); s = fl.readLine(); } fl.close(); }
/*En el evento del botón, se clona el array con los datos obtenidos del archivo leído al inicio, * primero se verifica si algún RadioButton está seleccionado, si ninguno lo está, se añaden * todos los datos, si alguno esta seleccionado se toma el valor del cual está seleccionado y * se envía como parámetro al método encargado de rellenar el array, esta vez con datos filtrados */ private void BtnA_Click(object sender, EventArgs e) { SwimData newSd = (SwimData)swdata.Clone(); if (!radioFem.Checked && !radioMasc.Checked) { newSd.addAll(); } else { newSd.sort(radioFem.Checked); reload(); } lsNewKids.Items.Clear(); while (newSd.hasMoreElements()) { Swimmer sw = (Swimmer)newSd.getSwimmer(); lsNewKids.Items.Add(sw.getName()); lsKids.Items.Remove(sw.getName()); } }
//Se implementa la interfaz IComparable para comparar los registros en cuanto a su nombre public int CompareTo(object swo) { Swimmer sw = (Swimmer)swo; return(lname.CompareTo(sw.getName())); }