commit f948f3977e12f55c7da659a22c11b39cb6b7210d Author: h4ckx0r Date: Mon Mar 31 23:35:15 2025 +0200 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..ee2efd7 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CRUDEvaluacionCentroEducativo.eml b/CRUDEvaluacionCentroEducativo.eml new file mode 100644 index 0000000..b40d194 --- /dev/null +++ b/CRUDEvaluacionCentroEducativo.eml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..524de13 --- /dev/null +++ b/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + net.h4ckx0r + CRUDEvaluacionCentroEducativo + 1.0-SNAPSHOT + + + 23 + 23 + UTF-8 + + + + + + com.mysql + mysql-connector-j + 9.2.0 + + + \ No newline at end of file diff --git a/src/main/java/net/h4ckx0r/Main.java b/src/main/java/net/h4ckx0r/Main.java new file mode 100644 index 0000000..28220f8 --- /dev/null +++ b/src/main/java/net/h4ckx0r/Main.java @@ -0,0 +1,9 @@ +package net.h4ckx0r; + +import net.h4ckx0r.vista.MainView; + +public class Main { + public static void main(String[] args) { + MainView.main(args); + } +} \ No newline at end of file diff --git a/src/main/java/net/h4ckx0r/controlador/ControladorCurso.java b/src/main/java/net/h4ckx0r/controlador/ControladorCurso.java new file mode 100644 index 0000000..9c04b19 --- /dev/null +++ b/src/main/java/net/h4ckx0r/controlador/ControladorCurso.java @@ -0,0 +1,162 @@ +package net.h4ckx0r.controlador; + +import net.h4ckx0r.modelo.Curso; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + +public class ControladorCurso { + public static List getAllCursos() { + Connection conn = GestorConexiones.getConexion(); + List cursos = new ArrayList<>(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM curso"); + + while (rs.next()) { + cursos.add(new Curso(rs.getInt("id"), rs.getString("descripcion"))); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return cursos; + } + + public static Curso getCurso(int id) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM curso WHERE id = ? LIMIT 1"); + pst.setInt(1, id); + + + ResultSet rs = pst.executeQuery(); + + if (rs.next()) { + return new Curso(rs.getInt("id"), rs.getString("descripcion")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Curso getPrimerCurso() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM curso LIMIT 1"); + + if (rs.next()) { + return new Curso(rs.getInt("id"), rs.getString("descripcion")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Curso getUltimoCurso() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM curso ORDER BY id DESC LIMIT 1"); + + if (rs.next()) { + return new Curso(rs.getInt("id"), rs.getString("descripcion")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Curso getSiguienteCurso(Curso cursoActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM curso WHERE id > ? LIMIT 1"); + pst.setInt(1, cursoActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Curso(rs.getInt("id"), rs.getString("descripcion")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static Curso getAnteriorCurso(Curso cursoActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM curso WHERE id < ? ORDER BY id DESC LIMIT 1"); + pst.setInt(1, cursoActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Curso(rs.getInt("id"), rs.getString("descripcion")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static int guardarCurso(Curso curso) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("UPDATE curso SET descripcion = ? WHERE id = ?"); + if (curso.getId() == -1) { + curso.setId(ControladorCurso.getUltimoCurso().getId() + 1); + return nuevoCurso(curso); + } + pst.setString(1, curso.getDescripcion()); + pst.setInt(2, curso.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static int nuevoCurso(Curso curso) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("INSERT INTO curso (id,descripcion) VALUES (?,?)"); + pst.setInt(1, curso.getId()); + pst.setString(2, curso.getDescripcion()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static int borrarCurso(Curso curso) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("DELETE FROM curso WHERE id = ?"); + pst.setInt(1, curso.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/net/h4ckx0r/controlador/ControladorMateria.java b/src/main/java/net/h4ckx0r/controlador/ControladorMateria.java new file mode 100644 index 0000000..558a1c8 --- /dev/null +++ b/src/main/java/net/h4ckx0r/controlador/ControladorMateria.java @@ -0,0 +1,126 @@ +package net.h4ckx0r.controlador; + +import net.h4ckx0r.modelo.Curso; +import net.h4ckx0r.modelo.Materia; + +import java.sql.*; + +public class ControladorMateria { + public static Materia getPrimeraMateria() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM materia LIMIT 1"); + + if (rs.next()) { + return new Materia(rs.getInt("id"), rs.getString("nombre"), rs.getString("acronimo"), rs.getInt("curso_id")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Materia getUltimaMateria() { + Connection conn = GestorConexiones.getConexion(); + + try { + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT * FROM materia ORDER BY id DESC LIMIT 1"); + + if (rs.next()) { + return new Materia(rs.getInt("id"), rs.getString("nombre"), rs.getString("acronimo"), rs.getInt("curso_id")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } + + public static Materia getSiguienteMateria(Materia materiaActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM materia WHERE id > ? LIMIT 1"); + pst.setInt(1, materiaActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Materia(rs.getInt("id"), rs.getString("nombre"), rs.getString("acronimo"), rs.getInt("curso_id")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static Materia getAnteriorMateria(Materia materiaActual) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM materia WHERE id < ? ORDER BY id DESC LIMIT 1"); + pst.setInt(1, materiaActual.getId()); + ResultSet rs = pst.executeQuery(); + if (rs.next()) { + return new Materia(rs.getInt("id"), rs.getString("nombre"), rs.getString("acronimo"), rs.getInt("curso_id")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + + } + + public static int borrarMateria(Materia materiaActual) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("DELETE FROM materia WHERE id = ? LIMIT 1"); + pst.setInt(1, materiaActual.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static int guardarMateria(Materia materia) { + Connection conn = GestorConexiones.getConexion(); + try { + PreparedStatement pst = conn.prepareStatement("UPDATE materia SET nombre = ?, acronimo = ?, curso_id = ? WHERE id = ?"); + pst.setString(1, materia.getNombre()); + pst.setString(2, materia.getAcronimo()); + pst.setInt(3, materia.getCurso_id()); + pst.setInt(4, materia.getId()); + return pst.executeUpdate(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static Materia getMateria(int id) { + Connection conn = GestorConexiones.getConexion(); + + try { + PreparedStatement pst = conn.prepareStatement("SELECT * FROM materia WHERE id = ? LIMIT 1"); + pst.setInt(1, id); + ResultSet rs = pst.executeQuery(); + + if (rs.next()) { + return new Materia(rs.getInt("id"), rs.getString("nombre"), rs.getString("acronimo"), rs.getInt("curso_id")); + } + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return null; + } +} diff --git a/src/main/java/net/h4ckx0r/controlador/GestorConexiones.java b/src/main/java/net/h4ckx0r/controlador/GestorConexiones.java new file mode 100644 index 0000000..ff13c8f --- /dev/null +++ b/src/main/java/net/h4ckx0r/controlador/GestorConexiones.java @@ -0,0 +1,28 @@ +package net.h4ckx0r.controlador; + +import java.sql.Connection; + +public class GestorConexiones { + static Connection conn = null; + + public static Connection getConexion() { + if (conn == null) { + try { + conn = java.sql.DriverManager.getConnection(getURLConexion()); + } catch (Exception e) { + e.printStackTrace(); + } + } + return conn; + } + + private static String getURLConexion() { + String host = "127.0.0.1:3310"; + String schema = "centroeducativo"; + String properties = "?autoReconnect=true&serverTimezone=Europe/Madrid&useSSL=False&allowPublicKeyRetrieval=TRUE"; + String user = "root"; + String password = "1234"; + + return "jdbc:mysql://" + user + ":" + password + "@" + host + "/" + schema + properties; + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Curso.java b/src/main/java/net/h4ckx0r/modelo/Curso.java new file mode 100644 index 0000000..13119e3 --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/Curso.java @@ -0,0 +1,32 @@ +package net.h4ckx0r.modelo; + +public class Curso { + private int id; + private String descripcion; + + public Curso(int id, String descripcion) { + this.id = id; + this.descripcion = descripcion; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + @Override + public String toString() { + return descripcion; + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Estudiante.java b/src/main/java/net/h4ckx0r/modelo/Estudiante.java new file mode 100644 index 0000000..45b342d --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/Estudiante.java @@ -0,0 +1,8 @@ +package net.h4ckx0r.modelo; + +public class Estudiante extends Persona { + + public Estudiante(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { + super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono); + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Materia.java b/src/main/java/net/h4ckx0r/modelo/Materia.java new file mode 100644 index 0000000..a273d1b --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/Materia.java @@ -0,0 +1,57 @@ +package net.h4ckx0r.modelo; + +public class Materia { + private int id; + private String nombre; + private String acronimo; + private int curso_id; + + public Materia(int id, String nombre, String acronimo, int curso_id) { + this.id = id; + this.nombre = nombre; + this.acronimo = acronimo; + this.curso_id = curso_id; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getAcronimo() { + return acronimo; + } + + public void setAcronimo(String acronimo) { + this.acronimo = acronimo; + } + + public int getCurso_id() { + return curso_id; + } + + public void setCurso_id(int curso_id) { + this.curso_id = curso_id; + } + + @Override + public String toString() { + return "Materia{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + ", acronimo='" + acronimo + '\'' + + ", curso_id=" + curso_id + + '}'; + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Persona.java b/src/main/java/net/h4ckx0r/modelo/Persona.java new file mode 100644 index 0000000..1b8d044 --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/Persona.java @@ -0,0 +1,101 @@ +package net.h4ckx0r.modelo; + +public class Persona { + private int id; + private String nombre; + private String apellido1; + private String apellido2; + private String dni; + private String direccion; + private String email; + private String telefono; + + public Persona(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { + this.id = id; + this.nombre = nombre; + this.apellido1 = apellido1; + this.apellido2 = apellido2; + this.dni = dni; + this.direccion = direccion; + this.email = email; + this.telefono = telefono; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getApellido1() { + return apellido1; + } + + public void setApellido1(String apellido1) { + this.apellido1 = apellido1; + } + + public String getApellido2() { + return apellido2; + } + + public void setApellido2(String apellido2) { + this.apellido2 = apellido2; + } + + public String getDni() { + return dni; + } + + public void setDni(String dni) { + this.dni = dni; + } + + public String getDireccion() { + return direccion; + } + + public void setDireccion(String direccion) { + this.direccion = direccion; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getTelefono() { + return telefono; + } + + public void setTelefono(String telefono) { + this.telefono = telefono; + } + + @Override + public String toString() { + return "Persona{" + + "id=" + id + + ", nombre='" + nombre + '\'' + + ", apellido1='" + apellido1 + '\'' + + ", apellido2='" + apellido2 + '\'' + + ", dni='" + dni + '\'' + + ", direccion='" + direccion + '\'' + + ", email='" + email + '\'' + + ", telefono='" + telefono + '\'' + + '}'; + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/Profesor.java b/src/main/java/net/h4ckx0r/modelo/Profesor.java new file mode 100644 index 0000000..12d1a73 --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/Profesor.java @@ -0,0 +1,7 @@ +package net.h4ckx0r.modelo; + +public class Profesor extends Persona{ + public Profesor(int id, String nombre, String apellido1, String apellido2, String dni, String direccion, String email, String telefono) { + super(id, nombre, apellido1, apellido2, dni, direccion, email, telefono); + } +} diff --git a/src/main/java/net/h4ckx0r/modelo/ValoracionMateria.java b/src/main/java/net/h4ckx0r/modelo/ValoracionMateria.java new file mode 100644 index 0000000..9e564a4 --- /dev/null +++ b/src/main/java/net/h4ckx0r/modelo/ValoracionMateria.java @@ -0,0 +1,68 @@ +package net.h4ckx0r.modelo; + +public class ValoracionMateria { + private int id; + private int idProfesor; + private int idEstudiante; + private int idMateria; + private float valoracion; + + public ValoracionMateria(int id, int idProfesor, int idEstudiante, int idMateria, float valoracion) { + this.id = id; + this.idProfesor = idProfesor; + this.idEstudiante = idEstudiante; + this.idMateria = idMateria; + this.valoracion = valoracion; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getIdProfesor() { + return idProfesor; + } + + public void setIdProfesor(int idProfesor) { + this.idProfesor = idProfesor; + } + + public int getIdEstudiante() { + return idEstudiante; + } + + public void setIdEstudiante(int idEstudiante) { + this.idEstudiante = idEstudiante; + } + + public int getIdMateria() { + return idMateria; + } + + public void setIdMateria(int idMateria) { + this.idMateria = idMateria; + } + + public float getValoracion() { + return valoracion; + } + + public void setValoracion(float valoracion) { + this.valoracion = valoracion; + } + + @Override + public String toString() { + return "ValoracionMateria{" + + "id=" + id + + ", idProfesor=" + idProfesor + + ", idEstudiante=" + idEstudiante + + ", idMateria=" + idMateria + + ", valoracion=" + valoracion + + '}'; + } +} diff --git a/src/main/java/net/h4ckx0r/vista/MainView.java b/src/main/java/net/h4ckx0r/vista/MainView.java new file mode 100644 index 0000000..8b115d8 --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/MainView.java @@ -0,0 +1,370 @@ +package net.h4ckx0r.vista; + +import net.h4ckx0r.controlador.ControladorCurso; +import net.h4ckx0r.controlador.ControladorMateria; +import net.h4ckx0r.modelo.Curso; +import net.h4ckx0r.modelo.Materia; +import net.h4ckx0r.vista.panels.PanelCursos; +import net.h4ckx0r.vista.panels.PanelMaterias; +import net.h4ckx0r.vista.panels.PanelPersona; +import net.h4ckx0r.vista.panels.PanelValoracionMaterias; + +import java.awt.*; + +import javax.swing.*; +import javax.swing.border.EmptyBorder; +import java.awt.event.ActionListener; +import java.awt.event.ActionEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.ChangeEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; + +public class MainView extends JFrame { + + private static final long serialVersionUID = 1L; + private JPanel contentPane; + private JTabbedPane tabbedPane; + + private PanelCursos panelCursos = new PanelCursos(); + private PanelMaterias panelMaterias = new PanelMaterias(); + private PanelPersona panelEstudiantes = new PanelPersona(); + private PanelPersona panelProfesores = new PanelPersona(); + private PanelValoracionMaterias panelValoracionMaterias = new PanelValoracionMaterias(); + + private JButton btnFirst; + private JButton btnNext; + private JButton btnPrev; + private JButton btnLast; + + + private ImageIcon iconAdd = new ImageIcon(MainView.class.getResource("/images/add.png")); + private ImageIcon iconDelete = new ImageIcon(MainView.class.getResource("/images/delete.png")); + private ImageIcon iconSave = new ImageIcon(MainView.class.getResource("/images/save.png")); + + private ImageIcon iconFirst = new ImageIcon(MainView.class.getResource("/images/first.png")); + private ImageIcon iconPrevious = new ImageIcon(MainView.class.getResource("/images/previus.png")); + private ImageIcon iconNext = new ImageIcon(MainView.class.getResource("/images/next.png")); + private ImageIcon iconLast = new ImageIcon(MainView.class.getResource("/images/last.png")); + + + private ImageIcon iconCursos = new ImageIcon(MainView.class.getResource("/images/cursos.png")); + private ImageIcon iconMaterias = new ImageIcon(MainView.class.getResource("/images/materias.png")); + private ImageIcon iconEstudiantes = new ImageIcon(MainView.class.getResource("/images/estudiantes.png")); + private ImageIcon iconProfesores = new ImageIcon(MainView.class.getResource("/images/profesores.png")); + private ImageIcon iconValoracionMaterias = new ImageIcon(MainView.class.getResource("/images/valoracionMaterias.png")); + + /** + * Launch the application. + */ + public static void main(String[] args) { + EventQueue.invokeLater(new Runnable() { + public void run() { + try { + MainView frame = new MainView(); + frame.panelCursos.setCursoActual(ControladorCurso.getPrimerCurso()); + frame.panelMaterias.setMateriaActual(ControladorMateria.getPrimeraMateria()); + + + frame.actualizarPantalla(); + frame.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } + + /** + * Create the frame. + */ + public MainView() { + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setBounds(0, 0, 700, 500); + setLocationRelativeTo(null); + + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + JMenu mnNewMenu = new JMenu("Gestión"); + menuBar.add(mnNewMenu); + + JMenuItem menuItemCursos = new JMenuItem("Cursos"); + menuItemCursos.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tabbedPane.setSelectedComponent(panelCursos); + } + }); + menuItemCursos.setIcon(new ImageIcon(iconCursos.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + mnNewMenu.add(menuItemCursos); + + JMenuItem menuItemMaterias = new JMenuItem("Materias"); + menuItemMaterias.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tabbedPane.setSelectedComponent(panelMaterias); + } + }); + menuItemMaterias.setIcon(new ImageIcon(iconMaterias.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + mnNewMenu.add(menuItemMaterias); + + JMenuItem menuItemEstudiantes = new JMenuItem("Estudiantes"); + menuItemEstudiantes.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tabbedPane.setSelectedComponent(panelEstudiantes); + } + }); + menuItemEstudiantes.setIcon(new ImageIcon(iconEstudiantes.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + mnNewMenu.add(menuItemEstudiantes); + + JMenuItem menuItemProfesores = new JMenuItem("Profesores"); + menuItemProfesores.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tabbedPane.setSelectedComponent(panelProfesores); + } + }); + menuItemProfesores.setIcon(new ImageIcon(iconProfesores.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + mnNewMenu.add(menuItemProfesores); + + JMenuItem menuItemValoracionesMaterias = new JMenuItem("Valoraciones Materias"); + menuItemValoracionesMaterias.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tabbedPane.setSelectedComponent(panelValoracionMaterias); + } + }); + menuItemValoracionesMaterias.setIcon(new ImageIcon(iconValoracionMaterias.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + mnNewMenu.add(menuItemValoracionesMaterias); + + + contentPane = new JPanel(); + contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); + + setContentPane(contentPane); + contentPane.setLayout(new BorderLayout(0, 0)); + + JToolBar toolBar = new JToolBar(); + contentPane.add(toolBar, BorderLayout.NORTH); + + JButton btnAdd = new JButton(""); + btnAdd.setIcon(new ImageIcon(iconAdd.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnAdd.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + agregarRegistro(); + } + }); + toolBar.add(btnAdd); + + JButton btnDelete = new JButton(""); + btnDelete.setIcon(new ImageIcon(iconDelete.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnDelete.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + borrarRegistro(); + } + }); + toolBar.add(btnDelete); + + JButton btnSave = new JButton(""); + btnSave.setIcon(new ImageIcon(iconSave.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnSave.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + guardarRegistro(); + } + }); + toolBar.add(btnSave); + + toolBar.addSeparator(); + + btnFirst = new JButton(""); + btnFirst.setIcon(new ImageIcon(iconFirst.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnFirst.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cargarPrimerRegistro(); + } + }); + toolBar.add(btnFirst); + + btnPrev = new JButton(""); + btnPrev.setIcon(new ImageIcon(iconPrevious.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnPrev.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cargarAnteriorRegistro(); + } + }); + toolBar.add(btnPrev); + + btnNext = new JButton(""); + btnNext.setIcon(new ImageIcon(iconNext.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnNext.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cargarSiguienteRegistro(); + } + }); + toolBar.add(btnNext); + + btnLast = new JButton(""); + btnLast.setIcon(new ImageIcon(iconLast.getImage().getScaledInstance(24, 24, Image.SCALE_SMOOTH))); + btnLast.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cargarUltimoRegistro(); + } + }); + toolBar.add(btnLast); + + + tabbedPane = new JTabbedPane(JTabbedPane.TOP); + contentPane.add(tabbedPane, BorderLayout.CENTER); + + tabbedPane.addTab("Cursos", iconCursos, panelCursos, null); + tabbedPane.addTab("Materias", iconMaterias, panelMaterias, null); + tabbedPane.addTab("Estudiantes", iconEstudiantes, panelEstudiantes, null); + tabbedPane.addTab("Profesores", iconProfesores, panelProfesores, null); + tabbedPane.addTab("Valoraciones Materias", iconValoracionMaterias, panelValoracionMaterias, null); + } + + + private void agregarRegistro() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + panelCursos.setCursoActual(new Curso(-1, "")); + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + panelMaterias.setMateriaActual(new Materia(-1, "", "", -1)); + } + } + + private void borrarRegistro() { + + if (JOptionPane.showConfirmDialog(null, "¿Desea borrar el registro?", "¿Está seguro?", JOptionPane.YES_NO_OPTION) == 0) { + return; + } + + int resultado = 0; + + if (tabbedPane.getSelectedComponent() == panelCursos) { + resultado = ControladorCurso.borrarCurso(panelCursos.getCursoActual()); + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + resultado = ControladorMateria.borrarMateria(panelMaterias.getMateriaActual()); + } + + if (resultado > 0) { + JOptionPane.showMessageDialog(null, "Registro borrado correctamente"); + } else { + JOptionPane.showMessageDialog(null, "No se pudo borrar el registro"); + } + + } + + private void guardarRegistro() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + if (ControladorCurso.guardarCurso(panelCursos.getCursoActual()) > 0) { + JOptionPane.showMessageDialog(null, "Registro guardado correctamente"); + } + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + if (ControladorMateria.guardarMateria(panelMaterias.getMateriaActual()) > 0) { + JOptionPane.showMessageDialog(null, "Registro guardado correctamente"); + } + } + + + } + + + private void cargarPrimerRegistro() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + Curso primerCurso = ControladorCurso.getPrimerCurso(); + if (primerCurso != null) { + panelCursos.setCursoActual(primerCurso); + actualizarPantalla(); + } + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + Materia primeraMateria = ControladorMateria.getPrimeraMateria(); + if (primeraMateria != null) { + panelMaterias.setMateriaActual(primeraMateria); + actualizarPantalla(); + } + } + + } + + private void cargarUltimoRegistro() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + Curso ultimoCurso = ControladorCurso.getUltimoCurso(); + if (ultimoCurso != null) { + panelCursos.setCursoActual(ultimoCurso); + actualizarPantalla(); + } + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + Materia ultimaMateria = ControladorMateria.getUltimaMateria(); + if (ultimaMateria != null) { + panelMaterias.setMateriaActual(ultimaMateria); + actualizarPantalla(); + } + } + } + + private void cargarSiguienteRegistro() { + + if (tabbedPane.getSelectedComponent() == panelCursos) { + Curso siguienteCurso = ControladorCurso.getSiguienteCurso(panelCursos.getCursoActual()); + if (siguienteCurso != null) { + panelCursos.setCursoActual(siguienteCurso); + actualizarPantalla(); + } + + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + Materia siguienteMateria = ControladorMateria.getSiguienteMateria(panelMaterias.getMateriaActual()); + if (siguienteMateria != null) { + panelMaterias.setMateriaActual(siguienteMateria); + actualizarPantalla(); + } + } + + } + + private void cargarAnteriorRegistro() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + Curso anteriorCurso = ControladorCurso.getAnteriorCurso(panelCursos.getCursoActual()); + if (anteriorCurso != null) { + panelCursos.setCursoActual(anteriorCurso); + actualizarPantalla(); + } + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + Materia anteriorMateria = ControladorMateria.getAnteriorMateria(panelMaterias.getMateriaActual()); + if (anteriorMateria != null) { + panelMaterias.setMateriaActual(anteriorMateria); + actualizarPantalla(); + } + } + } + + private void actualizarPantalla() { + if (tabbedPane.getSelectedComponent() == panelCursos) { + Curso cursoActual = panelCursos.getCursoActual(); + alternarBotonesToolbar( + cursoActual.getId() == ControladorCurso.getPrimerCurso().getId(), + cursoActual.getId() == ControladorCurso.getUltimoCurso().getId()); + } else if (tabbedPane.getSelectedComponent() == panelMaterias) { + Materia materiaActual = panelMaterias.getMateriaActual(); + alternarBotonesToolbar( + materiaActual.getId() == ControladorMateria.getPrimeraMateria().getId(), + materiaActual.getId() == ControladorMateria.getUltimaMateria().getId()); + } + } + + private void alternarBotonesToolbar(boolean esPrimero, boolean esUltimo) { + if (esPrimero) { + btnFirst.setEnabled(false); + btnPrev.setEnabled(false); + } else { + btnFirst.setEnabled(true); + btnPrev.setEnabled(true); + } + if (esUltimo) { + btnNext.setEnabled(false); + btnLast.setEnabled(false); + } else { + btnNext.setEnabled(true); + btnLast.setEnabled(true); + } + } + +} diff --git a/src/main/java/net/h4ckx0r/vista/PanelCurso.java b/src/main/java/net/h4ckx0r/vista/PanelCurso.java new file mode 100644 index 0000000..b1398aa --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/PanelCurso.java @@ -0,0 +1,16 @@ +package net.h4ckx0r.vista; + +import javax.swing.JPanel; + +public class PanelCurso extends JPanel { + + private static final long serialVersionUID = 1L; + + /** + * Create the panel. + */ + public PanelCurso() { + + } + +} diff --git a/src/main/java/net/h4ckx0r/vista/panels/PanelCursos.java b/src/main/java/net/h4ckx0r/vista/panels/PanelCursos.java new file mode 100644 index 0000000..884435c --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/panels/PanelCursos.java @@ -0,0 +1,59 @@ +package net.h4ckx0r.vista.panels; + +import net.h4ckx0r.modelo.Curso; + +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +public class PanelCursos extends JPanel { + + private static final long serialVersionUID = 1L; + + private Curso cursoActual; + private JTextField tfDescripcion; + + /** + * Create the panel. + */ + public PanelCursos() { + GridBagLayout gridBagLayout = new GridBagLayout(); + gridBagLayout.columnWidths = new int[]{0, 0, 0}; + gridBagLayout.rowHeights = new int[]{0, 0, 0, 0}; + gridBagLayout.columnWeights = new double[]{0.2, 1.0, Double.MIN_VALUE}; + gridBagLayout.rowWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE}; + setLayout(gridBagLayout); + + JLabel lblNewLabel = new JLabel("Descripción:"); + GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); + gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel.gridx = 0; + gbc_lblNewLabel.gridy = 0; + add(lblNewLabel, gbc_lblNewLabel); + + tfDescripcion = new JTextField(); + GridBagConstraints gbc_textField = new GridBagConstraints(); + gbc_textField.insets = new Insets(0, 0, 5, 0); + gbc_textField.fill = GridBagConstraints.HORIZONTAL; + gbc_textField.gridx = 1; + gbc_textField.gridy = 0; + add(tfDescripcion, gbc_textField); + tfDescripcion.setColumns(10); + } + + public Curso getCursoActual() { + cursoActual.setDescripcion(tfDescripcion.getText()); + return cursoActual; + } + + public void setCursoActual(Curso cursoActual) { + this.cursoActual = cursoActual; + tfDescripcion.setText(cursoActual.getDescripcion()); + } + +} diff --git a/src/main/java/net/h4ckx0r/vista/panels/PanelMaterias.java b/src/main/java/net/h4ckx0r/vista/panels/PanelMaterias.java new file mode 100644 index 0000000..f9ba504 --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/panels/PanelMaterias.java @@ -0,0 +1,112 @@ +package net.h4ckx0r.vista.panels; + +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.util.List; + +import javax.swing.*; + +import net.h4ckx0r.controlador.ControladorCurso; +import net.h4ckx0r.modelo.Curso; +import net.h4ckx0r.modelo.Materia; + +public class PanelMaterias extends JPanel { + + private static final long serialVersionUID = 1L; + + private Materia materiaActual; + private JTextField tfNombre; + private JTextField tfAcronimo; + private JComboBox comboBoxCurso; + + /** + * Create the panel. + */ + public PanelMaterias() { + GridBagLayout gridBagLayout = new GridBagLayout(); + gridBagLayout.columnWidths = new int[]{0, 0, 0}; + gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0}; + gridBagLayout.columnWeights = new double[]{0.2, 1.0, Double.MIN_VALUE}; + gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; + setLayout(gridBagLayout); + + JLabel lblNewLabel = new JLabel("Nombre:"); + GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); + gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel.gridx = 0; + gbc_lblNewLabel.gridy = 0; + add(lblNewLabel, gbc_lblNewLabel); + + tfNombre = new JTextField(); + GridBagConstraints gbc_textField = new GridBagConstraints(); + gbc_textField.insets = new Insets(0, 0, 5, 0); + gbc_textField.fill = GridBagConstraints.HORIZONTAL; + gbc_textField.gridx = 1; + gbc_textField.gridy = 0; + add(tfNombre, gbc_textField); + tfNombre.setColumns(10); + + JLabel lblNewLabel_1 = new JLabel("Acrónimo:"); + GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints(); + gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_1.gridx = 0; + gbc_lblNewLabel_1.gridy = 1; + add(lblNewLabel_1, gbc_lblNewLabel_1); + + tfAcronimo = new JTextField(); + GridBagConstraints gbc_textField_1 = new GridBagConstraints(); + gbc_textField_1.insets = new Insets(0, 0, 5, 0); + gbc_textField_1.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_1.gridx = 1; + gbc_textField_1.gridy = 1; + add(tfAcronimo, gbc_textField_1); + tfAcronimo.setColumns(10); + + JLabel lblNewLabel_2 = new JLabel("Curso:"); + GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints(); + gbc_lblNewLabel_2.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_2.gridx = 0; + gbc_lblNewLabel_2.gridy = 2; + add(lblNewLabel_2, gbc_lblNewLabel_2); + + comboBoxCurso = new JComboBox<>(); + GridBagConstraints gbc_comboBox = new GridBagConstraints(); + gbc_comboBox.insets = new Insets(0, 0, 5, 0); + gbc_comboBox.fill = GridBagConstraints.HORIZONTAL; + gbc_comboBox.gridx = 1; + gbc_comboBox.gridy = 2; + add(comboBoxCurso, gbc_comboBox); + } + + public Materia getMateriaActual() { + materiaActual.setNombre(tfNombre.getText()); + materiaActual.setAcronimo(tfAcronimo.getText()); + materiaActual.setCurso_id(((Curso) comboBoxCurso.getSelectedItem()).getId()); + return materiaActual; + } + + public void setMateriaActual(Materia materiaActual) { + this.materiaActual = materiaActual; + tfNombre.setText(materiaActual.getNombre()); + tfAcronimo.setText(materiaActual.getAcronimo()); + actualizarCursos(); + } + + private void actualizarCursos() { + List cursos = ControladorCurso.getAllCursos(); + comboBoxCurso.removeAllItems(); + for (Curso curso : cursos) { + comboBoxCurso.addItem(curso); + if (materiaActual.getCurso_id() == curso.getId()) { + comboBoxCurso.setSelectedItem(curso); + } + } + if (materiaActual.getCurso_id() == -1) { + comboBoxCurso.setSelectedIndex(-1); + } + } +} \ No newline at end of file diff --git a/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java b/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java new file mode 100644 index 0000000..3f188ce --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/panels/PanelPersona.java @@ -0,0 +1,152 @@ +package net.h4ckx0r.vista.panels; + +import javax.swing.*; +import java.awt.GridBagLayout; +import java.awt.GridBagConstraints; +import java.awt.Insets; +import java.awt.BorderLayout; + +public class PanelPersona extends JPanel { + + private static final long serialVersionUID = 1L; + private JTextField textField; + private JTextField textField_1; + private JTextField textField_2; + private JTextField textField_3; + private JTextField textField_4; + private JTextField textField_5; + private JTextField textField_6; + + /** + * Create the panel. + */ + public PanelPersona() { + GridBagLayout gridBagLayout = new GridBagLayout(); + gridBagLayout.columnWidths = new int[]{0, 0, 0}; + gridBagLayout.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0}; + gridBagLayout.columnWeights = new double[]{0.2, 1.0, Double.MIN_VALUE}; + gridBagLayout.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; + setLayout(gridBagLayout); + + JLabel lblNewLabel = new JLabel("Nombre:"); + GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); + gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel.gridx = 0; + gbc_lblNewLabel.gridy = 0; + add(lblNewLabel, gbc_lblNewLabel); + + textField = new JTextField(); + GridBagConstraints gbc_textField = new GridBagConstraints(); + gbc_textField.insets = new Insets(0, 0, 5, 0); + gbc_textField.fill = GridBagConstraints.HORIZONTAL; + gbc_textField.gridx = 1; + gbc_textField.gridy = 0; + add(textField, gbc_textField); + textField.setColumns(10); + + JLabel lblNewLabel_1 = new JLabel("Primer Apellido:"); + GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints(); + gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_1.gridx = 0; + gbc_lblNewLabel_1.gridy = 1; + add(lblNewLabel_1, gbc_lblNewLabel_1); + + textField_1 = new JTextField(); + GridBagConstraints gbc_textField_1 = new GridBagConstraints(); + gbc_textField_1.insets = new Insets(0, 0, 5, 0); + gbc_textField_1.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_1.gridx = 1; + gbc_textField_1.gridy = 1; + add(textField_1, gbc_textField_1); + textField_1.setColumns(10); + + JLabel lblNewLabel_2 = new JLabel("Segundo Apellido:"); + GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints(); + gbc_lblNewLabel_2.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_2.gridx = 0; + gbc_lblNewLabel_2.gridy = 2; + add(lblNewLabel_2, gbc_lblNewLabel_2); + + textField_2 = new JTextField(); + GridBagConstraints gbc_textField_2 = new GridBagConstraints(); + gbc_textField_2.insets = new Insets(0, 0, 5, 0); + gbc_textField_2.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_2.gridx = 1; + gbc_textField_2.gridy = 2; + add(textField_2, gbc_textField_2); + textField_2.setColumns(10); + + JLabel lblNewLabel_3 = new JLabel("DNI:"); + GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints(); + gbc_lblNewLabel_3.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_3.gridx = 0; + gbc_lblNewLabel_3.gridy = 3; + add(lblNewLabel_3, gbc_lblNewLabel_3); + + textField_3 = new JTextField(); + GridBagConstraints gbc_textField_3 = new GridBagConstraints(); + gbc_textField_3.insets = new Insets(0, 0, 5, 0); + gbc_textField_3.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_3.gridx = 1; + gbc_textField_3.gridy = 3; + add(textField_3, gbc_textField_3); + textField_3.setColumns(10); + + JLabel lblNewLabel_4 = new JLabel("Dirección:"); + GridBagConstraints gbc_lblNewLabel_4 = new GridBagConstraints(); + gbc_lblNewLabel_4.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_4.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_4.gridx = 0; + gbc_lblNewLabel_4.gridy = 4; + add(lblNewLabel_4, gbc_lblNewLabel_4); + + textField_4 = new JTextField(); + GridBagConstraints gbc_textField_4 = new GridBagConstraints(); + gbc_textField_4.insets = new Insets(0, 0, 5, 0); + gbc_textField_4.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_4.gridx = 1; + gbc_textField_4.gridy = 4; + add(textField_4, gbc_textField_4); + textField_4.setColumns(10); + + JLabel lblNewLabel_5 = new JLabel("Email:"); + GridBagConstraints gbc_lblNewLabel_5 = new GridBagConstraints(); + gbc_lblNewLabel_5.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_5.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_5.gridx = 0; + gbc_lblNewLabel_5.gridy = 5; + add(lblNewLabel_5, gbc_lblNewLabel_5); + + textField_5 = new JTextField(); + GridBagConstraints gbc_textField_5 = new GridBagConstraints(); + gbc_textField_5.insets = new Insets(0, 0, 5, 0); + gbc_textField_5.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_5.gridx = 1; + gbc_textField_5.gridy = 5; + add(textField_5, gbc_textField_5); + textField_5.setColumns(10); + + JLabel lblNewLabel_6 = new JLabel("Teléfono"); + GridBagConstraints gbc_lblNewLabel_6 = new GridBagConstraints(); + gbc_lblNewLabel_6.insets = new Insets(0, 0, 5, 5); + gbc_lblNewLabel_6.anchor = GridBagConstraints.EAST; + gbc_lblNewLabel_6.gridx = 0; + gbc_lblNewLabel_6.gridy = 6; + add(lblNewLabel_6, gbc_lblNewLabel_6); + + textField_6 = new JTextField(); + GridBagConstraints gbc_textField_6 = new GridBagConstraints(); + gbc_textField_6.insets = new Insets(0, 0, 5, 0); + gbc_textField_6.fill = GridBagConstraints.HORIZONTAL; + gbc_textField_6.gridx = 1; + gbc_textField_6.gridy = 6; + add(textField_6, gbc_textField_6); + textField_6.setColumns(10); + + } + +} diff --git a/src/main/java/net/h4ckx0r/vista/panels/PanelValoracionMaterias.java b/src/main/java/net/h4ckx0r/vista/panels/PanelValoracionMaterias.java new file mode 100644 index 0000000..e8e8a40 --- /dev/null +++ b/src/main/java/net/h4ckx0r/vista/panels/PanelValoracionMaterias.java @@ -0,0 +1,16 @@ +package net.h4ckx0r.vista.panels; + +import javax.swing.*; + +public class PanelValoracionMaterias extends JPanel { + + private static final long serialVersionUID = 1L; + + /** + * Create the panel. + */ + public PanelValoracionMaterias() { + + } + +} diff --git a/src/main/resources/Evaluación en centro educativo.pdf b/src/main/resources/Evaluación en centro educativo.pdf new file mode 100644 index 0000000..48467e3 Binary files /dev/null and b/src/main/resources/Evaluación en centro educativo.pdf differ diff --git a/src/main/resources/evaluacionCentroEducativo.sql b/src/main/resources/evaluacionCentroEducativo.sql new file mode 100644 index 0000000..0cb1c04 --- /dev/null +++ b/src/main/resources/evaluacionCentroEducativo.sql @@ -0,0 +1,174 @@ +CREATE DATABASE IF NOT EXISTS `centroeducativo` /*!40100 DEFAULT CHARACTER SET utf8 */; +USE `centroeducativo`; +-- MySQL dump 10.13 Distrib 5.6.13, for Win32 (x86) +-- +-- Host: 127.0.0.1 Database: centroeducativo +-- ------------------------------------------------------ +-- Server version 5.6.16-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `curso` +-- + +DROP TABLE IF EXISTS `curso`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `curso` ( + `id` int(11) NOT NULL, + `descripcion` varchar(45) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `curso` +-- + +LOCK TABLES `curso` WRITE; +/*!40000 ALTER TABLE `curso` DISABLE KEYS */; +INSERT INTO `curso` VALUES (1,'2017-18'); +/*!40000 ALTER TABLE `curso` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `estudiante` +-- + +DROP TABLE IF EXISTS `estudiante`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `estudiante` ( + `id` int(11) NOT NULL, + `nombre` varchar(150) DEFAULT NULL, + `apellido1` varchar(150) DEFAULT NULL, + `apellido2` varchar(150) DEFAULT NULL, + `dni` varchar(15) DEFAULT NULL, + `direccion` varchar(250) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `telefono` varchar(150) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `estudiante` +-- + +LOCK TABLES `estudiante` WRITE; +/*!40000 ALTER TABLE `estudiante` DISABLE KEYS */; +INSERT INTO `estudiante` VALUES (1,'Julio','Mármol','Mármol','14785236A','dir, 21','adsf','654785214'),(2,'Francisco','Fernández','Fernández','52874369B','dir, 24','f@f.com','741258963'),(3,'Miguel','Palacios','Fernández','58963214C','dir, 26','m@m.com','632521478'); +/*!40000 ALTER TABLE `estudiante` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `materia` +-- + +DROP TABLE IF EXISTS `materia`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `materia` ( + `id` int(11) NOT NULL, + `nombre` varchar(100) DEFAULT NULL, + `acronimo` varchar(15) DEFAULT NULL, + `curso_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `fk_asignatura_curso1_idx` (`curso_id`), + CONSTRAINT `fk_asignatura_curso1` FOREIGN KEY (`curso_id`) REFERENCES `curso` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `materia` +-- + +LOCK TABLES `materia` WRITE; +/*!40000 ALTER TABLE `materia` DISABLE KEYS */; +INSERT INTO `materia` VALUES (1,'Programación','PROG',1),(2,'Lenguajes de Marcas y Sistemas de Gestión de la Información','LMSGI',1),(3,'Sistemas Informáticos','SI',1),(4,'Entornos de Desarrollo','EntDes',1),(5,'Bases de Datos','BD',1),(6,'Formación y Orientación Laboral','FOL',1); +/*!40000 ALTER TABLE `materia` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `profesor` +-- + +DROP TABLE IF EXISTS `profesor`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `profesor` ( + `id` int(11) NOT NULL, + `nombre` varchar(150) DEFAULT NULL, + `apellido1` varchar(150) DEFAULT NULL, + `apellido2` varchar(150) DEFAULT NULL, + `dni` varchar(15) DEFAULT NULL, + `direccion` varchar(250) DEFAULT NULL, + `email` varchar(150) DEFAULT NULL, + `telefono` varchar(150) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `profesor` +-- + +LOCK TABLES `profesor` WRITE; +/*!40000 ALTER TABLE `profesor` DISABLE KEYS */; +INSERT INTO `profesor` VALUES (1,'Rafael Carlos','López','Ruiz','12345678b','Su casa, 34','asdf','sdaf'),(2,'Joaquín','Molinero','Suárez','23456789B','Su casa también, 42','joaquin@joaquin.com','654789322'),(3,'Miguel Ángel','Pérez','Carmona','98765432C','Otra casa, 12','miguel@miguel.com','654147852'),(4,'Alejandro','Fernández','Fernández','47125896D','Allí, 65','alejandro@alejandro.com','658974125'),(5,'Águeda','Cuenca','Cuenca','96325874','Graná, 25','','698521478'); +/*!40000 ALTER TABLE `profesor` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `valoracionmateria` +-- + +DROP TABLE IF EXISTS `valoracionmateria`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `valoracionmateria` ( + `id` int(11) NOT NULL, + `idProfesor` int(11) NOT NULL, + `idEstudiante` int(11) NOT NULL, + `idMateria` int(11) NOT NULL, + `valoracion` float DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `fk_asignatura_profesor_idx` (`idProfesor`), + KEY `fk_asignatura_estudiante1_idx` (`idEstudiante`), + KEY `fk_asignatura_asignatura1_idx` (`idMateria`), + CONSTRAINT `fk_asignatura_asignatura1` FOREIGN KEY (`idMateria`) REFERENCES `materia` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `fk_asignatura_estudiante1` FOREIGN KEY (`idEstudiante`) REFERENCES `estudiante` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `fk_asignatura_profesor` FOREIGN KEY (`idProfesor`) REFERENCES `profesor` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `valoracionmateria` +-- + +LOCK TABLES `valoracionmateria` WRITE; +/*!40000 ALTER TABLE `valoracionmateria` DISABLE KEYS */; +INSERT INTO `valoracionmateria` VALUES (1,1,1,1,6),(2,1,1,2,7),(3,2,1,3,6),(4,3,1,4,6),(5,4,1,5,8),(6,5,1,6,4),(7,1,2,1,5),(8,1,2,2,7),(9,2,2,3,8),(10,3,2,4,5),(11,4,2,5,6),(12,5,2,6,4); +/*!40000 ALTER TABLE `valoracionmateria` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2019-04-09 10:05:53 diff --git a/src/main/resources/images/add.png b/src/main/resources/images/add.png new file mode 100644 index 0000000..090fe19 Binary files /dev/null and b/src/main/resources/images/add.png differ diff --git a/src/main/resources/images/cursos.png b/src/main/resources/images/cursos.png new file mode 100644 index 0000000..92ae0f8 Binary files /dev/null and b/src/main/resources/images/cursos.png differ diff --git a/src/main/resources/images/delete.png b/src/main/resources/images/delete.png new file mode 100644 index 0000000..f8e7c07 Binary files /dev/null and b/src/main/resources/images/delete.png differ diff --git a/src/main/resources/images/estudiantes.png b/src/main/resources/images/estudiantes.png new file mode 100644 index 0000000..5a88a80 Binary files /dev/null and b/src/main/resources/images/estudiantes.png differ diff --git a/src/main/resources/images/first.png b/src/main/resources/images/first.png new file mode 100644 index 0000000..1cd37e4 Binary files /dev/null and b/src/main/resources/images/first.png differ diff --git a/src/main/resources/images/last.png b/src/main/resources/images/last.png new file mode 100644 index 0000000..d08b8c6 Binary files /dev/null and b/src/main/resources/images/last.png differ diff --git a/src/main/resources/images/materias.png b/src/main/resources/images/materias.png new file mode 100644 index 0000000..e5a0851 Binary files /dev/null and b/src/main/resources/images/materias.png differ diff --git a/src/main/resources/images/next.png b/src/main/resources/images/next.png new file mode 100644 index 0000000..d3dc4e3 Binary files /dev/null and b/src/main/resources/images/next.png differ diff --git a/src/main/resources/images/previus.png b/src/main/resources/images/previus.png new file mode 100644 index 0000000..0301098 Binary files /dev/null and b/src/main/resources/images/previus.png differ diff --git a/src/main/resources/images/profesores.png b/src/main/resources/images/profesores.png new file mode 100644 index 0000000..d9f9099 Binary files /dev/null and b/src/main/resources/images/profesores.png differ diff --git a/src/main/resources/images/save.png b/src/main/resources/images/save.png new file mode 100644 index 0000000..133e09b Binary files /dev/null and b/src/main/resources/images/save.png differ diff --git a/src/main/resources/images/valoracionMaterias.png b/src/main/resources/images/valoracionMaterias.png new file mode 100644 index 0000000..a0165e3 Binary files /dev/null and b/src/main/resources/images/valoracionMaterias.png differ