Package panels

Source Code of panels.ManageUser

package panels;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import niso.DBHandler;
import niso.User;
import niso.userFrame;

public class ManageUser extends JSplitPane implements ItemListener, ActionListener,FocusListener,ListSelectionListener, KeyListener{

 
  private ArrayList<User> Users;
  private userFrame Parent;
  private JTextField NameBox,AdduserBox;
  private JPasswordField PassBox,AddPass;
  private JComboBox UserTypeBox,UserBox,AddUserType,DelUserBox;
  private JButton AddBt,DelBt,SaveModificationsBt,AddMode,DelMode,UpdateMode;
  private String ChangeTest;
  private JComponent focus;
  private JPanel Right,DelPane;
  private JLabel ErrorAdd,ErrorMod,ErrorDel,CheckLbl;
  private GBPane Nav,AddPane,ModifyPane;
  private JList UserList;
  private CardLayout CL;
 
 
  public ManageUser(userFrame P){
    Parent=P;
   
    AddBt=new JButton("Add User");
    DelBt=new JButton("Remove User");
    SaveModificationsBt=new JButton("SaveModifications");
   
    Users=new ArrayList<User>();
   
    generateUIComponents();
    setComboBoxItems(UserTypeBox);
    setComboBoxItems(UserBox);
   
    if(Users.size()>0){
      NameBox.setText(Users.get(0).getUserName());
      PassBox.setText(Users.get(0).getUserPassword());
      UserTypeBox.setSelectedItem(Users.get(0).getusertype());
    }
   
    UserBox.addItemListener(this);
    UserTypeBox.addItemListener(this);
    AddBt.addActionListener(this);
    DelBt.addActionListener(this);
    NameBox.addFocusListener(this);
    PassBox.addFocusListener(this);
    SaveModificationsBt.addActionListener(this);
    SaveModificationsBt.setEnabled(false);
    AddMode.setEnabled(false);
    System.out.println("User: "+Parent.getUser().getUserName());
  }
 
  public void generateUIComponents(){
    /*set back to extends GBPane
     * addComponent(new JLabel("Select User"), 0, 0, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(UserBox=new JComboBox(), 1, 0, 2, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    addComponent(new JLabel("Name:"),0, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(NameBox=new JTextField(10), 1, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(new JLabel("Password:"),0, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(PassBox=new JPasswordField(10), 1, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(new JLabel("Type:"),0, 3, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(UserTypeBox=new JComboBox(), 1, 3, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    addComponent(AddBt,2, 1, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    addComponent(DelBt,2, 2, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    addComponent(SaveModificationsBt,2, 3, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    */
    UserBox=new JComboBox();
    CL=new CardLayout();
    Right=new JPanel(CL);
    setRightComponent(Right);
    Nav=new GBPane();
    setLeftComponent(Nav);
   
    JLabel TitleAdd=new JLabel("User Account/s"),EnterInfo=new JLabel("Enter User Information"),SlctUser=new JLabel("Choose a user name");
    JTextField Line1=new JTextField();
    ErrorAdd=new JLabel("");
    AddPane=new GBPane();
   
    AddMode=new JButton("Add User/s");
    UpdateMode=new JButton("Update User/s");
    DelMode=new JButton("Remove User/s");
   
    Nav.addComponent(AddMode, 0, 0, 1, 1, 1, 1, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    Nav.addComponent(UpdateMode, 0, 1, 1, 1, 1, 1, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    Nav.addComponent(DelMode, 0, 2, 1, 1, 1, 1, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
   
   
    TitleAdd.setFont(new Font("Bookman Old Style",Font.PLAIN,25));
    SlctUser.setFont(new Font("Bookman Old Style",Font.PLAIN,20));
   
    AddPane.addComponent(TitleAdd, 0, 0, 4,2, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    Line1.setBackground(Color.BLACK);
    Line1.setEditable(false);
    AddPane.addComponent(Line1, 0, 2, 4,1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    ErrorAdd.setForeground(Color.RED);
    AddPane.addComponent(EnterInfo, 0, 3, 4,1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    AddPane.addComponent(ErrorAdd, 0, 4, 4,1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    AddPane.addComponent(new JLabel("User Type:"),2, 5, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(AddUserType=new JComboBox(), 3, 5, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(new JLabel("User Name: "),2, 6, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(AdduserBox=new JTextField(15), 3, 6, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(new JLabel("Password:"),2, 7, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(AddPass=new JPasswordField(15), 3, 7, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    AddPane.addComponent(AddBt,3, 8, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    AddPane.addComponent(CheckLbl=new JLabel(""),4, 8, 1, 1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    AddPass.setEditable(false);
    AddBt.setEnabled(false);
    setComboBoxItems(AddUserType);
   
    UserBox=new JComboBox();
    setComboBoxItems(UserBox);
    UserList=new JList();
    setListItems(UserList);
   
    JTextArea BTA=new JTextArea(3,2);
    BTA.setBackground(Color.BLACK);
    BTA.setEditable(false);
   
    ModifyPane=new GBPane();
    ModifyPane.addComponent(SlctUser, 0, 0, 1,1, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    ModifyPane.addComponent(UserBox, 0, 1, 1,4, 0, 0, GridBagConstraints.VERTICAL, GridBagConstraints.WEST);
    ModifyPane.addComponent(ErrorMod=new JLabel(""), 0, 6, 1,2, 0, 0, GridBagConstraints.HORIZONTAL, GridBagConstraints.WEST);
    ModifyPane.addComponent(BTA, 1, 0, 1,5, 1, 0, GridBagConstraints.VERTICAL, GridBagConstraints.WEST);
    //ModifyPane.addComponent(new JScrollPane(UserList), 0, 1, 1,5, 0, 0, GridBagConstraints.VERTICAL, GridBagConstraints.WEST);
    ModifyPane.addComponent(new JLabel("User Type:"),2, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(UserTypeBox=new JComboBox(), 3, 1, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(new JLabel("User Name: "),2, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(NameBox=new JTextField(15), 3, 2, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(new JLabel("Password:"),2, 3, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(PassBox=new JPasswordField(15), 3, 3, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
    ModifyPane.addComponent(SaveModificationsBt, 3, 4, 1, 1, 0, 0, GridBagConstraints.NONE, GridBagConstraints.WEST);
   
    JLabel DelTitle=new JLabel("<html><h1><u>Remove User Account/s</u></h1></html>");
    DelTitle.setFont(new Font("Bookman Old Style",Font.PLAIN,25));
    DelPane=new JPanel();
    BoxLayout Bx=new BoxLayout(DelPane, BoxLayout.Y_AXIS);
    DelPane.setLayout(Bx);
    DelPane.add(DelTitle);
    //DelPane.add(new JLabel("<html><table bgcolor=\"black\"> <td> We do this today</td></table></html>"));
    DelPane.add(ErrorDel=new JLabel(""));
    DelPane.add(new JLabel("Choose A user Name"));
    setComboBoxItems(DelUserBox=new JComboBox());
    DelPane.add(DelUserBox);
    DelPane.add(DelBt);
   
   
    Right.add("AddUser", AddPane);
    Right.add("Modify",ModifyPane);
    Right.add("Delete",DelPane);
   
    AddMode.addActionListener(this);
    UpdateMode.addActionListener(this);
    DelMode.addActionListener(this);
    UserList.addListSelectionListener(this);
    AddBt.addFocusListener(this);
    DelBt.addFocusListener(this);
    SaveModificationsBt.addFocusListener(this);
   
    AdduserBox.addKeyListener(this);
    AddPass.addKeyListener(this);
    NameBox.addKeyListener(this);
    PassBox.addKeyListener(this);
  }
 
  public void setComboBoxItems(JComboBox cb){
    if(cb==UserTypeBox||cb==AddUserType){
     
      if(cb.getItemCount()<1)
        cb.removeAllItems();
      cb.addItem("Owner");
      cb.addItem("Bookkeeper");
      cb.addItem("Manager");
    }
   
    else if(cb==UserBox||cb==DelUserBox){
      //Get the users
      Users.removeAll(Users);
      try{
        ResultSet RS=Parent.getDBHandler().MySQLSelect("SELECT * from UserAccount where UserName!='"+Parent.getUser().getUserName()+"';");
        while(RS.next())
          Users.add(new User(RS.getString(1),RS.getString(2),RS.getString(3)));
        RS.close();
      }catch(Exception ex){System.out.println("Problem "+ex);}
      cb.removeAllItems();
     
      for(int ctr=0;ctr<Users.size();ctr++){
        if(!Users.get(ctr).getUserName().equals(Parent.getUser().getUserName()))
          cb.addItem(Users.get(ctr).getUserName());
        System.out.println("Added: "+Users.get(ctr).getUserName());
      }
    }
  }
 
  public void setListItems(JList L){
    Users.removeAll(Users);
    try{
      ResultSet RS=Parent.getDBHandler().MySQLSelect("SELECT * from UserAccount;");
      while(RS.next())
        Users.add(new User(RS.getString(1),RS.getString(2),RS.getString(3)));
      RS.close();
    }catch(Exception ex){System.out.println("Problem "+ex);}
   
    String[] S=new String[Users.size()];
   
    for(int ctr=0;ctr<Users.size();ctr++)
      S[ctr]=Users.get(ctr).getUserName();
    L.setListData(S);

  }
   
   
 

  @Override
  public void itemStateChanged(ItemEvent IE) {
    if(IE.getSource()==UserBox&&UserBox.getItemCount()>0){
      User Selected=Users.get(UserBox.getSelectedIndex());
      NameBox.setText(Selected.getUserName());
      PassBox.setText(Selected.getUserPassword());
      UserTypeBox.setSelectedItem(Selected.getusertype());
    }
    else SaveModificationsBt.setEnabled(true);
  }

  @Override
  public void actionPerformed(ActionEvent AE) {
    DBHandler DBH=Parent.getDBHandler();
    if(AE.getSource()==AddBt){
      String newUser=AdduserBox.getText();
      DBH.MySQLinsert("INSERT into UserAccount values('"+newUser+"','"+AddPass.getText()+"','"+AddUserType.getSelectedItem()+"');",ErrorAdd);
      setComboBoxItems(UserBox);
      setComboBoxItems(DelUserBox);
      UserBox.setSelectedItem(newUser);
     
     
      AdduserBox.setText("");
      AddPass.setText("");
      AddPass.setEditable(false);
      AddBt.setEnabled(false);
     
      if(ErrorAdd.getText().length()==0){
        CheckLbl.setIcon(Parent.getCheckImage());
        CheckLbl.setText("Insertion Complete");
      }
      SaveModificationsBt.setEnabled(false);
     
    }
    else if(AE.getSource()==DelBt){
      try {
        DBH.MySQLUpdate("DELETE FROM UserAccount where Username='"+DelUserBox.getSelectedItem()+"';");
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        ErrorDel.setForeground(Color.RED);
        ErrorDel.setText("Error in deleting");
      }
      setComboBoxItems(UserBox);
      setComboBoxItems(DelUserBox);
    }
    else if(AE.getSource()==SaveModificationsBt&&NameBox.getText().length()>0){
      User Selected=Users.get(UserBox.getSelectedIndex());
      String name=Selected.getUserName(),Pass=Selected.getUserPassword();
      try {
        DBH.MySQLUpdate("UPDATE UserAccount SET Username='"+NameBox.getText()+"',Password='"+PassBox.getText()
            +"',UserType='"+UserTypeBox.getSelectedItem()+"' WHERE Username='"+UserBox.getSelectedItem()+"';");
      } catch (SQLException e) {
        // TODO Auto-generated catch block
        NameBox.setText(name);
        PassBox.setText(Pass);
        ErrorMod.setFont(Parent.getWarningFont(ErrorMod));
        ErrorMod.setText("Error. Modification did not occur");
       
      }
     
      String s=NameBox.getText();
      Selected.reNameUser(s);
      Selected.changePassword(PassBox.getText());
      Selected.changeUserType(UserTypeBox.getSelectedItem().toString());
      setComboBoxItems(UserBox);
      setComboBoxItems(DelUserBox);
      UserBox.setSelectedItem(s);
      setListItems(UserList);
      SaveModificationsBt.setEnabled(false);
    }
    else if(AE.getSource()==AddMode){
      AddMode.setEnabled(false);
      UpdateMode.setEnabled(true);
      CL.show(Right, "AddUser");
    }
    else if(AE.getSource()==UpdateMode){
      AddMode.setEnabled(true);
      UpdateMode.setEnabled(false);
      CL.show(Right, "Modify");
    }
    else if(AE.getSource()==DelMode)
      CL.show(Right, "Delete");
   
  }

  @Override
  public void focusGained(FocusEvent FE) {
    if(FE.getSource()==NameBox)
      ChangeTest=NameBox.getText();
    else if(FE.getSource()==PassBox)
      ChangeTest=PassBox.getText();
    focus=(JComponent) FE.getSource();
    //CheckLbl.setIcon(null);
   
  }

  @Override
  public void focusLost(FocusEvent FE) {
    ErrorMod.setText("");
    User Selected=Users.get(UserBox.getSelectedIndex());
    ErrorMod.setFont(Parent.getWarningFont(ErrorMod));
    if(NameBox.getText().length()<=0){
      NameBox.setText(ChangeTest);
      ErrorMod.setText("Modification unsaved: Don't leave textboxes empty");
    }
    else if(PassBox.getText().length()<=0){
      PassBox.setText(ChangeTest);
      ErrorMod.setText("Mofification unsaved: Don't leave textboxes empty");
    }
    else if((!Selected.getUserName().equalsIgnoreCase(NameBox.getText())&&focus==NameBox)||(!Selected.getUserPassword().equals(PassBox.getText())&&focus==PassBox))
      SaveModificationsBt.setEnabled(true);
   
    focus=null;
    CheckLbl.setIcon(null);
    CheckLbl.setText("");
    ErrorAdd.setText("");
    ErrorDel.setText("");
   
    //(ChangeTest!=NameBox.getText()&&focus==NameBox)||(ChangeTest!=PassBox.getText()&&focus==PassBox)
  }

  @Override
  public void valueChanged(ListSelectionEvent LE) {
    // TODO Auto-generated method stub
    User Selected=Users.get(UserList.getSelectedIndex());
    NameBox.setText(Selected.getUserName());
    PassBox.setText(Selected.getUserPassword());
    UserTypeBox.setSelectedItem(Selected.getusertype());
  }

  @Override
  public void keyPressed(KeyEvent KE) {
    // TODO Auto-generated method stub
   
  }

  @Override
  public void keyReleased(KeyEvent KE) {
    // TODO Auto-generated method stub
   
   
    if(!AddMode.isEnabled()){
      if(AdduserBox.getText().length()>0&&AddPass.getText().length()>0)
        AddBt.setEnabled(true);
      else if(AddPass.getText().length()==0)
        AddBt.setEnabled(false);
   
      if(AdduserBox.getText().length()>0)
        AddPass.setEditable(true);
      else AddPass.setEditable(false);
       
    }
    else if(!UpdateMode.isEnabled()){
      User Selected =Users.get(UserBox.getSelectedIndex());
      if(Selected.getUserName().equalsIgnoreCase(NameBox.getText())&&Selected.getUserPassword().equals(PassBox.getText()))
        SaveModificationsBt.setEnabled(false);
      else if (!Selected.getUserName().equalsIgnoreCase(NameBox.getText())||!Selected.getUserPassword().equals(PassBox.getText()))
        SaveModificationsBt.setEnabled(true);
    }
   
   
  }

  @Override
  public void keyTyped(KeyEvent KE) {
   
  }
}
TOP

Related Classes of panels.ManageUser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.