Aniadida barra y funcionalidades extra

This commit is contained in:
Guillermo Roche 2019-11-15 17:18:58 +01:00
parent 18238bd6b8
commit cc5f59b5aa
7 changed files with 224 additions and 7 deletions

Binary file not shown.

View File

@ -74,4 +74,10 @@ public class Gestion implements Serializable{
}
}
public String toString() {
String ret = "";
ret += this.nombre + " " + this.suma + " " + this.isPositivo;
return ret;
}
}

View File

@ -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<Mes> meses;
private ArrayList<Mes> meses;
private int mesActual=0;
public Meses() {
this.meses = new ArrayList<Mes>();
@ -109,16 +110,33 @@ private ArrayList<Mes> meses;
}
}
public Vector<String> salidaTodo(){
Vector<String> ret = new Vector<String>();
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<Gestion> gestiones;
Mes(ArrayList<Gestion> 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;
}

View File

@ -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);
}
}

View File

@ -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");
}
}

View File

@ -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<VistaAniadirVisualizar> pestanias;
ArrayList<ControladorAniadirVisualizar> 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);
}

View File

@ -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<String> elementos;
public MostrarTodo(Meses meses) {
super();
this.elementos=new JList<String>(meses.salidaTodo());
this.add(elementos);
}
}