From cc5f59b5aa658c11a10264f03898addebd2f732b Mon Sep 17 00:00:00 2001 From: Guillermo Date: Fri, 15 Nov 2019 17:18:58 +0100 Subject: [PATCH] Aniadida barra y funcionalidades extra --- bin/Logica/Gestion.class | Bin 2334 -> 2732 bytes src/Logica/Gestion.java | 6 ++ src/Logica/Meses.java | 35 ++++++- src/VistaControlador/BarraOpciones.java | 39 +++++++ src/VistaControlador/ControladorBarra.java | 114 +++++++++++++++++++++ src/VistaControlador/Menu.java | 16 ++- src/VistaControlador/MostrarTodo.java | 21 ++++ 7 files changed, 224 insertions(+), 7 deletions(-) create mode 100644 src/VistaControlador/BarraOpciones.java create mode 100644 src/VistaControlador/ControladorBarra.java create mode 100644 src/VistaControlador/MostrarTodo.java diff --git a/bin/Logica/Gestion.class b/bin/Logica/Gestion.class index 2cc913e14e487ab79d58747313d4b0397888b489..99f4b504acd79a56eb5e2e2575e88107eeeab3bd 100644 GIT binary patch delta 440 zcmZ{g%SyvQ6o$WPqb;Eb#@j|g5o>LcD!S`NL|jE9xT?Eo)0;J|F|F2HdVtvm#AF)N}mX zww4$A)0eiP1zV&MjLHwI6D1GKZuDwq;r@vqMsL;~g#Yq+}Omi7STXQo%I?YB2Z#xFv2Y delta 38 tcmZ1@I!}n})W2Q(7#J8#7&10;<+DugVvS_v-28;qg@rv0D9pr=4gmYh3dH~b diff --git a/src/Logica/Gestion.java b/src/Logica/Gestion.java index 94add3a..6154946 100644 --- a/src/Logica/Gestion.java +++ b/src/Logica/Gestion.java @@ -73,5 +73,11 @@ public class Gestion implements Serializable{ } } } + + public String toString() { + String ret = ""; + ret += this.nombre + " " + this.suma + " " + this.isPositivo; + return ret; + } } diff --git a/src/Logica/Meses.java b/src/Logica/Meses.java index 1ce8e33..18d4a62 100644 --- a/src/Logica/Meses.java +++ b/src/Logica/Meses.java @@ -10,9 +10,10 @@ import java.io.ObjectOutputStream; import java.io.Serializable; import java.time.Month; import java.util.ArrayList; +import java.util.Vector; public class Meses { -private ArrayList meses; + private ArrayList meses; private int mesActual=0; public Meses() { this.meses = new ArrayList(); @@ -109,16 +110,33 @@ private ArrayList meses; } } + public Vector salidaTodo(){ + Vector ret = new Vector(); + for(Mes mes:this.meses) { + ret.add(mes.toString()); + for(Gestion gestion:mes.getGestiones()) { + ret.add(" "+gestion.toString()); + for(Transaccion transaccion:gestion.getElementos()) { + ret.add(" "+transaccion.toString()); + } + } + } + return ret; + } + } class Mes implements Serializable{ private int anio; private Month mes; + float total; + int nGestiones; ArrayList gestiones; Mes(ArrayList gestiones, int anio, Month mes){ this.gestiones = gestiones; - this.anio=anio; - this.mes=mes; + this.anio = anio; + this.mes = mes; + this.nGestiones = this.gestiones.size(); } void aniadirTransaccion(Transaccion transaccion, String nombre, boolean isPositivo) { @@ -129,6 +147,7 @@ class Mes implements Serializable{ } } gestiones.add(new Gestion(nombre, isPositivo)); + this.nGestiones++; gestiones.get(this.gestiones.size()-1).aniadirGasto(transaccion); return; } @@ -146,10 +165,16 @@ class Mes implements Serializable{ } float getTotal() { - float ret = 0; + this.total = 0; for(Gestion gestion:this.gestiones) { - ret += gestion.getTotal(); + this.total += gestion.getTotal(); } + return this.total; + } + + public String toString() { + String ret = ""; + ret += this.mes.toString() + "/" + this.anio + ":" + this.getTotal(); return ret; } diff --git a/src/VistaControlador/BarraOpciones.java b/src/VistaControlador/BarraOpciones.java new file mode 100644 index 0000000..e17a1d6 --- /dev/null +++ b/src/VistaControlador/BarraOpciones.java @@ -0,0 +1,39 @@ +package VistaControlador; + +import java.util.ArrayList; + +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; + +public class BarraOpciones extends JMenuBar{ + JMenu menuAr; + JMenuItem cambiarRuta; + JMenuItem guardarIns; + JMenu interfaz; + JMenuItem modoOscuro; + JMenuItem modoRosa; + JMenuItem modoClaro; + JMenu mostrar; + JMenuItem mostrarTodo; + public BarraOpciones() { + this.menuAr = new JMenu("Archivo"); + this.add(this.menuAr); + this.guardarIns = new JMenuItem("Guardar instantanea"); + this.menuAr.add(this.guardarIns); + this.cambiarRuta = new JMenuItem("Cambiar ruta de guardado"); + this.menuAr.add(this.cambiarRuta); + this.interfaz = new JMenu("Interfaz"); + this.add(this.interfaz); + this.modoClaro = new JMenuItem("Modo claro"); + this.interfaz.add(this.modoClaro); + this.modoOscuro = new JMenuItem("Modo Oscuro"); + this.interfaz.add(this.modoOscuro); + this.modoRosa = new JMenuItem("Modo Rosa"); + this.interfaz.add(this.modoRosa); + this.mostrar=new JMenu("Mostrar"); + this.mostrarTodo = new JMenuItem("Mostrar todo"); + this.mostrar.add(this.mostrarTodo); + this.add(this.mostrar); + } +} diff --git a/src/VistaControlador/ControladorBarra.java b/src/VistaControlador/ControladorBarra.java new file mode 100644 index 0000000..52c064f --- /dev/null +++ b/src/VistaControlador/ControladorBarra.java @@ -0,0 +1,114 @@ +package VistaControlador; + +import java.awt.Color; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.IOException; + +import javax.swing.JOptionPane; + +public class ControladorBarra implements ActionListener{ + private BarraOpciones barra; + private Menu menu; + public ControladorBarra(BarraOpciones barra, Menu menu) { + this.barra = barra; + this.menu = menu; + this.aniadirListeners(); + } + + @Override + public void actionPerformed(ActionEvent e) { + switch(e.getActionCommand()) { + case "Cambiar ruta":{ + String ruta = JOptionPane.showInputDialog("Introduce la nuev a ruta"); + if(ruta == null) return; + if(ruta.equals("")) { + JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE); + return; + } + this.menu.nombreDatos = ruta; + break; + } + case "Guardar instantanea":{ + String ruta = JOptionPane.showInputDialog("Introduce la ruta de la instantanea"); + if(ruta == null) return; + if(ruta.equals("")) { + JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE); + return; + } + try { + this.menu.meses.guardarMeses(ruta); + } catch (IOException e1) { + // TODO Auto-generated catch block + System.out.println("Fichero invalido"); + } + break; + } + case "Modo claro":{ + this.menu.setBackground(Color.WHITE); + this.menu.setOpacity(1); + this.menu.repaint(); + this.menu.revalidate(); + this.menu.panelCentral.setOpaque(true); + this.menu.panelCentral.setBackground(Color.WHITE); + this.menu.panelCentral.repaint(); + this.menu.panelCentral.revalidate(); + this.menu.panel.setBackground(Color.WHITE); + this.menu.panel.repaint(); + this.menu.panel.revalidate(); + break; + } + case "Modo rosa":{ + this.menu.setBackground(Color.PINK); + this.menu.setOpacity(1); + this.menu.repaint(); + this.menu.revalidate(); + this.menu.panelCentral.setOpaque(true); + this.menu.panelCentral.setBackground(Color.PINK); + this.menu.panelCentral.repaint(); + this.menu.panelCentral.revalidate(); + this.menu.panel.setOpaque(true); + this.menu.panel.setBackground(Color.PINK); + this.menu.panel.repaint(); + this.menu.panel.revalidate(); + break; + } + case "Modo oscuro":{ + this.menu.setBackground(Color.BLACK); + this.menu.repaint(); + this.menu.revalidate(); + this.menu.panelCentral.setOpaque(true); + this.menu.panelCentral.setBackground(Color.BLACK); + this.menu.panelCentral.repaint(); + this.menu.panelCentral.revalidate(); + this.menu.panel.setOpaque(true); + this.menu.panel.setBackground(Color.BLACK); + this.menu.panel.repaint(); + this.menu.panel.revalidate(); + break; + } + case "Mostrar todo":{ + MostrarTodo mostrar = new MostrarTodo(this.menu.meses); + mostrar.setVisible(true); + break; + } + } + + } + + private void aniadirListeners() { + this.barra.cambiarRuta.addActionListener(this); + this.barra.cambiarRuta.setActionCommand("Cambiar ruta"); + this.barra.guardarIns.addActionListener(this); + this.barra.guardarIns.setActionCommand("Guardar instantanea"); + this.barra.modoClaro.addActionListener(this); + this.barra.modoClaro.setActionCommand("Modo claro"); + this.barra.modoRosa.addActionListener(this); + this.barra.modoRosa.setActionCommand("Modo rosa"); + this.barra.modoOscuro.addActionListener(this); + this.barra.modoOscuro.setActionCommand("Modo oscuro"); + this.barra.mostrarTodo.addActionListener(this); + this.barra.mostrarTodo.setActionCommand("Mostrar todo"); + } + +} diff --git a/src/VistaControlador/Menu.java b/src/VistaControlador/Menu.java index 5420474..25882f1 100644 --- a/src/VistaControlador/Menu.java +++ b/src/VistaControlador/Menu.java @@ -10,6 +10,7 @@ import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JFrame; +import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTabbedPane; @@ -31,9 +32,12 @@ public class Menu extends JFrame{ Meses meses; ArrayList pestanias; ArrayList controladores; + BarraOpciones barra; protected Gestion datosGastos; protected Gestion datosIngresos; public Menu() { + this.barra = new BarraOpciones(); + ControladorBarra controladorBarra = new ControladorBarra(barra, this); this.nombreDatos = ".mes"; setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); @@ -50,10 +54,14 @@ public class Menu extends JFrame{ this.setLayout(new GridBagLayout()); this.panel = new VistaPanelLateral(constrain, this.meses); this.panelCentral = new JPanel(); - - constrain.fill = GridBagConstraints.VERTICAL; + constrain.fill = GridBagConstraints.HORIZONTAL; constrain.gridx = 0; constrain.gridy = 0; + constrain.weightx = 10; + this.add(this.barra); + constrain.fill = GridBagConstraints.VERTICAL; + constrain.gridx = 1; + constrain.gridy = 1; constrain.weightx = 2; this.panelCentral.add(pestania,constrain); getContentPane().add(pestania); @@ -63,6 +71,10 @@ public class Menu extends JFrame{ setLocationRelativeTo(null); ControladorPanelLateral controlador3 = new ControladorPanelLateral(this.panel, this); this.listenerPestania(); + constrain.fill = GridBagConstraints.VERTICAL; + constrain.gridx = 2; + constrain.gridy = 1; + constrain.weightx = 2; this.add(this.panel); } diff --git a/src/VistaControlador/MostrarTodo.java b/src/VistaControlador/MostrarTodo.java new file mode 100644 index 0000000..90f1cfc --- /dev/null +++ b/src/VistaControlador/MostrarTodo.java @@ -0,0 +1,21 @@ +package VistaControlador; + +import java.util.Vector; + +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; + +import Logica.Gestion; +import Logica.Meses; +import Logica.Transaccion; + +public class MostrarTodo extends JFrame{ + JList elementos; + + public MostrarTodo(Meses meses) { + super(); + this.elementos=new JList(meses.salidaTodo()); + this.add(elementos); + } +}