diff --git a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java index ac0093f04c80892cce56bf45a5e80b38af374327..f4c2b586f6de052d9085d479d141a9334daacf02 100644 --- a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java +++ b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java @@ -364,6 +364,42 @@ public class CAdmin implements IAdmin{ return usuarioSeleccionado.listarUsuariosSeguidores(); } + public ArrayList<DtUsuario> listarUsuarioNoSeguidos(){ + /** + * Devuelve todos los usuarios a quienes sigue usuarioSeleccionado + */ + if (this.usuarioSeleccionado == null){ + throw new RuntimeException("El sistema no tiene un usuario seleccionado"); + } + // creo el array de retorno y obtengo la lista de usuarios seguidos + ArrayList<DtUsuario> noSeguidos = new ArrayList(); + ArrayList<DtUsuario> seguidos = listarUsuarioSeguidos(); + // para saber si hay que agregar a la lista de retorno o no + boolean agregar; + + // no quiero que incluya al usuario seleccinado, asi que lo agrego para excluirlo + seguidos.add(usuarioSeleccionado.getDT()); + + // rrecorro los usuarios del sistema + for (Map.Entry<String, Usuario> u : usuarios.entrySet()) { + agregar = true; + // recorro los usuarios seguidos para ver si debo agregar a u al array de retorno + for (DtUsuario uSegido : seguidos){ + // si encuentra coincidencia, no debo agregarlo ya que es un usuario seguido + if (u.getKey().equals(uSegido.getNickname())){ + // lo saco del array para ahorrar procesamiento + seguidos.remove(uSegido); + agregar = false; + break; + } + } + if (agregar){ + noSeguidos.add(u.getValue().getDT()); + } + } + return noSeguidos; + } + public ArrayList<DtUsuario> listarUsuarioSeguidos(){ /** * Devuelve todos los usuarios a quienes sigue usuarioSeleccionado diff --git a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java index f188cbf06e9a4333d733bb9c7969804dedb7ecb9..837a66b06641ebdc929fb18124b8ec52e512f6d0 100644 --- a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java +++ b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java @@ -28,6 +28,7 @@ public interface IAdmin { public ArrayList<DtListaDeReproduccion> listarListasDeReproduccionDeUsuario(String nickname); public ArrayList<DtListaDeReproduccion> listarListasDeReproduccionParticularesDeUsuario(); public ArrayList<DtUsuario> listarUsuarioSeguidores(); + public ArrayList<DtUsuario> listarUsuarioNoSeguidos(); public ArrayList<DtUsuario> listarUsuarioSeguidos(); public ArrayList<DtUsuario> listarUsuarios(); public ArrayList<DtVideo> listarVideosEnCategoria(String cat); diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmSeguirUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmSeguirUsuario.java index 2c8bcdb7aa7d8a4a18390ff63d454b16d5000c49..e5cb9cb3a7b09764ceecae2bff4cf7285592bef9 100644 --- a/UyTube_aplicacion/src/Presentacion/Usuario/frmSeguirUsuario.java +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmSeguirUsuario.java @@ -147,10 +147,8 @@ public class frmSeguirUsuario extends javax.swing.JDialog { lstNoSeguido.setEnabled(true); lstNoSeguido.clearSelection(); - ArrayList<DtUsuario> Seguidos = Sys.listarUsuarioSeguidos(); - ArrayList<DtUsuario> NoSeguidos = new ArrayList(ListaTodosUsuarios); - quitarUsuariosSeguidos(NickName, NoSeguidos, Seguidos); - + ArrayList<DtUsuario> NoSeguidos = Sys.listarUsuarioNoSeguidos(); + DefaultListModel modelo = new DefaultListModel(); for (DtUsuario it : NoSeguidos) { modelo.addElement(it.getNickname()); @@ -163,24 +161,7 @@ public class frmSeguirUsuario extends javax.swing.JDialog { JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_btnSeguirActionPerformed - private void quitarUsuariosSeguidos(String yo, ArrayList<DtUsuario> ListaTodosUsuarios, ArrayList<DtUsuario> Seguidos) { - DtUsuario borrar = null; - for (DtUsuario ltu : ListaTodosUsuarios) { - if (ltu.getNickname() == yo) { - ListaTodosUsuarios.remove(ltu); - break; - } - } - for (DtUsuario s : Seguidos) { - for (DtUsuario ltu : ListaTodosUsuarios) { - if (ltu.getNickname() == s.getNickname()) { - ListaTodosUsuarios.remove(ltu); - break; - } - } - } - //debuelta un array (ListaTodosUsuarios) sin los seguidos - } + private void lstSeguidorValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstSeguidorValueChanged // SegidoRRR if (evt.getValueIsAdjusting()) { @@ -198,10 +179,8 @@ public class frmSeguirUsuario extends javax.swing.JDialog { lstNoSeguido.setEnabled(true); lstNoSeguido.clearSelection(); - ArrayList<DtUsuario> Seguidos = Sys.listarUsuarioSeguidos(); - ArrayList<DtUsuario> NoSeguidos = new ArrayList(ListaTodosUsuarios); - quitarUsuariosSeguidos(NickName, NoSeguidos, Seguidos); - + ArrayList<DtUsuario> NoSeguidos = Sys.listarUsuarioNoSeguidos(); + DefaultListModel modelo = new DefaultListModel(); for (DtUsuario it : NoSeguidos) { modelo.addElement(it.getNickname());