Last active
May 22, 2018 18:25
-
-
Save SrdjanCoric/3024db850543da811960555b32689c9b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package controllers; | |
import beans.User; | |
import beans.City; | |
import controllers.CityController; | |
import static db.DB.user; | |
import java.io.IOException; | |
import java.sql.Connection; | |
import java.sql.DriverManager; | |
import java.sql.PreparedStatement; | |
import java.sql.ResultSet; | |
import java.sql.SQLException; | |
import java.sql.Statement; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.logging.Level; | |
import java.util.logging.Logger; | |
import javax.faces.application.FacesMessage; | |
import javax.faces.bean.ManagedBean; | |
import javax.faces.bean.SessionScoped; | |
import javax.faces.context.ExternalContext; | |
import javax.faces.context.FacesContext; | |
import javax.servlet.http.HttpServletRequest; | |
@ManagedBean | |
@SessionScoped | |
public class UserController { | |
private Integer id; | |
private String firstName; | |
private String lastName; | |
private String phoneNumber; | |
private String email; | |
private String address; | |
private Integer idCity; | |
private String cityName; | |
private boolean insertFlag; | |
private boolean searchFlag; | |
private boolean renderUserTable; | |
private User currentUser; | |
public User getCurrentUser() { | |
return currentUser; | |
} | |
public void setCurrentUser(User currentUser) { | |
this.currentUser = currentUser; | |
} | |
public boolean isRenderUserTable() { | |
return renderUserTable; | |
} | |
public void setRenderUserTable(boolean renderUserTable) { | |
this.renderUserTable = renderUserTable; | |
} | |
public boolean isInsertFlag() { | |
return insertFlag; | |
} | |
public void setInsertFlag(boolean insertFlag) { | |
this.insertFlag = false; | |
} | |
public boolean isSearchFlag() { | |
return searchFlag; | |
} | |
public void setSearchFlag(boolean searchFlag) { | |
this.searchFlag = searchFlag; | |
} | |
public Integer getId() { | |
return id; | |
} | |
public void setId(Integer id) { | |
this.id = id; | |
} | |
public String getFirstName() { | |
return firstName; | |
} | |
public void setFirstName(String firstName) { | |
this.firstName = firstName; | |
} | |
public String getLastName() { | |
return lastName; | |
} | |
public void setLastName(String lastName) { | |
this.lastName = lastName; | |
} | |
public String getPhoneNumber() { | |
return phoneNumber; | |
} | |
public void setPhoneNumber(String phoneNumber) { | |
this.phoneNumber = phoneNumber; | |
} | |
public String getEmail() { | |
return email; | |
} | |
public void setEmail(String email) { | |
this.email = email; | |
} | |
public String getAddress() { | |
return address; | |
} | |
public void setAddress(String address) { | |
this.address = address; | |
} | |
public Integer getIdCity() { | |
return idCity; | |
} | |
public void setIdCity(Integer idCity) { | |
this.idCity = idCity; | |
} | |
public void addCurrentUser(User user){ | |
currentUser = user; | |
} | |
public String takeCityNameById(Integer id) { | |
try { | |
Connection conn = DriverManager.getConnection(db.DB.connectionString, db.DB.user, db.DB.password); | |
String query = "select * from cities where idcity=" + id; | |
Statement stmt = conn.createStatement(); | |
ResultSet rs = stmt.executeQuery(query); | |
while (rs.next()) { | |
cityName = rs.getString("name"); | |
} | |
return cityName; | |
} catch (SQLException ex) { | |
Logger.getLogger(CityController.class.getName()).log(Level.SEVERE, null, ex); | |
} | |
return null; | |
} | |
public void clear() { | |
id = null; | |
firstName = null; | |
lastName = null; | |
phoneNumber = null; | |
email = null; | |
address = null; | |
idCity = null; | |
currentUser = null; | |
} | |
public String insertUser() { | |
try { | |
Connection conn = DriverManager.getConnection(db.DB.connectionString, db.DB.user, db.DB.password); | |
String query = "insert into users (first_name, last_name, phone_number, email, address, id_city) values (?, ?, ?, ?, ?, ?)"; | |
PreparedStatement ps = conn.prepareStatement(query); | |
ps.setString(1, firstName); | |
ps.setString(2, lastName); | |
ps.setString(3, phoneNumber); | |
ps.setString(4, email); | |
ps.setString(5, address); | |
ps.setInt(6, idCity); | |
ps.executeUpdate(); | |
FacesContext context = FacesContext.getCurrentInstance(); | |
context.getExternalContext().getFlash().setKeepMessages(true); | |
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "User created", null); | |
FacesContext.getCurrentInstance().addMessage(null, msg); | |
} catch (SQLException ex) { | |
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex); | |
} finally { | |
clear(); | |
} | |
return "operator?faces-redirect=true"; | |
} | |
public void deleteUser(int id) { | |
try { | |
Connection conn = DriverManager.getConnection(db.DB.connectionString, db.DB.user, db.DB.password); | |
Statement stmt = conn.createStatement(); | |
stmt.executeUpdate("delete from users where id_user = " + id); | |
int idx = 0; | |
for (int i = 0; i < allUsers.size(); i++) { | |
if (allUsers.get(i).getId() == id) { | |
idx = i; | |
} | |
} | |
allUsers.remove(idx); | |
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "User deleted", null); | |
FacesContext.getCurrentInstance().addMessage(null, msg); | |
} catch (SQLException ex) { | |
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex); | |
} finally { | |
clear(); | |
} | |
} | |
public String insertMessage() { | |
FacesContext context = FacesContext.getCurrentInstance(); | |
context.addMessage(null, new FacesMessage("Message:", "User created")); | |
// kada se prikaze poruka flag se vraca na false | |
insertFlag = false; | |
return null; | |
} | |
public String searchForm() { | |
if (!searchFlag) { | |
searchFlag = true; | |
} else { | |
searchFlag = false; | |
} | |
return "operator?faces-redirect=true"; | |
} | |
List<User> allUsers; | |
public List<User> getAllUsers() { | |
return allUsers; | |
} | |
public void setAllUsers(List<User> allUsers) { | |
this.allUsers = allUsers; | |
} | |
public List<User> searchUser() { | |
String idUserQuery = (id == null) ? "'%'" : Integer.toString(id); | |
String firstNameQuery = ("".equals(firstName) || " ".equals(firstName)) ? "'%'" : "'%" + firstName + "%'"; | |
String lastNameQuery = ("".equals(lastName) || " ".equals(lastName)) ? "'%'" : "'%" + lastName + "%'"; | |
String emailQuery = ("".equals(email) || " ".equals(email)) ? "'%'" : "'%" + email + "%'"; | |
String idCityQuery = Integer.toString(idCity); | |
try { | |
Connection conn = DriverManager.getConnection(db.DB.connectionString, db.DB.user, db.DB.password); | |
Statement stmt = conn.createStatement(); | |
String query = "select * from users where id_user like " + idUserQuery; | |
query += " and first_name like " + firstNameQuery; | |
query += " and last_name like " + lastNameQuery; | |
query += " and email like " + emailQuery; | |
query += " and id_city=" + idCityQuery; | |
ResultSet rs = stmt.executeQuery(query); | |
allUsers = new ArrayList<User>(); | |
while (rs.next()) { | |
User user = new User(); | |
user.setId(rs.getInt("id_user")); | |
user.setFirstName(rs.getString("first_name")); | |
user.setLastName(rs.getString("last_name")); | |
user.setPhoneNumber(rs.getString("phone_number")); | |
user.setEmail(rs.getString("email")); | |
user.setAddress(rs.getString("address")); | |
user.setIdCity(rs.getInt("id_city")); | |
allUsers.add(user); | |
renderUserTable = true; | |
} | |
} catch (SQLException ex) { | |
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex); | |
} finally { | |
clear(); | |
} | |
return null; | |
} | |
public String saveUser(User user) { | |
id = user.getId(); | |
firstName = user.getFirstName(); | |
lastName = user.getLastName(); | |
phoneNumber = user.getPhoneNumber(); | |
email = user.getEmail(); | |
address = user.getAddress(); | |
idCity = user.getIdCity(); | |
currentUser = user; | |
return "operator"; | |
} | |
public User findUser(int id) { | |
for (int i = 0; i < allUsers.size(); i++) { | |
if (allUsers.get(i).getId() == id) { | |
return allUsers.get(i); | |
} | |
} | |
return null; | |
} | |
public void closeTable() { | |
renderUserTable = false; | |
} | |
public void updateUser() { | |
try { | |
Connection conn = DriverManager.getConnection(db.DB.connectionString, db.DB.user, db.DB.password); | |
Statement stmt = conn.createStatement(); | |
String query = "update users set first_name='" + firstName + "', "; | |
query += "last_name='" + lastName + "', "; | |
query += "phone_number='" + phoneNumber + "', "; | |
query += "email='" + email + "', "; | |
query += "address='" + address + "', "; | |
query += "id_city='" + idCity + "' "; | |
query += "where id_user = " + id; | |
stmt.executeUpdate(query); | |
User updatedUser = findUser(id); | |
updatedUser.setFirstName(firstName); | |
updatedUser.setLastName(lastName); | |
updatedUser.setPhoneNumber(phoneNumber); | |
updatedUser.setEmail(email); | |
updatedUser.setIdCity(idCity); | |
updatedUser.setAddress(address); | |
} catch (SQLException ex) { | |
Logger.getLogger(UserController.class.getName()).log(Level.SEVERE, null, ex); | |
} finally { | |
clear(); | |
} | |
} | |
public void reload() throws IOException { | |
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); | |
ec.redirect(((HttpServletRequest) ec.getRequest()).getRequestURI()); | |
} | |
public void openTable() throws IOException { | |
renderUserTable = true; | |
reload(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment