From 9123672a7f442834241e978316aa18c97396685e Mon Sep 17 00:00:00 2001 From: JotaJota96 <jjap96@gmail.com> Date: Wed, 25 Sep 2019 14:29:53 -0300 Subject: [PATCH] Se agrego al controlador UsuarioJPA filtrado por eliminado o no El sistema solo lista los usuarios NO eliminados --- .../UsuarioJpaController.java | 17 +- .../src/Logica/DatosDePrueba.java | 7 +- .../src/Logica/Interfaces/IAdmin.java | 3 +- .../Presentacion/Usuario/frmBajaUsuario.form | 125 ++++++++++++++ .../Presentacion/Usuario/frmBajaUsuario.java | 156 ++++++++++++++++++ .../src/Presentacion/frmPrincipal.form | 11 ++ .../src/Presentacion/frmPrincipal.java | 16 ++ 7 files changed, 325 insertions(+), 10 deletions(-) create mode 100644 UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form create mode 100644 UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java diff --git a/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java b/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java index 21673ac..87a42ad 100644 --- a/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java +++ b/UyTube_aplicacion/src/JPAControllerClasses/UsuarioJpaController.java @@ -110,9 +110,8 @@ public class UsuarioJpaController implements Serializable { private List<Usuario> findUsuarioEntities(boolean all, int maxResults, int firstResult) { EntityManager em = getEntityManager(); try { - CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); - cq.select(cq.from(Usuario.class)); - Query q = em.createQuery(cq); + Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.eliminado = ?1"); + q.setParameter(1, false); if (!all) { q.setMaxResults(maxResults); q.setFirstResult(firstResult); @@ -123,6 +122,18 @@ public class UsuarioJpaController implements Serializable { } } + public List<Usuario> findUsuarioEliminadoEntities() { + EntityManager em = getEntityManager(); + try { + Query q = em.createQuery("SELECT u FROM Usuario u WHERE u.eliminado = ?1"); + q.setParameter(1, true); + List<Usuario> usuarios = (List<Usuario>) q.getResultList(); + return usuarios; + } finally { + em.close(); + } + } + public Usuario findUsuario(String id) { EntityManager em = getEntityManager(); try { diff --git a/UyTube_aplicacion/src/Logica/DatosDePrueba.java b/UyTube_aplicacion/src/Logica/DatosDePrueba.java index 04064ae..abb9de0 100644 --- a/UyTube_aplicacion/src/Logica/DatosDePrueba.java +++ b/UyTube_aplicacion/src/Logica/DatosDePrueba.java @@ -1,9 +1,6 @@ package Logica; -import JPAControllerClasses.UsuarioJpaController; -import Logica.Clases.Usuario; import Logica.Controladores.CAdmin; -import Logica.Fabrica; import Logica.Interfaces.IAdmin; import Logica.DataType.*; import Logica.Enumerados.*; @@ -34,10 +31,8 @@ public class DatosDePrueba { EntityManager manager = factory.createEntityManager(); - CAdmin ca = CAdmin.getInstancia(); + //CAdmin ca = CAdmin.getInstancia(); - ca.seleccionarUsuarioActual("MCBolso"); - ca.bajaUsuario(); /** * Escriba aqui el codigo de la prueba que quiera realizar... diff --git a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java index 37e665d..921a108 100644 --- a/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java +++ b/UyTube_aplicacion/src/Logica/Interfaces/IAdmin.java @@ -12,7 +12,8 @@ public interface IAdmin { public void altaListaDeReproduccionPorDefecto(DtListaDeReproduccion lista); public void altaUsuarioCanal(DtUsuario usr, DtCanal canal); public void altaValoracion(DtValoracion val); - public void altaVideo(DtVideo video); + public void altaVideo(DtVideo video); + public void bajaUsuario(); public boolean existeCategoria(String cat); public boolean existeEmail(String email); public boolean existeNickname(String nickname); diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form new file mode 100644 index 0000000..f4ecc99 --- /dev/null +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.form @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> + <Properties> + <Property name="defaultCloseOperation" type="int" value="2"/> + </Properties> + <SyntheticProperties> + <SyntheticProperty name="formSizePolicy" type="int" value="1"/> + <SyntheticProperty name="generateCenter" type="boolean" value="false"/> + </SyntheticProperties> + <AuxValues> + <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/> + <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/> + <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> + <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> + <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> + </AuxValues> + + <Layout> + <DimensionLayout dim="0"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="lbListarUasario" pref="361" max="32767" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + <DimensionLayout dim="1"> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="lbListarUasario" max="32767" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + </Group> + </Group> + </DimensionLayout> + </Layout> + <SubComponents> + <Container class="javax.swing.JPanel" name="lbListarUasario"> + + <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout"> + <Property name="useNullLayout" type="boolean" value="false"/> + </Layout> + <SubComponents> + <Container class="javax.swing.JScrollPane" name="jScrollPane10"> + <AuxValues> + <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/> + </AuxValues> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="0" y="30" width="360" height="250"/> + </Constraint> + </Constraints> + + <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/> + <SubComponents> + <Component class="javax.swing.JList" name="lstListaDeUsuario"> + <Properties> + <Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.editors2.ListModelEditor"> + <StringArray count="0"/> + </Property> + </Properties> + <Events> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstListaDeUsuarioValueChanged"/> + </Events> + <AuxValues> + <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> + </AuxValues> + </Component> + </SubComponents> + </Container> + <Component class="javax.swing.JLabel" name="jLabel60"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="14" style="0"/> + </Property> + <Property name="text" type="java.lang.String" value="Usuarios:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="0" y="10" width="-1" height="-1"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="btnAceptar"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="24" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Dar de baja"/> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btnAceptarMouseClicked"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="150" y="290" width="210" height="70"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="btnCancelar"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="24" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Cancelar"/> + </Properties> + <Events> + <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="btnCancelarMouseClicked"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="0" y="290" width="140" height="70"/> + </Constraint> + </Constraints> + </Component> + </SubComponents> + </Container> + </SubComponents> +</Form> diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java new file mode 100644 index 0000000..183a3fc --- /dev/null +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmBajaUsuario.java @@ -0,0 +1,156 @@ +package Presentacion.Usuario; + +import Logica.DataType.DtUsuario; +import Logica.Fabrica; +import Logica.Interfaces.IAdmin; +import java.util.ArrayList; +import javax.swing.DefaultListModel; +import javax.swing.JOptionPane; + +public class frmBajaUsuario extends javax.swing.JDialog { + + IAdmin sys; + + public frmBajaUsuario(java.awt.Frame parent, boolean modal) { + super(parent, modal); + initComponents(); + this.setLocationRelativeTo(null); + btnAceptar.setEnabled(false); + + try { + sys = Fabrica.getInstancia().getIAdmin(); + ArrayList<DtUsuario> ListaUsuarios = sys.listarUsuarios(); + mostrarListaDeUsuarios(ListaUsuarios); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); + } + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents + private void initComponents() { + + lbListarUasario = new javax.swing.JPanel(); + jScrollPane10 = new javax.swing.JScrollPane(); + lstListaDeUsuario = new javax.swing.JList<>(); + jLabel60 = new javax.swing.JLabel(); + btnAceptar = new javax.swing.JButton(); + btnCancelar = new javax.swing.JButton(); + + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + + lbListarUasario.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); + + lstListaDeUsuario.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstListaDeUsuarioValueChanged(evt); + } + }); + jScrollPane10.setViewportView(lstListaDeUsuario); + + lbListarUasario.add(jScrollPane10, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 30, 360, 250)); + + jLabel60.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N + jLabel60.setText("Usuarios:"); + lbListarUasario.add(jLabel60, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 10, -1, -1)); + + btnAceptar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N + btnAceptar.setText("Dar de baja"); + btnAceptar.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + btnAceptarMouseClicked(evt); + } + }); + lbListarUasario.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 290, 210, 70)); + + btnCancelar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N + btnCancelar.setText("Cancelar"); + btnCancelar.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + btnCancelarMouseClicked(evt); + } + }); + lbListarUasario.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 290, 140, 70)); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(lbListarUasario, javax.swing.GroupLayout.DEFAULT_SIZE, 361, Short.MAX_VALUE) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addComponent(lbListarUasario, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap()) + ); + + pack(); + }// </editor-fold>//GEN-END:initComponents + + private void btnAceptarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnAceptarMouseClicked + // Clic en boton Dar de baja + if (lstListaDeUsuario.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Seleccione un usuario para dar de baja", "Error", JOptionPane.WARNING_MESSAGE); + return; + } + try { + sys.bajaUsuario(); + sys.liberarMemoriaUsuarioActual(); + mostrarListaDeUsuarios(sys.listarUsuarios()); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); + } + }//GEN-LAST:event_btnAceptarMouseClicked + + private void btnCancelarMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_btnCancelarMouseClicked + // Clic en boton Cancelar + try { + sys.liberarMemoriaUsuarioActual(); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); + } + dispose(); + }//GEN-LAST:event_btnCancelarMouseClicked + + private void lstListaDeUsuarioValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstListaDeUsuarioValueChanged + // Al seleccionar un usuario de la lista + if (evt.getValueIsAdjusting()) return; + if (lstListaDeUsuario.getSelectedIndex()<0) { + btnAceptar.setEnabled(false); + return; + } + btnAceptar.setEnabled(true); + try { + sys.seleccionarUsuarioActual(lstListaDeUsuario.getSelectedValue()); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); + } + }//GEN-LAST:event_lstListaDeUsuarioValueChanged + + private void mostrarListaDeUsuarios(ArrayList<DtUsuario> l){ + DefaultListModel modelo = new DefaultListModel(); + for (DtUsuario it : l) { + modelo.addElement(it.getNickname()); + } + lstListaDeUsuario.setModel(modelo); + } + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton btnAceptar; + private javax.swing.JButton btnCancelar; + private javax.swing.JLabel jLabel60; + private javax.swing.JScrollPane jScrollPane10; + private javax.swing.JPanel lbListarUasario; + private javax.swing.JList<String> lstListaDeUsuario; + // End of variables declaration//GEN-END:variables +} diff --git a/UyTube_aplicacion/src/Presentacion/frmPrincipal.form b/UyTube_aplicacion/src/Presentacion/frmPrincipal.form index 817aadd..18f856f 100644 --- a/UyTube_aplicacion/src/Presentacion/frmPrincipal.form +++ b/UyTube_aplicacion/src/Presentacion/frmPrincipal.form @@ -185,6 +185,17 @@ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mitSeguirUsuario1ActionPerformed"/> </Events> </MenuItem> + <MenuItem class="javax.swing.JMenuItem" name="mitSeguirUsuario2"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Dialog" size="14" style="0"/> + </Property> + <Property name="text" type="java.lang.String" value="Eliminar usuario"/> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mitSeguirUsuario2ActionPerformed"/> + </Events> + </MenuItem> </SubComponents> </Menu> <Menu class="javax.swing.JMenu" name="menuVideo"> diff --git a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java index 4ce8f28..ceaa231 100644 --- a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java +++ b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java @@ -66,6 +66,7 @@ public class frmPrincipal extends javax.swing.JFrame { mitListarUsuarios = new javax.swing.JMenuItem(); mitSeguirUsuario = new javax.swing.JMenuItem(); mitSeguirUsuario1 = new javax.swing.JMenuItem(); + mitSeguirUsuario2 = new javax.swing.JMenuItem(); menuVideo = new javax.swing.JMenu(); mitNuevoVideo = new javax.swing.JMenuItem(); mitModificarVideo = new javax.swing.JMenuItem(); @@ -200,6 +201,15 @@ public class frmPrincipal extends javax.swing.JFrame { }); menuUsuario.add(mitSeguirUsuario1); + mitSeguirUsuario2.setFont(new java.awt.Font("Dialog", 0, 14)); // NOI18N + mitSeguirUsuario2.setText("Eliminar usuario"); + mitSeguirUsuario2.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + mitSeguirUsuario2ActionPerformed(evt); + } + }); + menuUsuario.add(mitSeguirUsuario2); + barraDeMenu.add(menuUsuario); menuVideo.setText("Video"); @@ -509,6 +519,11 @@ public class frmPrincipal extends javax.swing.JFrame { } }//GEN-LAST:event_formWindowClosing + private void mitSeguirUsuario2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mitSeguirUsuario2ActionPerformed + // usuario -> eliminar usuario + new frmBajaUsuario(this, true).setVisible(true); + }//GEN-LAST:event_mitSeguirUsuario2ActionPerformed + private void activarBarraDeMenu(boolean b){ menuUsuario.setEnabled(b); @@ -596,6 +611,7 @@ public class frmPrincipal extends javax.swing.JFrame { private javax.swing.JMenuItem mitQuitarVideoDeListaDeReproduccion; private javax.swing.JMenuItem mitSeguirUsuario; private javax.swing.JMenuItem mitSeguirUsuario1; + private javax.swing.JMenuItem mitSeguirUsuario2; private javax.swing.JMenuItem mitValorarVideo; private javax.swing.JDesktopPane pnlFondo; public static javax.swing.ButtonGroup privacidad_NuevaLR; -- GitLab