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,87 @@
<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>SuppliersPartsCalendar</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SuppliersPartsCalendar</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>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>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>10.0.0</version>
</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,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);
}
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

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