/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JFrame.java to edit this template
 */
package desktopowa;

import java.awt.Dialog;
import java.util.Random;
import javax.swing.JDialog;
import javax.swing.JLabel;

/**
 *
 * @author mateo
 */
public class Main extends javax.swing.JFrame {

    
    private String wygenerowaneHaslo = "";
    /**
     * Creates new form Main
     */
    public Main() {
        initComponents();
    }

    /**
     * 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() {

        danePracownika = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        imieInput = new javax.swing.JTextField();
        nazwisko = new javax.swing.JLabel();
        nazwiskoInput = new javax.swing.JTextField();
        jLabel = new javax.swing.JLabel();
        stanowiskoComboBox = new javax.swing.JComboBox<>();
        generowanieHasla = new javax.swing.JPanel();
        jlabel2 = new javax.swing.JLabel();
        iloscZnakowInput = new javax.swing.JTextField();
        literyCB = new javax.swing.JCheckBox();
        znakiSpecjalneCB = new javax.swing.JCheckBox();
        cyfryCB = new javax.swing.JCheckBox();
        generujHasloBtn = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(176, 196, 222));

        danePracownika.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder(""), "Dane praconika", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        jLabel1.setText("Imie");

        imieInput.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                imieInputActionPerformed(evt);
            }
        });

        nazwisko.setText("Nazwisko");

        nazwiskoInput.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nazwiskoInputActionPerformed(evt);
            }
        });

        jLabel.setText("Stanowisko");

        stanowiskoComboBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Kierownik", "Starszy programista", "Młodszy programista", "Tester" }));

        javax.swing.GroupLayout danePracownikaLayout = new javax.swing.GroupLayout(danePracownika);
        danePracownika.setLayout(danePracownikaLayout);
        danePracownikaLayout.setHorizontalGroup(
            danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, danePracownikaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, danePracownikaLayout.createSequentialGroup()
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(nazwisko, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(nazwiskoInput, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(imieInput, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(stanowiskoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(46, 46, 46))
        );
        danePracownikaLayout.setVerticalGroup(
            danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(danePracownikaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(imieInput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(nazwiskoInput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(nazwisko, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(danePracownikaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(stanowiskoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        generowanieHasla.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Generowanie hasła", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        jlabel2.setText("Ile znaków?");

        literyCB.setText("Małe i wielkie litery");

        znakiSpecjalneCB.setText("Znaki specjalne");

        cyfryCB.setText("Cyfry");
        cyfryCB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cyfryCBActionPerformed(evt);
            }
        });

        generujHasloBtn.setBackground(new java.awt.Color(70, 130, 180));
        generujHasloBtn.setForeground(new java.awt.Color(255, 255, 255));
        generujHasloBtn.setText("Generuj haslo");
        generujHasloBtn.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                generujHasloBtnActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout generowanieHaslaLayout = new javax.swing.GroupLayout(generowanieHasla);
        generowanieHasla.setLayout(generowanieHaslaLayout);
        generowanieHaslaLayout.setHorizontalGroup(
            generowanieHaslaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(generowanieHaslaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(generowanieHaslaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(generowanieHaslaLayout.createSequentialGroup()
                        .addComponent(jlabel2)
                        .addGap(38, 38, 38)
                        .addComponent(iloscZnakowInput, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(literyCB)
                    .addComponent(znakiSpecjalneCB)
                    .addComponent(cyfryCB))
                .addContainerGap(55, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, generowanieHaslaLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(generujHasloBtn)
                .addGap(69, 69, 69))
        );
        generowanieHaslaLayout.setVerticalGroup(
            generowanieHaslaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(generowanieHaslaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(generowanieHaslaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jlabel2)
                    .addComponent(iloscZnakowInput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(literyCB)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(cyfryCB)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(znakiSpecjalneCB)
                .addGap(9, 9, 9)
                .addComponent(generujHasloBtn)
                .addContainerGap())
        );

        jButton1.setBackground(new java.awt.Color(70, 130, 180));
        jButton1.setForeground(new java.awt.Color(255, 255, 255));
        jButton1.setText("Zatwierdź");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(24, 24, 24)
                .addComponent(danePracownika, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 51, Short.MAX_VALUE)
                .addComponent(generowanieHasla, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(15, 15, 15))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 179, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(212, 212, 212))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(43, 43, 43)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(danePracownika, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(generowanieHasla, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(16, 16, 16))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void imieInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_imieInputActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_imieInputActionPerformed

    private void nazwiskoInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nazwiskoInputActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_nazwiskoInputActionPerformed

    private void cyfryCBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cyfryCBActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cyfryCBActionPerformed

    private void generujHasloBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generujHasloBtnActionPerformed
        // TODO add your handling code here:
        String cyfry = "0123456789";
        String litery = "abcdefghijklmnoprstuwxyzABCDEFGHIJKLMNOPRSTUWXYZ";
        String znakiSpecjalne = "!@#$%^&*()_+-=";
        
        wygenerowaneHaslo = "";
        String zestawZnakow = "";    
        
        if(literyCB.isSelected()) {
            zestawZnakow += litery;
        }
        
        if(cyfryCB.isSelected()) {
            zestawZnakow+=cyfry;
        }
        
        if(znakiSpecjalneCB.isSelected()) {
            zestawZnakow+=znakiSpecjalne;
        }
        
        
        int dlugoscZnakow = Integer.parseInt(iloscZnakowInput.getText());
        
        Random rand = new Random();
        
        for(int i=0; i<dlugoscZnakow; i++) {
            wygenerowaneHaslo+= zestawZnakow.charAt(rand.nextInt(0, zestawZnakow.length() - 1));
        }
        
       JDialog dialog = new JDialog(this, true );
       JLabel jl = new JLabel(wygenerowaneHaslo);
       
       dialog.add(jl);
        
       dialog.setSize(400,100);
       dialog.show();
    }//GEN-LAST:event_generujHasloBtnActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        JDialog dialog = new JDialog(this, true );
        dialog.add(new JLabel("Dane pracownika: " + imieInput.getText() + " "+ nazwiskoInput.getText() + " " + stanowiskoComboBox.getSelectedItem() + " Hasło: " + wygenerowaneHaslo));
        
        dialog.setSize(400, 200);
        dialog.show();
    }//GEN-LAST:event_jButton1ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Main().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBox cyfryCB;
    private javax.swing.JPanel danePracownika;
    private javax.swing.JPanel generowanieHasla;
    private javax.swing.JButton generujHasloBtn;
    private javax.swing.JTextField iloscZnakowInput;
    private javax.swing.JTextField imieInput;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jlabel2;
    private javax.swing.JCheckBox literyCB;
    private javax.swing.JLabel nazwisko;
    private javax.swing.JTextField nazwiskoInput;
    private javax.swing.JComboBox<String> stanowiskoComboBox;
    private javax.swing.JCheckBox znakiSpecjalneCB;
    // End of variables declaration//GEN-END:variables
}
