
package Forms;


import java.util.*;
import Objects.*;
import Connector.*;
import javax.swing.JOptionPane;



/**
 *
 * @author Vendigo
 */

public class FormLogin extends javax.swing.JDialog {

   
    private Staff user;      
    private Query Q;
    private boolean expanded = false;
    private String URL;
    private List<Password> passwords; 

    public FormLogin(java.awt.Frame parent, boolean modal) {

        super(parent, modal);
        
        initComponents();
        this.textBoxUser.requestFocus();
    }

    public Staff getStaff()    {
        return user;
    }

    public void setStaff(Staff _user)    {
        this.user = _user;
    }

    public Query getQuery()    {
        return Q;
    }

    public void setQuery(Query _Q)    {
        this.Q = _Q;
    }

    private String getURL() {
        return "jdbc:sqlserver://"+jTextFieldServer.getText()+";database="+jTextFieldDB.getText()+";user="+jTextFieldUser.getText()+";password="+jTextFieldPassword.getText();
    }

    private void FillUsers()    {
        passwords = Q.SelectAll(Password.class);
    }

    public void moveToCenter() {
        java.awt.Dimension dim = getToolkit().getScreenSize();
        this.setLocation(dim.width/2 - this.getWidth()/2,
                dim.height/2 - this.getHeight()/2);
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        textBoxPassword = new javax.swing.JPasswordField();
        jLabel6 = new javax.swing.JLabel();
        jTextFieldPassword = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jTextFieldUser = new javax.swing.JTextField();
        jTextFieldDB = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jButtonOptions = new javax.swing.JButton();
        labelNoCorrect = new javax.swing.JLabel();
        cloudButtonEnter = new javax.swing.JButton();
        cloudButtonCancel = new javax.swing.JButton();
        textBoxUser = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jTextFieldServer = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Вход в систему ");
        setBackground(new java.awt.Color(50, 50, 50));
        setIconImage(null);
        setMinimumSize(new java.awt.Dimension(377, 120));
        setModal(true);
        setResizable(false);

        jPanel1.setBackground(new java.awt.Color(51, 51, 51));
        jPanel1.setForeground(new java.awt.Color(255, 255, 255));
        jPanel1.setMaximumSize(new java.awt.Dimension(377, 120));
        jPanel1.setMinimumSize(new java.awt.Dimension(377, 120));
        jPanel1.setName("jPanel1"); // NOI18N
        jPanel1.setPreferredSize(new java.awt.Dimension(377, 120));
        jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel1.setBackground(new java.awt.Color(0, 0, 0));
        jLabel1.setForeground(new java.awt.Color(255, 255, 255));
        jLabel1.setText("Пароль:");
        jLabel1.setName("jLabel1"); // NOI18N
        jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(13, 54, 60, -1));

        textBoxPassword.setBackground(new java.awt.Color(51, 51, 51));
        textBoxPassword.setForeground(new java.awt.Color(255, 255, 255));
        textBoxPassword.setText("user2");
        textBoxPassword.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
        textBoxPassword.setName("textBoxPassword"); // NOI18N
        jPanel1.add(textBoxPassword, new org.netbeans.lib.awtextra.AbsoluteConstraints(76, 50, 290, -1));

        jLabel6.setForeground(new java.awt.Color(255, 255, 255));
        jLabel6.setText("Password");
        jLabel6.setName("jLabel6"); // NOI18N
        jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 223, -1, -1));

        jTextFieldPassword.setBackground(new java.awt.Color(51, 51, 51));
        jTextFieldPassword.setForeground(new java.awt.Color(255, 255, 255));
        jTextFieldPassword.setText("admin");
        jTextFieldPassword.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
        jTextFieldPassword.setName("jTextFieldPassword"); // NOI18N
        jPanel1.add(jTextFieldPassword, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 220, 255, -1));

        jLabel5.setForeground(new java.awt.Color(255, 255, 255));
        jLabel5.setText("User");
        jLabel5.setName("jLabel5"); // NOI18N
        jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 193, -1, -1));

        jTextFieldUser.setBackground(new java.awt.Color(51, 51, 51));
        jTextFieldUser.setForeground(new java.awt.Color(255, 255, 255));
        jTextFieldUser.setText("admin");
        jTextFieldUser.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
        jTextFieldUser.setName("jTextFieldUser"); // NOI18N
        jPanel1.add(jTextFieldUser, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 190, 255, -1));

        jTextFieldDB.setBackground(new java.awt.Color(51, 51, 51));
        jTextFieldDB.setForeground(new java.awt.Color(255, 255, 255));
        jTextFieldDB.setText("ProjectManagement");
        jTextFieldDB.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
        jTextFieldDB.setName("jTextFieldDB"); // NOI18N
        jPanel1.add(jTextFieldDB, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 160, 255, -1));

        jLabel4.setForeground(new java.awt.Color(255, 255, 255));
        jLabel4.setText("База данных:");
        jLabel4.setName("jLabel4"); // NOI18N
        jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 163, -1, -1));

        jLabel3.setForeground(new java.awt.Color(255, 255, 255));
        jLabel3.setText("Сервер:");
        jLabel3.setName("jLabel3"); // NOI18N
        jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 133, -1, -1));

        jSeparator1.setName("jSeparator1"); // NOI18N
        jPanel1.add(jSeparator1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 120, -1, -1));

        jButtonOptions.setText("<< Дополнительно");
        jButtonOptions.setName("jButtonOptions"); // NOI18N
        jButtonOptions.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonOptionsActionPerformed(evt);
            }
        });
        jPanel1.add(jButtonOptions, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 80, 145, -1));

        labelNoCorrect.setBackground(new java.awt.Color(50, 50, 50));
        labelNoCorrect.setForeground(new java.awt.Color(255, 0, 0));
        labelNoCorrect.setText("Неверное имя пользователя или пароль");
        labelNoCorrect.setName("labelNoCorrect"); // NOI18N
        jPanel1.add(labelNoCorrect, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 10, -1, -1));
        labelNoCorrect.setVisible(false);

        cloudButtonEnter.setText("Вход");
        cloudButtonEnter.setName("cloudButtonEnter"); // NOI18N
        cloudButtonEnter.setNextFocusableComponent(cloudButtonCancel);
        cloudButtonEnter.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cloudButtonEnterActionPerformed(evt);
            }
        });
        jPanel1.add(cloudButtonEnter, new org.netbeans.lib.awtextra.AbsoluteConstraints(13, 80, 90, -1));

        cloudButtonCancel.setText("Отмена");
        cloudButtonCancel.setName("cloudButtonCancel"); // NOI18N
        cloudButtonCancel.setNextFocusableComponent(jButtonOptions);
        cloudButtonCancel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cloudButtonCancelActionPerformed(evt);
            }
        });
        jPanel1.add(cloudButtonCancel, new org.netbeans.lib.awtextra.AbsoluteConstraints(117, 80, 90, -1));

        textBoxUser.setBackground(new java.awt.Color(50, 50, 50));
        textBoxUser.setForeground(new java.awt.Color(255, 255, 255));
        textBoxUser.setText("user2");
        textBoxUser.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(255, 255, 255), 1, true));
        textBoxUser.setName("textBoxUser"); // NOI18N
        textBoxUser.setNextFocusableComponent(textBoxPassword);
        jPanel1.add(textBoxUser, new org.netbeans.lib.awtextra.AbsoluteConstraints(76, 27, 290, -1));

        jLabel2.setBackground(new java.awt.Color(51, 51, 51));
        jLabel2.setForeground(new java.awt.Color(255, 255, 255));
        jLabel2.setText("Login:");
        jLabel2.setName("jLabel2"); // NOI18N
        jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(13, 30, 60, -1));

        jTextFieldServer.setBackground(new java.awt.Color(51, 51, 51));
        jTextFieldServer.setForeground(new java.awt.Color(255, 255, 255));
        jTextFieldServer.setText("localhost:1434");
        jTextFieldServer.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(255, 255, 255)));
        jTextFieldServer.setName("jTextFieldServer"); // NOI18N
        jPanel1.add(jTextFieldServer, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 130, 255, -1));

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void cloudButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        setVisible(false);
}                                                 

    private void cloudButtonEnterActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        URL = getURL();
        try {
            if(Q!=null)
                Q.Finalize();
            Q = new Query(URL);
        }
        catch(Exception ex)  {
            JOptionPane.showMessageDialog(null, "<html><table width=400>"+ex.toString(), "Error", 0);
        }        
       
}                                                

    private void jButtonOptionsActionPerformed(java.awt.event.ActionEvent evt) {                                               
        if(!expanded)        {
            this.setSize(this.getWidth(), this.getHeight()+150);
            expanded = true;
            this.jButtonOptions.setText(">> Дополнительно");
        }
        else {
            expanded = false;
            this.setSize(this.getWidth(), this.getHeight()-150);
            this.jButtonOptions.setText("<< Дополнительно");
        }
    }                                              
     

    // Variables declaration - do not modify                     
    private javax.swing.JButton cloudButtonCancel;
    private javax.swing.JButton cloudButtonEnter;
    private javax.swing.JButton jButtonOptions;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTextField jTextFieldDB;
    private javax.swing.JTextField jTextFieldPassword;
    private javax.swing.JTextField jTextFieldServer;
    private javax.swing.JTextField jTextFieldUser;
    private javax.swing.JLabel labelNoCorrect;
    private javax.swing.JPasswordField textBoxPassword;
    private javax.swing.JTextField textBoxUser;
    // End of variables declaration                   

}
