Aniadido exportar xml
This commit is contained in:
		
							parent
							
								
									8bfab6a9dc
								
							
						
					
					
						commit
						1e46c48068
					
				
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										37
									
								
								src/Ficheros/Configuracion.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/Ficheros/Configuracion.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| package Ficheros; | ||||
| 
 | ||||
| import VistaControlador.Menu; | ||||
| 
 | ||||
| import java.io.FileNotFoundException; | ||||
| import java.io.FileReader; | ||||
| import java.io.FileWriter; | ||||
| import java.io.IOException; | ||||
| import java.util.Properties; | ||||
| 
 | ||||
| public class Configuracion { | ||||
| 	private static String direccion=".config"; | ||||
| 	 | ||||
| 	public static void guardarConfiguracion(Menu menu) { | ||||
| 		Properties configuracion = new Properties(); | ||||
| 		configuracion.setProperty("ruta", menu.getRuta()); | ||||
| 		configuracion.setProperty("tema", String.valueOf(menu.getTema())); | ||||
| 		try { | ||||
|             configuracion.store(new FileWriter(Configuracion.direccion), "Configuracion general"); | ||||
|         } catch (IOException e1) { | ||||
|             e1.printStackTrace(); | ||||
|         } | ||||
| 	} | ||||
| 	 | ||||
| 	public static void cargarConfiguracion(Menu menu) throws IOException { | ||||
| 		Properties configuracion = new Properties(); | ||||
| 		try { | ||||
| 			configuracion.load(new FileReader(Configuracion.direccion)); | ||||
| 		} catch (FileNotFoundException e) { | ||||
| 			Configuracion.guardarConfiguracion(menu); | ||||
| 		} | ||||
| 		menu.setTheme(Integer.parseInt(configuracion.getProperty("tema"))); | ||||
| 		configuracion.getProperty("ruta"); | ||||
| 		 | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| @ -1,39 +0,0 @@ | ||||
| package Ficheros; | ||||
| 
 | ||||
| import java.io.File; | ||||
| import java.io.FileInputStream; | ||||
| import java.io.FileNotFoundException; | ||||
| import java.io.FileOutputStream; | ||||
| import java.io.IOException; | ||||
| import java.io.ObjectInputStream; | ||||
| import java.io.ObjectOutputStream; | ||||
| 
 | ||||
| import Logica.Gestion; | ||||
| import Logica.Meses; | ||||
| 
 | ||||
| public class FicheroBinario { | ||||
| 	String directorioGestiones; | ||||
| 	String directorioTransacciones; | ||||
| 	String directorioMeses; | ||||
| 	public FicheroBinario(String nombre) { | ||||
| 		this.directorioGestiones=nombre; | ||||
| 	} | ||||
| 	 | ||||
| 	public void guardarMeses(Meses mes) { | ||||
| 		 | ||||
| 	} | ||||
| 	 | ||||
| 	public void guardarGestiones(Gestion gestion) throws IOException { | ||||
| 		FileOutputStream ficheroSalida = new FileOutputStream(new File(this.directorioGestiones)); | ||||
| 		ObjectOutputStream escritor = new ObjectOutputStream(ficheroSalida); | ||||
| 		escritor.writeObject(gestion); | ||||
| 		escritor.close(); | ||||
| 		ficheroSalida.close(); | ||||
| 	} | ||||
| 	 | ||||
| 	public void cargarGestiones(Meses meses) throws IOException { | ||||
| 		FileInputStream ficheroEntrada = new FileInputStream(new File(this.directorioGestiones)); | ||||
| 		ObjectInputStream lector = new ObjectInputStream(ficheroEntrada); | ||||
| 		//meses.aniadirGestion(nombre, anio, mes, isPositivo) | ||||
| 	} | ||||
| } | ||||
| @ -1,6 +1,7 @@ | ||||
| package Logica; | ||||
| 
 | ||||
| import java.io.EOFException; | ||||
| import java.io.File; | ||||
| import java.io.FileInputStream; | ||||
| import java.io.FileNotFoundException; | ||||
| import java.io.FileOutputStream; | ||||
| @ -12,6 +13,24 @@ import java.time.Month; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Vector; | ||||
| 
 | ||||
| import javax.xml.parsers.DocumentBuilder; | ||||
| import javax.xml.parsers.DocumentBuilderFactory; | ||||
| import javax.xml.parsers.ParserConfigurationException; | ||||
| import javax.xml.transform.Result; | ||||
| import javax.xml.transform.Source; | ||||
| import javax.xml.transform.Transformer; | ||||
| import javax.xml.transform.TransformerConfigurationException; | ||||
| import javax.xml.transform.TransformerException; | ||||
| import javax.xml.transform.TransformerFactory; | ||||
| import javax.xml.transform.TransformerFactoryConfigurationError; | ||||
| import javax.xml.transform.dom.DOMSource; | ||||
| import javax.xml.transform.stream.StreamResult; | ||||
| 
 | ||||
| import org.w3c.dom.DOMImplementation; | ||||
| import org.w3c.dom.Document; | ||||
| import org.w3c.dom.Element; | ||||
| import org.w3c.dom.Text; | ||||
| 
 | ||||
| public class Meses { | ||||
| 	private ArrayList<Mes> meses; | ||||
| 	private int mesActual=0; | ||||
| @ -124,6 +143,96 @@ public class Meses { | ||||
| 		return ret; | ||||
| 	} | ||||
| 	 | ||||
| 	public void exportarXML() { | ||||
| 		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | ||||
| 		DocumentBuilder builder; | ||||
| 		File fichero = new File("gestiones.xml"); | ||||
| 		try { | ||||
| 			builder = factory.newDocumentBuilder(); | ||||
| 			DOMImplementation dom = builder.getDOMImplementation(); | ||||
| 			Document documento = dom.createDocument(null, "xml", null); | ||||
| 			Element raiz = documento.createElement("raiz"); | ||||
| 			documento.getDocumentElement().appendChild(raiz); | ||||
| 			Element nodoMeses; | ||||
| 			Element nodoGestion; | ||||
| 			Element nodoTransaccion; | ||||
| 			Element nodoDatos; | ||||
| 			Text dato; | ||||
| 			for(Mes mes:this.meses) { | ||||
| 				nodoMeses = documento.createElement("mes"); | ||||
| 				raiz.appendChild(nodoMeses); | ||||
| 				nodoDatos = documento.createElement("nombre"); | ||||
| 				nodoMeses.appendChild(nodoDatos); | ||||
| 				dato = documento.createTextNode(mes.getMes().toString()); | ||||
| 				nodoDatos.appendChild(dato); | ||||
| 				nodoDatos = documento.createElement("anio"); | ||||
| 				nodoMeses.appendChild(nodoDatos); | ||||
| 				dato = documento.createTextNode(String.valueOf(mes.getAnio())); | ||||
| 				nodoDatos.appendChild(dato); | ||||
| 				nodoDatos = documento.createElement("dineroRestante"); | ||||
| 				nodoMeses.appendChild(nodoDatos); | ||||
| 				dato = documento.createTextNode(String.valueOf(mes.getTotal())); | ||||
| 				nodoDatos.appendChild(dato); | ||||
| 				nodoDatos = documento.createElement("numeroGestiones"); | ||||
| 				nodoMeses.appendChild(nodoDatos); | ||||
| 				dato = documento.createTextNode(String.valueOf(mes.nGestiones)); | ||||
| 				nodoDatos.appendChild(dato); | ||||
| 				for(Gestion gestion:mes.gestiones) { | ||||
| 					nodoGestion = documento.createElement("gestion"); | ||||
| 					nodoMeses.appendChild(nodoGestion); | ||||
| 					nodoDatos = documento.createElement("Nombre"); | ||||
| 					nodoGestion.appendChild(nodoDatos); | ||||
| 					dato = documento.createTextNode(gestion.getNombre()); | ||||
| 					nodoDatos.appendChild(dato); | ||||
| 					nodoDatos = documento.createElement("Dinero"); | ||||
| 					nodoGestion.appendChild(nodoDatos); | ||||
| 					dato = documento.createTextNode(String.valueOf(gestion.getSuma())); | ||||
| 					nodoDatos.appendChild(dato); | ||||
| 					nodoDatos = documento.createElement("EsPositivo"); | ||||
| 					nodoGestion.appendChild(nodoDatos); | ||||
| 					dato = documento.createTextNode(String.valueOf(gestion.esIngreso())); | ||||
| 					nodoDatos.appendChild(dato); | ||||
| 					for(Transaccion transaccion:gestion.getElementos()) { | ||||
| 						nodoTransaccion = documento.createElement("transaccion"); | ||||
| 						nodoGestion.appendChild(nodoTransaccion); | ||||
| 						nodoDatos = documento.createElement("Nombre"); | ||||
| 						nodoTransaccion.appendChild(nodoDatos); | ||||
| 						dato = documento.createTextNode(transaccion.getNombre()); | ||||
| 						nodoTransaccion.appendChild(dato); | ||||
| 						nodoDatos = documento.createElement("Fecha"); | ||||
| 						nodoTransaccion.appendChild(nodoDatos); | ||||
| 						dato = documento.createTextNode(transaccion.getDia().toString()); | ||||
| 						nodoTransaccion.appendChild(dato); | ||||
| 						nodoDatos = documento.createElement("Dinero"); | ||||
| 						nodoTransaccion.appendChild(nodoDatos); | ||||
| 						dato = documento.createTextNode(String.valueOf(transaccion.getDinero())); | ||||
| 						nodoTransaccion.appendChild(dato); | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			Source src = new DOMSource(documento); | ||||
|             Result result = new StreamResult(fichero); | ||||
| 
 | ||||
|             Transformer transformer = null; | ||||
|             transformer = TransformerFactory.newInstance().newTransformer(); | ||||
|             transformer.transform(src, result); | ||||
| 			 | ||||
| 		} catch (ParserConfigurationException e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} catch (TransformerConfigurationException e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} catch (TransformerFactoryConfigurationError e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} catch (TransformerException e) { | ||||
| 			// TODO Auto-generated catch block | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
| 
 | ||||
| class Mes implements Serializable{ | ||||
|  | ||||
| @ -4,9 +4,6 @@ import java.io.Serializable; | ||||
| import java.time.LocalDate; | ||||
| 
 | ||||
| public class Transaccion implements Serializable{ | ||||
| 	/** | ||||
| 	 *  | ||||
| 	 */ | ||||
| 	private static final long serialVersionUID = 7544113192927092049L; | ||||
| 	private String nombre; | ||||
| 	private float dinero; | ||||
| @ -50,4 +47,8 @@ public class Transaccion implements Serializable{ | ||||
| 	public Gestion getGestion() { | ||||
| 		return this.gestion; | ||||
| 	} | ||||
| 	 | ||||
| 	public String getNombre() { | ||||
| 		return this.nombre; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -10,6 +10,7 @@ public class BarraOpciones extends JMenuBar{ | ||||
| 	JMenu menuAr; | ||||
| 	JMenuItem cambiarRuta; | ||||
| 	JMenuItem guardarIns; | ||||
| 	JMenuItem exportarXML; | ||||
| 	JMenu interfaz; | ||||
| 	JMenuItem modoOscuro; | ||||
| 	JMenuItem modoRosa; | ||||
| @ -23,6 +24,8 @@ public class BarraOpciones extends JMenuBar{ | ||||
| 		this.menuAr.add(this.guardarIns); | ||||
| 		this.cambiarRuta = new JMenuItem("Cambiar ruta de guardado"); | ||||
| 		this.menuAr.add(this.cambiarRuta); | ||||
| 		this.exportarXML = new JMenuItem("Exportar en un XML"); | ||||
| 		this.menuAr.add(this.exportarXML); | ||||
| 		this.interfaz = new JMenu("Interfaz"); | ||||
| 		this.add(this.interfaz); | ||||
| 		this.modoClaro = new JMenuItem("Modo claro"); | ||||
|  | ||||
| @ -1,12 +1,13 @@ | ||||
| package VistaControlador; | ||||
| 
 | ||||
| import java.awt.Color; | ||||
| import java.awt.event.ActionEvent; | ||||
| import java.awt.event.ActionListener; | ||||
| import java.io.IOException; | ||||
| 
 | ||||
| import javax.swing.JOptionPane; | ||||
| 
 | ||||
| import Ficheros.Configuracion; | ||||
| 
 | ||||
| public class ControladorBarra implements ActionListener{ | ||||
| 	private BarraOpciones barra; | ||||
| 	private Menu menu; | ||||
| @ -26,7 +27,8 @@ public class ControladorBarra implements ActionListener{ | ||||
| 					JOptionPane.showMessageDialog(null, "Debe introducir algo", "error", JOptionPane.WARNING_MESSAGE); | ||||
| 					return; | ||||
| 				} | ||||
| 				this.menu.nombreDatos = ruta; | ||||
| 				this.menu.rutaGuardado = ruta; | ||||
| 				Configuracion.guardarConfiguracion(this.menu); | ||||
| 				break; | ||||
| 			} | ||||
| 			case "Guardar instantanea":{ | ||||
| @ -45,46 +47,15 @@ public class ControladorBarra implements ActionListener{ | ||||
| 				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(); | ||||
| 				menu.setTheme(0); | ||||
| 				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(); | ||||
| 				menu.setTheme(1); | ||||
| 				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(); | ||||
| 				menu.setTheme(2); | ||||
| 				break; | ||||
| 			} | ||||
| 			case "Mostrar todo":{ | ||||
| @ -92,6 +63,9 @@ public class ControladorBarra implements ActionListener{ | ||||
| 				mostrar.setVisible(true); | ||||
| 				break; | ||||
| 			} | ||||
| 			case "Exportar XLM":{ | ||||
| 				this.menu.meses.exportarXML(); | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| @ -101,6 +75,8 @@ public class ControladorBarra implements ActionListener{ | ||||
| 		this.barra.cambiarRuta.setActionCommand("Cambiar ruta"); | ||||
| 		this.barra.guardarIns.addActionListener(this); | ||||
| 		this.barra.guardarIns.setActionCommand("Guardar instantanea"); | ||||
| 		this.barra.exportarXML.addActionListener(this); | ||||
| 		this.barra.exportarXML.setActionCommand("Exportar XLM"); | ||||
| 		this.barra.modoClaro.addActionListener(this); | ||||
| 		this.barra.modoClaro.setActionCommand("Modo claro"); | ||||
| 		this.barra.modoRosa.addActionListener(this); | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| package VistaControlador; | ||||
| 
 | ||||
| import java.awt.Color; | ||||
| import java.awt.Dimension; | ||||
| import java.awt.GridBagConstraints; | ||||
| import java.awt.GridBagLayout; | ||||
| @ -18,6 +19,7 @@ import javax.swing.JTextArea; | ||||
| import javax.swing.event.ChangeEvent; | ||||
| import javax.swing.event.ChangeListener; | ||||
| 
 | ||||
| import Ficheros.Configuracion; | ||||
| import Logica.Gestion; | ||||
| import Logica.Meses; | ||||
| import Logica.Transaccion; | ||||
| @ -28,7 +30,8 @@ public class Menu extends JFrame{ | ||||
| 	protected VistaAniadirVisualizar ingresos; | ||||
| 	protected VistaAniadirVisualizar gastos; | ||||
| 	protected VistaPanelLateral panel; | ||||
| 	String nombreDatos; | ||||
| 	String rutaGuardado; | ||||
| 	int tema; | ||||
| 	Meses meses; | ||||
| 	ArrayList<VistaAniadirVisualizar> pestanias; | ||||
| 	ArrayList<ControladorAniadirVisualizar> controladores; | ||||
| @ -36,9 +39,11 @@ public class Menu extends JFrame{ | ||||
| 	protected Gestion datosGastos; | ||||
| 	protected Gestion datosIngresos; | ||||
| 	public Menu() { | ||||
| 		this.rutaGuardado = ".mes"; | ||||
| 		this.tema = 0; | ||||
| 		this.barra = new BarraOpciones(); | ||||
| 		ControladorBarra controladorBarra = new ControladorBarra(barra, this); | ||||
| 		this.nombreDatos = ".mes"; | ||||
| 		 | ||||
| 		setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); | ||||
| 		  | ||||
|         addWindowListener(new java.awt.event.WindowAdapter() { | ||||
| @ -79,13 +84,19 @@ public class Menu extends JFrame{ | ||||
| 		constrain.weightx = 0.25; | ||||
| 		this.panelCentral.add(this.panel,constrain); | ||||
| 		this.add(this.panelCentral); | ||||
| 		try { | ||||
| 			Configuracion.cargarConfiguracion(this); | ||||
| 		} catch (IOException e) { | ||||
| 			e.printStackTrace(); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	private void close(){ | ||||
|         if (JOptionPane.showConfirmDialog(rootPane, "¿Desea guardar el estado?", | ||||
|                 "Salir del sistema", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { | ||||
|         	try { | ||||
| 				this.meses.guardarMeses(this.nombreDatos); | ||||
| 				this.meses.guardarMeses(this.rutaGuardado); | ||||
| 				Configuracion.guardarConfiguracion(this); | ||||
| 			} catch (IOException e) { | ||||
| 				// TODO Auto-generated catch block | ||||
| 				e.printStackTrace(); | ||||
| @ -112,7 +123,7 @@ public class Menu extends JFrame{ | ||||
| 		if(this.meses==null) { | ||||
| 			this.meses=new Meses(); | ||||
| 			try { | ||||
| 				meses.cargarMeses(this.nombreDatos); | ||||
| 				meses.cargarMeses(this.rutaGuardado); | ||||
| 			} catch (ClassNotFoundException e) { | ||||
| 				// TODO Auto-generated catch block | ||||
| 				e.printStackTrace(); | ||||
| @ -180,8 +191,70 @@ public class Menu extends JFrame{ | ||||
| 					} | ||||
| 				} | ||||
| 			}); | ||||
| 		}	 | ||||
| 	} | ||||
| 	 | ||||
| 	public String getRuta() { | ||||
| 		return this.rutaGuardado; | ||||
| 	} | ||||
| 	 | ||||
| 	public void setRuta(String ruta) { | ||||
| 		this.rutaGuardado=ruta; | ||||
| 	} | ||||
| 	 | ||||
| 	public int getTema() { | ||||
| 		return this.tema; | ||||
| 	} | ||||
| 	 | ||||
| 	public void setTheme(int tema) { | ||||
| 		switch(tema) { | ||||
| 		case 0:{ | ||||
| 			this.tema = 0; | ||||
| 			this.setBackground(Color.WHITE); | ||||
| 			this.setOpacity(1); | ||||
| 			this.repaint(); | ||||
| 			this.revalidate(); | ||||
| 			this.panelCentral.setOpaque(true); | ||||
| 			this.panelCentral.setBackground(Color.WHITE); | ||||
| 			this.panelCentral.repaint(); | ||||
| 			this.panelCentral.revalidate(); | ||||
| 			this.panel.setBackground(Color.WHITE); | ||||
| 			this.panel.repaint(); | ||||
| 			this.panel.revalidate(); | ||||
| 			break; | ||||
| 		} | ||||
| 		case 1:{ | ||||
| 			this.tema = 1; | ||||
| 			this.setBackground(Color.PINK); | ||||
| 			this.setOpacity(1); | ||||
| 			this.repaint(); | ||||
| 			this.revalidate(); | ||||
| 			this.panelCentral.setOpaque(true); | ||||
| 			this.panelCentral.setBackground(Color.PINK); | ||||
| 			this.panelCentral.repaint(); | ||||
| 			this.panelCentral.revalidate(); | ||||
| 			this.panel.setBackground(Color.PINK); | ||||
| 			this.panel.repaint(); | ||||
| 			this.panel.revalidate(); | ||||
| 			break; | ||||
| 		} | ||||
| 		case 2:{ | ||||
| 			this.tema = 2; | ||||
| 			this.setBackground(Color.BLACK); | ||||
| 			this.setOpacity(1); | ||||
| 			this.repaint(); | ||||
| 			this.revalidate(); | ||||
| 			this.panelCentral.setOpaque(true); | ||||
| 			this.panelCentral.setBackground(Color.BLACK); | ||||
| 			this.panelCentral.repaint(); | ||||
| 			this.panelCentral.revalidate(); | ||||
| 			this.panel.setBackground(Color.BLACK); | ||||
| 			this.panel.repaint(); | ||||
| 			this.panel.revalidate(); | ||||
| 			break; | ||||
| 		} | ||||
| 		default: return; | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 	 | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user