Skip to content

gabreilAlexKH/Tarea_Aspectos_G1E

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

**Gabriel Maldonado,Rommel Marcillo, Diego Martínez, Meiyin Chang

Tarea_Aspectos_G1E

Funcionalidad minima El pointcut captura las llamadas a y optiene el parametro el awt.Color Object que se le pasa como parametro. El awt.Color es convertido a formato de texto y escrito en la consola

pointcut colorChange(Color color) : call(* setBackground(Color)) && args(color);

void around(Color color) : colorChange(color) {
		
		//Dejar al comando del pointcut ejecutarse sin cambios al color
		proceed(color);
		
		//Imprecion del color capturado despues del poincut
		String colorTexto = mapeo.get(color);
    	System.out.println("Color de fondo cambiado a: " + colorTexto);
    	
    	int res = fileColor.guardar(color, archivo);
    	
    	...
	}

Ejemplo de ejecucion

Consola

Funcionalidad Adicional La Ventana solo esta encargada de mostrar al usuario la interfas grafica y ejecutar las acciones corespondientes a los botones. Pero estos cambios no son guardados a largo plazo. En una aplicaion real , las responsabilidades de guardado de cambios esta a cargo de otras clase, pero dentro de la interfaz se deben incorporar estos metodos de guardado y carga de cambios dentro de su codigo. Por lo tanto el almacenamiento se vuelve un concern transversal.

Para remediar esto en el programa, se ha agregado al pointcut la responsabilidad de guardar en un archivo binario el awt.Color que registra cuando se cambia el color del fondo.

    pointcut colorChange(Color color) : call(* setBackground(Color)) && args(color);

    void around(Color color) : colorChange(color) {
            
            ...

            int res = fileColor.guardar(color, archivo);
            
            if(res < 0) {
                System.out.println("Proseso de guardado fallido!");
            }
        }

Ademas se ha agregado un pointcut que captura la ejecucion del constructor de la clase Ventana y asigna el color de fondo guardado previemente o blanco si no existe el archivo binario.

	pointcut newVentana(): execution( Ventana.new(..));

    after(): newVentana(){
		
		System.out.println("Cargando datos alamasenados"); 
		
		//Captura de objeto del constructor
		Ventana ventana = (Ventana) thisJoinPoint.getThis();
		
		//Cargar al ultimo clor guardado
		try {
			Color fondo = fileColor.leer(archivo);
			ventana.getContentPane().setBackground(fondo);
			
		} catch (FileNotFoundException e) {
			System.out.println(e.getMessage() + "\nCargando color por defecto");
			ventana.getContentPane().setBackground(Color.white);
			
		} 	
	}

Los cambios seran guardados en el archivo ajustes.dat

Carpetas

Meiyin Chang, Gabriel Maldonado, Andres Martinez, Rommel Marcillo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •