martes, 3 de diciembre de 2013

MVC Clase Control

public class control implements ActionListener {
 
   //Vistas
    private final VentanaP ventana;
    private InsertarAsociacion_in insAsociacion;
    private InsertarDistrito_in insDistrito;
    private InsertarZonas_in insZona;
    private InsertarIglesias_in insIglesia;
    private InsertarPastor_in insPastor;
    private InsertarPastorDatos_in insPastorD;
    private SeleccionarPastor selPastor;
    private InsertarTirillas_in insTirilla;
    private InsertarEmpleado_in insEmpleado;

    //Base de Datos
    Tablas_Ver tbVer;

    public Control(VentanaP ven) {
        this.ventana = ven;

        URL master = getClass().getResource("/Fotos/PRIMERLOGO.png");
        ven.setIconImage(Toolkit.getDefaultToolkit().getImage(master));

        iniciar_programa();
    }

    private void iniciar_programa() {
        ventana.setLocationRelativeTo(null);

        //menu
        //REGISTRAR
        this.ventana.mnEmpleados.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_empleado();
            }
        });
        this.ventana.mnAsociacion.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_asociacion();
            }

        });
        this.ventana.mnDistritos.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_distrito();
            }
        });
        this.ventana.mnZonas.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_zona();
            }

        });
        this.ventana.mnIglesias.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_iglesia();
            }

        });
        this.ventana.mnPastores.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_pastor();
            }

        });
        this.ventana.mnTirillas.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_tirilla("0", "0", "0");
            }
        });

        //botones
        this.ventana.bnTirillas.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                registrar_tirilla("0", "0", "0");
            }
        });

    }

    public void ver() {
        this.ventana.setVisible(true);
    }

    /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    /*::::::::::::::: VENTANAS  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    //INSERTAR_EMPLEADO_IN*****rechequear
    private void registrar_empleado() {
        if (checkInternalFrame(insEmpleado)) {
            insEmpleado = new InsertarEmpleado_in();
            this.ventana.panel.add(insEmpleado);

            insEmpleado.bnGuardar.addActionListener(new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    if (!"".equals(insEmpleado.nombre.getText()) && !"".equals(insEmpleado.apellido.getText())
                            && !"".equals(insEmpleado.usuario.getText()) && !"".equals(insEmpleado.contrasena.getText())
                            && insEmpleado.tipo.getSelectedIndex() != 0) {
                        if (!new Verificar().getEmpleado(insEmpleado.nombre.getText(), insEmpleado.apellido.getText())) {
                            if (!new Verificar().getUsuario(insEmpleado.usuario.getText())) {
                                String mensaje = new Insertar().agregarEmpleados(new Empleado(insEmpleado.nombre.getText(), insEmpleado.apellido.getText(),
                                        insEmpleado.usuario.getText(), insEmpleado.contrasena.getText(),
                                        insEmpleado.tipo.getSelectedItem().toString()));
                                JOptionPane.showMessageDialog(ventana, mensaje, "Información", JOptionPane.INFORMATION_MESSAGE);
                                insEmpleado.dispose();
                                registrar_empleado();
                            } else {
                                JOptionPane.showMessageDialog(ventana, "Usuario ya existe! Elegir otro nombre para el usuario!", "Advertencia", JOptionPane.WARNING_MESSAGE);
                            }

                        } else {
                            JOptionPane.showMessageDialog(ventana, "El empleado '" + insEmpleado.nombre.getText() + ", " + insEmpleado.apellido.getText() + "' ya existe", "Información", JOptionPane.WARNING_MESSAGE);
                        }

                    } else {
                        JOptionPane.showMessageDialog(ventana, "Debe de llenar todos los campos!", "Error", JOptionPane.ERROR_MESSAGE);
                    }
                }
            });

            insEmpleado.setLocation(centradoXY(insEmpleado));
            insEmpleado.setVisible(true);

        } else {
            JOptionPane.showMessageDialog(this.ventana, "La ventana de 'Registro de Empleados' ya esta abierta.", "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    /*::::::::::::::: METODOS  ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
    //funcion que dado un JInternalFrame calcula la posicion de centrado respecto a su contenedor, retorna las coordenadas en una variable de tipo POINT
    private Point centradoXY(JInternalFrame jif) {
        Point p = new Point(0, 0);
        //se obtiene dimension del contenedor
        Dimension pantalla = this.ventana.panel.getSize();
        //se obtiene dimension del JInternalFrame
        Dimension ven = jif.getSize();
        //se calcula posición para el centrado
        p.x = (pantalla.width - ven.width) / 2;
        p.y = (pantalla.height - ven.height) / 2;
        return p;
    }

    //METODO QUE DEVUELVE UN VALOR BOOLEAN PARA SABER SI UN JINTERNALFRAME ESTA ABIERTO O NO
    private boolean checkInternalFrame(Object obj) {

        JInternalFrame[] activos = this.ventana.panel.getAllFrames();

        boolean cerrado = true;

        int i = 0;
        while (i < activos.length && cerrado) {
            if (activos[i] == obj) {
                cerrado = false;
            }
            i++;

        }
        return cerrado;

    }

No hay comentarios:

Publicar un comentario