Mr. Markou you stress me out so freaking much

This commit is contained in:
2023-11-19 23:18:28 -06:00
parent 473a7e61e9
commit 1896014238
149 changed files with 5677 additions and 2 deletions

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>9.0-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>gfv700ee10</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

View File

@@ -0,0 +1,88 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>Suppliers_Parts_Calendar_Primefaces</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Suppliers_Parts_Calendar_Primefaces</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>9.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>12.0.0</version>
<classifier>jakarta</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -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 {
}

View File

@@ -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();
}
}

View File

@@ -0,0 +1,166 @@
/*
* 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.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 jakarta.faces.event.ComponentSystemEvent;
import jakarta.inject.Inject;
import java.io.Serializable;
import java.util.List;
@Named(value = "supplierBean")
@SessionScoped
public class SupplierBean implements Serializable {
//DBase dms = new DatabaseManipulationSupplier();
@Inject
DatabaseManipulationSupplier dms;
List<Supplier> suppliers;
/*
public SupplierBean()
{
try
{
suppliers = dms.listAll();
}
catch (Exception e)
{
suppliers = null;
}
}
*/
@PostConstruct
public void init()
{
try {
suppliers = dms.listAll();
} catch (Exception e) {
suppliers = null;
}
}
public DatabaseManipulationSupplier getDms()
{
return dms;
}
public void displayExceptionMessageAtPreRenderListener(ComponentSystemEvent event)
{
if (suppliers == null) {
addMessage("Database problem occured.",
"", FacesMessage.SEVERITY_ERROR);
}
}
public List<Supplier> getSuppliers()
{
return suppliers;
}
public void insertSupplier()
{
System.out.println("insertSupplier(Supplier s)");
suppliers.add(new Supplier());
}
public void deleteSupplier(Supplier s)
{
if (suppliers == null) {
return;
}
int totalRowsUpdated = 0;
try {
int rowsUpdated = this.dms.delete(s);
if (rowsUpdated > 0) {
suppliers = dms.listAll();
totalRowsUpdated += rowsUpdated;
}
} catch (Exception e) {
String msg = ("Numbers of rows updated is 0.");
addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
}
if (totalRowsUpdated > 0) {
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
}
}
public void deleteSupplier()
{
if (suppliers == null) {
return;
}
int totalRowsUpdated = 0;
for (Supplier s : this.suppliers) {
if (s.isModify()) {
try {
int rowsUpdated = this.dms.delete(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;
}
}
}
if (totalRowsUpdated > 0) {
try {
suppliers = dms.listAll();
} catch (Exception e) {
suppliers = null;
addMessage("Unable to obtain suppliers!", "no exception", FacesMessage.SEVERITY_INFO);
}
String msg = ("Numbers of rows updated: " + totalRowsUpdated);
addMessage(msg, "no exception", FacesMessage.SEVERITY_INFO);
}
}
public void saveFromUpdate()
{
if (suppliers == null) {
return;
}
int totalRowsUpdated = 0;
for (Supplier s : this.suppliers) {
if (s.isModify()) {
try {
int rowsUpdated = this.dms.update(s);
if (rowsUpdated > 0) {
System.out.println(s);
totalRowsUpdated += rowsUpdated;
s.setModify(false);
}
} catch (Exception e) {
String msg = ("Numbers of rows updated is 0.");
addMessage(msg, e.getMessage(), FacesMessage.SEVERITY_ERROR);
break;
}
}
}
if (totalRowsUpdated > 0) {
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);
}
}

View File

@@ -0,0 +1,30 @@
/*
* 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.io.Serializable;
import java.sql.SQLException;
import java.util.List;
/**
*
* @author asdv5
*/
public interface DBase<T>
{
List<T> listAll()
throws SQLException;
int update( T t)
throws SQLException;
int delete( T t)
throws SQLException;
int insert( T t)
throws SQLException;
}

View File

@@ -0,0 +1,103 @@
/*
* 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.util.Date stringDateToJavaUtilitiesDate(String sDate)
{
java.sql.Date sqldate = stringDateToSqlDate(sDate);
return new java.util.Date(sqldate.getTime() );
}
}

View File

@@ -0,0 +1,104 @@
/*
* 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 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>
{
@Override
public List<Part> listAll()
{
List<Part> tableParts = new ArrayList<Part>();
String databaseName = "suppliers_parts_23";
String userName = "root";
String password = "root";
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 part";
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
int row = 0;
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);
tableParts.add(part);
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 tableParts;
}
public static void main(String[] args)
{
DatabaseManipulationPart dmp = new DatabaseManipulationPart();
System.out.println(dmp.listAll());
}
@Override
public int update(Part t)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public int delete(Part t) throws SQLException
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public int insert(Part t) throws SQLException
{
return -1;
}
}

View File

@@ -0,0 +1,75 @@
/*
* 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;
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 + '}';
}
}

View File

@@ -0,0 +1,228 @@
/*
* 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.io.Serializable;
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 DatabaseManipulationSupplier
implements DBase<Supplier>, Serializable
{
@Override
public List<Supplier> listAll()
throws SQLException
{
// test exception code
//if ( true)
// throw new SQLException();
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 = "";
if ( rs.getDate(3) == null )
{
bdate = "2000-01-01 ";
}
else
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();
throw ex;
}
finally
{
try
{
new UtilitiesDatabase().closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqle)
{
System.out.println(sqle);
sqle.printStackTrace();
throw sqle;
}
}
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 c) 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 ps = null;
try
{
if (con == null)
{
throw new RuntimeException("Database connection failed.");
}
String query = "DELETE FROM supplier WHERE snumber=? ";
ps = con.prepareStatement(query);
ps.setString(1, c.getSnumber());
result = ps.executeUpdate();
}
catch (Exception ex)
{
System.err.println(ex.toString());
}
finally
{
try
{
new UtilitiesDatabase().closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqlee)
{
sqlee.printStackTrace();
}
}
return result;
}
@Override
public int insert(Supplier c) throws SQLException {
String databaseName = "tennis-23";
String userName = "java";
String password = "8VCS49HT2xjsEZvC";
String driver = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(databaseName, userName, password, driver);
///"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?"
String sqlStr = "INSERT INTO suppliers (snumber, sname, status, birthday, city) VALUES (?, ?, ?, ?, ?)";
int result = 0;
try (PreparedStatement ps = con.prepareStatement(sqlStr)) {
ps.setString(1, c.getSnumber());
ps.setString(2, c.getSname());
ps.setInt(3, c.getStatus());
ps.setDate(4, new java.sql.Date(c.getBirth_Date().getTime())); // Converts java.util.Date to java.sql.Date
ps.setString(5, c.getCity());
result = ps.executeUpdate();
} catch (SQLException sqle) {
sqle.printStackTrace();
throw sqle;
} finally {
new UtilitiesDatabase().closeDatabaseConnection(con);
}
return result;
}
}

View File

@@ -0,0 +1,138 @@
/*
* 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;
/**
*
* @author asdv5
*/
public class Supplier implements Serializable
{
private String snumber;
private String sname;
private String birthday;
private int status;
private String city;
private Date birthday_date;
private boolean insertFromDatatable;
private boolean modify;
public boolean isModify()
{
return modify;
}
public void setModify(boolean modify)
{
this.modify = modify;
}
public Supplier()
{
this.modify = true;
insertFromDatatable = true;
birthday = "2000-01-01";
birthday_date = UtilitiesDatabase.stringDateToJavaUtilitiesDate(birthday);
}
public Supplier(String snumber, String sname, String birthday, int status, String city)
{
insertFromDatatable = false;
this.snumber = snumber;
this.sname = sname;
this.birthday = birthday;
this.status = status;
this.city = city;
this.modify = false;
}
public boolean isInsertFromDatatable()
{
return insertFromDatatable;
}
public void setInsertFromDatatable(boolean insertFromDatatable)
{
this.insertFromDatatable = insertFromDatatable;
}
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 Date getBirthday_date()
{
birthday_date = UtilitiesDatabase.stringDateToJavaUtilitiesDate(this.birthday);
return birthday_date;
}
public void setBirthday_date(Date birthday_date)
{
this.birthday_date = birthday_date;
int year = this.birthday_date.getYear() + 1900;
int month = this.birthday_date.getMonth() + 1;
int day = this.birthday_date.getDate();
this.birthday = Integer.toString(year) + "-"
+ Integer.toString(month) + "-"
+ Integer.toString(day);
}
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 + '}';
}
}

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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;
}

View File

@@ -0,0 +1,101 @@
<?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>Suppliers Table</title>
</h:head>
<h:body>
<h:form>
<p:growl id="globalgrowl" showDetail="false" showSummary="true" life="2000"/>
<p:dataTable id="id_supplier_table"
var="supplier"
value="#{supplierBean.getSuppliers()}"
scrollable="true"
paginatorAlwaysVisible="true"
paginator="true"
paginatorPosition="top"
rows="10"
lazy="true"
>
<f:facet name="header"> <h:outputText value="Suppliers Table" style="font-size: 1.2em"/></f:facet>
<f:event type="preRenderView"
listener="#{supplierBean.displayExceptionMessageAtPreRenderListener}"
/>
<p:column>
<f:facet name="header"> <h:outputText value="update" /></f:facet>
<h:selectBooleanCheckbox onclick="submit()"
value="#{supplier.modify}">
</h:selectBooleanCheckbox >
</p:column>
<p:column id="idColumnSnumber">
<f:facet name="header"> <h:outputText value="snumber" /></f:facet>
<h:inputText disabled ="#{!supplier.insertFromDatatable and !supplier.modify}" value="#{supplier.snumber}">
</h:inputText>
</p:column>
<p:column>
<f:facet name="header"> <h:outputText value="sname" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.sname}"/>
</p:column>
<p:column>
<f:facet name="header"> <h:outputText value="birthday" /></f:facet>
<p:calendar
disabled ="#{!supplier.modify}"
value="#{supplier.birthday_date}"
pattern="yyyy/MM/dd"/>
</p:column>
<p:column>
<f:facet name="header"> <h:outputText value="status" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.status}"/>
</p:column>
<p:column>
<f:facet name="header"> <h:outputText value="city" /></f:facet>
<h:inputText disabled ="#{!supplier.modify}" value="#{supplier.city}"/>
</p:column>
</p:dataTable>
<p:draggable for="id_supplier_table"/>
<p:commandButton value="Save" action="#{supplierBean.saveFromUpdate()}" />
<p:commandButton id="idInsertRow" value="Insert Row" action="#{supplierBean.insertSupplier()}" />
<p:commandButton title="Delete Supplier"
value="X" styleClass="ui-button-raised ui-button-danger"
icon="pi pi-trash"
onclick="PF('asdv-dlg-delete').show();"
>
</p:commandButton >
<p:dialog id="dlg" header="Delete a Supplier"
widgetVar="asdv-dlg-delete" modal="true">
<h:outputText value="Are you sure you want to delete this supplier?"/>
<br/>
<br/>
<p:commandButton value="OK" icon="pi pi-check"
update="@form:globalgrowl"
onclick="PF('dlg').hide();"
action="#{supplierBean.deleteSupplier()}">
</p:commandButton >
<span>&nbsp;&nbsp;&nbsp;</span>
<p:commandButton value="Cancel"
styleClass="ui-button-raised ui-button-warning"
update="@none"
partialSubmit = "true"
onclick="PF('dlg').hide();"/>
</p:dialog>
</h:form>
</h:body>
</html>