diff --git a/UyTube_aplicacion/nbproject/project.properties b/UyTube_aplicacion/nbproject/project.properties index b558c3cf0347d3b77fe6acb1c5d07d92db66bb55..05ee5a952343e9004a25d82eb02cf7afc0fde1c8 100644 --- a/UyTube_aplicacion/nbproject/project.properties +++ b/UyTube_aplicacion/nbproject/project.properties @@ -38,12 +38,14 @@ file.reference.jcalendar-1.4.jar-2=C:\\Users\\pc01\\Downloads\\jcalendar-1.4.jar file.reference.jcalendar-1.4.jar-1=C:\\Users\\Dofus\\Documents\\NetBeansProjects\\jcalendar-1.4.jar >>>>>>> pre_master file.reference.jcalendar-1.4.jar-3=D:\\Users\\Facu\\Downloads\\jcalendar-1.4.jar +file.reference.jcalendar-1.4.jar-4=/home/administrador/tecnologo/4to_semestre/PA/Lab-1/jcalendar-1.4.jar includes=** jar.compress=false javac.classpath=\ ${libs.absolutelayout.classpath}:\ <<<<<<< HEAD:\ - ${file.reference.jcalendar-1.4.jar-3} + ${file.reference.jcalendar-1.4.jar-3}:\ + ${file.reference.jcalendar-1.4.jar-4} <<<<<<< HEAD:\ ${file.reference.jcalendar-1.4.jar-1} ${file.reference.jcalendar-1.4.jar}:\ diff --git a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.form b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.form index 55ad9c8e82f2ececc00ef95bba360839628c5bca..aa903fc56d3ba8b1a64f5c794886ed12423eb855 100644 --- a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.form +++ b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.form @@ -9,10 +9,6 @@ <SyntheticProperty name="formSizePolicy" type="int" value="1"/> <SyntheticProperty name="generateCenter" type="boolean" value="false"/> </SyntheticProperties> - <Events> - <EventHandler event="windowActivated" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowActivated"/> - <EventHandler event="windowDeactivated" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowDeactivated"/> - </Events> <AuxValues> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/> @@ -93,7 +89,7 @@ </Property> </Properties> <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lstUsuariosMouseClicked"/> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstUsuariosValueChanged"/> </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> @@ -113,7 +109,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="20" y="350" width="210" height="40"/> + <AbsoluteConstraints x="20" y="350" width="180" height="40"/> </Constraint> </Constraints> </Component> @@ -153,7 +149,7 @@ </Property> </Properties> <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lstListasRepMouseClicked"/> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstListasRepValueChanged"/> </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> @@ -196,7 +192,7 @@ </Property> </Properties> <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lstVideosMouseClicked"/> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstVideosValueChanged"/> </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> @@ -216,7 +212,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="530" y="350" width="230" height="40"/> + <AbsoluteConstraints x="440" y="350" width="320" height="40"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.java b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.java index 424d32bb0e9fbda67c1fa31765d99699969a39b5..1196c82799cf1636d1601a73105e0189c75f6949 100644 --- a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.java +++ b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/frmQuitarVideoDeListaDeReproduccion.java @@ -23,8 +23,9 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { this.setLocationRelativeTo(null); try { sys = Fabrica.getInstancia().getIAdmin(); + cargarListaUsuarios();// Carga los usuarios al abrir el formulario } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } @@ -40,12 +41,11 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { if(!sys.listarUsuarios().isEmpty()){ for(DtUsuario elem: sys.listarUsuarios()){ modelo.addElement(elem.getNickname()); - System.out.println("Lista Usuarios, nombre: "+elem.getNickname()); } lstUsuarios.setModel(modelo); } } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } @@ -59,26 +59,22 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { indexListRes.add(elem.getId());//guarda todos los id en la misma posicion que el modelo } lstListasRep.setModel(modelo); - limpiarLstVideos(); } + limpiarLstVideos(); } private void cargarListaVideos(){ indexVideos.clear(); DefaultListModel modelo = new DefaultListModel(); try { - if(!sys.listarVideosDeListaDeReproduccion().isEmpty()){ //Obtiene los videos de la lista de reproduccion seleccionada for (DtVideo elem : sys.listarVideosDeListaDeReproduccion()) { modelo.addElement(elem.getNombre()); indexVideos.add(elem.getId());//guarda todos los id en la misma posicion que el modelo - System.out.println("Lista Videos, nombre: "+elem.getNombre()+" id: "+elem.getId()); - } - lstVideos.setModel(modelo); - } + } + lstVideos.setModel(modelo); } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } - } /** @@ -105,14 +101,6 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Quitar video de lista de reproduccion"); - addWindowListener(new java.awt.event.WindowAdapter() { - public void windowActivated(java.awt.event.WindowEvent evt) { - formWindowActivated(evt); - } - public void windowDeactivated(java.awt.event.WindowEvent evt) { - formWindowDeactivated(evt); - } - }); jPanel22.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); @@ -121,9 +109,9 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { jPanel22.add(jLabel118, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 10, -1, -1)); lstUsuarios.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N - lstUsuarios.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - lstUsuariosMouseClicked(evt); + lstUsuarios.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstUsuariosValueChanged(evt); } }); jScrollPane43.setViewportView(lstUsuarios); @@ -137,7 +125,7 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { btnCancelarActionPerformed(evt); } }); - jPanel22.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 350, 210, 40)); + jPanel22.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 350, 180, 40)); jLabel119.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel119.setText("Videos:"); @@ -145,9 +133,9 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { jPanel22.add(jLabel119, new org.netbeans.lib.awtextra.AbsoluteConstraints(440, 10, -1, -1)); lstListasRep.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N - lstListasRep.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - lstListasRepMouseClicked(evt); + lstListasRep.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstListasRepValueChanged(evt); } }); jScrollPane44.setViewportView(lstListasRep); @@ -159,9 +147,9 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { jPanel22.add(jLabel120, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 10, -1, -1)); lstVideos.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N - lstVideos.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - lstVideosMouseClicked(evt); + lstVideos.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstVideosValueChanged(evt); } }); jScrollPane45.setViewportView(lstVideos); @@ -175,7 +163,7 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { btnQuitarActionPerformed(evt); } }); - jPanel22.add(btnQuitar, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 350, 230, 40)); + jPanel22.add(btnQuitar, new org.netbeans.lib.awtextra.AbsoluteConstraints(440, 350, 320, 40)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -202,61 +190,79 @@ public class frmQuitarVideoDeListaDeReproduccion extends javax.swing.JDialog { }// </editor-fold>//GEN-END:initComponents private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed - //listaRep->quitarVideo->cancelar - this.setVisible(false); + //listaRep->quitarVideo->cancelar + try { + sys.liberarMemoriaUsuario(); + sys.liberarMemoriaListaDeReproduccion(); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + }finally{ + dispose(); + } }//GEN-LAST:event_btnCancelarActionPerformed private void btnQuitarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarActionPerformed - try { - int opcion=JOptionPane.showConfirmDialog(null, - "¿Realmente desea quitar de la lista el video: \""+nombreVideo+"\"?" - , "Confirmar quitar Video", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); - if(opcion == 0){ - System.out.println("estoy en el if con id: " + idVideo); + if (lstUsuarios.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar un usuario", "Error", JOptionPane.WARNING_MESSAGE); + return; + } + if (lstListasRep.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar una lista de reproducción", "Error", JOptionPane.WARNING_MESSAGE); + return; + } + if (lstVideos.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar un video", "Error", JOptionPane.WARNING_MESSAGE); + return; + } + + try { + int opcion = JOptionPane.showConfirmDialog(null, + "¿Realmente desea quitar de la lista el video: \"" + nombreVideo + "\"?", + "Confirmar quitar Video", + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (opcion == 0) { sys.quitarVideoDeListaDeReproduccion(idVideo);//Elimina el video de la lista de reproduccion - } + cargarListaVideos(); + } } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); - } + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } }//GEN-LAST:event_btnQuitarActionPerformed - private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated - cargarListaUsuarios();// Carga los usuarios al abrir el formulario - }//GEN-LAST:event_formWindowActivated - - private void lstUsuariosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstUsuariosMouseClicked - // limpiarListaRerp();//Borra la lista de reproduccion para mostrar las listas de reproduccion del usuario seleccionado + private void lstUsuariosValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstUsuariosValueChanged + + if (evt.getValueIsAdjusting()) return; + if (lstUsuarios.getSelectedIndex()<0) return; usrSeleccionado = lstUsuarios.getSelectedValue(); // El sistema selecciona al usuario actual con el nickname seleccionado de la lista try { sys.seleccionarUsuario(usrSeleccionado); //Selecciona el usuarioSeleccionado - ArrayList<DtListaDeReproduccion> dtListRep = new ArrayList<>(); - dtListRep = sys.listarListasDeReproduccionDeUsuario(usrSeleccionado); + ArrayList<DtListaDeReproduccion> dtListRep = sys.listarListasDeReproduccionDeUsuario(usrSeleccionado); cargarListaReproducion(dtListRep); } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } - - }//GEN-LAST:event_lstUsuariosMouseClicked + }//GEN-LAST:event_lstUsuariosValueChanged - private void lstListasRepMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstListasRepMouseClicked + private void lstListasRepValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstListasRepValueChanged + if (evt.getValueIsAdjusting()) return; + if (lstListasRep.getSelectedIndex()<0) return; try { idListaRep=indexListRes.get(lstListasRep.getSelectedIndex()); DtListaDeReproduccion dt = sys.seleccionarListaDeReproduccion(idListaRep);//Selecciona la lista de reproduccion cargarListaVideos(); //Carga los videos de la lista seleccionada } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } - - }//GEN-LAST:event_lstListasRepMouseClicked + }//GEN-LAST:event_lstListasRepValueChanged - private void lstVideosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstVideosMouseClicked + private void lstVideosValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstVideosValueChanged + if (evt.getValueIsAdjusting()) return; + if (lstVideos.getSelectedIndex()<0) return; idVideo = indexVideos.get(lstVideos.getSelectedIndex()); nombreVideo = lstVideos.getSelectedValue(); - }//GEN-LAST:event_lstVideosMouseClicked - - private void formWindowDeactivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowDeactivated - - }//GEN-LAST:event_formWindowDeactivated + }//GEN-LAST:event_lstVideosValueChanged // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancelar; diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.form b/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.form index 9a5e895f3a93d4b93ec1e27540fcbfb98624669c..465b68df0dba3a423713fd134e1e3c21e1019587 100644 --- a/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.form +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.form @@ -15,6 +15,7 @@ </SyntheticProperties> <Events> <EventHandler event="windowClosed" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowClosed"/> + <EventHandler event="windowActivated" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowActivated"/> </Events> <AuxValues> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> @@ -107,13 +108,6 @@ </Constraint> </Constraints> </Component> - <Component class="com.toedter.calendar.JDateChooser" name="jDateChooser1"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="270" y="230" width="100" height="-1"/> - </Constraint> - </Constraints> - </Component> <Component class="javax.swing.JButton" name="btSeleccionar"> <Properties> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> @@ -258,7 +252,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="20" y="230" width="-1" height="-1"/> + <AbsoluteConstraints x="20" y="220" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -435,7 +429,14 @@ <Component class="javax.swing.JLabel" name="lbMsjFecha"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="20" y="250" width="350" height="-1"/> + <AbsoluteConstraints x="20" y="240" width="350" height="15"/> + </Constraint> + </Constraints> + </Component> + <Component class="com.toedter.calendar.JDateChooser" name="jDateChooser1"> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="270" y="220" width="100" height="-1"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.java index d714b78a0efe18fd5989194a37bfba798083427d..ee280c6529c95b570250a5f735f6a9afa58e83bc 100644 --- a/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.java +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmAltaUsuario.java @@ -10,6 +10,9 @@ import com.sun.glass.events.KeyEvent; import java.awt.Color; import java.awt.Image; import java.io.File; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JFileChooser; @@ -30,7 +33,8 @@ public class frmAltaUsuario extends javax.swing.JDialog { Pattern patronEmail = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"); - Pattern patronNombres= Pattern.compile("^([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)$"); + Pattern patronNombres= Pattern.compile("^([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*" + + "([A-Za-zÑñÃáÉéÃÃÓóÚú]+)$"); IAdmin sys; Border bordeDefault; Color colorOK = new ColorUIResource(40,167,69); @@ -68,8 +72,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { if (mather.find() == true) { return true; } - return false; - + return false; } private boolean validarTxt(JTextField txt, int largo,JLabel lb,String nombreCampo){ @@ -160,7 +163,6 @@ public class frmAltaUsuario extends javax.swing.JDialog { txtNombre = new javax.swing.JTextField(); txtApellido = new javax.swing.JTextField(); txtEmail = new javax.swing.JTextField(); - jDateChooser1 = new com.toedter.calendar.JDateChooser(); btSeleccionar = new javax.swing.JButton(); txtNombreCanal = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); @@ -190,6 +192,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { lbMsjApellido = new javax.swing.JLabel(); lbMsjEmail = new javax.swing.JLabel(); lbMsjFecha = new javax.swing.JLabel(); + jDateChooser1 = new com.toedter.calendar.JDateChooser(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Alta usuario"); @@ -197,6 +200,9 @@ public class frmAltaUsuario extends javax.swing.JDialog { public void windowClosed(java.awt.event.WindowEvent evt) { formWindowClosed(evt); } + public void windowActivated(java.awt.event.WindowEvent evt) { + formWindowActivated(evt); + } }); jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); @@ -254,7 +260,6 @@ public class frmAltaUsuario extends javax.swing.JDialog { } }); jPanel2.add(txtEmail, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 170, 300, -1)); - jPanel2.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 230, 100, -1)); btSeleccionar.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N btSeleccionar.setText("Selecionar"); @@ -316,7 +321,7 @@ public class frmAltaUsuario extends javax.swing.JDialog { jPanel2.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1)); jLabel9.setText("Seleccione la fecha de nacimiento"); - jPanel2.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 230, -1, -1)); + jPanel2.add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 220, -1, -1)); jLabel11.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N jLabel11.setText("Canal"); @@ -365,7 +370,8 @@ public class frmAltaUsuario extends javax.swing.JDialog { jPanel2.add(lbMsjNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 110, 270, -1)); jPanel2.add(lbMsjApellido, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 150, 270, -1)); jPanel2.add(lbMsjEmail, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 190, 300, -1)); - jPanel2.add(lbMsjFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 250, 350, -1)); + jPanel2.add(lbMsjFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 240, 350, 15)); + jPanel2.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 220, 100, -1)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -445,12 +451,12 @@ public class frmAltaUsuario extends javax.swing.JDialog { nombreCanal = nickname; txtNombreCanal.setText(nickname); } - btnCargar.setEnabled(true); + try { DtUsuario dtUsuario = new DtUsuario(nickname, nickname, nombre, apellido, email, fecha, imagen, 0); DtCanal dtCanal = new DtCanal(Canal.getNuevoId(), nombre, descripcion, privacidad); sys.altaUsuarioCanal(dtUsuario, dtCanal); - JOptionPane.showMessageDialog(null, "Se ha creado el usuario "+nickname, "Error:", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, "Se ha creado el usuario "+nickname, "Alta de usuario", JOptionPane.INFORMATION_MESSAGE); limpiarCampos(); } catch (Exception e) { JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); @@ -550,6 +556,13 @@ public class frmAltaUsuario extends javax.swing.JDialog { } }//GEN-LAST:event_txtNiknameFocusLost + private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated + // Fecha actual del sistema + Calendar c = new GregorianCalendar();//Objeto de tipo calendario con la fecha actual + java.util.Date fechaActual = new Date(c.get(Calendar.YEAR)-1900,c.get(Calendar.MONTH),c.get(Calendar.DATE));//Obtiene la fecha actual del calendario + jDateChooser1.setDate(fechaActual);//Setea el JDateChooser con la fecha actual + }//GEN-LAST:event_formWindowActivated + private void cargarImagen(javax.swing.JLabel jLabelx) { JFileChooser jf = new JFileChooser(); jf.showOpenDialog(this); diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.form b/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.form index ed433b8eceb5df6ea53aec63a6e57cf6bfa34af1..f68238dffcdbf9811ffd8597436012d334503a33 100644 --- a/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.form +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.form @@ -179,7 +179,7 @@ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Font name="Tahoma" size="14" style="1"/> </Property> - <Property name="text" type="java.lang.String" value="Seleccionar"/> + <Property name="text" type="java.lang.String" value="Seleccionar imagen"/> <Property name="toolTipText" type="java.lang.String" value=""/> <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> <Color id="Cursor Por defecto"/> @@ -190,7 +190,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="480" y="450" width="120" height="60"/> + <AbsoluteConstraints x="450" y="370" width="170" height="50"/> </Constraint> </Constraints> </Component> @@ -267,9 +267,9 @@ <Component class="javax.swing.JButton" name="btnListaReprodiccion"> <Properties> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Tahoma" size="24" style="0"/> + <Font name="Tahoma" size="14" style="0"/> </Property> - <Property name="text" type="java.lang.String" value="Lista de reproduccion"/> + <Property name="text" type="java.lang.String" value="Modificar lista de reproducción"/> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnListaReprodiccionActionPerformed"/> @@ -283,9 +283,9 @@ <Component class="javax.swing.JButton" name="btnVideo"> <Properties> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Tahoma" size="24" style="0"/> + <Font name="Tahoma" size="14" style="0"/> </Property> - <Property name="text" type="java.lang.String" value="Video"/> + <Property name="text" type="java.lang.String" value="Modificar video"/> </Properties> <Events> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnVideoActionPerformed"/> @@ -322,7 +322,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="330" y="430" width="140" height="110"/> + <AbsoluteConstraints x="330" y="370" width="110" height="110"/> </Constraint> </Constraints> @@ -333,7 +333,7 @@ <Component class="javax.swing.JLabel" name="lbImg"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="0" y="0" width="140" height="110"/> + <AbsoluteConstraints x="5" y="5" width="100" height="100"/> </Constraint> </Constraints> </Component> @@ -346,43 +346,6 @@ </Constraint> </Constraints> </Component> - <Component class="javax.swing.JLabel" name="lbOpcional"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Tahoma" size="18" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="Opcional *"/> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="480" y="520" width="-1" height="-1"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JLabel" name="lbImagen"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="420" width="140" height="110"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JTextField" name="txtContraNueva1"> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="470" y="340" width="160" height="-1"/> - </Constraint> - </Constraints> - </Component> - <Component class="javax.swing.JTextField" name="txtContraNueva"> - <Events> - <EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtContraNuevaKeyTyped"/> - </Events> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="470" y="310" width="160" height="-1"/> - </Constraint> - </Constraints> - </Component> <Component class="javax.swing.JTextField" name="txtApellido"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> @@ -406,7 +369,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="330" y="340" width="-1" height="-1"/> + <AbsoluteConstraints x="330" y="300" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -416,7 +379,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="330" y="310" width="-1" height="-1"/> + <AbsoluteConstraints x="330" y="270" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -426,7 +389,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="330" y="200" width="-1" height="-1"/> + <AbsoluteConstraints x="330" y="180" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -439,7 +402,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="330" y="260" width="-1" height="-1"/> + <AbsoluteConstraints x="330" y="230" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -471,18 +434,58 @@ </Component> <Component class="javax.swing.JLabel" name="lbImagen1"> <Properties> - <Property name="text" type="java.lang.String" value="Imagen"/> + <Property name="text" type="java.lang.String" value="Imagen (opcional)"/> </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="360" y="400" width="-1" height="20"/> + <AbsoluteConstraints x="330" y="340" width="-1" height="20"/> </Constraint> </Constraints> </Component> <Component class="com.toedter.calendar.JDateChooser" name="dcFecha"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="450" y="200" width="170" height="-1"/> + <AbsoluteConstraints x="450" y="180" width="170" height="20"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JButton" name="btnQuitarImagen"> + <Properties> + <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> + <Font name="Tahoma" size="14" style="1"/> + </Property> + <Property name="text" type="java.lang.String" value="Quitar imagen"/> + <Property name="toolTipText" type="java.lang.String" value=""/> + <Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor"> + <Color id="Cursor Por defecto"/> + </Property> + </Properties> + <Events> + <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnQuitarImagenActionPerformed"/> + </Events> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="450" y="430" width="170" height="50"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JPasswordField" name="txtContraNueva2"> + <Properties> + <Property name="text" type="java.lang.String" value="jPasswordField1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="450" y="300" width="170" height="-1"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JPasswordField" name="txtContraNueva1"> + <Properties> + <Property name="text" type="java.lang.String" value="jPasswordField1"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="450" y="270" width="170" height="-1"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.java index 8f12c4802e21763457a2ffd1fd06f21d2c6d46f8..ddc9767502bf5431d2cd953013c77fdbea10e4de 100644 --- a/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.java +++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmModificarUsuario.java @@ -7,14 +7,11 @@ import Logica.Fabrica; import Logica.Interfaces.IAdmin; import Presentacion.ListaDeReproduccion.frmModificarListaDeReproduccion; import Presentacion.Video.frmModificarVideo; -import Presentacion.Video.frmValorarVideo; -import Presentacion.frmPrincipal; -import com.sun.org.apache.bcel.internal.generic.Select; import java.awt.Image; import java.io.File; -import java.sql.Date; -import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.swing.DefaultListModel; import javax.swing.ImageIcon; import javax.swing.JFileChooser; @@ -22,22 +19,23 @@ import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; public class frmModificarUsuario extends javax.swing.JDialog { - + IAdmin sys; DtUsuario user; String ruta; + public frmModificarUsuario(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); this.setLocationRelativeTo(null); - txtContraNueva.setEnabled(false); // TODO add your handling code here: txtContraNueva1.setEnabled(false); // TODO add your handling code here: + txtContraNueva2.setEnabled(false); // TODO add your handling code here: lbCN.setEnabled(false); lbRCN.setEnabled(false); btnVideo.setEnabled(false); btnListaReprodiccion.setEnabled(false); desactivarCampos(); - try { + try { // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); @@ -46,7 +44,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); } - + } @SuppressWarnings("unchecked") @@ -79,10 +77,6 @@ public class frmModificarUsuario extends javax.swing.JDialog { jpImagen = new javax.swing.JPanel(); lbImg = new javax.swing.JLabel(); jSeparator6 = new javax.swing.JSeparator(); - lbOpcional = new javax.swing.JLabel(); - lbImagen = new javax.swing.JLabel(); - txtContraNueva1 = new javax.swing.JTextField(); - txtContraNueva = new javax.swing.JTextField(); txtApellido = new javax.swing.JTextField(); lbApellido = new javax.swing.JLabel(); lbRCN = new javax.swing.JLabel(); @@ -93,6 +87,9 @@ public class frmModificarUsuario extends javax.swing.JDialog { rbPrivado = new javax.swing.JRadioButton(); lbImagen1 = new javax.swing.JLabel(); dcFecha = new com.toedter.calendar.JDateChooser(); + btnQuitarImagen = new javax.swing.JButton(); + txtContraNueva2 = new javax.swing.JPasswordField(); + txtContraNueva1 = new javax.swing.JPasswordField(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Modificar usuario"); @@ -139,7 +136,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { lbMes.add(btnModificar, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 490, 270, 50)); btnSeleccionar.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N - btnSeleccionar.setText("Seleccionar"); + btnSeleccionar.setText("Seleccionar imagen"); btnSeleccionar.setToolTipText(""); btnSeleccionar.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); btnSeleccionar.addActionListener(new java.awt.event.ActionListener() { @@ -147,7 +144,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { btnSeleccionarActionPerformed(evt); } }); - lbMes.add(btnSeleccionar, new org.netbeans.lib.awtextra.AbsoluteConstraints(480, 450, 120, 60)); + lbMes.add(btnSeleccionar, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 370, 170, 50)); jSeparator10.setOrientation(javax.swing.SwingConstants.VERTICAL); lbMes.add(jSeparator10, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 0, 10, 560)); @@ -169,8 +166,8 @@ public class frmModificarUsuario extends javax.swing.JDialog { lbMes.add(jScrollPane51, new org.netbeans.lib.awtextra.AbsoluteConstraints(740, 100, 200, 160)); - btnListaReprodiccion.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N - btnListaReprodiccion.setText("Lista de reproduccion"); + btnListaReprodiccion.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N + btnListaReprodiccion.setText("Modificar lista de reproducción"); btnListaReprodiccion.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnListaReprodiccionActionPerformed(evt); @@ -178,8 +175,8 @@ public class frmModificarUsuario extends javax.swing.JDialog { }); lbMes.add(btnListaReprodiccion, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 340, 270, 50)); - btnVideo.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N - btnVideo.setText("Video"); + btnVideo.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N + btnVideo.setText("Modificar video"); btnVideo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnVideoActionPerformed(evt); @@ -198,36 +195,23 @@ public class frmModificarUsuario extends javax.swing.JDialog { jpImagen.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED)); jpImagen.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); - jpImagen.add(lbImg, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 140, 110)); + jpImagen.add(lbImg, new org.netbeans.lib.awtextra.AbsoluteConstraints(5, 5, 100, 100)); - lbMes.add(jpImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 430, 140, 110)); + lbMes.add(jpImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 370, 110, 110)); lbMes.add(jSeparator6, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 40, 650, 20)); - - lbOpcional.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N - lbOpcional.setText("Opcional *"); - lbMes.add(lbOpcional, new org.netbeans.lib.awtextra.AbsoluteConstraints(480, 520, -1, -1)); - lbMes.add(lbImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 420, 140, 110)); - lbMes.add(txtContraNueva1, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 340, 160, -1)); - - txtContraNueva.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyTyped(java.awt.event.KeyEvent evt) { - txtContraNuevaKeyTyped(evt); - } - }); - lbMes.add(txtContraNueva, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 310, 160, -1)); lbMes.add(txtApellido, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 100, 230, -1)); lbApellido.setText("Apellido"); lbMes.add(lbApellido, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 100, -1, -1)); lbRCN.setText("Repita contraseña"); - lbMes.add(lbRCN, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 340, -1, -1)); + lbMes.add(lbRCN, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 300, -1, -1)); lbCN.setText("Contraseña nueva"); - lbMes.add(lbCN, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 310, -1, -1)); + lbMes.add(lbCN, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 270, -1, -1)); lbFecha.setText("Fecha de Nac."); - lbMes.add(lbFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 200, -1, -1)); + lbMes.add(lbFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 180, -1, -1)); chkCambiarContra.setText("Cambiar contraseña"); chkCambiarContra.addActionListener(new java.awt.event.ActionListener() { @@ -235,7 +219,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { chkCambiarContraActionPerformed(evt); } }); - lbMes.add(chkCambiarContra, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 260, -1, -1)); + lbMes.add(chkCambiarContra, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 230, -1, -1)); grpPrivacidad.add(rbPublico); rbPublico.setText("Publico"); @@ -245,9 +229,26 @@ public class frmModificarUsuario extends javax.swing.JDialog { rbPrivado.setText("Privado"); lbMes.add(rbPrivado, new org.netbeans.lib.awtextra.AbsoluteConstraints(840, 270, -1, -1)); - lbImagen1.setText("Imagen"); - lbMes.add(lbImagen1, new org.netbeans.lib.awtextra.AbsoluteConstraints(360, 400, -1, 20)); - lbMes.add(dcFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 200, 170, -1)); + lbImagen1.setText("Imagen (opcional)"); + lbMes.add(lbImagen1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 340, -1, 20)); + lbMes.add(dcFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 180, 170, 20)); + + btnQuitarImagen.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N + btnQuitarImagen.setText("Quitar imagen"); + btnQuitarImagen.setToolTipText(""); + btnQuitarImagen.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); + btnQuitarImagen.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnQuitarImagenActionPerformed(evt); + } + }); + lbMes.add(btnQuitarImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 430, 170, 50)); + + txtContraNueva2.setText("jPasswordField1"); + lbMes.add(txtContraNueva2, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 300, 170, -1)); + + txtContraNueva1.setText("jPasswordField1"); + lbMes.add(txtContraNueva1, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 270, 170, -1)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -272,18 +273,19 @@ public class frmModificarUsuario extends javax.swing.JDialog { pack(); }// </editor-fold>//GEN-END:initComponents - private void listarUsuarios(ArrayList<DtUsuario> ListaUsuarios){ + private void listarUsuarios(ArrayList<DtUsuario> ListaUsuarios) { DefaultListModel modelo = new DefaultListModel(); for (DtUsuario it : ListaUsuarios) { modelo.addElement(it.getNickname()); } lstUsuarios.setModel(modelo); - + } - private void desactivarCampos(){ + + private void desactivarCampos() { txtNombre.setEnabled(false); - txtContraNueva.setEnabled(false); txtContraNueva1.setEnabled(false); + txtContraNueva2.setEnabled(false); txtDescrpcion.setEnabled(false); txtNombreCanal.setEnabled(false); txtApellido.setEnabled(false); @@ -296,20 +298,19 @@ public class frmModificarUsuario extends javax.swing.JDialog { lbCorreo.setEnabled(false); lbDescripcion.setEnabled(false); lbFecha.setEnabled(false); - lbOpcional.setEnabled(false); chkCambiarContra.setEnabled(false); rbPublico.setEnabled(false); rbPrivado.setEnabled(false); btnModificar.setEnabled(false); btnSeleccionar.setEnabled(false); + btnQuitarImagen.setEnabled(false); txtDescrpcion.setEnabled(false); - - - + } - private void activarCampos(){ - - txtNombre.setEnabled(true); + + private void activarCampos() { + + txtNombre.setEnabled(true); txtDescrpcion.setEnabled(true); txtNombreCanal.setEnabled(true); txtApellido.setEnabled(true); @@ -322,37 +323,37 @@ public class frmModificarUsuario extends javax.swing.JDialog { lbCorreo.setEnabled(true); lbDescripcion.setEnabled(true); lbFecha.setEnabled(true); - lbOpcional.setEnabled(true); chkCambiarContra.setEnabled(true); rbPublico.setEnabled(true); rbPrivado.setEnabled(true); btnModificar.setEnabled(true); btnSeleccionar.setEnabled(true); + btnQuitarImagen.setEnabled(true); txtDescrpcion.setEnabled(true); } - - private String seleccionarImagen() { + + private String seleccionarImagen() { // Crea un JFileChooser JFileChooser JFC = new JFileChooser(); // crea un filtro para aceptar solo algunas extensiones FileNameExtensionFilter filtroImagen = new FileNameExtensionFilter("JPG, PNG", "jpg", "png"); // Agrega el filtro al JFileChooser JFC.setFileFilter(filtroImagen); - + // archivo seleccionado File archivo; // para saber si se selecciono algo o se cancelo int resultado; - + while (true) { // muestra el JFileChooser resultado = JFC.showOpenDialog(this); - + // Si pasa algo que no sea el aceptar - if (resultado != JFileChooser.APPROVE_OPTION){ + if (resultado != JFileChooser.APPROVE_OPTION) { return ""; } - + // obtiene el archivo seleccionado archivo = JFC.getSelectedFile(); @@ -362,7 +363,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { String rutaArchivo = archivo.getAbsolutePath(); // obtiene el archivo como imagen a partir de la ruta Image img = new ImageIcon(rutaArchivo).getImage(); - + // verifica que tanto se deformará la imagen al mostrarla en un cuadrado float deformacion; if (img.getHeight(null) > img.getWidth(null)) { @@ -370,7 +371,7 @@ public class frmModificarUsuario extends javax.swing.JDialog { } else { deformacion = img.getWidth(null) / img.getHeight(null); } - + if (deformacion < 1.3 && deformacion >= 1) { // si no se deforma demasiado // devuelve la ruta absoluta @@ -389,8 +390,8 @@ public class frmModificarUsuario extends javax.swing.JDialog { } } } - - private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta){ + + private void cargarImagenEnJlabel(javax.swing.JLabel jLabelx, String Ruta) { jLabelx.setText(null); // Carga la imagen a la variable de tipo Image Image img = new ImageIcon(Ruta).getImage(); @@ -401,66 +402,86 @@ public class frmModificarUsuario extends javax.swing.JDialog { // establece la imagen en el label jLabelx.setIcon(icono); } - - + + private boolean validarNombres(String _nombre) { + Pattern patronNombres = Pattern.compile("^([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú]+)$"); + Matcher mather = patronNombres.matcher(_nombre); + if (mather.find() == true) { + return true; + } + return false; + } + private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModificarActionPerformed try { - - - if(lstUsuarios.isSelectionEmpty()){ - JOptionPane.showMessageDialog(null, "Seleccione un usuario para modificar", "Error", JOptionPane.WARNING_MESSAGE); - - }else{ - if(txtNombre.getText().isEmpty()){ - JOptionPane.showMessageDialog(null, "El campo nombre no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); - - }else{ - if(txtApellido.getText().isEmpty()){ - JOptionPane.showMessageDialog(null, "El campo apellido no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); - - }else{ - if(txtNombreCanal.getText().isEmpty()){ - JOptionPane.showMessageDialog(null, "El campo nombre de canal no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); - - }else{ - - - String pass = user.getContrasenia(); - if (chkCambiarContra.isSelected()) { - - if (!(txtContraNueva.getText().equals("") && txtContraNueva1.getText().equals(""))) { - - if (txtContraNueva.getText().equals(txtContraNueva1.getText())) { - pass = txtContraNueva.getText(); - } else { - JOptionPane.showMessageDialog(null, "Las contraseñas no coinciden, no se pudo efectuar el cambio de contraseña. Inténtelo de nuevo", "OK", JOptionPane.WARNING_MESSAGE); - return; - } + if (lstUsuarios.isSelectionEmpty()) { + JOptionPane.showMessageDialog(null, "Seleccione un usuario para modificar", "Error", JOptionPane.WARNING_MESSAGE); + } else { + if (txtNombre.getText().isEmpty()) { + JOptionPane.showMessageDialog(null, "El campo nombre no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); } else { - JOptionPane.showMessageDialog(null, "Ingrese la contraseña nueva", "OK", JOptionPane.WARNING_MESSAGE); - return; - } - } - java.sql.Date fecha = null; //casteo fecha - if (dcFecha.getDate() != null) { - java.util.Date utilDate = dcFecha.getDate(); - fecha = new java.sql.Date(utilDate.getTime()); + txtNombre.setText(txtNombre.getText().trim()); + if (!validarNombres(txtNombre.getText())) { + JOptionPane.showMessageDialog(null, "El nombre tiene caracteres no válidos", "Error", JOptionPane.WARNING_MESSAGE); + } else { + if (txtApellido.getText().isEmpty()) { + JOptionPane.showMessageDialog(null, "El campo apellido no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); + } else { + txtApellido.setText(txtNombre.getText().trim()); + if (!validarNombres(txtApellido.getText())) { + JOptionPane.showMessageDialog(null, "El apellido tiene caracteres no válidos", "Error", JOptionPane.WARNING_MESSAGE); + } else { + if (txtNombreCanal.getText().isEmpty()) { + JOptionPane.showMessageDialog(null, "El campo nombre de canal no puede quedar vacÃo", "Error", JOptionPane.WARNING_MESSAGE); + } else { + txtNombreCanal.setText(txtNombre.getText().trim()); + String pass = user.getContrasenia(); + if (chkCambiarContra.isSelected()) { + + if (!(txtContraNueva1.getText().equals("") && txtContraNueva2.getText().equals(""))) { + + if (txtContraNueva1.getText().equals(txtContraNueva2.getText())) { + pass = txtContraNueva1.getText(); + } else { + JOptionPane.showMessageDialog(null, "Las contraseñas no coinciden, no se pudo efectuar el cambio de contraseña. Inténtelo de nuevo", "OK", JOptionPane.WARNING_MESSAGE); + txtContraNueva1.setText(""); + txtContraNueva2.setText(""); + return; + } + + } else { + JOptionPane.showMessageDialog(null, "Ingrese la contraseña nueva", "OK", JOptionPane.WARNING_MESSAGE); + return; + } + } + java.sql.Date fecha = null; //casteo fecha + if (dcFecha.getDate() != null) { + java.util.Date utilDate = dcFecha.getDate(); + fecha = new java.sql.Date(utilDate.getTime()); + }else{ + JOptionPane.showMessageDialog(null, "Debe seleccionar la fecha de nacimiento", "OK", JOptionPane.WARNING_MESSAGE); + return; + } + DtUsuario u = new DtUsuario(user.getNickname(), pass, txtNombre.getText(), txtApellido.getText(), user.getCorreo(), fecha, ruta, PROPERTIES); + Privacidad priv; + if (rbPrivado.isSelected()) { + priv = Privacidad.PRIVADO; + } else { + priv = Privacidad.PUBLICO; + } + DtCanal c = new DtCanal(0, txtNombreCanal.getText(), txtDescrpcion.getText(), priv); + sys.modificarUsuarioYCanal(u, c); + + JOptionPane.showMessageDialog(null, "Datos modificados correctamente", "OK", JOptionPane.INFORMATION_MESSAGE); + dispose(); + + } } - DtUsuario u = new DtUsuario(user.getNickname(), pass, txtNombre.getText(), txtApellido.getText(), user.getCorreo(), fecha, ruta, PROPERTIES); - Privacidad priv; - if(rbPrivado.isSelected()){ - priv = Privacidad.PRIVADO; - }else{ - priv = Privacidad.PUBLICO; + } + } } - DtCanal c = new DtCanal(0, txtNombreCanal.getText(), txtDescrpcion.getText(), priv); - sys.modificarUsuarioYCanal(u, c); - - JOptionPane.showMessageDialog(null, "Datos modificados correctamente", "OK", JOptionPane.INFORMATION_MESSAGE); - dispose(); - - }}}} + } } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } @@ -468,13 +489,16 @@ public class frmModificarUsuario extends javax.swing.JDialog { private void btnSeleccionarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSeleccionarActionPerformed //cargarImagen(lbImagen); + String rutaAnterior = ruta; ruta = seleccionarImagen(); - cargarImagenEnJlabel(lbImg, ruta); - + if (ruta.isEmpty()) { + ruta = rutaAnterior; + } + cargarImagenEnJlabel(lbImg, ruta); }//GEN-LAST:event_btnSeleccionarActionPerformed private void btnListaReprodiccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnListaReprodiccionActionPerformed - new frmModificarListaDeReproduccion(this,true,lstUsuarios.getSelectedValue()).setVisible(true); + new frmModificarListaDeReproduccion(this, true, lstUsuarios.getSelectedValue()).setVisible(true); }//GEN-LAST:event_btnListaReprodiccionActionPerformed private void btnVideoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnVideoActionPerformed @@ -485,46 +509,42 @@ public class frmModificarUsuario extends javax.swing.JDialog { sys.liberarMemoriaUsuario(); dispose(); }//GEN-LAST:event_btnCancelarActionPerformed - private void cargarDatosDelUsuario(DtUsuario u){ + private void cargarDatosDelUsuario(DtUsuario u) { txtNombre.setText(u.getNombre()); txtApellido.setText(u.getApellido()); - txtCorreo.setText(u.getCorreo()); + txtCorreo.setText(u.getCorreo()); dcFecha.setDate(u.getFechaNacimiento()); cargarImagenEnJlabel(lbImg, u.getImagen()); - + } - private void cargarDatosDelCanal(DtCanal c){ + + private void cargarDatosDelCanal(DtCanal c) { txtNombreCanal.setText(c.getNombre()); txtDescrpcion.setText(c.getDescripcion()); - if (c.getPrivacidad() == Privacidad.PUBLICO){ + if (c.getPrivacidad() == Privacidad.PUBLICO) { rbPublico.setSelected(true); - }else{ - rbPrivado.setSelected(true); + } else { + rbPrivado.setSelected(true); } } - - - - - + + private void lstUsuariosValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstUsuariosValueChanged - try { - if(! lstUsuarios.isSelectionEmpty()){ - activarCampos(); - } - btnVideo.setEnabled(true); - btnListaReprodiccion.setEnabled(true); + try { + if (!lstUsuarios.isSelectionEmpty()) { + activarCampos(); + } + btnVideo.setEnabled(true); + btnListaReprodiccion.setEnabled(true); String nick = lstUsuarios.getSelectedValue(); user = sys.seleccionarUsuario(nick); cargarDatosDelUsuario(user); DtCanal dtc = sys.obtenerCanalDeUsuario(); cargarDatosDelCanal(dtc); - ruta=user.getImagen(); - txtContraNueva.setText(""); + ruta = user.getImagen(); txtContraNueva1.setText(""); - - - + txtContraNueva2.setText(""); + } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); @@ -532,35 +552,32 @@ public class frmModificarUsuario extends javax.swing.JDialog { }//GEN-LAST:event_lstUsuariosValueChanged private void chkCambiarContraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkCambiarContraActionPerformed - if(chkCambiarContra.isSelected()){ - txtContraNueva.setEnabled(true); + if (chkCambiarContra.isSelected()) { txtContraNueva1.setEnabled(true); + txtContraNueva2.setEnabled(true); lbCN.setEnabled(true); lbRCN.setEnabled(true); - - }else{ - txtContraNueva.setEnabled(false); + + } else { txtContraNueva1.setEnabled(false); + txtContraNueva2.setEnabled(false); lbCN.setEnabled(false); lbRCN.setEnabled(false); } // TODO add your handling code here: }//GEN-LAST:event_chkCambiarContraActionPerformed - private void txtContraNuevaKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtContraNuevaKeyTyped - // TODO add your handling code here: - }//GEN-LAST:event_txtContraNuevaKeyTyped - - - - - - - - + private void btnQuitarImagenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnQuitarImagenActionPerformed + // Quitar imagen + ruta = ""; + cargarImagenEnJlabel(lbImg, ruta); + }//GEN-LAST:event_btnQuitarImagenActionPerformed + + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancelar; private javax.swing.JButton btnListaReprodiccion; private javax.swing.JButton btnModificar; + private javax.swing.JButton btnQuitarImagen; private javax.swing.JButton btnSeleccionar; private javax.swing.JButton btnVideo; private javax.swing.JCheckBox chkCambiarContra; @@ -580,20 +597,18 @@ public class frmModificarUsuario extends javax.swing.JDialog { private javax.swing.JLabel lbCorreo; private javax.swing.JLabel lbDescripcion; private javax.swing.JLabel lbFecha; - private javax.swing.JLabel lbImagen; private javax.swing.JLabel lbImagen1; private javax.swing.JLabel lbImg; private javax.swing.JPanel lbMes; private javax.swing.JLabel lbNombre; private javax.swing.JLabel lbNombreC; - private javax.swing.JLabel lbOpcional; private javax.swing.JLabel lbRCN; private javax.swing.JList<String> lstUsuarios; private javax.swing.JRadioButton rbPrivado; private javax.swing.JRadioButton rbPublico; private javax.swing.JTextField txtApellido; - private javax.swing.JTextField txtContraNueva; - private javax.swing.JTextField txtContraNueva1; + private javax.swing.JPasswordField txtContraNueva1; + private javax.swing.JPasswordField txtContraNueva2; private javax.swing.JTextField txtCorreo; private javax.swing.JTextArea txtDescrpcion; private javax.swing.JTextField txtNombre; diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.form b/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.form index e7b19bb519654413bf1adc0306e23ad5fb8ab7da..ce1cef5a5b5fdf134f123d0f60094c2981b41d9d 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.form +++ b/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.form @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" ?> -<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> +<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> <Properties> <Property name="defaultCloseOperation" type="int" value="2"/> <Property name="title" type="java.lang.String" value="Alta video"/> @@ -12,7 +12,6 @@ <Events> <EventHandler event="windowClosing" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowClosing"/> <EventHandler event="windowActivated" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowActivated"/> - <EventHandler event="windowDeactivated" listener="java.awt.event.WindowListener" parameters="java.awt.event.WindowEvent" handler="formWindowDeactivated"/> </Events> <AuxValues> <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/> @@ -29,26 +28,15 @@ <Layout> <DimensionLayout dim="0"> <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="980" max="32767" attributes="0"/> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - <Component id="jPanel14" min="-2" pref="980" max="-2" attributes="0"/> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> + <Group type="102" alignment="1" attributes="0"> + <EmptySpace min="0" pref="0" max="32767" attributes="0"/> + <Component id="jPanel14" min="-2" pref="980" max="-2" attributes="0"/> </Group> </Group> </DimensionLayout> <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="550" max="32767" attributes="0"/> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - <Component id="jPanel14" min="-2" pref="550" max="-2" attributes="0"/> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </Group> + <Component id="jPanel14" alignment="0" pref="535" max="32767" attributes="0"/> </Group> </DimensionLayout> </Layout> @@ -78,7 +66,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="30" y="50" width="290" height="370"/> + <AbsoluteConstraints x="30" y="50" width="290" height="360"/> </Constraint> </Constraints> @@ -91,7 +79,7 @@ </Property> </Properties> <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lstDuenioVideoMouseClicked"/> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstDuenioVideoValueChanged"/> </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> @@ -125,7 +113,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="150" width="-1" height="-1"/> + <AbsoluteConstraints x="340" y="160" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -135,7 +123,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="210" width="-1" height="-1"/> + <AbsoluteConstraints x="340" y="220" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -145,7 +133,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="400" width="-1" height="-1"/> + <AbsoluteConstraints x="340" y="380" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -181,7 +169,7 @@ </Property> </Properties> <Events> - <EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lstAsignarCategoriaMouseClicked"/> + <EventHandler event="valueChanged" listener="javax.swing.event.ListSelectionListener" parameters="javax.swing.event.ListSelectionEvent" handler="lstAsignarCategoriaValueChanged"/> </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<String>"/> @@ -189,20 +177,10 @@ </Component> </SubComponents> </Container> - <Component class="javax.swing.JLabel" name="jLabel78"> - <Properties> - <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> - <Font name="Dialog" size="12" style="0"/> - </Property> - <Property name="text" type="java.lang.String" value="(Opcional)"/> - </Properties> - <Constraints> - <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="840" y="20" width="-1" height="-1"/> - </Constraint> - </Constraints> - </Component> <Component class="javax.swing.JTextField" name="txtNombre"> + <Events> + <EventHandler event="focusGained" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtNombreFocusGained"/> + </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="340" y="50" width="330" height="-1"/> @@ -210,9 +188,12 @@ </Constraints> </Component> <Component class="javax.swing.JTextField" name="txtUrl"> + <Events> + <EventHandler event="focusGained" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="txtUrlFocusGained"/> + </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="170" width="330" height="-1"/> + <AbsoluteConstraints x="340" y="180" width="330" height="-1"/> </Constraint> </Constraints> </Component> @@ -222,7 +203,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="230" width="330" height="140"/> + <AbsoluteConstraints x="340" y="240" width="330" height="120"/> </Constraint> </Constraints> @@ -248,7 +229,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="690" y="460" width="260" height="70"/> + <AbsoluteConstraints x="690" y="440" width="260" height="70"/> </Constraint> </Constraints> </Component> @@ -264,25 +245,49 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="30" y="463" width="290" height="70"/> + <AbsoluteConstraints x="30" y="440" width="290" height="70"/> </Constraint> </Constraints> </Component> <Component class="javax.swing.JSpinner" name="spSegundos"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="59" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spSegundosStateChanged"/> + </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="560" y="120" width="60" height="-1"/> </Constraint> </Constraints> </Component> - <Component class="javax.swing.JSpinner" name="spHora"> + <Component class="javax.swing.JSpinner" name="spHoras"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="15" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spHorasStateChanged"/> + </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="420" y="120" width="60" height="-1"/> </Constraint> </Constraints> </Component> - <Component class="javax.swing.JSpinner" name="spMinuto"> + <Component class="javax.swing.JSpinner" name="spMinutos"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="59" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> + <Events> + <EventHandler event="stateChanged" listener="javax.swing.event.ChangeListener" parameters="javax.swing.event.ChangeEvent" handler="spMinutosStateChanged"/> + </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="490" y="120" width="60" height="-1"/> @@ -320,13 +325,21 @@ </Constraints> </Component> <Component class="com.toedter.calendar.JDateChooser" name="jDateChooser1"> + <Properties> + <Property name="maxSelectableDate" type="java.util.Date" editor="org.netbeans.beaninfo.editors.DateEditor"> + <SerializedValue value="-84,-19,0,5,115,114,0,14,106,97,118,97,46,117,116,105,108,46,68,97,116,101,104,106,-127,1,75,89,116,25,3,0,0,120,112,119,8,0,0,2,75,-49,58,60,88,120"/> + </Property> + <Property name="minSelectableDate" type="java.util.Date" editor="org.netbeans.beaninfo.editors.DateEditor"> + <SerializedValue value="-84,-19,0,5,115,114,0,14,106,97,118,97,46,117,116,105,108,46,68,97,116,101,104,106,-127,1,75,89,116,25,3,0,0,120,112,119,8,-1,-1,-3,-3,-81,8,28,-72,120"/> + </Property> + </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="480" y="400" width="110" height="-1"/> + <AbsoluteConstraints x="450" y="380" width="220" height="20"/> </Constraint> </Constraints> </Component> - <Component class="javax.swing.JLabel" name="lbMensajeNombre"> + <Component class="javax.swing.JLabel" name="lbMsjNombre"> <Properties> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Dimension value="[0, 15]"/> @@ -337,14 +350,35 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="410" y="70" width="260" height="15"/> + <AbsoluteConstraints x="340" y="70" width="330" height="15"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="lbMsjUrl"> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="340" y="200" width="330" height="15"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="lbMsjFecha"> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="340" y="430" width="250" height="15"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="lbMsjDescripcion"> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="340" y="370" width="330" height="15"/> </Constraint> </Constraints> </Component> - <Component class="javax.swing.JLabel" name="lbMensajeUrl"> + <Component class="javax.swing.JLabel" name="lbMsjDuracion"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="340" y="190" width="330" height="15"/> + <AbsoluteConstraints x="340" y="140" width="330" height="15"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.java b/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.java index 379f69e73b8c3284771c7ddd006f84e49fe10910..3ae65c2d47d8dd6f27fed70cbe7752faa7d058b4 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.java +++ b/UyTube_aplicacion/src/Presentacion/Video/frmAltaVideo.java @@ -3,57 +3,89 @@ package Presentacion.Video; import Logica.Fabrica; import Logica.Clases.Video; -import Logica.DataType.DtUsuario; import Logica.DataType.DtVideo; import Logica.Enumerados.Privacidad; import Logica.Interfaces.IAdmin; import java.awt.Color; import java.sql.Time; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.swing.BorderFactory; import javax.swing.DefaultListModel; +import javax.swing.JLabel; import javax.swing.JOptionPane; +import javax.swing.JTextField; import javax.swing.border.Border; import javax.swing.plaf.ColorUIResource; public class frmAltaVideo extends javax.swing.JDialog { - public DefaultListModel listModelUsuario = new DefaultListModel(); - public DefaultListModel listModelCategoria = new DefaultListModel(); - Fabrica fabrica = Fabrica.getInstancia(); - IAdmin sys = fabrica.getIAdmin(); + private ArrayList<String> indexDuenioVideo = new ArrayList(); + private ArrayList<String> indexCategorias = new ArrayList(); + private IAdmin sys; private String categoria = ""; - private String usrSeleccionado = ""; - Border bordeDefault; - Color colorOK = new ColorUIResource(40,167,69); - Color colorError = new ColorUIResource(220,53,69); + private String usrSeleccionado = ""; + private Border bordeDefault; + private Color colorOK = new ColorUIResource(40,167,69); + private Color colorError = new ColorUIResource(220,53,69); + private String nombre = new String(); + private String url = new String(); + private String descripcion = new String(); + int anioActual,diaActual,mesActual; + // Patrón para validar el email - Pattern patronURL = Pattern.compile("\"(http://|https://)(www.)?([a-zA-Z0-9]+).[a-zA-Z0-9]*.[a-z]{3}.?([a-z]+)?\""); + Pattern patronURL = Pattern.compile("^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*’;/?:@&=+$, A-Za-z0-9])+)([).!’;/?:, ][[:blank:]])?$"); + Pattern patronNombre= Pattern.compile("^([A-Za-zÑñÃáÉéÃÃÓóÚú0-9]+)\\s*([A-Za-zÑñÃáÉéÃÃÓóÚú0-9]+)\\s*" + + "([A-Za-zÑñÃáÉéÃÃÓóÚú0-9]+)$"); public frmAltaVideo(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); this.setLocationRelativeTo(null); + sys = Fabrica.getInstancia().getIAdmin(); + bordeDefault = txtNombre.getBorder(); + nombre = ""; + url = ""; + descripcion = ""; + } + + private boolean validarDuracion(int s, int m, int h){ + if ( s > 0 || m > 0 || h > 0) { + return true; + } + lbMsjDuracion.setOpaque(true); + lbMsjDuracion.setForeground(Color.WHITE); + lbMsjDuracion.setBackground(colorError); + lbMsjDuracion.setText(" El campo duración es obligatorio"); + return false; } private void limpiarCampos(){ txtNombre.setText(""); txtDescripcion.setText(""); txtUrl.setText(""); - spHora.setValue(0); - spMinuto.setValue(0); + spHoras.setValue(0); + spMinutos.setValue(0); spSegundos.setValue(0); usrSeleccionado=""; categoria = ""; jDateChooser1.setDate(null); } - private void limpiarListas(){ - listModelUsuario.clear();//Limpia la listaModeloUsuario - lstDuenioVideo.setModel(listModelUsuario); //Borra todos los datos del JList DuenioVideo - listModelCategoria.clear();//Limpia el modeo de Categorias - lstAsignarCategoria.setModel(listModelCategoria); + private void limpiarLstDuenios(){ + DefaultListModel modelo = new DefaultListModel(); + lstDuenioVideo.setModel(modelo); + indexDuenioVideo.clear(); + } + + private void limpiarLstCategorias(){ + DefaultListModel modelo = new DefaultListModel(); + lstAsignarCategoria.setModel(modelo); + indexCategorias.clear(); } private boolean validarFormatoURL(String _url){ @@ -64,6 +96,61 @@ public class frmAltaVideo extends javax.swing.JDialog { return false; } + private boolean validarNombres(String _nombre){ + Matcher mather = patronNombre.matcher(_nombre); + if (mather.find() == true) { + return true; + } + return false; + } + + private boolean validarTxt(JTextField txt, int max,JLabel lb,String nombreCampo){ + try{ + if(txt.getText().length() > max ){ + lb.setText(" El campo supera los "+max+" caracteres"); + cambiarColoresError(txt, lb); + return false; + } + else if(txt.getText().equals("")){ + lb.setText(" El campo "+nombreCampo+" es obligatorio"); + cambiarColoresError(txt, lb); + return false; + } + else if(nombreCampo.equals("Nombre") ){ + for (DtVideo video : sys.listarVideosDeUsuario()) { + if(video.getNombre().equals(nombre)){ + lb.setText(" El nombre del video ya existe"); + cambiarColoresError(txt, lb); + return false; + } + } + } + else if(nombreCampo.equals("URL")){ + if(!validarFormatoURL(url)){ + lb.setText(" El formato de la URI no es válido"); + cambiarColoresError(txt, lb); + return false; + } + } + else{ + txt.setBorder(bordeDefault); + lb.setText(""); + lb.setOpaque(false); + } + + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } + return true; + } + + private void cambiarColoresError(JTextField txt, JLabel lb){ + lb.setOpaque(true); + lb.setForeground(Color.WHITE); + lb.setBackground(colorError); + txt.setBorder(BorderFactory.createLineBorder(colorError, 1)); + } + @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { @@ -80,7 +167,6 @@ public class frmAltaVideo extends javax.swing.JDialog { jLabel77 = new javax.swing.JLabel(); jScrollPane17 = new javax.swing.JScrollPane(); lstAsignarCategoria = new javax.swing.JList<>(); - jLabel78 = new javax.swing.JLabel(); txtNombre = new javax.swing.JTextField(); txtUrl = new javax.swing.JTextField(); jScrollPane18 = new javax.swing.JScrollPane(); @@ -88,14 +174,17 @@ public class frmAltaVideo extends javax.swing.JDialog { btnAceptar = new javax.swing.JButton(); btnCancelar = new javax.swing.JButton(); spSegundos = new javax.swing.JSpinner(); - spHora = new javax.swing.JSpinner(); - spMinuto = new javax.swing.JSpinner(); + spHoras = new javax.swing.JSpinner(); + spMinutos = new javax.swing.JSpinner(); jLabel135 = new javax.swing.JLabel(); jLabel136 = new javax.swing.JLabel(); jLabel137 = new javax.swing.JLabel(); jDateChooser1 = new com.toedter.calendar.JDateChooser(); - lbMensajeNombre = new javax.swing.JLabel(); - lbMensajeUrl = new javax.swing.JLabel(); + lbMsjNombre = new javax.swing.JLabel(); + lbMsjUrl = new javax.swing.JLabel(); + lbMsjFecha = new javax.swing.JLabel(); + lbMsjDescripcion = new javax.swing.JLabel(); + lbMsjDuracion = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Alta video"); @@ -106,9 +195,6 @@ public class frmAltaVideo extends javax.swing.JDialog { public void windowActivated(java.awt.event.WindowEvent evt) { formWindowActivated(evt); } - public void windowDeactivated(java.awt.event.WindowEvent evt) { - formWindowDeactivated(evt); - } }); jPanel14.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); @@ -117,14 +203,14 @@ public class frmAltaVideo extends javax.swing.JDialog { jLabel71.setText("Dueño del video:"); jPanel14.add(jLabel71, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, -1, -1)); - lstDuenioVideo.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - lstDuenioVideoMouseClicked(evt); + lstDuenioVideo.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstDuenioVideoValueChanged(evt); } }); jScrollPane16.setViewportView(lstDuenioVideo); - jPanel14.add(jScrollPane16, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 50, 290, 370)); + jPanel14.add(jScrollPane16, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 50, 290, 360)); jLabel72.setText("Nombre:"); jPanel14.add(jLabel72, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 30, -1, -1)); @@ -133,38 +219,46 @@ public class frmAltaVideo extends javax.swing.JDialog { jPanel14.add(jLabel73, new org.netbeans.lib.awtextra.AbsoluteConstraints(560, 100, -1, -1)); jLabel74.setText("URL:"); - jPanel14.add(jLabel74, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 150, -1, -1)); + jPanel14.add(jLabel74, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 160, -1, -1)); jLabel75.setText("Descripción:"); - jPanel14.add(jLabel75, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 210, -1, -1)); + jPanel14.add(jLabel75, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 220, -1, -1)); jLabel76.setText("Fecha publicación:"); - jPanel14.add(jLabel76, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 400, -1, -1)); + jPanel14.add(jLabel76, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 380, -1, -1)); jLabel77.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N jLabel77.setText("Asignar categorÃa:"); jPanel14.add(jLabel77, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 20, -1, -1)); - lstAsignarCategoria.addMouseListener(new java.awt.event.MouseAdapter() { - public void mouseClicked(java.awt.event.MouseEvent evt) { - lstAsignarCategoriaMouseClicked(evt); + lstAsignarCategoria.addListSelectionListener(new javax.swing.event.ListSelectionListener() { + public void valueChanged(javax.swing.event.ListSelectionEvent evt) { + lstAsignarCategoriaValueChanged(evt); } }); jScrollPane17.setViewportView(lstAsignarCategoria); jPanel14.add(jScrollPane17, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 50, 260, 360)); - jLabel78.setFont(new java.awt.Font("Dialog", 0, 12)); // NOI18N - jLabel78.setText("(Opcional)"); - jPanel14.add(jLabel78, new org.netbeans.lib.awtextra.AbsoluteConstraints(840, 20, -1, -1)); + txtNombre.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtNombreFocusGained(evt); + } + }); jPanel14.add(txtNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 50, 330, -1)); - jPanel14.add(txtUrl, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 170, 330, -1)); + + txtUrl.addFocusListener(new java.awt.event.FocusAdapter() { + public void focusGained(java.awt.event.FocusEvent evt) { + txtUrlFocusGained(evt); + } + }); + jPanel14.add(txtUrl, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 180, 330, -1)); txtDescripcion.setColumns(20); txtDescripcion.setRows(5); jScrollPane18.setViewportView(txtDescripcion); - jPanel14.add(jScrollPane18, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 230, 330, 140)); + jPanel14.add(jScrollPane18, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 240, 330, 120)); btnAceptar.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N btnAceptar.setText("Aceptar"); @@ -173,7 +267,7 @@ public class frmAltaVideo extends javax.swing.JDialog { btnAceptarActionPerformed(evt); } }); - jPanel14.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 460, 260, 70)); + jPanel14.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(690, 440, 260, 70)); btnCancelar.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N btnCancelar.setText("Cancelar"); @@ -182,10 +276,31 @@ public class frmAltaVideo extends javax.swing.JDialog { btnCancelarActionPerformed(evt); } }); - jPanel14.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 463, 290, 70)); + jPanel14.add(btnCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 440, 290, 70)); + + spSegundos.setModel(new javax.swing.SpinnerNumberModel(0, 0, 59, 1)); + spSegundos.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + spSegundosStateChanged(evt); + } + }); jPanel14.add(spSegundos, new org.netbeans.lib.awtextra.AbsoluteConstraints(560, 120, 60, -1)); - jPanel14.add(spHora, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 120, 60, -1)); - jPanel14.add(spMinuto, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 120, 60, -1)); + + spHoras.setModel(new javax.swing.SpinnerNumberModel(0, 0, 15, 1)); + spHoras.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + spHorasStateChanged(evt); + } + }); + jPanel14.add(spHoras, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 120, 60, -1)); + + spMinutos.setModel(new javax.swing.SpinnerNumberModel(0, 0, 59, 1)); + spMinutos.addChangeListener(new javax.swing.event.ChangeListener() { + public void stateChanged(javax.swing.event.ChangeEvent evt) { + spMinutosStateChanged(evt); + } + }); + jPanel14.add(spMinutos, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 120, 60, -1)); jLabel135.setText("Duración:"); jPanel14.add(jLabel135, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 100, -1, -1)); @@ -195,43 +310,44 @@ public class frmAltaVideo extends javax.swing.JDialog { jLabel137.setText("Minutos"); jPanel14.add(jLabel137, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 100, -1, -1)); - jPanel14.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(480, 400, 110, -1)); - lbMensajeNombre.setMaximumSize(new java.awt.Dimension(0, 15)); - lbMensajeNombre.setMinimumSize(new java.awt.Dimension(0, 15)); - jPanel14.add(lbMensajeNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 70, 260, 15)); - jPanel14.add(lbMensajeUrl, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 190, 330, 15)); + jDateChooser1.setMaxSelectableDate(new java.util.Date(2524622503000L)); + jDateChooser1.setMinSelectableDate(new java.util.Date(-2208971613000L)); + jPanel14.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 380, 220, 20)); + + lbMsjNombre.setMaximumSize(new java.awt.Dimension(0, 15)); + lbMsjNombre.setMinimumSize(new java.awt.Dimension(0, 15)); + jPanel14.add(lbMsjNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 70, 330, 15)); + jPanel14.add(lbMsjUrl, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 200, 330, 15)); + jPanel14.add(lbMsjFecha, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 430, 250, 15)); + jPanel14.add(lbMsjDescripcion, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 370, 330, 15)); + jPanel14.add(lbMsjDuracion, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 140, 330, 15)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 980, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, 980, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, 980, javax.swing.GroupLayout.PREFERRED_SIZE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 550, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(jPanel14, javax.swing.GroupLayout.PREFERRED_SIZE, 550, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE))) + .addComponent(jPanel14, javax.swing.GroupLayout.DEFAULT_SIZE, 535, Short.MAX_VALUE) ); pack(); }// </editor-fold>//GEN-END:initComponents private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAceptarActionPerformed - String nombre = txtNombre.getText().trim();//Obtiene el nombre y quita los espacios de los extremos - String descripcion = txtDescripcion.getText().trim();//Obtiene la descripcion y quita los espacios de los extremos - String url = txtUrl.getText().trim();//Obtiene la url y quita los espacios de los extremos - int horas = (Integer)spHora.getValue(); - int minutos = (Integer)spMinuto.getValue(); + jDateChooser1.setBorder(bordeDefault); + lbMsjFecha.setText(""); + lbMsjFecha.setOpaque(false); + nombre = txtNombre.getText().trim();//Obtiene el nombre y quita los espacios de los extremos + descripcion = txtDescripcion.getText().trim();//Obtiene la descripcion y quita los espacios de los extremos + url = txtUrl.getText().trim();//Obtiene la url y quita los espacios de los extremos + int horas = (Integer)spHoras.getValue(); + int minutos = (Integer)spMinutos.getValue(); int segundos = (Integer)spSegundos.getValue(); Time duracion = new Time(horas, minutos, segundos); java.sql.Date fecha = null; @@ -240,73 +356,159 @@ public class frmAltaVideo extends javax.swing.JDialog { java.util.Date utilDate = jDateChooser1.getDate();//Obtiene la fecha del JDateChooser en formato Date fecha = new java.sql.Date(utilDate.getTime());//Lo combierte al tipo Date sql } + //Arrays para validaciones campos de texto + JTextField v1[] = {txtNombre,txtUrl}; //campos a validar + int[] v2= {100,2083}; //Largos maximos de los campos Nombre y URL + JLabel[] v3= { lbMsjNombre, lbMsjUrl}; //labels para mostrar mensajes + String[] v4 ={"Nombre","URL","Descricion"};//Nombre del campo + boolean[] v5 ={false,false,false};//Estado inicial de las validaciones, cada elemento es una validacion de un campo especifico + for (int i = 0; i < v5.length-1; i++) { + if (validarTxt(v1[i], v2[i], v3[i], v4[i])) { + v5[i] = true; + } + } + if(validarDuracion(segundos, minutos, horas)){ + v5[2] = true; + } + if (fecha == null) { + jDateChooser1.setBorder(BorderFactory.createLineBorder(colorError, 1)); + lbMsjFecha.setText(" La fecha es obligatoria"); + lbMsjFecha.setOpaque(true); + lbMsjFecha.setForeground(Color.WHITE); + lbMsjFecha.setBackground(colorError); + } + if(v5[0]==false|| v5[1]==false || v5[2]==false){ + return; + } try { DtVideo dtVideo = new DtVideo(Video.getNuevoId(), nombre, descripcion, duracion, fecha, url, Privacidad.PRIVADO, categoria, 0, 0); int opcion=JOptionPane.showConfirmDialog(null, - "Desea guardar el video con los siguientes datos?\n"+ - "Usuario: "+usrSeleccionado+"\n"+ - "Nombre: "+nombre+"\n"+ - "Descripción: "+descripcion+"\n"+ - "Duración: "+duracion+"\n"+ - "fecha de publicacón: "+fecha - , "Confirmar alt de Video", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); - if(opcion==0) + "¿Desea guardar el video \""+nombre+"\"?" + , "Confirmar alta de Video", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); + if(opcion==0){ sys.altaVideo(dtVideo); limpiarCampos(); + } } catch (Exception e) { - JOptionPane.showMessageDialog(null, (String) e.getMessage(), "Error:", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_btnAceptarActionPerformed private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed - limpiarListas(); + limpiarLstDuenios(); + limpiarLstCategorias(); limpiarCampos(); this.setVisible(false);//Oculta el formulario AltaVideo }//GEN-LAST:event_btnCancelarActionPerformed private void formWindowActivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowActivated - // Obtengo todos los nickname y los cargo en el listDuenioVideo(Lista de dueños de videos) - limpiarListas(); - if(!sys.listarUsuarios().isEmpty()){ - for (int i = 0; i < sys.listarUsuarios().size(); i++) { - listModelUsuario.add(i,sys.listarUsuarios().get(i).getNickname()); + DefaultListModel modeloDuenio = new DefaultListModel(); + DefaultListModel modeloCategoria = new DefaultListModel(); + Calendar c = new GregorianCalendar();//Objeto de tipo calendario con la fecha actual + java.util.Date fechaActual = new Date(c.get(Calendar.YEAR)-1900,c.get(Calendar.MONTH),c.get(Calendar.DATE));//Obtiene la fecha actual del calendario + jDateChooser1.setDate(fechaActual);//Setea el JDateChooser con la fecha actual + try { + // Obtengo todos los nickname y los cargo en el listDuenioVideo(Lista de dueños de videos) + limpiarLstCategorias(); + limpiarLstDuenios(); + if (!sys.listarUsuarios().isEmpty()) { + for (int i = 0; i < sys.listarUsuarios().size(); i++) { + modeloDuenio.add(i, sys.listarUsuarios().get(i).getNickname()); + } + lstDuenioVideo.setModel(modeloDuenio); + lstDuenioVideo.setSelectedIndex(0);//Setea la lista en el primer usuario + usrSeleccionado = lstDuenioVideo.getSelectedValue(); + sys.seleccionarUsuario(usrSeleccionado); } - lstDuenioVideo.setModel(listModelUsuario); - } - // Obtengo todas las categorias de video y las muestro en la lista - if(!sys.listarCategorias().isEmpty()){ - for(int i = 0; i < sys.listarCategorias().size(); i++){ - listModelCategoria.add(i, sys.listarCategorias().get(i)); + // Obtengo todas las categorias de video y las muestro en la lista + if (!sys.listarCategorias().isEmpty()) { + for (int i = 0; i < sys.listarCategorias().size(); i++) { + modeloCategoria.add(i, sys.listarCategorias().get(i)); + indexCategorias.add(i, sys.listarCategorias().get(i));//Alamacena cada categoria obtenida en el mismo orde + } + lstAsignarCategoria.setModel(modeloCategoria); + //Setea la lista Categoria en el elemento UNDEFINE + for (int i = 0; i < indexCategorias.size(); i++) { + if( indexCategorias.get(i).equals("UNDEFINED") ){ + lstAsignarCategoria.setSelectedIndex(i); + categoria = lstAsignarCategoria.getSelectedValue(); + break; + } + } } - lstAsignarCategoria.setModel(listModelCategoria); - } + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } }//GEN-LAST:event_formWindowActivated - private void lstDuenioVideoMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstDuenioVideoMouseClicked - // El sistema selecciona al usuario actual con el nickname seleccionado de la lista - usrSeleccionado = lstDuenioVideo.getSelectedValue(); - sys.seleccionarUsuario(usrSeleccionado); - }//GEN-LAST:event_lstDuenioVideoMouseClicked - private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosing // Al cerrar el formulario se borran todos los datos limpiarCampos(); - limpiarListas(); + limpiarLstCategorias(); + limpiarLstDuenios(); }//GEN-LAST:event_formWindowClosing - private void lstAsignarCategoriaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lstAsignarCategoriaMouseClicked - // Selecciona una categoria de la lista de categorias - categoria = lstAsignarCategoria.getSelectedValue(); - }//GEN-LAST:event_lstAsignarCategoriaMouseClicked - - private void formWindowDeactivated(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowDeactivated - // Al abrise el cuadro de dialogo se desactiva el formulario se limpian los datos de las listas -// listModelUsuario.clear();//Limpia la listaModeloUsuario -// lstDuenioVideo.setModel(listModelUsuario); //Borra todos los datos del JList DuenioVideo -// listModelCategoria.clear();//Limpia el modeo de Categorias -// lstAsignarCategoria.setModel(listModelCategoria); - }//GEN-LAST:event_formWindowDeactivated + private void lstDuenioVideoValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstDuenioVideoValueChanged + if (evt.getValueIsAdjusting()) return; + if (lstDuenioVideo.getSelectedIndex()<0) return; + try { + // El sistema selecciona al usuario actual con el nickname seleccionado de la lista + usrSeleccionado = lstDuenioVideo.getSelectedValue(); + sys.seleccionarUsuario(usrSeleccionado); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } + }//GEN-LAST:event_lstDuenioVideoValueChanged + + private void lstAsignarCategoriaValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstAsignarCategoriaValueChanged + if (evt.getValueIsAdjusting()) return; + if (lstAsignarCategoria.getSelectedIndex()<0) return; + try { + // Selecciona una categoria de la lista de categorias + categoria = lstAsignarCategoria.getSelectedValue(); + } catch (Exception e) { + JOptionPane.showMessageDialog(null, "Ha ocurrido un error \n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); + } + }//GEN-LAST:event_lstAsignarCategoriaValueChanged + + private void txtNombreFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtNombreFocusGained + //Al recibir el foco restaura los valores + txtNombre.setBorder(bordeDefault); + lbMsjNombre.setText(""); + lbMsjNombre.setOpaque(false); + }//GEN-LAST:event_txtNombreFocusGained + + private void txtUrlFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtUrlFocusGained + //Al recibir el foco restaura los valores + txtUrl.setBorder(bordeDefault); + lbMsjUrl.setText(""); + lbMsjUrl.setOpaque(false); + }//GEN-LAST:event_txtUrlFocusGained + + private void spSegundosStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spSegundosStateChanged + // Al cambiar el valor verifica y restaura los valores + if(validarDuracion((Integer)spSegundos.getValue(),(Integer)spMinutos.getValue(),(Integer)spHoras.getValue())){ + lbMsjDuracion.setText(""); + lbMsjDuracion.setOpaque(false); + } + }//GEN-LAST:event_spSegundosStateChanged + + private void spMinutosStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spMinutosStateChanged + // Al cambiar el valor verifica y restaura los valores + if(validarDuracion((Integer)spSegundos.getValue(),(Integer)spMinutos.getValue(),(Integer)spHoras.getValue())){ + lbMsjDuracion.setText(""); + lbMsjDuracion.setOpaque(false); + } + }//GEN-LAST:event_spMinutosStateChanged + + private void spHorasStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spHorasStateChanged + // Al cambiar el valor verifica y restaura los valores + if(validarDuracion((Integer)spSegundos.getValue(),(Integer)spMinutos.getValue(),(Integer)spHoras.getValue())){ + lbMsjDuracion.setText(""); + lbMsjDuracion.setOpaque(false); + } + }//GEN-LAST:event_spHorasStateChanged // Variables declaration - do not modify//GEN-BEGIN:variables @@ -323,17 +525,19 @@ public class frmAltaVideo extends javax.swing.JDialog { private javax.swing.JLabel jLabel75; private javax.swing.JLabel jLabel76; private javax.swing.JLabel jLabel77; - private javax.swing.JLabel jLabel78; private javax.swing.JPanel jPanel14; private javax.swing.JScrollPane jScrollPane16; private javax.swing.JScrollPane jScrollPane17; private javax.swing.JScrollPane jScrollPane18; - private javax.swing.JLabel lbMensajeNombre; - private javax.swing.JLabel lbMensajeUrl; + private javax.swing.JLabel lbMsjDescripcion; + private javax.swing.JLabel lbMsjDuracion; + private javax.swing.JLabel lbMsjFecha; + private javax.swing.JLabel lbMsjNombre; + private javax.swing.JLabel lbMsjUrl; private javax.swing.JList<String> lstAsignarCategoria; private javax.swing.JList<String> lstDuenioVideo; - private javax.swing.JSpinner spHora; - private javax.swing.JSpinner spMinuto; + private javax.swing.JSpinner spHoras; + private javax.swing.JSpinner spMinutos; private javax.swing.JSpinner spSegundos; private javax.swing.JTextArea txtDescripcion; private javax.swing.JTextField txtNombre; diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.form b/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.form index 4dc5c422797f34a00e9b126344674aea292ac0ba..94db1599051aed90989b7979a00f4b6949eba662 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.form +++ b/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.form @@ -32,9 +32,9 @@ </DimensionLayout> <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="574" max="32767" attributes="0"/> + <EmptySpace min="0" pref="592" max="32767" attributes="0"/> <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Component id="jPanel15" alignment="0" pref="574" max="32767" attributes="0"/> + <Component id="jPanel15" alignment="0" pref="592" max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> @@ -95,7 +95,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="670" y="190" width="-1" height="-1"/> + <AbsoluteConstraints x="670" y="220" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -162,7 +162,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="380" y="200" width="-1" height="-1"/> + <AbsoluteConstraints x="380" y="230" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -172,7 +172,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="380" y="220" width="270" height="130"/> + <AbsoluteConstraints x="380" y="250" width="270" height="130"/> </Constraint> </Constraints> @@ -194,7 +194,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="380" y="140" width="-1" height="-1"/> + <AbsoluteConstraints x="380" y="170" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -204,7 +204,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="380" y="170" width="-1" height="-1"/> + <AbsoluteConstraints x="380" y="200" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -247,7 +247,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="460" y="140" width="580" height="-1"/> + <AbsoluteConstraints x="460" y="170" width="580" height="-1"/> </Constraint> </Constraints> </Component> @@ -257,7 +257,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="460" y="170" width="580" height="-1"/> + <AbsoluteConstraints x="460" y="200" width="580" height="-1"/> </Constraint> </Constraints> </Component> @@ -273,7 +273,7 @@ </Events> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="670" y="480" width="380" height="60"/> + <AbsoluteConstraints x="670" y="510" width="380" height="60"/> </Constraint> </Constraints> </Component> @@ -286,7 +286,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="30" y="370" width="-1" height="-1"/> + <AbsoluteConstraints x="30" y="400" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -299,7 +299,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="350" y="370" width="-1" height="-1"/> + <AbsoluteConstraints x="350" y="400" width="-1" height="-1"/> </Constraint> </Constraints> </Component> @@ -309,7 +309,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="30" y="400" width="290" height="140"/> + <AbsoluteConstraints x="30" y="430" width="290" height="140"/> </Constraint> </Constraints> @@ -333,7 +333,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="350" y="400" width="300" height="140"/> + <AbsoluteConstraints x="350" y="430" width="300" height="140"/> </Constraint> </Constraints> @@ -357,7 +357,7 @@ </AuxValues> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="670" y="220" width="380" height="250"/> + <AbsoluteConstraints x="670" y="250" width="380" height="230"/> </Constraint> </Constraints> @@ -391,7 +391,7 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="450" y="370" width="200" height="20"/> + <AbsoluteConstraints x="450" y="400" width="200" height="20"/> </Constraint> </Constraints> </Component> @@ -401,7 +401,27 @@ </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="110" y="370" width="200" height="20"/> + <AbsoluteConstraints x="110" y="400" width="200" height="20"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="jLabel89"> + <Properties> + <Property name="text" type="java.lang.String" value="Publicación:"/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="380" y="140" width="-1" height="-1"/> + </Constraint> + </Constraints> + </Component> + <Component class="javax.swing.JLabel" name="lbFechaPublicacion"> + <Properties> + <Property name="text" type="java.lang.String" value=" "/> + </Properties> + <Constraints> + <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> + <AbsoluteConstraints x="460" y="140" width="580" height="-1"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.java b/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.java index c834c7a36b1ea4b65cc7f50ba1469d8d34256504..a7dc3e2d7452cc5ab41acf7647f71e7514707ba8 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.java +++ b/UyTube_aplicacion/src/Presentacion/Video/frmConsultaVideo.java @@ -121,6 +121,8 @@ public class frmConsultaVideo extends javax.swing.JDialog { jLabel99 = new javax.swing.JLabel(); lbCantDisLikes = new javax.swing.JLabel(); lbCantLikes = new javax.swing.JLabel(); + jLabel89 = new javax.swing.JLabel(); + lbFechaPublicacion = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Consultar video"); @@ -142,7 +144,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { jLabel82.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel82.setText("Comentarios:"); - jPanel15.add(jLabel82, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 190, -1, -1)); + jPanel15.add(jLabel82, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 220, -1, -1)); lstVideoUsuario.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { @@ -163,7 +165,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { jPanel15.add(jLabel85, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 110, -1, -1)); jLabel86.setText("Descripción:"); - jPanel15.add(jLabel86, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 200, -1, -1)); + jPanel15.add(jLabel86, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 230, -1, -1)); txtDescripcion.setEditable(false); txtDescripcion.setColumns(20); @@ -171,13 +173,13 @@ public class frmConsultaVideo extends javax.swing.JDialog { txtDescripcion.setRows(5); jScrollPane24.setViewportView(txtDescripcion); - jPanel15.add(jScrollPane24, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 220, 270, 130)); + jPanel15.add(jScrollPane24, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 250, 270, 130)); jLabel87.setText("Privacidad:"); - jPanel15.add(jLabel87, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 140, -1, -1)); + jPanel15.add(jLabel87, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 170, -1, -1)); jLabel88.setText("Categoria:"); - jPanel15.add(jLabel88, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 170, -1, -1)); + jPanel15.add(jLabel88, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 200, -1, -1)); lbNombre.setText(" "); jPanel15.add(lbNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 50, 580, -1)); @@ -194,10 +196,10 @@ public class frmConsultaVideo extends javax.swing.JDialog { jPanel15.add(lbUrl, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 110, 580, -1)); lbPrivacidad.setText(" "); - jPanel15.add(lbPrivacidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 140, 580, -1)); + jPanel15.add(lbPrivacidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 170, 580, -1)); lbCategoria.setText(" "); - jPanel15.add(lbCategoria, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 170, 580, -1)); + jPanel15.add(lbCategoria, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 200, 580, -1)); btnAceptar.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N btnAceptar.setText("Aceptar"); @@ -206,39 +208,45 @@ public class frmConsultaVideo extends javax.swing.JDialog { btnAceptarActionPerformed(evt); } }); - jPanel15.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 480, 380, 60)); + jPanel15.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 510, 380, 60)); jLabel94.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel94.setText("Les gusto:"); - jPanel15.add(jLabel94, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 370, -1, -1)); + jPanel15.add(jLabel94, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 400, -1, -1)); jLabel95.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel95.setText("No les gusto:"); - jPanel15.add(jLabel95, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 370, -1, -1)); + jPanel15.add(jLabel95, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 400, -1, -1)); jScrollPane25.setViewportView(lstLike); - jPanel15.add(jScrollPane25, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 400, 290, 140)); + jPanel15.add(jScrollPane25, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 430, 290, 140)); jScrollPane26.setViewportView(lstDislike); - jPanel15.add(jScrollPane26, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 400, 300, 140)); + jPanel15.add(jScrollPane26, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 430, 300, 140)); javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("root"); treeComentarios.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1)); jScrollPane27.setViewportView(treeComentarios); - jPanel15.add(jScrollPane27, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 220, 380, 250)); + jPanel15.add(jScrollPane27, new org.netbeans.lib.awtextra.AbsoluteConstraints(670, 250, 380, 230)); jLabel99.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N jLabel99.setText("Video del Usuario:"); jPanel15.add(jLabel99, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 20, -1, -1)); lbCantDisLikes.setText(" "); - jPanel15.add(lbCantDisLikes, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 370, 200, 20)); + jPanel15.add(lbCantDisLikes, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 400, 200, 20)); lbCantLikes.setText(" "); - jPanel15.add(lbCantLikes, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 370, 200, 20)); + jPanel15.add(lbCantLikes, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 400, 200, 20)); + + jLabel89.setText("Publicación:"); + jPanel15.add(jLabel89, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 140, -1, -1)); + + lbFechaPublicacion.setText(" "); + jPanel15.add(lbFechaPublicacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(460, 140, 580, -1)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -250,9 +258,9 @@ public class frmConsultaVideo extends javax.swing.JDialog { ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 574, Short.MAX_VALUE) + .addGap(0, 592, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, 574, Short.MAX_VALUE)) + .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, 592, Short.MAX_VALUE)) ); pack(); @@ -349,6 +357,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { txtDescripcion.setText(v.getDescripcion()); lbCantLikes.setText(String.valueOf(v.getCantLikes())); lbCantDisLikes.setText(String.valueOf(v.getCantDisLikes())); + lbFechaPublicacion.setText(v.getFechaPublicacion().toString()); } private void mostrarListasDrValoraciones(ArrayList<DtValoracion> lVal){ DefaultListModel modeloLikes = new DefaultListModel(); @@ -444,6 +453,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { txtDescripcion.setText(""); lbCantLikes.setText(""); lbCantDisLikes.setText(""); + lbFechaPublicacion.setText(""); // limpieza de listas lstLike.setModel(new DefaultListModel()); lstDislike.setModel(new DefaultListModel()); @@ -467,6 +477,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { private javax.swing.JLabel jLabel86; private javax.swing.JLabel jLabel87; private javax.swing.JLabel jLabel88; + private javax.swing.JLabel jLabel89; private javax.swing.JLabel jLabel94; private javax.swing.JLabel jLabel95; private javax.swing.JLabel jLabel99; @@ -481,6 +492,7 @@ public class frmConsultaVideo extends javax.swing.JDialog { private javax.swing.JLabel lbCantLikes; private javax.swing.JLabel lbCategoria; private javax.swing.JLabel lbDuracion; + private javax.swing.JLabel lbFechaPublicacion; private javax.swing.JLabel lbNombre; private javax.swing.JLabel lbPrivacidad; private javax.swing.JLabel lbUrl; diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.form b/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.form index 7830ebf17e269c9fd5bc760759c9735326941763..e65d606562c6d6a61542e46ff422e80febfbf2d9 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.form +++ b/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.form @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" ?> -<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> +<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo"> <NonVisualComponents> <Component class="javax.swing.ButtonGroup" name="buttonGroup1"> </Component> @@ -289,9 +289,6 @@ </Property> <Property name="text" type="java.lang.String" value="Privado"/> </Properties> - <Events> - <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="rbPrivadoActionPerformed"/> - </Events> <AuxValues> <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="9"/> </AuxValues> @@ -302,6 +299,11 @@ </Constraints> </Component> <Component class="javax.swing.JSpinner" name="spHora"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="15" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="530" y="100" width="60" height="-1"/> @@ -319,6 +321,11 @@ </Constraints> </Component> <Component class="javax.swing.JSpinner" name="spMinuto"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="59" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="600" y="100" width="50" height="-1"/> @@ -336,6 +343,11 @@ </Constraints> </Component> <Component class="javax.swing.JSpinner" name="spSegundos"> + <Properties> + <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> + <SpinnerModel initial="0" maximum="59" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/> + </Property> + </Properties> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> <AbsoluteConstraints x="660" y="100" width="50" height="-1"/> @@ -376,10 +388,10 @@ </Component> </SubComponents> </Container> - <Component class="com.toedter.calendar.JDateChooser" name="jDateChooser1"> + <Component class="com.toedter.calendar.JDateChooser" name="dcFechaPublicacion"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription"> - <AbsoluteConstraints x="620" y="340" width="-1" height="-1"/> + <AbsoluteConstraints x="564" y="340" width="180" height="30"/> </Constraint> </Constraints> </Component> diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.java b/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.java index 6e57e4f37462cf11fa5423225b02c89bb0a46228..0bd789a7cdcdf8ec560947d727aa5f46a4b2c9f9 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.java +++ b/UyTube_aplicacion/src/Presentacion/Video/frmModificarVideo.java @@ -1,4 +1,3 @@ - package Presentacion.Video; import Logica.DataType.DtCanal; @@ -12,32 +11,33 @@ import Presentacion.DatosDePrueba; import java.sql.Date; import java.sql.Time; import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.swing.DefaultListModel; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.ListModel; public class frmModificarVideo extends javax.swing.JDialog { + IAdmin sys; DefaultListModel s = new DefaultListModel(); boolean liberarMemoria; String validarNombre; + public frmModificarVideo(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); this.setLocationRelativeTo(null); liberarMemoria = true; - - - - + try { // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); // lista usuarios en el JList listarUsuarios(sys.listarUsuarios()); - + } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); } @@ -77,7 +77,7 @@ public class frmModificarVideo extends javax.swing.JDialog { jLabel146 = new javax.swing.JLabel(); jScrollPane19 = new javax.swing.JScrollPane(); lstCategorias = new javax.swing.JList<>(); - jDateChooser1 = new com.toedter.calendar.JDateChooser(); + dcFechaPublicacion = new com.toedter.calendar.JDateChooser(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Modificar video"); @@ -164,20 +164,21 @@ public class frmModificarVideo extends javax.swing.JDialog { buttonGroup1.add(rbPrivado); rbPrivado.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N rbPrivado.setText("Privado"); - rbPrivado.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - rbPrivadoActionPerformed(evt); - } - }); jPanel14.add(rbPrivado, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 390, -1, -1)); + + spHora.setModel(new javax.swing.SpinnerNumberModel(0, 0, 15, 1)); jPanel14.add(spHora, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 100, 60, -1)); jLabel144.setText("Horas"); jPanel14.add(jLabel144, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 80, -1, -1)); + + spMinuto.setModel(new javax.swing.SpinnerNumberModel(0, 0, 59, 1)); jPanel14.add(spMinuto, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 100, 50, -1)); jLabel145.setText("Minutos"); jPanel14.add(jLabel145, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 80, -1, -1)); + + spSegundos.setModel(new javax.swing.SpinnerNumberModel(0, 0, 59, 1)); jPanel14.add(spSegundos, new org.netbeans.lib.awtextra.AbsoluteConstraints(660, 100, 50, -1)); jLabel146.setText("Segundos"); @@ -186,7 +187,7 @@ public class frmModificarVideo extends javax.swing.JDialog { jScrollPane19.setViewportView(lstCategorias); jPanel14.add(jScrollPane19, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 50, 180, 400)); - jPanel14.add(jDateChooser1, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 340, -1, -1)); + jPanel14.add(dcFechaPublicacion, new org.netbeans.lib.awtextra.AbsoluteConstraints(564, 340, 180, 30)); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); @@ -213,15 +214,14 @@ public frmModificarVideo(javax.swing.JDialog parent, boolean modal, String nickn try { // obtiene la instancia de sistema sys = Fabrica.getInstancia().getIAdmin(); - + // Limpio la ventana - // limpiarElementosDeVentana(); - + // limpiarElementosDeVentana(); // lista usuarios y categorias en JList listarUsuarios(sys.listarUsuarios()); lstDuenioVideo.setSelectedValue(nickname, true); lstDuenioVideo.setEnabled(false); - + // Selecciono el usuario en la lista de usuarios // deshabilito la lista de usuarios para que no lo cambien } catch (Exception e) { @@ -230,8 +230,7 @@ public frmModificarVideo(javax.swing.JDialog parent, boolean modal, String nickn } } - - private void habilitarModificar() { + private void habilitarModificar() { if (!lstVideoUsuario.isSelectionEmpty()) { btnModificar.setEnabled(true); } else { @@ -239,7 +238,7 @@ public frmModificarVideo(javax.swing.JDialog parent, boolean modal, String nickn } } - private boolean existeVideo(String nombre) { + private boolean existeVideo(String nombre) { ListModel<String> lst = lstVideoUsuario.getModel(); for (int i = 0; i < lst.getSize(); i++) { if (lst.getElementAt(i).equals(nombre)) { @@ -250,142 +249,147 @@ public frmModificarVideo(javax.swing.JDialog parent, boolean modal, String nickn return false; } - private void listarUsuarios(ArrayList<DtUsuario> ListaUsuarios){ + + private void listarUsuarios(ArrayList<DtUsuario> ListaUsuarios) { DefaultListModel modelo = new DefaultListModel(); for (DtUsuario it : ListaUsuarios) { modelo.addElement(it.getNickname()); } lstDuenioVideo.setModel(modelo); - + } -private void listarCategorias(ArrayList<String> ListaCategorias){ + + private void listarCategorias(ArrayList<String> ListaCategorias) { DefaultListModel modelo2 = new DefaultListModel(); - for(int i = 0; i<sys.listarCategorias().size(); i++){ + for (int i = 0; i < sys.listarCategorias().size(); i++) { modelo2.add(i, sys.listarCategorias().get(i)); } - lstCategorias.setModel(modelo2); + lstCategorias.setModel(modelo2); } - - -private void listarVideos(ArrayList<DtVideo> ListaVideos){ + + private void listarVideos(ArrayList<DtVideo> ListaVideos) { DefaultListModel modelo1 = new DefaultListModel(); for (DtVideo it : ListaVideos) { modelo1.addElement(it.getNombre()); } lstVideoUsuario.setModel(modelo1); - + } -private void cargarDatosDeVideo(DtVideo v){ - int hora,minuto,segundo; + + private void cargarDatosDeVideo(DtVideo v) { + int hora, minuto, segundo; txtNombre.setText(v.getNombre()); txtDescripcion.setText(v.getDescripcion()); txtURL.setText(v.getUrlVideoOriginal()); - jDateChooser1.setDate(v.getFechaPublicacion()); - + dcFechaPublicacion.setDate(v.getFechaPublicacion()); + spHora.setValue(v.getDuracion().getHours()); spMinuto.setValue(v.getDuracion().getMinutes()); spSegundos.setValue(v.getDuracion().getSeconds()); - - if (v.getPrivacidad() == Privacidad.PUBLICO){ + + if (v.getPrivacidad() == Privacidad.PUBLICO) { rbPublico.setSelected(true); - }else{ + } else { rbPrivado.setSelected(true); } - - lstCategorias.setSelectedValue(v.getCategoria(), true); -} + lstCategorias.setSelectedValue(v.getCategoria(), true); + } private void btnModificarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModificarActionPerformed try { if (lstVideoUsuario.isSelectionEmpty()) { - JOptionPane.showMessageDialog(null, "Seleccione un video para modificar", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "Seleccione un video para modificar", "Error", JOptionPane.WARNING_MESSAGE); } else { if (txtNombre.getText().isEmpty()) { - JOptionPane.showMessageDialog(null, "El nombre de video no puede ser vacÃo", "Error", JOptionPane.ERROR_MESSAGE); + JOptionPane.showMessageDialog(null, "El nombre del video no puede ser vacÃo", "Error", JOptionPane.WARNING_MESSAGE); } else { - if (lstCategorias.isSelectionEmpty()) { - JOptionPane.showMessageDialog(null, "Seleccione una categorÃa", "Error", JOptionPane.ERROR_MESSAGE); + if (txtNombre.getText().length() > 100) { + JOptionPane.showMessageDialog(null, "El nombre del video no puede tener mas de 100 caracteres", "Error", JOptionPane.WARNING_MESSAGE); } else { - if (txtURL.getText().isEmpty()) { - JOptionPane.showMessageDialog(null, "La URL del video no puede ser vacÃa", "Error", JOptionPane.ERROR_MESSAGE); + if (lstCategorias.isSelectionEmpty()) { + JOptionPane.showMessageDialog(null, "Seleccione una categorÃa", "Error", JOptionPane.WARNING_MESSAGE); } else { - if (!txtNombre.getText().equals(validarNombre)) { - if (existeVideo(txtNombre.getText())) { - JOptionPane.showMessageDialog(null, "Ya existe este video en la lista seleccionada", "Error", JOptionPane.ERROR_MESSAGE); - return; - } - } - - if (spHora.getValue().toString().equals("0") && spMinuto.getValue().toString().equals("0") && spSegundos.getValue().toString().equals("0")) { - JOptionPane.showMessageDialog(null, "La duración del video no puede ser 0", "Error", JOptionPane.ERROR_MESSAGE); - } else { - - - int hora = (Integer) spHora.getValue(); - int minuto = (Integer) spMinuto.getValue(); - int segundo = (Integer) spSegundos.getValue(); - Privacidad priv = Privacidad.PRIVADO; - if (rbPrivado.isSelected() && !(rbPublico.isSelected())) { - priv = Privacidad.PRIVADO; - } else if (rbPublico.isSelected() && !(rbPrivado.isSelected())) { - priv = Privacidad.PUBLICO; + if (txtURL.getText().isEmpty()) { + JOptionPane.showMessageDialog(null, "La URL del video no puede ser vacÃa", "Error", JOptionPane.WARNING_MESSAGE); } else { - JOptionPane.showMessageDialog(null, "Seleccione privacidad del video", "Error", JOptionPane.ERROR_MESSAGE); - } - java.sql.Date fecha = null; - if (jDateChooser1.getDate() != null) { - java.util.Date utilDate = jDateChooser1.getDate(); - fecha = new java.sql.Date(utilDate.getTime()); - } - DtVideo video = new DtVideo(WIDTH, txtNombre.getText(), txtDescripcion.getText(), new Time(hora, minuto, segundo), fecha, txtURL.getText(), priv, lstCategorias.getSelectedValue(), ALLBITS, PROPERTIES); - if (sys.obtenerCanalDeUsuario().getPrivacidad() == Privacidad.PRIVADO && rbPublico.isSelected()) { - JOptionPane.showMessageDialog(null, "No es posible hacer público un video si su canal es privado", "Error", JOptionPane.ERROR_MESSAGE); - return; - } - sys.modificarVideo(video); - - if (liberarMemoria) { - sys.liberarMemoriaUsuario(); + if (! validarFormatoURL(txtURL.getText())){ + JOptionPane.showMessageDialog(null, "La URL del video no es válida", "Error", JOptionPane.WARNING_MESSAGE); + } else { + if (dcFechaPublicacion.getDate() == null) { + JOptionPane.showMessageDialog(null, "Seleccione una fecha de publicacion", "Error", JOptionPane.WARNING_MESSAGE); + } else { + if (!txtNombre.getText().equals(validarNombre)) { + if (existeVideo(txtNombre.getText())) { + JOptionPane.showMessageDialog(null, "Ya existe este video en la lista seleccionada", "Error", JOptionPane.WARNING_MESSAGE); + return; + } + } + + int hora = (Integer) spHora.getValue(); + int minuto = (Integer) spMinuto.getValue(); + int segundo = (Integer) spSegundos.getValue(); + Privacidad priv = Privacidad.PRIVADO; + if (rbPrivado.isSelected() && !(rbPublico.isSelected())) { + priv = Privacidad.PRIVADO; + } else if (rbPublico.isSelected() && !(rbPrivado.isSelected())) { + priv = Privacidad.PUBLICO; + } else { + JOptionPane.showMessageDialog(null, "Seleccione privacidad del video", "Error", JOptionPane.WARNING_MESSAGE); + } + java.sql.Date fecha = null; + if (dcFechaPublicacion.getDate() != null) { + java.util.Date utilDate = dcFechaPublicacion.getDate(); + fecha = new java.sql.Date(utilDate.getTime()); + } + DtVideo video = new DtVideo(WIDTH, txtNombre.getText(), txtDescripcion.getText(), new Time(hora, minuto, segundo), fecha, txtURL.getText(), priv, lstCategorias.getSelectedValue(), ALLBITS, PROPERTIES); + if (sys.obtenerCanalDeUsuario().getPrivacidad() == Privacidad.PRIVADO && rbPublico.isSelected()) { + JOptionPane.showMessageDialog(null, "No es posible hacer público un video si su canal es privado", "Error", JOptionPane.WARNING_MESSAGE); + } + sys.modificarVideo(video); + + if (liberarMemoria) { + sys.liberarMemoriaUsuario(); + } + sys.liberarMemoriaVideo(); + + JOptionPane.showMessageDialog(null, "Se han efectuado los cambios", "OK", JOptionPane.INFORMATION_MESSAGE); + dispose(); + } + } } - sys.liberarMemoriaVideo(); - - JOptionPane.showMessageDialog(null, "Se han efectuado los cambios", "OK", JOptionPane.INFORMATION_MESSAGE); - dispose(); } } } } - }} - - - - -catch (Exception e) { + } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_btnModificarActionPerformed private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed - try{ - if(liberarMemoria){ - sys.liberarMemoriaUsuario(); - } - sys.liberarMemoriaVideo(); - dispose(); - } catch (Exception e) { + try { + if (liberarMemoria) { + sys.liberarMemoriaUsuario(); + } + sys.liberarMemoriaVideo(); + dispose(); + } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); - - } + } }//GEN-LAST:event_btnCancelarActionPerformed private void lstDuenioVideoValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstDuenioVideoValueChanged - if (evt.getValueIsAdjusting()) return; - if (lstDuenioVideo.getSelectedIndex()<0) return; + if (evt.getValueIsAdjusting()) { + return; + } + if (lstDuenioVideo.getSelectedIndex() < 0) { + return; + } txtDescripcion.setText(""); txtNombre.setText(""); txtURL.setText(""); @@ -396,39 +400,49 @@ catch (Exception e) { String nick = lstDuenioVideo.getSelectedValue(); sys.seleccionarUsuario(nick); listarVideos(sys.listarVideosDeUsuario()); - habilitarModificar(); - + habilitarModificar(); + buttonGroup1.clearSelection(); + dcFechaPublicacion.setDate(null); }//GEN-LAST:event_lstDuenioVideoValueChanged private void lstVideoUsuarioValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstVideoUsuarioValueChanged - if (evt.getValueIsAdjusting()) return; - if (lstVideoUsuario.getSelectedIndex()<0) return; + if (evt.getValueIsAdjusting()) { + return; + } + if (lstVideoUsuario.getSelectedIndex() < 0) { + return; + } try { - habilitarModificar(); + habilitarModificar(); String nombre = lstVideoUsuario.getSelectedValue(); ArrayList<DtVideo> arr = sys.listarVideosDeUsuario(); int idVideo = arr.get(lstVideoUsuario.getSelectedIndex()).getId(); DtVideo dtv = sys.seleccionarVideo(idVideo); - validarNombre=dtv.getNombre(); - + validarNombre = dtv.getNombre(); + listarCategorias(sys.listarCategorias()); cargarDatosDeVideo(dtv); - }catch (Exception e) { + } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_lstVideoUsuarioValueChanged - private void rbPrivadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbPrivadoActionPerformed - // TODO add your handling code heres: - }//GEN-LAST:event_rbPrivadoActionPerformed - + private boolean validarFormatoURL(String _url){ + Pattern patronURL = Pattern.compile("^((((https?|ftps?|gopher|telnet|nntp)://)|(mailto:|news:))(%[0-9A-Fa-f]{2}|[-()_.!~*’;/?:@&=+$, A-Za-z0-9])+)([).!’;/?:, ][[:blank:]])?$"); + Matcher mather = patronURL.matcher(_url); + if (mather.find() == true) { + return true; + } + return false; + } + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnCancelar; private javax.swing.JButton btnModificar; private javax.swing.ButtonGroup buttonGroup1; - private com.toedter.calendar.JDateChooser jDateChooser1; + private com.toedter.calendar.JDateChooser dcFechaPublicacion; private javax.swing.JLabel jLabel144; private javax.swing.JLabel jLabel145; private javax.swing.JLabel jLabel146; diff --git a/UyTube_aplicacion/src/Presentacion/Video/frmValorarVideo.java b/UyTube_aplicacion/src/Presentacion/Video/frmValorarVideo.java index 4dba7aede62e2a7e96a85795e8f19ece7aa65a70..98b5ea4a625ec69408b99e834f66dd4d3f5a76f8 100644 --- a/UyTube_aplicacion/src/Presentacion/Video/frmValorarVideo.java +++ b/UyTube_aplicacion/src/Presentacion/Video/frmValorarVideo.java @@ -7,7 +7,6 @@ import Logica.DataType.DtVideo; import Logica.Enumerados.TipoValoracion; import Logica.Fabrica; import Logica.Interfaces.IAdmin; -import java.util.List; import javax.swing.DefaultListModel; import javax.swing.JOptionPane; @@ -214,6 +213,7 @@ public class frmValorarVideo extends javax.swing.JDialog { return; } if (lstVideoAValorar.getSelectedIndex() < 0) { + mostrarValoracionEnRadioButtons(); return; } @@ -250,6 +250,25 @@ public class frmValorarVideo extends javax.swing.JDialog { private void btnValorarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnValorarActionPerformed // Clic en boton Valorar + + // validaciones + if (lstUsuarioValorado.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar un usuario propietario del video", "¡Atención!", JOptionPane.WARNING_MESSAGE); + return; + } + if (lstVideoAValorar.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar un video", "¡Atención!", JOptionPane.WARNING_MESSAGE); + return; + } + if (lstUsuarioValoradoR.getSelectedIndex() < 0) { + JOptionPane.showMessageDialog(null, "Debe seleccionar el usuario que realizará la valoración", "¡Atención!", JOptionPane.WARNING_MESSAGE); + return; + } + if ( ! (rbMeGusta.isSelected() || rbNoMeGusta.isSelected())) { + JOptionPane.showMessageDialog(null, "Debe seleccionar la opcion de valoración", "¡Atención!", JOptionPane.WARNING_MESSAGE); + return; + } + try { String nick; int indiceSeleccionado; @@ -277,7 +296,7 @@ public class frmValorarVideo extends javax.swing.JDialog { sys.liberarMemoriaVideo(); sys.liberarMemoriaUsuarioActual(); sys.liberarMemoriaUsuario(); - JOptionPane.showMessageDialog(null, "Usuario valorado exitosamente\n", "Informacion", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, "Video valorado exitosamente\n", "Informacion", JOptionPane.INFORMATION_MESSAGE); dispose(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Ha ocurrido un error\n" + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); @@ -321,6 +340,7 @@ public class frmValorarVideo extends javax.swing.JDialog { buttonGroup1.clearSelection(); rbMeGusta.setEnabled(false); rbNoMeGusta.setEnabled(false); + btnValorar.setEnabled(false); return; } rbMeGusta.setEnabled(true); @@ -330,6 +350,7 @@ public class frmValorarVideo extends javax.swing.JDialog { if (dtv == null) { buttonGroup1.clearSelection(); + btnValorar.setEnabled(false); //rbMeGusta.setSelected(false); //rbNoMeGusta.setSelected(false); } else {