CREAR PROPIOS EVENTOS



package proyectoempresaevent;

import java.util.ArrayList;
import java.util.ListIterator;

public class Empresa {

    private int id;
    private String nombre;
    private String apellido;
    private int edad;
    private String empresa;
    private static ArrayList listeners;

    public Empresa(int id, String nombre, String apellido, int edad, String empresa) {
        this.id = id;
        this.nombre = nombre;
        this.apellido = apellido;
        this.edad = edad;
        this.empresa = empresa;
        listeners=new ArrayList();
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
        this.triggerIdEvent();
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
        this.triggerNameEvent();
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
        this.triggerLasNameEvent();
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
        this.triggerAgeEvent();
    }

    public String getEmpresa() {
        return empresa;
    }

    public void setEmpresa(String empresa) {
        this.empresa = empresa;
        this.triggerBusinessEvent();
    }

    public void addEventListener(changeEventListener listner) {
        listeners.add(listner);
    }

    private void triggerNameEvent() {
        ListIterator li = listeners.listIterator();
        while (li.hasNext()) {
            changeEventListener listener = (changeEventListener) li.next();
            changeEvent readerObject = new changeEvent(this, this);
            (listener).onNameChanged(readerObject);
        }
    }

    private void triggerIdEvent() {
        ListIterator li = listeners.listIterator();
        while (li.hasNext()) {
            changeEventListener listener = (changeEventListener) li.next();
            changeEvent readerObject = new changeEvent(this, this);
            (listener).onIdChange(readerObject);
        }
    }

    private void triggerAgeEvent() {
        ListIterator li = listeners.listIterator();
        while (li.hasNext()) {
            changeEventListener listener = (changeEventListener) li.next();
            changeEvent readerObject = new changeEvent(this, this);
            (listener).onAgeChange(readerObject);
        }
    }

    private void triggerBusinessEvent() {
        ListIterator li = listeners.listIterator();
        while (li.hasNext()) {
            changeEventListener listener = (changeEventListener) li.next();
            changeEvent readerObject = new changeEvent(this, this);
            (listener).onBisnessChange(readerObject);

        }
    }

    private void triggerLasNameEvent() {
        ListIterator li = listeners.listIterator();
        while (li.hasNext()) {
            changeEventListener listener = (changeEventListener) li.next();
            changeEvent readerObject = new changeEvent(this, this);
            (listener).onBisnessChange(readerObject);

        }
    }

}


package proyectoempresaevent;

import java.util.EventListener;


/*Estos son los métodos que se van a
disparar cuando suceda algún cambio en alguno de
los datos que recoge la clase Empresa.
Por ejemplo, sin una vez establecemos
el nombre y luego queremos cambiarlo, se va
a disparar ejecutar el método onNameChange.
Nuestro proyecto ahora debe lucir asi:*/
public interface changeEventListener extends EventListener {

    public abstract void onIdChange(changeEvent ev);

    public abstract void onNameChanged(changeEvent ev);

    public abstract void onLastNameChange(changeEvent ev);

    public abstract void onAgeChange(changeEvent ev);

    public abstract void onBisnessChange(changeEvent ev);
}






package proyectoempresaevent;

import java.util.EventObject;

/**
 *
 * @author USUARIO
 */
public class changeEvent extends EventObject {

    Empresa empresa;

    public changeEvent(Object o, Empresa empress) {
        super(o);
        this.empresa = empress;
    }

}


package proyectoempresaevent;

/**
 *
 * @author USUARIO
 */
public class ProyectoEmpresaEvent {

    static changeEventListener evento = new changeEventListener() {
        @Override
        public void onIdChange(changeEvent ev) {
            System.out.println("ha cambiado el id");
            
        }

        @Override
        public void onNameChanged(changeEvent ev) {
            System.out.println("ha cambiado el nomrbe");
        }

        @Override
        public void onLastNameChange(changeEvent ev) {
            System.out.println("ha cambiado el apellido");
        }

        @Override
        public void onAgeChange(changeEvent ev) {
            System.out.println("ha cambiado la edad");
        }

        @Override
        public void onBisnessChange(changeEvent ev) {
            System.out.println("ha cambiado el nombre de la empresa");
        }
    };

    public static void main(String[] args) {
        Empresa empresa = new Empresa(15, "levi", "velasquez", 19, "naranja");
        empresa.addEventListener(evento);
        empresa.setApellido("levi velasquez paz");
        empresa.setNombre("juan carlo");

    }

}





0 comentarios:

Publicar un comentario

BTemplates.com

Buscar este blog

Archivo del Blog

Con tecnología de Blogger.