Terminado soporte aniadir gestion nueva

This commit is contained in:
Guillermo Roche 2019-11-14 20:18:05 +01:00
parent cbace53701
commit 0d7df06ad6
8 changed files with 107 additions and 34 deletions

2
bin/.gitignore vendored
View File

@ -1,3 +1,3 @@
/IniciarSesion/
/VistaControlador/ /VistaControlador/
/Logica/ /Logica/
/IniciarSesion/

Binary file not shown.

View File

@ -7,9 +7,10 @@ public class Gestion{
private Vector<Transaccion> gestiones; private Vector<Transaccion> gestiones;
private float suma; private float suma;
private static float total; private static float total;
private static Month mes; private Month mes;
private static Year anio; private Year anio;
private static String nombre; //private boolean isPositivo;
private String nombre;
public Gestion() { public Gestion() {
this.gestiones=new Vector<Transaccion>(); this.gestiones=new Vector<Transaccion>();

View File

@ -11,23 +11,28 @@ private ArrayList<Mes> meses;
this.meses = new ArrayList<Mes>(); this.meses = new ArrayList<Mes>();
} }
public void aniadirGestion(String nombre, int anio, Month mes) { public Gestion aniadirGestion(String nombre, int anio, Month mes) {
Gestion ret;
try { try {
for(Mes mesSelect:this.meses) { for(Mes mesSelect:this.meses) {
if(mesSelect.getMes().equals(mes) && mesSelect.getAnio() == anio){ if(mesSelect.getMes().equals(mes) && mesSelect.getAnio() == anio){
mesSelect.getGestiones().add(new Gestion(nombre)); ret = new Gestion(nombre);
return; mesSelect.getGestiones().add(ret);
return ret;
} }
} }
}catch (NullPointerException e) { }catch (NullPointerException e) {
ArrayList<Gestion> gestiones=new ArrayList<Gestion>(); ArrayList<Gestion> gestiones=new ArrayList<Gestion>();
gestiones.add(new Gestion(nombre)); ret = new Gestion(nombre);
gestiones.add(ret);
this.meses.add(new Mes(gestiones,anio,mes)); this.meses.add(new Mes(gestiones,anio,mes));
return; return ret;
} }
ArrayList<Gestion> gestiones=new ArrayList<Gestion>(); ArrayList<Gestion> gestiones=new ArrayList<Gestion>();
gestiones.add(new Gestion(nombre)); ret = new Gestion(nombre);
gestiones.add(ret);
this.meses.add(new Mes(gestiones,anio,mes)); this.meses.add(new Mes(gestiones,anio,mes));
return ret;
} }
public void aniadirTransaccion(Transaccion transaccion, String nombre) { public void aniadirTransaccion(Transaccion transaccion, String nombre) {

View File

@ -7,6 +7,7 @@ import java.awt.event.ActionListener;
import java.time.Year; import java.time.Year;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JOptionPane;
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame; import org.jfree.chart.ChartFrame;
@ -19,19 +20,63 @@ import com.github.lgooddatepicker.components.DatePicker;
import com.github.lgooddatepicker.optionalusertools.DateChangeListener; import com.github.lgooddatepicker.optionalusertools.DateChangeListener;
import com.github.lgooddatepicker.zinternaltools.DateChangeEvent; import com.github.lgooddatepicker.zinternaltools.DateChangeEvent;
import com.github.lgooddatepicker.zinternaltools.DemoPanel; import com.github.lgooddatepicker.zinternaltools.DemoPanel;
import Logica.Gestion;
public class ControladorPanelLateral implements ActionListener, DateChangeListener{ public class ControladorPanelLateral implements ActionListener, DateChangeListener{
private VistaPanelLateral vista; private VistaPanelLateral vista;
private java.time.Month mes; private java.time.Month mes;
private int anio; private int anio;
private Menu menu;
public ControladorPanelLateral(VistaPanelLateral vista, Menu menu) {
public ControladorPanelLateral(VistaPanelLateral vista) {
this.vista = vista; this.vista = vista;
this.menu = menu;
this.aniadirElementos(); this.aniadirElementos();
} }
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals(this.vista.mostrarEstadisticas.getActionCommand())) { switch(e.getActionCommand()) {
case "Mostrar estadisticas":{
XYSeries serie = new XYSeries("Mes");
serie.add(10,1);
serie.add(4,2);
serie.add(90,10);
XYSeriesCollection dataset = new XYSeriesCollection(serie);
JFreeChart chart = ChartFactory.createXYLineChart("Mes", "Dias", "Gastos", dataset);
ChartFrame frame = new ChartFrame("Estadisricas", chart);
frame.setVisible(true);
frame.setSize(700,500);
break;
}
case "Aniadir una nueva gestion":{
String nombre = JOptionPane.showInputDialog("Introduce un nuevo gasto o ingreso");
if(nombre == null) return;
if(nombre.equals("")) {
JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE);
return;
}
String sumaOResta = JOptionPane.showInputDialog("Son gastos?");
if(sumaOResta == null) return;
if(sumaOResta.equals("")) {
JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE);
return;
}
VistaAniadirVisualizar vistaA;
if(sumaOResta.equalsIgnoreCase("si")) {
this.menu.aniadirGestion(nombre, false);
}else if(sumaOResta.equalsIgnoreCase("no")) {
this.menu.aniadirGestion(nombre, true);
}else {
JOptionPane.showMessageDialog(null, "Debe introducir si o no", "error", JOptionPane.WARNING_MESSAGE);
return;
}
break;
}
}
/*if(e.getActionCommand().equals(this.vista.mostrarEstadisticas.getActionCommand())) {
XYSeries serie = new XYSeries("Mes"); XYSeries serie = new XYSeries("Mes");
serie.add(10,1); serie.add(10,1);
@ -43,12 +88,14 @@ public class ControladorPanelLateral implements ActionListener, DateChangeListen
frame.setVisible(true); frame.setVisible(true);
frame.setSize(700,500); frame.setSize(700,500);
} }
*/
} }
private void aniadirElementos() { private void aniadirElementos() {
this.vista.mostrarEstadisticas.addActionListener(this); this.vista.mostrarEstadisticas.addActionListener(this);
this.vista.mostrarEstadisticas.setActionCommand("Mostrar estadisticas"); this.vista.mostrarEstadisticas.setActionCommand("Mostrar estadisticas");
this.vista.aniadirGestion.addActionListener(this);
this.vista.aniadirGestion.setActionCommand("Aniadir una nueva gestion");
if(VistaPanelLateral.elegirMes.getDateChangeListeners().size() == 0) { if(VistaPanelLateral.elegirMes.getDateChangeListeners().size() == 0) {
VistaPanelLateral.elegirMes.addDateChangeListener(this); VistaPanelLateral.elegirMes.addDateChangeListener(this);
this.mes=VistaPanelLateral.elegirMes.getDate().getMonth(); this.mes=VistaPanelLateral.elegirMes.getDate().getMonth();

View File

@ -26,38 +26,29 @@ public class Menu extends JFrame{
protected VistaPanelLateral panel; protected VistaPanelLateral panel;
Meses meses; Meses meses;
ArrayList<VistaAniadirVisualizar> pestanias; ArrayList<VistaAniadirVisualizar> pestanias;
ArrayList<ControladorAniadirVisualizar> controladores;
protected Gestion datosGastos; protected Gestion datosGastos;
protected Gestion datosIngresos; protected Gestion datosIngresos;
public Menu() { public Menu() {
this.meses=new Meses(); this.pestania = new JTabbedPane();
meses.aniadirGestion("Ingresos", LocalDate.now().getYear(), LocalDate.now().getMonth()); this.cargarGestiones(LocalDate.now().getYear(), LocalDate.now().getMonth());
meses.aniadirGestion("Gastos", LocalDate.now().getYear(), LocalDate.now().getMonth()); this.cargarPestanias();
VistaAniadirVisualizar.setPanelLateral(panel);
//this.datosGastos = new Gestion();
//this.datosIngresos = new Gestion();
this.setLayout(new GridBagLayout()); this.setLayout(new GridBagLayout());
GridBagConstraints constrain = new GridBagConstraints(); GridBagConstraints constrain = new GridBagConstraints();
this.panel = new VistaPanelLateral(constrain); this.panel = new VistaPanelLateral(constrain);
this.ingresos = new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(0),true);
this.gastos = new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(1),false);
this.panelCentral = new JPanel(); this.panelCentral = new JPanel();
this.pestania = new JTabbedPane();
constrain.fill = GridBagConstraints.VERTICAL; constrain.fill = GridBagConstraints.VERTICAL;
constrain.gridx = 0; constrain.gridx = 0;
constrain.gridy = 0; constrain.gridy = 0;
constrain.weightx = 2; constrain.weightx = 2;
this.panelCentral.add(pestania,constrain); this.panelCentral.add(pestania,constrain);
this.pestania.addTab("Ingresos", ingresos);
this.pestania.addTab("Gastos", gastos);
getContentPane().add(pestania); getContentPane().add(pestania);
setTitle("Titulo"); setTitle("Titulo");
setSize(new Dimension(420,320)); setSize(new Dimension(420,320));
setDefaultCloseOperation(3); setDefaultCloseOperation(3);
setLocationRelativeTo(null); setLocationRelativeTo(null);
ControladorAniadirVisualizar controlador = new ControladorAniadirVisualizar(this.ingresos); ControladorPanelLateral controlador3 = new ControladorPanelLateral(this.panel, this);
ControladorAniadirVisualizar controlador2 = new ControladorAniadirVisualizar(this.gastos);
ControladorPanelLateral controlador3 = new ControladorPanelLateral(this.panel);
//this.panel.actualizarDatos(datosIngresos);
this.pestania.addChangeListener((ChangeListener)->{ this.pestania.addChangeListener((ChangeListener)->{
if(this.pestania.getSelectedIndex() == 0) { if(this.pestania.getSelectedIndex() == 0) {
this.panel.actualizarDatos(meses.getGestionesActuales().get(0)); this.panel.actualizarDatos(meses.getGestionesActuales().get(0));
@ -68,28 +59,52 @@ public class Menu extends JFrame{
this.add(this.panel); this.add(this.panel);
} }
private void iniciarMes(int anio, Month mes) { private void iniciarMes(int anio, Month mes) {
this.meses=new Meses();
meses.aniadirGestion("Ingresos", anio, mes); meses.aniadirGestion("Ingresos", anio, mes);
meses.aniadirGestion("Gastos", anio, mes); meses.aniadirGestion("Gastos", anio, mes);
this.pestanias=new ArrayList<VistaAniadirVisualizar>();
this.pestanias.add(new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(0),true)); this.pestanias.add(new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(0),true));
this.pestanias.add(new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(1),false)); this.pestanias.add(new VistaAniadirVisualizar(this,meses.getGestionesActuales().get(1),false));
this.controladores=new ArrayList<ControladorAniadirVisualizar>();
this.controladores.add(new ControladorAniadirVisualizar(this.pestanias.get(0)));
this.controladores.add(new ControladorAniadirVisualizar(this.pestanias.get(1)));
} }
private void cargarGestiones(int anio, Month mes) { private void cargarGestiones(int anio, Month mes) {
if(this.meses==null) {
this.meses=new Meses();
}
this.meses.elegirMes(anio, mes); this.meses.elegirMes(anio, mes);
if(this.meses.getGestionesActuales().size() == 0) { if(this.meses.getGestionesActuales().size() == 0) {
this.iniciarMes(anio, mes); this.iniciarMes(anio, mes);
}else {
this.cargarMes();
} }
} }
private void cargarPestanias() { private void cargarMes() {
this.pestanias=new ArrayList<VistaAniadirVisualizar>();
this.controladores=new ArrayList<ControladorAniadirVisualizar>();
for(Gestion gestion:this.meses.getGestionesActuales()) {
VistaAniadirVisualizar vista = new VistaAniadirVisualizar(this, gestion, true);
this.pestania.add(vista);
this.controladores.add(new ControladorAniadirVisualizar(vista));
}
}
void cargarPestanias() {
this.pestania.removeAll(); this.pestania.removeAll();
for(VistaAniadirVisualizar vista:this.pestanias) { for(VistaAniadirVisualizar vista:this.pestanias) {
this.pestania.add(vista); this.pestania.addTab(vista.getName(),vista);
} }
} }
void aniadirGestion(String nombre, boolean sumaOResta) {
Gestion gestion=this.meses.aniadirGestion(nombre, VistaPanelLateral.getDate().getYear(), VistaPanelLateral.getDate().getMonth());
VistaAniadirVisualizar vista = new VistaAniadirVisualizar(this, gestion, sumaOResta);
this.pestanias.add(vista);
this.controladores.add(new ControladorAniadirVisualizar(vista));
this.pestania.addTab(vista.getName(),vista);
}
} }

View File

@ -44,6 +44,10 @@ public class VistaAniadirVisualizar extends JPanel{
VistaAniadirVisualizar.panelLateral = panel; VistaAniadirVisualizar.panelLateral = panel;
} }
public String getName() {
return this.gestiones.getNombre();
}
public void aniadirElemento(String nombre, float dinero, ControladorAniadirVisualizar controlador) { public void aniadirElemento(String nombre, float dinero, ControladorAniadirVisualizar controlador) {
Transaccion transaccion = new Transaccion(nombre, dinero,panelLateral.getDate(),this.positivo); Transaccion transaccion = new Transaccion(nombre, dinero,panelLateral.getDate(),this.positivo);
this.gestiones.aniadirGasto(transaccion); this.gestiones.aniadirGasto(transaccion);

View File

@ -39,6 +39,7 @@ public class VistaPanelLateral extends JPanel{
constrain.gridy = 2; constrain.gridy = 2;
constrain.weightx = 2; constrain.weightx = 2;
this.add(this.gastoEnvio); this.add(this.gastoEnvio);
this.add(this.aniadirGestion);
} }
void actualizarDatos(Gestion gestion) { void actualizarDatos(Gestion gestion) {