Terminado soporte aniadir gestion nueva
This commit is contained in:
		
							parent
							
								
									cbace53701
								
							
						
					
					
						commit
						0d7df06ad6
					
				
							
								
								
									
										2
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								bin/.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,3 +1,3 @@ | ||||
| /IniciarSesion/ | ||||
| /VistaControlador/ | ||||
| /Logica/ | ||||
| /IniciarSesion/ | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| @ -7,9 +7,10 @@ public class Gestion{ | ||||
| 	private Vector<Transaccion> gestiones; | ||||
| 	private float suma; | ||||
| 	private static float total; | ||||
| 	private static Month mes; | ||||
| 	private static Year anio; | ||||
| 	private static String nombre; | ||||
| 	private Month mes; | ||||
| 	private Year anio; | ||||
| 	//private boolean isPositivo; | ||||
| 	private String nombre; | ||||
| 	 | ||||
| 	public Gestion() { | ||||
| 		this.gestiones=new Vector<Transaccion>(); | ||||
|  | ||||
| @ -11,23 +11,28 @@ private ArrayList<Mes> meses; | ||||
| 		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 { | ||||
| 			for(Mes mesSelect:this.meses) { | ||||
| 				if(mesSelect.getMes().equals(mes) && mesSelect.getAnio() == anio){ | ||||
| 					mesSelect.getGestiones().add(new Gestion(nombre)); | ||||
| 					return; | ||||
| 					ret = new Gestion(nombre); | ||||
| 					mesSelect.getGestiones().add(ret); | ||||
| 					return ret; | ||||
| 				} | ||||
| 			} | ||||
| 		}catch (NullPointerException e) { | ||||
| 			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)); | ||||
| 			return; | ||||
| 			return ret; | ||||
| 		} | ||||
| 		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)); | ||||
| 		return ret; | ||||
| 	} | ||||
| 	 | ||||
| 	public void aniadirTransaccion(Transaccion transaccion, String nombre) { | ||||
|  | ||||
| @ -7,6 +7,7 @@ import java.awt.event.ActionListener; | ||||
| import java.time.Year; | ||||
| 
 | ||||
| import javax.swing.JFrame; | ||||
| import javax.swing.JOptionPane; | ||||
| 
 | ||||
| import org.jfree.chart.ChartFactory; | ||||
| 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.zinternaltools.DateChangeEvent; | ||||
| import com.github.lgooddatepicker.zinternaltools.DemoPanel; | ||||
| 
 | ||||
| import Logica.Gestion; | ||||
| public class ControladorPanelLateral implements ActionListener, DateChangeListener{ | ||||
| 	private VistaPanelLateral vista; | ||||
| 	private java.time.Month mes; | ||||
| 	private int anio; | ||||
| 	private Menu menu; | ||||
| 	 | ||||
| 	 | ||||
| 	public ControladorPanelLateral(VistaPanelLateral vista) { | ||||
| 	public ControladorPanelLateral(VistaPanelLateral vista, Menu menu) { | ||||
| 		this.vista = vista; | ||||
| 		this.menu = menu; | ||||
| 		this.aniadirElementos(); | ||||
| 	} | ||||
| 	 | ||||
| 	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"); | ||||
| 			serie.add(10,1); | ||||
| @ -43,12 +88,14 @@ public class ControladorPanelLateral implements ActionListener, DateChangeListen | ||||
| 			frame.setVisible(true); | ||||
| 			frame.setSize(700,500); | ||||
| 		} | ||||
| 		 | ||||
| 		*/ | ||||
| 	} | ||||
| 	 | ||||
| 	private void aniadirElementos() { | ||||
| 		this.vista.mostrarEstadisticas.addActionListener(this); | ||||
| 		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) { | ||||
| 			VistaPanelLateral.elegirMes.addDateChangeListener(this); | ||||
| 			this.mes=VistaPanelLateral.elegirMes.getDate().getMonth(); | ||||
|  | ||||
| @ -26,38 +26,29 @@ public class Menu extends JFrame{ | ||||
| 	protected VistaPanelLateral panel; | ||||
| 	Meses meses; | ||||
| 	ArrayList<VistaAniadirVisualizar> pestanias; | ||||
| 	ArrayList<ControladorAniadirVisualizar> controladores; | ||||
| 	protected Gestion datosGastos; | ||||
| 	protected Gestion datosIngresos; | ||||
| 	public Menu() { | ||||
| 		this.meses=new Meses(); | ||||
| 		meses.aniadirGestion("Ingresos", LocalDate.now().getYear(), LocalDate.now().getMonth()); | ||||
| 		meses.aniadirGestion("Gastos", LocalDate.now().getYear(), LocalDate.now().getMonth()); | ||||
| 		VistaAniadirVisualizar.setPanelLateral(panel); | ||||
| 		//this.datosGastos = new Gestion(); | ||||
| 		//this.datosIngresos = new Gestion(); | ||||
| 		this.pestania = new JTabbedPane(); | ||||
| 		this.cargarGestiones(LocalDate.now().getYear(), LocalDate.now().getMonth()); | ||||
| 		this.cargarPestanias(); | ||||
| 		this.setLayout(new GridBagLayout()); | ||||
| 		GridBagConstraints constrain = new GridBagConstraints(); | ||||
| 		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.pestania = new JTabbedPane(); | ||||
| 		 | ||||
| 		constrain.fill = GridBagConstraints.VERTICAL; | ||||
| 		constrain.gridx = 0; | ||||
| 		constrain.gridy = 0; | ||||
| 		constrain.weightx = 2; | ||||
| 		this.panelCentral.add(pestania,constrain); | ||||
| 		this.pestania.addTab("Ingresos", ingresos); | ||||
| 		this.pestania.addTab("Gastos", gastos); | ||||
| 		getContentPane().add(pestania); | ||||
| 		setTitle("Titulo"); | ||||
| 		setSize(new Dimension(420,320)); | ||||
| 		setDefaultCloseOperation(3); | ||||
| 		setLocationRelativeTo(null); | ||||
| 		ControladorAniadirVisualizar controlador = new ControladorAniadirVisualizar(this.ingresos); | ||||
| 		ControladorAniadirVisualizar controlador2 = new ControladorAniadirVisualizar(this.gastos); | ||||
| 		ControladorPanelLateral controlador3 = new ControladorPanelLateral(this.panel); | ||||
| 		//this.panel.actualizarDatos(datosIngresos); | ||||
| 		ControladorPanelLateral controlador3 = new ControladorPanelLateral(this.panel, this); | ||||
| 		this.pestania.addChangeListener((ChangeListener)->{ | ||||
| 			if(this.pestania.getSelectedIndex() == 0) { | ||||
| 				this.panel.actualizarDatos(meses.getGestionesActuales().get(0)); | ||||
| @ -68,28 +59,52 @@ public class Menu extends JFrame{ | ||||
| 		this.add(this.panel); | ||||
| 	} | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
| 	private void iniciarMes(int anio, Month mes) { | ||||
| 		this.meses=new Meses(); | ||||
| 		meses.aniadirGestion("Ingresos", 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(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) { | ||||
| 		if(this.meses==null) { | ||||
| 			this.meses=new Meses(); | ||||
| 		} | ||||
| 		this.meses.elegirMes(anio, mes); | ||||
| 		if(this.meses.getGestionesActuales().size() == 0) { | ||||
| 			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(); | ||||
| 		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); | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
|  | ||||
| @ -44,6 +44,10 @@ public class VistaAniadirVisualizar extends JPanel{ | ||||
| 		VistaAniadirVisualizar.panelLateral = panel; | ||||
| 	} | ||||
| 	 | ||||
| 	public String getName() { | ||||
| 		return this.gestiones.getNombre(); | ||||
| 	} | ||||
| 	 | ||||
| 	public void aniadirElemento(String nombre, float dinero, ControladorAniadirVisualizar controlador) { | ||||
| 		Transaccion transaccion = new Transaccion(nombre, dinero,panelLateral.getDate(),this.positivo); | ||||
| 		this.gestiones.aniadirGasto(transaccion); | ||||
|  | ||||
| @ -39,6 +39,7 @@ public class VistaPanelLateral extends JPanel{ | ||||
| 		constrain.gridy = 2; | ||||
| 		constrain.weightx = 2; | ||||
| 		this.add(this.gastoEnvio); | ||||
| 		this.add(this.aniadirGestion); | ||||
| 	} | ||||
| 	 | ||||
| 	void actualizarDatos(Gestion gestion) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user