PainelOutput.java 9.81 KB
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * painelip.java
 *
 * Created on 13/08/2010, 16:18:51
 */
package gerador;

import java.text.ParseException;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.text.MaskFormatter;

/**
 *
 * @author felipel
 */
public class PainelOutput extends javax.swing.JPanel {

    XmlWriter wri;
    StringBuffer str1, strIp;
    String strIpAux = null;
    boolean configOut = false;
    private JDialog janela;
    int contador = 0, flag = 0, valorAux = 0;

    /** Creates new form painelip */
    public PainelOutput(XmlWriter wr, int valor, String ipp, String port) throws ParseException {
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        this.setBounds((screenSize.width - 241) / 2, (screenSize.height - 129) / 2, 241, 129);
        initComponents();
        //valorAux = valor;
        wri = wr;

        ftmIp = new MaskFormatter("###.###.###.###");
        if (valor == 1) {
            if (ipp.length() < 15) {
                strIp = new StringBuffer(ipp);
                for (int i = 0; i < strIp.length(); i++) {
                    strIpAux = strIp.substring(i, i + 1);
                    if (strIpAux.equals(".")) {
                        if (contador == 2) {
                            strIp.insert(i, " ");
                            i = i + 1;
                        }

                        if (contador == 1) {
                            strIp.insert(i, "  ");
                            i = i + 2;
                        }
                        flag = 1;
                    }
                    contador++;
                    if (flag == 1) {
                        contador = 0;
                        flag = 0;
                    }
                }

                ipp = strIp.toString();
                ftmIp.setPlaceholder(ipp);
            } else {
                ftmIp.setPlaceholder(ipp);
            }
            porta.setText(port);
        }

        ip = new JFormattedTextField(ftmIp);
        ip.setFocusLostBehavior(JFormattedTextField.COMMIT);

        ftmIp.setValidCharacters("01A23456789");

        ip.setColumns(10);
        ip.setBounds(40, 20, 113, 19);

        this.add(ip);

        if (valor == 1) {
            this.ConfiguraOutPutAutomatico();
        }


        //ip.setText("127.0.0.1");
    }

    public boolean getConfigOut() {
        return configOut;
    }

    public void setJanela(JDialog dialogo) {
        janela = dialogo;
    }

    public void setPortaOut(String portE) {
        porta.setText(portE);
    }

    public void ConfiguraOutPutAutomatico() {
        str1 = new StringBuffer(ip.getText());
        String str = null, ipp = null;
        int cont = 0;
        boolean flag = false;

        for (int i = 0; i < str1.length(); i++) {
            str = str1.substring(i, i + 1);
            if (str.equals(" ") || str.equals(null) || str.equals("")) {
                //System.out.println("Ip: " + str1);
                str1.delete(i, i + 1);
                i = i - 1;
            }
        }

        ipp = str1.toString();
        
        wri.setPortaOut(porta.getText());
        wri.setIpOut(ipp);
        configOut = true;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        ok = new javax.swing.JButton();
        ipText = new javax.swing.JLabel();
        porta = new javax.swing.JTextField();
        portaText = new javax.swing.JLabel();
        cancelar = new javax.swing.JButton();
        erro = new javax.swing.JLabel();

        setBackground(new java.awt.Color(241, 214, 65));

        ok.setText("Ok");
        ok.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                okActionPerformed(evt);
            }
        });

        ipText.setFont(new java.awt.Font("DejaVu Sans", 0, 12));
        ipText.setText("Ip:");

        portaText.setFont(new java.awt.Font("DejaVu Sans", 0, 12));
        portaText.setText("Porta:");

        cancelar.setText("Cancelar");
        cancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cancelarActionPerformed(evt);
            }
        });

        erro.setFont(new java.awt.Font("DejaVu Sans", 1, 12));
        erro.setForeground(new java.awt.Color(255, 0, 10));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(erro, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(portaText)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(porta, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(ipText))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(ok, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(cancelar, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(ok)
                    .addComponent(ipText))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(portaText)
                    .addComponent(porta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(cancelar))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(erro, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(26, 26, 26))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okActionPerformed
        // TODO add your handling code here:
        str1 = new StringBuffer(ip.getText());
        String str = null, ipp = null;
        int cont = 0;
        boolean flag = false;

        for (int i = 0; i < str1.length(); i++) {
            str = str1.substring(i, i + 1);
            if (str.equals(" ") || str.equals(null) || str.equals("")) {
                //System.out.println("Ip: " + str1);
                str1.delete(i, i + 1);
                i = i - 1;
            }
        }

        ipp = str1.toString();

        for (int i = 0; i < ipp.length(); i++) {

            if (ipp.substring(i, i + 1).equals(".")) {
                cont++;
            }

            if (cont <= 2) {
                if (ipp.substring(0, 1).equals(".") || (ipp.substring(i, i + 1).equals(".") && ipp.substring(i + 1, i + 2).equals("."))) {
                    flag = true;
                }
            }

            if (cont == 3) {
                cont = 0;
                if ((i + 1) == ipp.length()) {
                    flag = true;
                }
            }
        }

        if (porta.getText().equals("")) {
            flag = true;
        }

        if (flag == true) {
            erro.setText("Ip ou porta invalida!");
        } else {
            erro.setText("");
            janela.dispose();
        }

        wri.setPortaOut(porta.getText());
        wri.setIpOut(ipp);
        configOut = true;
    }//GEN-LAST:event_okActionPerformed

    private void cancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelarActionPerformed
        // TODO add your handling code here:
        janela.dispose();
        configOut = false;
        erro.setText("");
}//GEN-LAST:event_cancelarActionPerformed
    private MaskFormatter ftmIp;
    private JFormattedTextField ip;
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton cancelar;
    private javax.swing.JLabel erro;
    private javax.swing.JLabel ipText;
    private javax.swing.JButton ok;
    private javax.swing.JTextField porta;
    private javax.swing.JLabel portaText;
    // End of variables declaration//GEN-END:variables
}