Mr. Markou you stress me out so freaking much
This commit is contained in:
		@@ -0,0 +1,13 @@
 | 
			
		||||
package com.mycompany.supplierspartsdatabase;
 | 
			
		||||
 | 
			
		||||
import jakarta.ws.rs.ApplicationPath;
 | 
			
		||||
import jakarta.ws.rs.core.Application;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Configures Jakarta RESTful Web Services for the application.
 | 
			
		||||
 * @author Juneau
 | 
			
		||||
 */
 | 
			
		||||
@ApplicationPath("resources")
 | 
			
		||||
public class JakartaRestConfiguration extends Application {
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,20 @@
 | 
			
		||||
package com.mycompany.supplierspartsdatabase.resources;
 | 
			
		||||
 | 
			
		||||
import jakarta.ws.rs.GET;
 | 
			
		||||
import jakarta.ws.rs.Path;
 | 
			
		||||
import jakarta.ws.rs.core.Response;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author 
 | 
			
		||||
 */
 | 
			
		||||
@Path("jakartaee9")
 | 
			
		||||
public class JakartaEE9Resource {
 | 
			
		||||
    
 | 
			
		||||
    @GET
 | 
			
		||||
    public Response ping(){
 | 
			
		||||
        return Response
 | 
			
		||||
                .ok("ping Jakarta EE")
 | 
			
		||||
                .build();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,133 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/JSF/JSFManagedBean.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.beans;
 | 
			
		||||
 | 
			
		||||
import edu.slcc.asdv.bl.DBase;
 | 
			
		||||
import edu.slcc.asdv.bl.part.DatabaseManipulationPart;
 | 
			
		||||
import edu.slcc.asdv.bl.part.Part;
 | 
			
		||||
import edu.slcc.asdv.bl.supplier.DatabaseManipulationSupplier;
 | 
			
		||||
import edu.slcc.asdv.bl.supplier.Supplier;
 | 
			
		||||
import jakarta.annotation.PostConstruct;
 | 
			
		||||
import jakarta.inject.Named;
 | 
			
		||||
import jakarta.enterprise.context.SessionScoped;
 | 
			
		||||
import jakarta.faces.application.FacesMessage;
 | 
			
		||||
import jakarta.faces.application.FacesMessage.Severity;
 | 
			
		||||
import jakarta.faces.context.FacesContext;
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.util.Iterator;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
@Named(value = "supplierBean")
 | 
			
		||||
@SessionScoped
 | 
			
		||||
public class SupplierBean implements Serializable {
 | 
			
		||||
 | 
			
		||||
    //DBase dms;
 | 
			
		||||
    //DBase dmp;
 | 
			
		||||
    DBase dms = new DatabaseManipulationSupplier();
 | 
			
		||||
    DBase dmp = new DatabaseManipulationPart();
 | 
			
		||||
    List<Supplier> suppliers;
 | 
			
		||||
    List<Part> parts;
 | 
			
		||||
    
 | 
			
		||||
    private Supplier selectedSupplier;
 | 
			
		||||
 | 
			
		||||
    public Supplier getSelectedSupplier() {
 | 
			
		||||
        return selectedSupplier;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSelectedSupplier(Supplier selectedSupplier) {
 | 
			
		||||
        this.selectedSupplier = selectedSupplier;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public SupplierBean() {
 | 
			
		||||
        suppliers = dms.listAll();
 | 
			
		||||
        parts = dmp.listAll();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public List<Supplier> getSuppliers() {
 | 
			
		||||
        return suppliers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public List<Part> getParts() {
 | 
			
		||||
        return parts;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void deleteFromList() {
 | 
			
		||||
    int totalRowsUpdated = 0;
 | 
			
		||||
    Iterator<Supplier> iterator = this.suppliers.iterator();
 | 
			
		||||
    while (iterator.hasNext()) {
 | 
			
		||||
        Supplier s = iterator.next();
 | 
			
		||||
        if (s.isModify()) {
 | 
			
		||||
            try {
 | 
			
		||||
                int rowsUpdated = this.dms.delete(s);
 | 
			
		||||
                if (rowsUpdated > 0) {
 | 
			
		||||
                    iterator.remove();
 | 
			
		||||
                }
 | 
			
		||||
            } catch (Exception e) {
 | 
			
		||||
                String msg = ("Numbers of rows updated is 0.");
 | 
			
		||||
                addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public void saveFromUpdate() {
 | 
			
		||||
        int totalRowsUpdated = 0;
 | 
			
		||||
        for (Supplier s : this.suppliers) {
 | 
			
		||||
            if (s.isModify()) {
 | 
			
		||||
                try {
 | 
			
		||||
                    int rowsUpdated = this.dms.update(s);
 | 
			
		||||
                    if (rowsUpdated > 0) {
 | 
			
		||||
                        totalRowsUpdated += rowsUpdated;
 | 
			
		||||
                        s.setModify(false);
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (Exception e) {
 | 
			
		||||
                    String msg = ("Numbers of rows updated is 0.");
 | 
			
		||||
                    addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        String msg = ("Numbers of rows updated: " + totalRowsUpdated);
 | 
			
		||||
        addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void saveFromUpdatePart() {
 | 
			
		||||
        int totalRowsUpdated = 0;
 | 
			
		||||
 | 
			
		||||
        for (Part s : this.parts) {
 | 
			
		||||
            if (s.isModify()) {
 | 
			
		||||
                try {
 | 
			
		||||
                    int rowsUpdated = this.dmp.update(s);
 | 
			
		||||
                    if (rowsUpdated > 0) {
 | 
			
		||||
                        totalRowsUpdated += rowsUpdated;
 | 
			
		||||
                        s.setModify(false);
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (Exception e) {
 | 
			
		||||
                    String msg = ("Numbers of rows updated is 0.");
 | 
			
		||||
                    addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        String msg = ("Numbers of rows updated: " + totalRowsUpdated);
 | 
			
		||||
        addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addMessage(String summary, String detail, Severity severity) {
 | 
			
		||||
        FacesMessage msg = new FacesMessage(severity, summary, detail);
 | 
			
		||||
        FacesContext.getCurrentInstance().addMessage(null, msg);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    @PostConstruct
 | 
			
		||||
    public void init() {
 | 
			
		||||
        try {
 | 
			
		||||
            //suppliers.dms.listAll();
 | 
			
		||||
        } catch (Exception e) {
 | 
			
		||||
            System.out.println(e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl;
 | 
			
		||||
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public interface DBase<T>
 | 
			
		||||
{
 | 
			
		||||
  List<T> listAll();
 | 
			
		||||
  
 | 
			
		||||
  int update( T t)
 | 
			
		||||
          throws SQLException;
 | 
			
		||||
  
 | 
			
		||||
  int delete(T t)
 | 
			
		||||
          throws SQLException;
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl;
 | 
			
		||||
 | 
			
		||||
import jakarta.faces.application.FacesMessage;
 | 
			
		||||
import jakarta.faces.component.UIComponent;
 | 
			
		||||
import jakarta.faces.context.FacesContext;
 | 
			
		||||
import jakarta.faces.validator.FacesValidator;
 | 
			
		||||
import jakarta.faces.validator.Validator;
 | 
			
		||||
import jakarta.faces.validator.ValidatorException;
 | 
			
		||||
import java.text.ParseException;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
 | 
			
		||||
@FacesValidator("dateValidator")
 | 
			
		||||
public class DateValidator implements Validator<String> {
 | 
			
		||||
 | 
			
		||||
    private static final String DATE_PATTERN = "yyyy-MM-dd";
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void validate(FacesContext context, UIComponent component, String value) throws ValidatorException {
 | 
			
		||||
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_PATTERN);
 | 
			
		||||
        sdf.setLenient(false);
 | 
			
		||||
        try {
 | 
			
		||||
            sdf.parse(value);
 | 
			
		||||
        } catch (ParseException e) {
 | 
			
		||||
            throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid date format", "Date must be in 'yyyy-MM-dd' format"));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,99 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl;
 | 
			
		||||
 | 
			
		||||
import java.sql.Connection;
 | 
			
		||||
import java.sql.DriverManager;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.text.ParseException;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public class UtilitiesDatabase
 | 
			
		||||
{
 | 
			
		||||
     public Connection connection( 
 | 
			
		||||
        String databaseName,
 | 
			
		||||
        String userName,
 | 
			
		||||
        String password,
 | 
			
		||||
        String URL2 
 | 
			
		||||
 | 
			
		||||
     ) //throws InstantiationException, IllegalAccessException
 | 
			
		||||
    {
 | 
			
		||||
/*
 | 
			
		||||
        String databaseName = "suppliers_parts_23";
 | 
			
		||||
        String userName = "root";
 | 
			
		||||
        String password = "root";
 | 
			
		||||
        String URL2 = "com.mysql.jdbc.Driver";
 | 
			
		||||
        Connection con = null;
 | 
			
		||||
*/
 | 
			
		||||
    Connection con;
 | 
			
		||||
        try
 | 
			
		||||
          {// Load Sun's jdbc driver
 | 
			
		||||
            Class.forName(URL2).newInstance();
 | 
			
		||||
            System.out.println("JDBC Driver loaded!");
 | 
			
		||||
          }
 | 
			
		||||
        catch (Exception e) // driver not found
 | 
			
		||||
          {
 | 
			
		||||
            System.err.println("Unable to load database driver");
 | 
			
		||||
            System.err.println("Details : " + e);
 | 
			
		||||
            return null;
 | 
			
		||||
          }
 | 
			
		||||
        String ip = "localhost"; //internet connection
 | 
			
		||||
        String url = "jdbc:mysql://" + ip + ":3306/" + databaseName + "?allowPublicKeyRetrieval=true&useSSL=false";
 | 
			
		||||
        try
 | 
			
		||||
          {
 | 
			
		||||
            con = DriverManager.getConnection(url, userName, password);
 | 
			
		||||
            con.setReadOnly(false);
 | 
			
		||||
          }
 | 
			
		||||
        catch (Exception e)
 | 
			
		||||
          {
 | 
			
		||||
            System.err.println(e.toString());
 | 
			
		||||
            return null;
 | 
			
		||||
          }
 | 
			
		||||
        System.out.println("connection successfull");
 | 
			
		||||
        return con;
 | 
			
		||||
    }
 | 
			
		||||
     
 | 
			
		||||
     
 | 
			
		||||
      public void closeDatabaseConnection( Connection con)
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
          {
 | 
			
		||||
            if (con != null)
 | 
			
		||||
              {
 | 
			
		||||
                con.close();
 | 
			
		||||
              }
 | 
			
		||||
          }
 | 
			
		||||
        catch (SQLException e)
 | 
			
		||||
          {
 | 
			
		||||
            System.out.println(e);
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
          }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
      
 | 
			
		||||
public static java.sql.Date stringDateToSqlDate(String sDate)
 | 
			
		||||
    {
 | 
			
		||||
        java.util.Date date = null;
 | 
			
		||||
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 | 
			
		||||
        try
 | 
			
		||||
          {
 | 
			
		||||
            date = sdf.parse(sDate);
 | 
			
		||||
          }
 | 
			
		||||
        catch (ParseException e)
 | 
			
		||||
          {
 | 
			
		||||
            e.printStackTrace();
 | 
			
		||||
          }
 | 
			
		||||
        return new  java.sql.Date( date.getTime() );
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
//public static java {
 | 
			
		||||
//    java.sqlDate sqldate = stringDateToSqlDate();
 | 
			
		||||
//}
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,71 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl.part;
 | 
			
		||||
 | 
			
		||||
import edu.slcc.asdv.bl.DBase;
 | 
			
		||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
 | 
			
		||||
import edu.slcc.asdv.bl.supplier.Supplier;
 | 
			
		||||
import java.sql.Connection;
 | 
			
		||||
import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public class DatabaseManipulationPart implements DBase<Part>
 | 
			
		||||
{
 | 
			
		||||
    private static final String DATABASE_NAME = "suppliers_parts_23";
 | 
			
		||||
private static final String USER_NAME = "java";
 | 
			
		||||
private static final String PASSWORD = "8VCS49HT2xjsEZvC";
 | 
			
		||||
private static final String DRIVER_URL = "com.mysql.jdbc.Driver";
 | 
			
		||||
 | 
			
		||||
     @Override
 | 
			
		||||
public List<Part> listAll() {
 | 
			
		||||
    List<Part> tablePart = new ArrayList<>();
 | 
			
		||||
    String sqlStr = "SELECT * FROM part";
 | 
			
		||||
    try (Connection con = new UtilitiesDatabase().connection(DATABASE_NAME, USER_NAME, PASSWORD, DRIVER_URL);
 | 
			
		||||
         PreparedStatement ps = con.prepareStatement(sqlStr);
 | 
			
		||||
         ResultSet rs = ps.executeQuery()) {
 | 
			
		||||
        
 | 
			
		||||
        while (rs.next()) {
 | 
			
		||||
            String pNumber = rs.getString(1);
 | 
			
		||||
            String pName = rs.getString(2);
 | 
			
		||||
            String color = rs.getString(3);
 | 
			
		||||
            String city = rs.getString(4);
 | 
			
		||||
            Part part = new Part(pNumber, pName, color, city);
 | 
			
		||||
            tablePart.add(part);
 | 
			
		||||
        }
 | 
			
		||||
    } catch (SQLException ex) {
 | 
			
		||||
        throw new RuntimeException("Error fetching parts from database", ex);
 | 
			
		||||
    }
 | 
			
		||||
    return tablePart;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Override
 | 
			
		||||
public int update(Part part) throws SQLException {
 | 
			
		||||
    String sqlStr = "UPDATE part SET pname=?, color=?, city=? WHERE pnumber=?";
 | 
			
		||||
    try (Connection con = new UtilitiesDatabase().connection(DATABASE_NAME, USER_NAME, PASSWORD, DRIVER_URL);
 | 
			
		||||
         PreparedStatement ps = con.prepareStatement(sqlStr)) {
 | 
			
		||||
        
 | 
			
		||||
        ps.setString(1, part.getPname());
 | 
			
		||||
        ps.setString(2, part.getColor());
 | 
			
		||||
        ps.setString(3, part.getCity());
 | 
			
		||||
        ps.setString(4, part.getPnumber());
 | 
			
		||||
        return ps.executeUpdate();
 | 
			
		||||
        
 | 
			
		||||
    } catch (SQLException ex) {
 | 
			
		||||
        throw new RuntimeException("Error updating part in database", ex);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int delete(Part t) throws SQLException {
 | 
			
		||||
        throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,86 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl.part;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public class Part
 | 
			
		||||
{
 | 
			
		||||
    private String pnumber;
 | 
			
		||||
    private String pname;
 | 
			
		||||
    private String color;
 | 
			
		||||
    private String city;
 | 
			
		||||
    
 | 
			
		||||
    private boolean modify;
 | 
			
		||||
 | 
			
		||||
    public boolean isModify()
 | 
			
		||||
    {
 | 
			
		||||
        return modify;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setModify(boolean modify)
 | 
			
		||||
    {
 | 
			
		||||
        this.modify = modify;
 | 
			
		||||
    }
 | 
			
		||||
    public Part(String pnumber, String pname, String color, String city)
 | 
			
		||||
    {
 | 
			
		||||
        this.pnumber = pnumber;
 | 
			
		||||
        this.pname = pname;
 | 
			
		||||
        this.color = color;
 | 
			
		||||
        this.city = city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public String getColor()
 | 
			
		||||
    {
 | 
			
		||||
        return color;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setColor(String color)
 | 
			
		||||
    {
 | 
			
		||||
        this.color = color;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getCity()
 | 
			
		||||
    {
 | 
			
		||||
        return city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCity(String city)
 | 
			
		||||
    {
 | 
			
		||||
        this.city = city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPname()
 | 
			
		||||
    {
 | 
			
		||||
        return pname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPname(String pname)
 | 
			
		||||
    {
 | 
			
		||||
        this.pname = pname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPnumber()
 | 
			
		||||
    {
 | 
			
		||||
        return pnumber;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPnumber(String pnumber)
 | 
			
		||||
    {
 | 
			
		||||
        this.pnumber = pnumber;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString()
 | 
			
		||||
    {
 | 
			
		||||
        return "Part{" + "pnumber=" + pnumber + ", pname=" + pname + ", color=" + color + ", city=" + city + '}';
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,151 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl.supplier;
 | 
			
		||||
 | 
			
		||||
import edu.slcc.asdv.bl.DBase;
 | 
			
		||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
 | 
			
		||||
import java.sql.Connection;
 | 
			
		||||
import java.sql.ParameterMetaData;
 | 
			
		||||
import java.sql.PreparedStatement;
 | 
			
		||||
import java.sql.ResultSet;
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public class DatabaseManipulationSupplier implements DBase<Supplier> {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public List<Supplier> listAll() {
 | 
			
		||||
        List<Supplier> tableSuppliers = new ArrayList<Supplier>();
 | 
			
		||||
        String databaseName = "suppliers_parts_23";
 | 
			
		||||
        String userName = "java";
 | 
			
		||||
        String password = "8VCS49HT2xjsEZvC";
 | 
			
		||||
        String URL2 = "com.mysql.jdbc.Driver";
 | 
			
		||||
        Connection con = new UtilitiesDatabase().connection(
 | 
			
		||||
                databaseName, userName, password, URL2);
 | 
			
		||||
        PreparedStatement ps = null;
 | 
			
		||||
        try {
 | 
			
		||||
            if (con == null) {
 | 
			
		||||
                throw new RuntimeException("cannot connect to database");
 | 
			
		||||
            }
 | 
			
		||||
            String table = "";
 | 
			
		||||
            ResultSet rs = null;
 | 
			
		||||
            String sqlStr = "SELECT  *  FROM supplier";
 | 
			
		||||
            //prepare statement
 | 
			
		||||
            ps = con.prepareStatement(sqlStr);
 | 
			
		||||
            //execute
 | 
			
		||||
            rs = ps.executeQuery();
 | 
			
		||||
            int row = 0;
 | 
			
		||||
            while (rs.next()) {
 | 
			
		||||
                String sNumber = rs.getString(1);
 | 
			
		||||
                String sName = rs.getString(2);
 | 
			
		||||
                String bdate = rs.getDate(3) + " ";
 | 
			
		||||
                int status = rs.getInt(4);
 | 
			
		||||
                String city = rs.getString(5) + " ";
 | 
			
		||||
                Supplier supplier = new Supplier(sNumber, sName, bdate, status, city);
 | 
			
		||||
                tableSuppliers.add(supplier);
 | 
			
		||||
                row++;
 | 
			
		||||
            }
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            ex.printStackTrace();
 | 
			
		||||
        } finally {
 | 
			
		||||
            try {
 | 
			
		||||
                new UtilitiesDatabase().closeDatabaseConnection(con);
 | 
			
		||||
                // close the resources 
 | 
			
		||||
                if (ps != null) {
 | 
			
		||||
                    ps.close();
 | 
			
		||||
                }
 | 
			
		||||
            } catch (SQLException sqle) {
 | 
			
		||||
                sqle.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return tableSuppliers;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int update(Supplier t)
 | 
			
		||||
            throws SQLException {
 | 
			
		||||
        String databaseName = "suppliers_parts_23";
 | 
			
		||||
        String userName = "java";
 | 
			
		||||
        String password = "8VCS49HT2xjsEZvC";
 | 
			
		||||
        String URL2 = "com.mysql.jdbc.Driver";
 | 
			
		||||
        Connection con = new UtilitiesDatabase().connection(
 | 
			
		||||
                databaseName, userName, password, URL2);
 | 
			
		||||
        int result = 0;
 | 
			
		||||
        PreparedStatement updateSupplier = null;
 | 
			
		||||
        try {
 | 
			
		||||
            if (con == null) {
 | 
			
		||||
                throw new RuntimeException("cannot connect to database");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            updateSupplier = con.prepareStatement(
 | 
			
		||||
                    "UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
 | 
			
		||||
            updateSupplier.setString(1, t.getSnumber());
 | 
			
		||||
            updateSupplier.setString(2, t.getSname());
 | 
			
		||||
            updateSupplier.setInt(3, t.getStatus());
 | 
			
		||||
            java.sql.Date bd = UtilitiesDatabase.stringDateToSqlDate(t.getBirthday());
 | 
			
		||||
            updateSupplier.setDate(4, bd);
 | 
			
		||||
            updateSupplier.setString(5, t.getCity());
 | 
			
		||||
            updateSupplier.setString(6, t.getSnumber());
 | 
			
		||||
            result = updateSupplier.executeUpdate();
 | 
			
		||||
        } catch (SQLException ex) {
 | 
			
		||||
            System.err.println(ex.toString());
 | 
			
		||||
            throw ex;
 | 
			
		||||
        } finally {
 | 
			
		||||
            try {
 | 
			
		||||
                new UtilitiesDatabase().closeDatabaseConnection(con);
 | 
			
		||||
                // close the resources 
 | 
			
		||||
                if (updateSupplier != null) {
 | 
			
		||||
                    updateSupplier.close();
 | 
			
		||||
                }
 | 
			
		||||
            } catch (SQLException sqle) {
 | 
			
		||||
                sqle.printStackTrace();
 | 
			
		||||
                throw sqle;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int delete(Supplier t) throws SQLException {
 | 
			
		||||
        String databaseName = "suppliers_parts_23";
 | 
			
		||||
        String userName = "java";
 | 
			
		||||
        String password = "8VCS49HT2xjsEZvC";
 | 
			
		||||
        String URL2 = "com.mysql.jdbc.Driver";
 | 
			
		||||
        Connection con = new UtilitiesDatabase().connection(
 | 
			
		||||
                databaseName, userName, password, URL2);
 | 
			
		||||
        int result = 0;
 | 
			
		||||
        PreparedStatement deleteSupplier = null;
 | 
			
		||||
        try {
 | 
			
		||||
            if (con == null) {
 | 
			
		||||
                throw new RuntimeException("cannot connect to database");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            deleteSupplier = con.prepareStatement(
 | 
			
		||||
                    "DELETE FROM supplier WHERE snumber=?");
 | 
			
		||||
            deleteSupplier.setString(1, t.getSnumber());
 | 
			
		||||
            result = deleteSupplier.executeUpdate();
 | 
			
		||||
        } catch (SQLException ex) {
 | 
			
		||||
            System.err.println(ex.toString());
 | 
			
		||||
            throw ex;
 | 
			
		||||
        } finally {
 | 
			
		||||
            try {
 | 
			
		||||
                new UtilitiesDatabase().closeDatabaseConnection(con);
 | 
			
		||||
                if (deleteSupplier != null) {
 | 
			
		||||
                    deleteSupplier.close();
 | 
			
		||||
                }
 | 
			
		||||
            } catch (SQLException sqle) {
 | 
			
		||||
                sqle.printStackTrace();
 | 
			
		||||
                throw sqle;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,136 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 | 
			
		||||
 */
 | 
			
		||||
package edu.slcc.asdv.bl.supplier;
 | 
			
		||||
 | 
			
		||||
import edu.slcc.asdv.bl.UtilitiesDatabase;
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.text.SimpleDateFormat;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 * @author asdv5
 | 
			
		||||
 */
 | 
			
		||||
public class Supplier implements Serializable {
 | 
			
		||||
 | 
			
		||||
    private String snumber;
 | 
			
		||||
    private String sname;
 | 
			
		||||
    private String birthday;
 | 
			
		||||
    private int status;
 | 
			
		||||
    private String city;
 | 
			
		||||
    private Date birthdayDate;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the value of birthdayDate
 | 
			
		||||
     *
 | 
			
		||||
     * @return the value of birthdayDate
 | 
			
		||||
     */
 | 
			
		||||
    public Date getBirthdayDate()
 | 
			
		||||
    {
 | 
			
		||||
        birthdayDate = UtilitiesDatabase.stringDateToJavaUtilitiesDate(this.birthday);
 | 
			
		||||
        return birthdayDate;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Set the value of birthdayDate
 | 
			
		||||
     *
 | 
			
		||||
     * @param birthdayDate new value of birthdayDate
 | 
			
		||||
     */
 | 
			
		||||
        /*
 | 
			
		||||
    public void setBirthdayDate(Date birthdayDate)
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
       // this.birthday = birthdayDate;
 | 
			
		||||
        int year = this.birthdayDate.getYear() + 1900;
 | 
			
		||||
        int month = this.birthdayDate.getMonth()+1;
 | 
			
		||||
        int day = this.birthdayDate.getDate();
 | 
			
		||||
        this.birthdayDate = Integer.toString(year) + "-" + 
 | 
			
		||||
                                         //Integer.toString(month) + "-" +
 | 
			
		||||
                                         Integer.toString(day);
 | 
			
		||||
    }
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
    private boolean modify;
 | 
			
		||||
 | 
			
		||||
    public boolean isModify()
 | 
			
		||||
    {
 | 
			
		||||
        return modify;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setModify(boolean modify)
 | 
			
		||||
    {
 | 
			
		||||
        this.modify = modify;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Supplier(String snumber, String sname, String birthday, int status, String city)
 | 
			
		||||
    {
 | 
			
		||||
        this.snumber = snumber;
 | 
			
		||||
        this.sname = sname;
 | 
			
		||||
        this.birthday = birthday;
 | 
			
		||||
        this.status = status;
 | 
			
		||||
        this.city = city;
 | 
			
		||||
        this.modify = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getCity()
 | 
			
		||||
    {
 | 
			
		||||
        return city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setCity(String city)
 | 
			
		||||
    {
 | 
			
		||||
        this.city = city;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getStatus()
 | 
			
		||||
    {
 | 
			
		||||
        return status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setStatus(int status)
 | 
			
		||||
    {
 | 
			
		||||
        this.status = status;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getBirthday()
 | 
			
		||||
    {
 | 
			
		||||
        return birthday;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setBirthday(String birthday)
 | 
			
		||||
    {
 | 
			
		||||
        this.birthday = birthday;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    public String getSname()
 | 
			
		||||
    {
 | 
			
		||||
        return sname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSname(String sname)
 | 
			
		||||
    {
 | 
			
		||||
        System.out.println(sname);
 | 
			
		||||
        this.sname = sname;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getSnumber()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        return snumber;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setSnumber(String snumber)
 | 
			
		||||
    {
 | 
			
		||||
        this.snumber = snumber;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString()
 | 
			
		||||
    {
 | 
			
		||||
        return "Supplier{" + "snumber=" + snumber + ", sname=" + sname + ", birthday=" + birthday + ", status=" + status + ", city=" + city + '}';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<persistence version="3.0" xmlns="https://jakarta.ee/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">
 | 
			
		||||
    <!-- Define Persistence Unit -->
 | 
			
		||||
    <persistence-unit name="my_persistence_unit">
 | 
			
		||||
        
 | 
			
		||||
    </persistence-unit>
 | 
			
		||||
</persistence>
 | 
			
		||||
@@ -0,0 +1,6 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
 | 
			
		||||
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
       xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_3_0.xsd"
 | 
			
		||||
       bean-discovery-mode="all">
 | 
			
		||||
</beans>
 | 
			
		||||
@@ -0,0 +1,25 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
 | 
			
		||||
<!--
 | 
			
		||||
    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 | 
			
		||||
    
 | 
			
		||||
    This program and the accompanying materials are made available under the
 | 
			
		||||
    terms of the Eclipse Public License v. 2.0, which is available at
 | 
			
		||||
    http://www.eclipse.org/legal/epl-2.0.
 | 
			
		||||
 | 
			
		||||
    This Source Code may also be made available under the following Secondary
 | 
			
		||||
    Licenses when the conditions for such availability set forth in the
 | 
			
		||||
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 | 
			
		||||
    version 2 with the GNU Classpath Exception, which is available at
 | 
			
		||||
    https://www.gnu.org/software/classpath/license.html.
 | 
			
		||||
 | 
			
		||||
    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 | 
			
		||||
-->
 | 
			
		||||
<glassfish-web-app error-url="">
 | 
			
		||||
  <class-loader delegate="true"/>
 | 
			
		||||
  <jsp-config>
 | 
			
		||||
    <property name="keepgenerated" value="true">
 | 
			
		||||
      <description>Keep a copy of the generated servlet class' java code.</description>
 | 
			
		||||
    </property>
 | 
			
		||||
  </jsp-config>
 | 
			
		||||
</glassfish-web-app>
 | 
			
		||||
@@ -0,0 +1,24 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<web-app version="5.0" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd">
 | 
			
		||||
    <context-param>
 | 
			
		||||
        <param-name>jakarta.faces.PROJECT_STAGE</param-name>
 | 
			
		||||
        <param-value>Development</param-value>
 | 
			
		||||
    </context-param>
 | 
			
		||||
    <servlet>
 | 
			
		||||
        <servlet-name>Faces Servlet</servlet-name>
 | 
			
		||||
        <servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
 | 
			
		||||
        <load-on-startup>1</load-on-startup>
 | 
			
		||||
    </servlet>
 | 
			
		||||
    <servlet-mapping>
 | 
			
		||||
        <servlet-name>Faces Servlet</servlet-name>
 | 
			
		||||
        <url-pattern>/faces/*</url-pattern>
 | 
			
		||||
    </servlet-mapping>
 | 
			
		||||
    <session-config>
 | 
			
		||||
        <session-timeout>
 | 
			
		||||
            30
 | 
			
		||||
        </session-timeout>
 | 
			
		||||
    </session-config>
 | 
			
		||||
    <welcome-file-list>
 | 
			
		||||
        <welcome-file>faces/supplier.xhtml</welcome-file>
 | 
			
		||||
    </welcome-file-list>
 | 
			
		||||
</web-app>
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
<?xml version='1.0' encoding='UTF-8' ?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml"
 | 
			
		||||
      xmlns:h="http://xmlns.jcp.org/jsf/html">
 | 
			
		||||
    <h:head>
 | 
			
		||||
        <h:outputStylesheet library="css" name="styles.css"/>
 | 
			
		||||
        <title>Supplier Parts DB</title>
 | 
			
		||||
    </h:head>
 | 
			
		||||
    <h:body>
 | 
			
		||||
                 
 | 
			
		||||
        <h:form>
 | 
			
		||||
            <h1>   Suppliers-Parts Database </h1>
 | 
			
		||||
                
 | 
			
		||||
            <h:panelGrid columns="2">
 | 
			
		||||
                <h:outputLabel styleClass="label" value="Supplier ID:"/>
 | 
			
		||||
                <h:inputText value="#{suppliers.snumber}"/>
 | 
			
		||||
            </h:panelGrid>   
 | 
			
		||||
 | 
			
		||||
            <h:panelGrid columns="8">
 | 
			
		||||
                <h:outputLabel styleClass="label" value="Supplier Name"/>
 | 
			
		||||
                <h:inputText 
 | 
			
		||||
                    value="#{suppliers.sname}"/>
 | 
			
		||||
                <h:outputLabel styleClass="label" value="Status" />
 | 
			
		||||
                <h:inputText 
 | 
			
		||||
                    value="#{suppliers.status}"/>
 | 
			
		||||
                <h:outputLabel styleClass="label" value="Birthday" />
 | 
			
		||||
                <h:inputText value="#{suppliers.birthday}"/> 
 | 
			
		||||
                
 | 
			
		||||
                <h:outputLabel styleClass="label" value="City" />
 | 
			
		||||
                <h:inputText 
 | 
			
		||||
                    value="#{suppliers.city}"/>
 | 
			
		||||
            </h:panelGrid>
 | 
			
		||||
 | 
			
		||||
            <h:panelGrid columns="6">
 | 
			
		||||
                <h:commandButton styleClass="button" value="View Supplier" action="#{suppliers.viewSupplier()}"/>
 | 
			
		||||
                <h:commandButton value="Insert Supplier" action="#{suppliers.insertSupplier}"/>
 | 
			
		||||
                <h:commandButton value="Update Supplier" action="#{suppliers.updateSupplier}"/>
 | 
			
		||||
                <h:commandButton value="Delete Supplier" action="#{suppliers.deleteSupplier}"/>
 | 
			
		||||
                <h:commandButton value="List All Suppliers" action="#{suppliers.listAll}"/>
 | 
			
		||||
                <h:commandButton value="Clear" action="#{suppliers.clear}"/>
 | 
			
		||||
            </h:panelGrid>
 | 
			
		||||
 | 
			
		||||
            <h:panelGrid>
 | 
			
		||||
                <h:outputText escape="false" style="color:green" 
 | 
			
		||||
                              value="#{suppliers.result}">
 | 
			
		||||
                </h:outputText>
 | 
			
		||||
            </h:panelGrid>
 | 
			
		||||
 | 
			
		||||
        </h:form>
 | 
			
		||||
    </h:body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -0,0 +1,68 @@
 | 
			
		||||
<?xml version='1.0' encoding='UTF-8' ?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml"
 | 
			
		||||
      xmlns:h="http://xmlns.jcp.org/jsf/html"
 | 
			
		||||
      xmlns:f="http://xmlns.jcp.org/jsf/core"
 | 
			
		||||
      xmlns:p="http://primefaces.org/ui">
 | 
			
		||||
    <h:head>
 | 
			
		||||
        <title>Facelet Title</title>
 | 
			
		||||
    </h:head>
 | 
			
		||||
    <h:body>
 | 
			
		||||
        <h:form>
 | 
			
		||||
            <p:growl id="globalgrowl" showDetail="false" showSummary="true"  life="2000"/>
 | 
			
		||||
 | 
			
		||||
            <h:dataTable  var="part"  
 | 
			
		||||
                          value="#{supplierBean.getParts()}"  >
 | 
			
		||||
                <f:facet name="header"> <h:outputText value="Parts Table" style="font-size: 1.2em"/></f:facet>                
 | 
			
		||||
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="pnumber" /></f:facet>                
 | 
			
		||||
 | 
			
		||||
                    <h:inputText disabled ="true" value="#{part.pnumber}" maxlength="3" 
 | 
			
		||||
                                 required="true" requiredMessage="PNumber is required">
 | 
			
		||||
                        <f:validateLength maximum="3" />
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
                    <h:message for="pnumber" />
 | 
			
		||||
                </h:column>
 | 
			
		||||
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="pname" /></f:facet>                
 | 
			
		||||
 | 
			
		||||
                    <h:inputText disabled ="#{!part.modify}"  value="#{part.pname}" maxlength="20" 
 | 
			
		||||
                                 required="true" requiredMessage="Pname is required">
 | 
			
		||||
                        <f:validateLength maximum="20" />
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
                    <h:message for="pname" />
 | 
			
		||||
                </h:column>
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="color" /></f:facet>                
 | 
			
		||||
 | 
			
		||||
                    <h:inputText disabled ="#{!part.modify}" value="#{part.color}" maxlength="20" 
 | 
			
		||||
                                 required="true" requiredMessage="color is required">
 | 
			
		||||
                        <f:validateLength maximum="20" />
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
                    <h:message for="pnumber" />
 | 
			
		||||
                </h:column>
 | 
			
		||||
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="city" /></f:facet>                
 | 
			
		||||
 | 
			
		||||
                    <h:inputText disabled ="#{!part.modify}"  value="#{part.city}" maxlength="20" required="true" 
 | 
			
		||||
                                 requiredMessage="city is required">
 | 
			
		||||
                        <f:validateLength maximum="20" />
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
                    <h:message for="pnumber" />
 | 
			
		||||
                </h:column>  
 | 
			
		||||
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="update" /></f:facet>                
 | 
			
		||||
                    <h:selectBooleanCheckbox  onclick="submit()"
 | 
			
		||||
                                              value="#{part.modify}">
 | 
			
		||||
                    </h:selectBooleanCheckbox >
 | 
			
		||||
                </h:column>  
 | 
			
		||||
            </h:dataTable>
 | 
			
		||||
            <h:commandButton value="Save" action="#{supplierBean.saveFromUpdatePart()}" />
 | 
			
		||||
            <h:commandButton action="supplier" value="supplier" />
 | 
			
		||||
        </h:form>
 | 
			
		||||
    </h:body>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -0,0 +1,71 @@
 | 
			
		||||
.body {
 | 
			
		||||
   background: #eee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.button {
 | 
			
		||||
	margin: 10px;
 | 
			
		||||
	border-left: thin solid darkGray;
 | 
			
		||||
	border-bottom: thin solid darkGray;
 | 
			
		||||
	border-top: thin solid lightGray;
 | 
			
		||||
	border-right: thin solid lightGray;
 | 
			
		||||
        color: #777;
 | 
			
		||||
        background: #A7C942;
 | 
			
		||||
        font-family: "Comic Sans MS";
 | 
			
		||||
        border-radius: 20%;
 | 
			
		||||
}
 | 
			
		||||
h1 
 | 
			
		||||
{
 | 
			
		||||
   vertical-align: top;
 | 
			
		||||
   text-align: middle;
 | 
			
		||||
   font-style: italic;
 | 
			
		||||
   color: #888;
 | 
			
		||||
   font-size: 2em;
 | 
			
		||||
   font-family: "Comic Sans MS";
 | 
			
		||||
   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.label
 | 
			
		||||
{
 | 
			
		||||
   color: #888;
 | 
			
		||||
   font-size: 0.8em;
 | 
			
		||||
   font-family: "Comic Sans MS";   
 | 
			
		||||
}
 | 
			
		||||
.leftImage {
 | 
			
		||||
   float: left;
 | 
			
		||||
   margin-right: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.backLink {
 | 
			
		||||
	font-style: italic;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.tableHeader {
 | 
			
		||||
    font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
 | 
			
		||||
    border-collapse:collapse;
 | 
			
		||||
    font-size:1.1em;
 | 
			
		||||
    text-align:left;
 | 
			
		||||
    padding-top:5px;
 | 
			
		||||
    padding-bottom:4px;
 | 
			
		||||
    background-color:#A7C942;
 | 
			
		||||
    color:white;
 | 
			
		||||
    border:1px solid #98bf21;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.oddTableRow {
 | 
			
		||||
    border:1px solid #98bf21;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.evenTableRow {
 | 
			
		||||
    background-color: #eeeeee;
 | 
			
		||||
    font-size:1em;
 | 
			
		||||
 | 
			
		||||
    padding:3px 7px 2px 7px;
 | 
			
		||||
 | 
			
		||||
    color:#000000;
 | 
			
		||||
    background-color:#EAF2D3;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.table {
 | 
			
		||||
    border:1px solid green;
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,67 @@
 | 
			
		||||
<?xml version='1.0' encoding='UTF-8' ?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml"
 | 
			
		||||
      xmlns:h="http://xmlns.jcp.org/jsf/html"
 | 
			
		||||
      xmlns:f="http://xmlns.jcp.org/jsf/core"
 | 
			
		||||
      xmlns:p="http://primefaces.org/ui">
 | 
			
		||||
    <h:head>
 | 
			
		||||
        <title>Facelet Title</title>
 | 
			
		||||
    </h:head>
 | 
			
		||||
    <title>Supplier Information</title>
 | 
			
		||||
    <h:body>
 | 
			
		||||
        <h:form>
 | 
			
		||||
            <p:growl id="globalgrowl" showDetail="true" showSummary="true" life="2000"/>
 | 
			
		||||
            <h:dataTable var="supplier" value="#{supplierBean.getSuppliers()}" styleClass="table table-bordered">
 | 
			
		||||
                <h:column>
 | 
			
		||||
                    <f:facet name="header"> <h:outputText value="update" /></f:facet>                
 | 
			
		||||
                    <h:selectBooleanCheckbox  onclick="submit()"
 | 
			
		||||
                                              value="#{supplier.modify}">
 | 
			
		||||
                    </h:selectBooleanCheckbox>
 | 
			
		||||
                    <f:facet name="header"> 
 | 
			
		||||
                        <h:outputText value="sname"/>
 | 
			
		||||
                    </f:facet>                
 | 
			
		||||
                    <h:inputText value="#{supplier.sname}" disabled="#{!supplier.modify}" required="true" requiredMessage="Name is required">
 | 
			
		||||
                        <f:validateLength minimum="2" maximum="20" />
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
                </h:column>
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> 
 | 
			
		||||
                        <h:outputText value="birthday"/>
 | 
			
		||||
                    </f:facet>                
 | 
			
		||||
                    <p:calendar value="#{supplier.birthday}" disabled="#{!supplier.modify}" required="true" pattern="yyy/MM/dd">
 | 
			
		||||
                        <f:validator validatorId="dateValidator"/>
 | 
			
		||||
                    </p:calendar>
 | 
			
		||||
                </h:column>
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> 
 | 
			
		||||
                        <h:outputText value="status"/>
 | 
			
		||||
                    </f:facet>                
 | 
			
		||||
                    <h:inputText value="#{supplier.status}" disabled="#{!supplier.modify}" required="true" requiredMessage="Status is required">
 | 
			
		||||
                        <f:validateLength minimum="0" maximum="20"/>
 | 
			
		||||
                    </h:inputText>
 | 
			
		||||
 | 
			
		||||
                </h:column> 
 | 
			
		||||
                <h:column> 
 | 
			
		||||
                    <f:facet name="header"> 
 | 
			
		||||
                        <h:outputText value="city"/>
 | 
			
		||||
                    </f:facet>                
 | 
			
		||||
 | 
			
		||||
                </h:column>
 | 
			
		||||
                <h:column>
 | 
			
		||||
                    <p:commandButton  title="Delete Supplier"
 | 
			
		||||
                                      value="Delete Exam" styleClass="ui-button-raised ui-button-danger" 
 | 
			
		||||
                                      icon="pi pi-trash" 
 | 
			
		||||
                                      onclick="PF('asdv-dlg-delete').show();"
 | 
			
		||||
                                      >
 | 
			
		||||
                    </p:commandButton  >
 | 
			
		||||
                </h:column>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            </h:dataTable>
 | 
			
		||||
            <h:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
 | 
			
		||||
            <h:commandButton value="part" action="part"/>
 | 
			
		||||
 | 
			
		||||
        </h:form>
 | 
			
		||||
    </h:body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user