*internal screaming*

master
Caleb Fontenot 2023-10-20 13:38:03 +07:00
parent b072abc361
commit 4f7b942791
61 changed files with 2615 additions and 101 deletions

4
.gitignore vendored

@ -52,3 +52,7 @@
/Semester 2/Assignments/labEL2_CalebFontenot/target/
/Semester 2/LabJuneauValidateUserInput/target/
/Semester 2/MP4_CalebFontenot/target/
/Semester 2/edu.slcc.asdv.caleb_Multicomponents2_Lab_CalebFontenot_war_1.0-SNAPSHOT/target/
/Semester 2/SelectAll/target/
/Semester 2/Assignments/MultiComponents_collections/target/
/Semester 2/Assignments/suppliers_parts/target/

@ -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>10-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>JSP</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_11__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,77 @@
<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>edu.slcc.asdv.chance</groupId>
<artifactId>MultiComponents_Collections</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>MultiComponents_Collections</name>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</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>

@ -0,0 +1,32 @@
/*
* 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 converters;
import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;
import jakarta.faces.convert.Converter;
import jakarta.faces.convert.FacesConverter;
import pojos.Weekday;
/**
*
* @author caleb
*/
@FacesConverter(forClass=Weekday.class)
public class WeekdayConverter implements Converter{
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value)
{
return new Weekday(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object dayOfWeek)
{
return dayOfWeek.toString();
}
}

@ -0,0 +1,226 @@
/*
* 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.chance.bean;
import jakarta.enterprise.context.RequestScoped;
import jakarta.faces.component.UIComponent;
import jakarta.faces.model.SelectItem;
import jakarta.inject.Named;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import pojos.Weekday;
@Named(value = "registration")
@RequestScoped
public class RegistrationJSFBean {
private String lastName;
private String firstName;
private String mi;
private String gender;
private String major;
private List<String> minor; // fills up from the setters
private List<SelectItem> minorSelectItem;
private Set<String> hobby;
private String remarks;
private UIComponent c;
private List<Weekday> daysToContact;
private List<SelectItem> daysToContactSelectItem;
private List<SelectItem> genderSelectItem;
private List<SelectItem> majorSelectItem;
public List<SelectItem> getMajorSelectItem()
{
return majorSelectItem;
}
public void setMajorSelectItem(List<SelectItem> majorSelectItem)
{
this.majorSelectItem = majorSelectItem;
}
/**
* Get the value of genderSelectItems
*
* @return the value of genderSelectItems
*/
public List<SelectItem> getGenderSelectItem()
{
return genderSelectItem;
}
/**
* Set the value of genderSelectItems
*
* @param genderSelectItems new value of genderSelectItems
*/
public void setGenderSelectItem(List<SelectItem> genderSelectItems)
{
this.genderSelectItem = genderSelectItems;
}
public List<Weekday> getDaysToContact()
{
return daysToContact;
}
public void setDaysToContact(List<Weekday> daysToContact)
{
this.daysToContact = daysToContact;
}
public List<SelectItem> getDaysToContactSelectItem()
{
return daysToContactSelectItem;
}
public void setDaysToContactSelectItem(List<SelectItem> daysToContactSelectItem)
{
this.daysToContactSelectItem = daysToContactSelectItem;
}
public RegistrationJSFBean()
{
majorSelectItem = new ArrayList<SelectItem>();
majorSelectItem.add(new SelectItem("ASDV"));
majorSelectItem.add(new SelectItem("Math"));
majorSelectItem.add(new SelectItem("IT"));
minorSelectItem = new ArrayList<SelectItem>();
minorSelectItem.add(new SelectItem("Anth"));
minorSelectItem.add(new SelectItem("Eng"));
minorSelectItem.add(new SelectItem("Geog"));
minorSelectItem.add(new SelectItem("Psyc"));
SelectItem s1 = new SelectItem("abc", "def");
daysToContactSelectItem = new ArrayList<SelectItem>();
daysToContactSelectItem.add(new SelectItem(new Weekday("SUN"), "Sunday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("MON"), "Monday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("TUE"), "Tuesday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("WED"), "Wednesday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("THU"), "Thursday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("FRI"), "Friday"));
daysToContactSelectItem.add(new SelectItem(new Weekday("SAT"), "Saturday"));
genderSelectItem = new ArrayList<SelectItem>();
genderSelectItem.add(new SelectItem("Male", "Male"));
genderSelectItem.add(new SelectItem("Female", "Female"));
}
public UIComponent getC()
{
return c;
}
public void setC(UIComponent c)
{
this.c = c;
System.out.println("setC(UIComponent c)" + this.c.getId());
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getMi() {
return mi;
}
public void setMi(String mi) {
this.mi = mi;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public List<String> getMinor() {
return minor;
}
public void setMinor(List<String> minor) {
this.minor = minor;
}
public List<SelectItem> getMinorSelectItem() {
return minorSelectItem;
}
public Set<String> getHobby() {
return hobby;
}
public void setHobby(Set<String> hobby) {
this.hobby = hobby;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getResponse() {
if (lastName == null)
return ""; // Request has not been made
else {
String allMinor = "";
for (String s: minor) {
allMinor += s + " ";
}
String allHobby = "";
for (String s: hobby) {
allHobby += s + " ";
}
String daysOfContact = "";
for (Weekday d : this.daysToContact) {
daysOfContact += d + " ";
}
return "<p style=\"color:green\">You entered <br />" +
"Last Name: " + lastName + "<br />" +
"First Name: " + firstName + "<br />" +
"MI: " + mi + "<br />" +
"Gender: " + gender + "<br />" +
"Major: " + major + "<br />" +
"Minor: " + allMinor + "<br />" +
"Hobby: " + allHobby + "<br />" +
"Remarks: " + remarks + "</p>";
}
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.chance.labmulticomponentsstockman;
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 edu.slcc.asdv.chance.labmulticomponentsstockman.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -0,0 +1,37 @@
/*
* 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 pojos;
import java.io.Serializable;
/**
*
* @author caleb
*/
public class Weekday implements Serializable {
public Weekday(String value)
{
}
private String dayOfWeek;
@Override
public String toString()
{
return "Weekday{" + "dayOfWeek=" + dayOfWeek + '}';
}
public String getDayOfWeek()
{
return dayOfWeek;
}
public void setDayOfWeek(String dayOfWeek)
{
this.dayOfWeek = dayOfWeek;
}
}

@ -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_4_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,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="6.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_6_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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,80 @@
<?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">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<!-- Use h:graphicImage -->
<h3>Student Registration Form
<h:graphicImage width="29" height="20" name="us.gif" library="images"/>
</h3>
<!-- Use h:panelGrid -->
<h:panelGrid columns="6" style="color:green">
<h:outputLabel value="Last Name"/>
<h:inputText binding="#{registration.c}" id="lastNameInputText" value="#{registration.lastName}"/>
<h:outputLabel value="First Name" >
<h:inputText id="firstNameInputText" required="true"
value="#{registration.firstName}"/>
</h:outputLabel>
<h:outputLabel value="MI" />
<h:inputText id="miInputText" size="1" value="#{registration.mi}"/>
</h:panelGrid>
<!-- Use radio buttons -->
<h:panelGrid columns="2">
<h:outputLabel>Gender </h:outputLabel>
<h:selectOneRadio id="genderSelectOneRadio" value="#{registration.gender}">
<f:selectItems value="#{registration.genderSelectItem}"/>
</h:selectOneRadio>
</h:panelGrid>
<!-- Use combo box and list -->
<h:panelGrid columns="4">
<h:outputLabel value="Major "/>
<h:selectOneMenu id="majorSelectOneMenu" value="#{registration.major}">
<f:selectItems value="#{registration.majorSelectItem}"/>
</h:selectOneMenu>
<h:outputLabel value="Minor "/>
<h:selectManyListbox value="#{registration.minor}">
<f:selectItems value="#{registration.minorSelectItem}"/>
</h:selectManyListbox>
</h:panelGrid>
<!-- Use check boxes -->
<h:panelGrid columns="4">
<h:outputLabel value="Hobby: "/>
<h:selectManyCheckbox id="hobbySelectManyCheckbox" value="#{registration.hobby}">
<f:selectItem itemValue="Tennis"/>
<f:selectItem itemValue="Golf"/>
<f:selectItem itemValue="Ping Pong"/>
</h:selectManyCheckbox>
</h:panelGrid>
<!-- Use text area -->
<h:panelGrid columns="1">
<h:selectManyListbox value="#{registration.daysToContact}">
<f:selectItems value="#{registration.daysToContactSelectItem}" var="d" itemLabel="#{d.getLabelOfWeek()}" itemValue="#{d.getDayOfWeek()}"/>
</h:selectManyListbox>
<h:outputLabel>Remarks:</h:outputLabel>
<h:inputTextarea id="remarksInputTextarea"
style="width:400px; height:50px;" value="#{registration.remarks}" />
</h:panelGrid>
<!-- Use command button -->
<h:commandButton value="Register" />
<h:outputText escape="false" style="color:red"
value="#{registration.response}" />
</h:form>
</h:body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -0,0 +1,27 @@
<?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>10-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>
<org-netbeans-modules-css-prep.less_2e_mappings>/less:/css</org-netbeans-modules-css-prep.less_2e_mappings>
<org-netbeans-modules-css-prep.less_2e_enabled>false</org-netbeans-modules-css-prep.less_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_enabled>false</org-netbeans-modules-css-prep.sass_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.less_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.sass_2e_mappings>/scss:/css</org-netbeans-modules-css-prep.sass_2e_mappings>
</properties>
</project-shared-configuration>

@ -0,0 +1,82 @@
<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>edu.slcc.asdv</groupId>
<artifactId>suppliers_parts</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>suppliers_parts-1</name>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<failOnMissingWebXml>false</failOnMissingWebXml>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</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>

@ -0,0 +1,15 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
*/
package edu.slcc.asdv.bl;
import java.util.List;
/**
*
* @author caleb
*/
public interface DBase<T> {
List<? extends List<T>> listAll();
}

@ -0,0 +1,109 @@
/*
* 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.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author caleb
*/
public class DatabaseManipulationSupplier implements DBase<Supplier> {
@Override
public List<List<Supplier>> listAll()
{
List<List<? extends Supplier>> tableSuppliers = new ArrayList<ArrayList<Supplier>>();
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
while (rs.next()) {
String sNumber = rs.getString(1) + " ";
String sName = rs.getString(2) + " ";
String bdate = rs.getDate(3) + " ";
String status = rs.getInt(4) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT snumber, sname, status, city, birthday FROM supplier WHERE snumber=?";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next()) {
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
ret += this.sname + " ";
this.status = rs.getInt("status");
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
} else {
ret = this.snumber + " doesn't exist.";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
this.closeDatabaseConnection(con);
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
this.result = ret;
}
}

@ -0,0 +1,55 @@
/*
* 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;
/**
*
* @author caleb
*/
public class Supplier {
private String snumber;
private String sname;
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
private String birthday;
public String getBirthday()
{
return birthday;
}
public void setBirthday(String birthday)
{
this.birthday = birthday;
}
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 + '}';
}
}

@ -0,0 +1,380 @@
package edu.slcc.asdv.bl;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Named;
/**
*
* @author a. v. markou
*/
@Named(value = "suppliers")
@ApplicationScoped
public class Suppliers implements Serializable {
String snumber = "";
String sname = "";
int status = 0;
String birthday = "";
String city = "";
String result = "";
public Suppliers()
{
connection();
}
public String getSnumber()
{
return snumber;
}
public void setSnumber(String snumber)
{
this.snumber = snumber;
}
public String getSname()
{
return sname;
}
public void setSname(String sname)
{
this.sname = sname;
}
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 getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getConnectionResponse()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return null;
}
if (con != null) {
return "<p style=\"color:green\">Connection succesfull! <br />";
} else {
connection();
return "<p style=\"color:red\">Connection failed! <br />";
}
}
private Connection connection() //throws InstantiationException, IllegalAccessException
{
/*
String databaseName = "suppliers_parts_23";
String userName = "admin";
String password = "RangerDog01!";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = null;
*/
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 + "?useSSL=false";
System.out.println(url);
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 clear()
{
status = 0;
snumber = "";
sname = "";
birthday = "";
city = "";
result = "";
}
public void listAll()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String table = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT * FROM supplier";
try {
//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) + " ";
String status = rs.getInt(4) + " ";
String city = rs.getString(5) + " ";
table += sNumber + sName + bdate + status + city + "</br>";
row++;
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
result = table;
}
public void viewSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
String ret = "";
PreparedStatement ps = null;
ResultSet rs = null;
String sqlStr = "SELECT snumber, sname, status, city, birthday FROM supplier WHERE snumber=?";
try {
//prepare statement
ps = con.prepareStatement(sqlStr);
ps.setString(1, snumber);
//execute
rs = ps.executeQuery();
if (rs.next()) {
this.snumber = rs.getString("snumber");
ret += this.snumber + " ";
this.sname = rs.getString("sname");
ret += this.sname + " ";
this.status = rs.getInt("status");
ret += this.status + " ";
this.city = rs.getString("city");
ret += this.city + " ";
Object bDate = rs.getObject("birthday");
this.birthday = bDate.toString();
ret += this.birthday;
} else {
ret = this.snumber + " doesn't exist.";
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
this.closeDatabaseConnection(con);
if (ps != null) {
ps.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
this.result = ret;
}
public void updateSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement updateSupplier = null;
try {
updateSupplier = con.prepareStatement(
"UPDATE supplier SET snumber=?, sname=?, status=?, birthday=?, city=? WHERE snumber=?");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date bd = stringDateToSqlDate(this.birthday);
updateSupplier.setDate(4, bd);
updateSupplier.setString(5, city);
updateSupplier.setString(6, snumber);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
System.err.println(ex.toString());
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
updateSupplier.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
}
public void deleteSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement ps = null;
int rowsAffected = -1;
try {
String query = "DELETE FROM supplier WHERE snumber=? ";
ps = con.prepareStatement(query);
ps.setString(1, snumber);
rowsAffected = ps.executeUpdate();
result = "number of rows affected: " + rowsAffected;
} catch (Exception ex) {
System.err.println(ex.toString());
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (ps != null) {
ps.close();
}
} catch (SQLException sqlee) {
sqlee.printStackTrace();
}
}
}
public void insertSupplier()
{
Connection con = connection();
if (con == null) {
result = "cannot connect to database";
return;
}
PreparedStatement updateSupplier = null;
try {
updateSupplier = con.prepareStatement(
"INSERT INTO supplier (snumber, sname, status, birthday, city ) "
+ "VALUES ( ?, ?, ? , ? ,? )");
updateSupplier.setString(1, snumber);
updateSupplier.setString(2, sname);
updateSupplier.setInt(3, status);
java.sql.Date sqlDate = stringDateToSqlDate(birthday);
updateSupplier.setDate(4, sqlDate);
updateSupplier.setString(5, city);
int updateCount = updateSupplier.executeUpdate();
result = "number of rows affected: " + updateCount;
} catch (Exception ex) {
System.err.println(ex.toString());
result = ex.toString();
} finally {
try {
this.closeDatabaseConnection(con);
// close the resources
if (updateSupplier != null) {
updateSupplier.close();
}
} catch (SQLException e) {
System.err.println(e.toString());
result = e.toString();
}
}
}
private 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 String getResult()
{
return "<p style=\"color:green\">Suppliers <br />" + result;
}
public void closeDatabaseConnection(Connection con)
{
try {
if (con != null) {
con.close();
}
} catch (SQLException e) {
result = e.toString();
e.printStackTrace();
}
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.suppliers_parts;
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 edu.slcc.asdv.suppliers_parts.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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,21 @@
<?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>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="table name "/>
<h:inputText value="#{queryBean.tableName}"/>
<h:commandButton value="SELECT * FROM table" action="#{queryBean.queries()}"/>
<h:outputText escape="false" style="color:green" value="#{queryBean.table}"> </h:outputText>
</h:panelGrid>
</h:form>
</h:body>
</html>

@ -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_4_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="6.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_6_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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,52 @@
<?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">
<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,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,14 @@
<?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="jakarta.faces.html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
Hello from Facelets
<h:dataTable var="tableSupplier" value="#{supplierBean}">
<f:facet name="snumber">
</h:dataTable>
</h:body>
</html>

@ -1,112 +1,13 @@
/*
* 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
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package beans;
import jakarta.inject.Named;
import jakarta.enterprise.context.RequestScoped;
/**
*
* @author caleb
*/
@Named(value="registration")
@RequestScoped
public class Registration {
private String lastName;
private String firstName;
private String mi;
private String gender;
/**
* Get the value of gender
*
* @return the value of gender
*/
public String getGender()
{
return gender;
}
/**
* Set the value of gender
*
* @param gender new value of gender
*/
public void setGender(String gender)
{
this.gender = gender;
}
public String getMi()
{
return mi;
}
public void setMi(String mi)
{
this.mi = mi;
}
/**
* Get the value of firstName
*
* @return the value of firstName
*/
public String getFirstName()
{
return firstName;
}
/**
* Set the value of firstName
*
* @param firstName new value of firstName
*/
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public String getResponse()
{
if (lastName == null) {
return ""; // Request has not been made
} else {
String allMinor = "";
for (String s : minor) {
allMinor += s + " ";
}
String allHobby = "";
for (String s : hobby) {
allHobby += s + " ";
}
return "<p style=\"color:red\">You entered <br />"
+ "Last Name: " + lastName + "<br />"
+ "First Name: " + firstName + "<br />"
+ "MI: " + mi + "<br />"
+ "Gender: " + gender + "<br />"
+ "Major: " + major + "<br />"
+ "Minor: " + allMinor + "<br />"
+ "Hobby: " + allHobby + "<br />"
+ "Remarks: " + remarks + "</p>";
}
}
}

@ -0,0 +1,112 @@
/*
* 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 beans;
import jakarta.inject.Named;
import jakarta.enterprise.context.RequestScoped;
/**
*
* @author caleb
*/
@Named(value="registration")
@RequestScoped
public class RegistrationInterface {
private String lastName;
private String firstName;
private String mi;
private String gender;
/**
* Get the value of gender
*
* @return the value of gender
*/
public String getGender()
{
return gender;
}
/**
* Set the value of gender
*
* @param gender new value of gender
*/
public void setGender(String gender)
{
this.gender = gender;
}
public String getMi()
{
return mi;
}
public void setMi(String mi)
{
this.mi = mi;
}
/**
* Get the value of firstName
*
* @return the value of firstName
*/
public String getFirstName()
{
return firstName;
}
/**
* Set the value of firstName
*
* @param firstName new value of firstName
*/
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public String getResponse()
{
if (lastName == null) {
return ""; // Request has not been made
} else {
String allMinor = "";
for (String s : minor) {
allMinor += s + " ";
}
String allHobby = "";
for (String s : hobby) {
allHobby += s + " ";
}
return "<p style=\"color:red\">You entered <br />"
+ "Last Name: " + lastName + "<br />"
+ "First Name: " + firstName + "<br />"
+ "MI: " + mi + "<br />"
+ "Gender: " + gender + "<br />"
+ "Major: " + major + "<br />"
+ "Minor: " + allMinor + "<br />"
+ "Hobby: " + allHobby + "<br />"
+ "Remarks: " + remarks + "</p>";
}
}
}

@ -0,0 +1,20 @@
<?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>10-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>
</properties>
</project-shared-configuration>

@ -0,0 +1,42 @@
<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>edu.slcc.asdv.caleb</groupId>
<artifactId>SelectAll</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SelectAll-1.0-SNAPSHOT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,132 @@
package com.corejsf;
import java.awt.Color;
import java.io.Serializable;
import java.text.DateFormatSymbols;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import javax.faces.bean.ManagedBean;
// or import javax.inject.Named;
import javax.faces.bean.SessionScoped;
// or import javax.enterprise.context.SessionScoped;
import javax.faces.model.SelectItem;
@ManagedBean(name="form") // or @Named("form")
@SessionScoped
public class RegisterForm implements Serializable {
public enum Education { HIGH_SCHOOL, BACHELOR, MASTER, DOCTOR };
public static class Weekday {
private int dayOfWeek;
public Weekday(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getDayName() {
DateFormatSymbols symbols = new DateFormatSymbols();
String[] weekdays = symbols.getWeekdays();
return weekdays[dayOfWeek];
}
public int getDayNumber() {
return dayOfWeek;
}
}
private String name;
private boolean contactMe;
private int[] bestDaysToContact;
private Integer yearOfBirth;
private int[] colors;
private Set<String> languages = new TreeSet<String>();
private Education education = Education.BACHELOR;
public String getName() { return name; }
public void setName(String newValue) { name = newValue; }
public boolean getContactMe() { return contactMe; }
public void setContactMe(boolean newValue) { contactMe = newValue; }
public int[] getBestDaysToContact() { return bestDaysToContact; }
public void setBestDaysToContact(int[] newValue) { bestDaysToContact = newValue; }
public Integer getYearOfBirth() { return yearOfBirth; }
public void setYearOfBirth(Integer newValue) { yearOfBirth = newValue; }
public int[] getColors() { return colors; }
public void setColors(int[] newValue) { colors = newValue; }
public Set<String> getLanguages() { return languages; }
public void setLanguages(Set<String> newValue) { languages = newValue; }
public Education getEducation() { return education; }
public void setEducation(Education newValue) { education = newValue; }
public Collection<SelectItem> getYearItems() { return birthYears; }
public Weekday[] getDaysOfTheWeek() { return daysOfTheWeek; }
public SelectItem[] getLanguageItems() { return languageItems; }
public SelectItem[] getColorItems() { return colorItems; }
public Map<String, Education> getEducationItems() { return educationItems; }
public String getBestDaysConcatenated() {
return Arrays.toString(bestDaysToContact);
}
public String getColorsConcatenated() {
StringBuilder result = new StringBuilder();
for (int color : colors) result.append(String.format("%06x ", color));
return result.toString();
}
private SelectItem[] colorItems = {
new SelectItem(Color.RED.getRGB(), "Red"), // value, label
new SelectItem(Color.GREEN.getRGB(), "Green"),
new SelectItem(Color.BLUE.getRGB(), "Blue"),
new SelectItem(Color.YELLOW.getRGB(), "Yellow"),
new SelectItem(Color.ORANGE.getRGB(), "Orange", "", true) // disabled
};
private static Map<String, Education> educationItems;
static {
educationItems = new LinkedHashMap<String, Education>();
educationItems.put("High School", Education.HIGH_SCHOOL); // label, value
educationItems.put("Bachelor's", Education.BACHELOR);
educationItems.put("Master's", Education.MASTER);
educationItems.put("Doctorate", Education.DOCTOR);
};
private static SelectItem[] languageItems = {
new SelectItem("English"),
new SelectItem("French"),
new SelectItem("Russian"),
new SelectItem("Italian"),
new SelectItem("Esperanto", "Esperanto", "", true) // disabled
};
private static Collection<SelectItem> birthYears;
static {
birthYears = new ArrayList<SelectItem>();
// The first item is a "no selection" item
birthYears.add(new SelectItem(null, "Pick a year:", "", false, false, true));
for (int i = 1900; i < 2020; ++i) birthYears.add(new SelectItem(i));
}
private static Weekday[] daysOfTheWeek;
static {
daysOfTheWeek = new Weekday[7];
for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
daysOfTheWeek[i - Calendar.SUNDAY] = new Weekday(i);
}
}
}

@ -0,0 +1,130 @@
package com.corejsf;
import jakarta.enterprise.context.SessionScoped;
import java.awt.Color;
import java.io.Serializable;
import java.text.DateFormatSymbols;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import jakarta.faces.model.SelectItem;
import jakarta.inject.Named;
@Named("form") // or @Named("form")
@SessionScoped
public class RegisterForm implements Serializable {
public enum Education { HIGH_SCHOOL, BACHELOR, MASTER, DOCTOR };
public static class Weekday {
private int dayOfWeek;
public Weekday(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getDayName() {
DateFormatSymbols symbols = new DateFormatSymbols();
String[] weekdays = symbols.getWeekdays();
return weekdays[dayOfWeek];
}
public int getDayNumber() {
return dayOfWeek;
}
}
private String name;
private boolean contactMe;
private int[] bestDaysToContact;
private Integer yearOfBirth;
private int[] colors;
private Set<String> languages = new TreeSet<String>();
private Education education = Education.BACHELOR;
public String getName() { return name; }
public void setName(String newValue) { name = newValue; }
public boolean getContactMe() { return contactMe; }
public void setContactMe(boolean newValue) { contactMe = newValue; }
public int[] getBestDaysToContact() { return bestDaysToContact; }
public void setBestDaysToContact(int[] newValue) { bestDaysToContact = newValue; }
public Integer getYearOfBirth() { return yearOfBirth; }
public void setYearOfBirth(Integer newValue) { yearOfBirth = newValue; }
public int[] getColors() { return colors; }
public void setColors(int[] newValue) { colors = newValue; }
public Set<String> getLanguages() { return languages; }
public void setLanguages(Set<String> newValue) { languages = newValue; }
public Education getEducation() { return education; }
public void setEducation(Education newValue) { education = newValue; }
public Collection<SelectItem> getYearItems() { return birthYears; }
public Weekday[] getDaysOfTheWeek() { return daysOfTheWeek; }
public SelectItem[] getLanguageItems() { return languageItems; }
public SelectItem[] getColorItems() { return colorItems; }
public Map<String, Education> getEducationItems() { return educationItems; }
public String getBestDaysConcatenated() {
return Arrays.toString(bestDaysToContact);
}
public String getColorsConcatenated() {
StringBuilder result = new StringBuilder();
for (int color : colors) result.append(String.format("%06x ", color));
return result.toString();
}
private SelectItem[] colorItems = {
new SelectItem(Color.RED.getRGB(), "Red"), // value, label
new SelectItem(Color.GREEN.getRGB(), "Green"),
new SelectItem(Color.BLUE.getRGB(), "Blue"),
new SelectItem(Color.YELLOW.getRGB(), "Yellow"),
new SelectItem(Color.ORANGE.getRGB(), "Orange", "", true) // disabled
};
private static Map<String, Education> educationItems;
static {
educationItems = new LinkedHashMap<String, Education>();
educationItems.put("High School", Education.HIGH_SCHOOL); // label, value
educationItems.put("Bachelor's", Education.BACHELOR);
educationItems.put("Master's", Education.MASTER);
educationItems.put("Doctorate", Education.DOCTOR);
};
private static SelectItem[] languageItems = {
new SelectItem("English"),
new SelectItem("French"),
new SelectItem("Russian"),
new SelectItem("Italian"),
new SelectItem("Esperanto", "Esperanto", "", true) // disabled
};
private static Collection<SelectItem> birthYears;
static {
birthYears = new ArrayList<SelectItem>();
// The first item is a "no selection" item
birthYears.add(new SelectItem(null, "Pick a year:", "", false, false, true));
for (int i = 1900; i < 2020; ++i) birthYears.add(new SelectItem(i));
}
private static Weekday[] daysOfTheWeek;
static {
daysOfTheWeek = new Weekday[7];
for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
daysOfTheWeek[i - Calendar.SUNDAY] = new Weekday(i);
}
}
}

@ -0,0 +1,21 @@
indexWindowTitle=Checkboxes, Radio buttons, Menus, and Listboxes
indexPageTitle=Please fill out the following information
namePrompt=Name:
contactMePrompt=Contact me
bestDayPrompt=What's the best day to contact you?
yearOfBirthPrompt=What year were you born?
buttonPrompt=Submit information
backPrompt=Back
languagePrompt=Select the languages you speak:
educationPrompt=Select your highest education level:
emailAppPrompt=Select your email application:
colorPrompt=Select your favorite colors:
thankYouLabel=Thank you {0}, for your information
contactMeLabel=Contact me:
bestDayLabel=Best day to contact you:
yearOfBirthLabel=Your year of birth:
colorLabel=Colors:
languageLabel=Languages:
educationLabel=Education:

@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.selectall;
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 edu.slcc.asdv.caleb.selectall.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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,21 @@
indexWindowTitle=Checkboxes, Radio buttons, Menus, and Listboxes
indexPageTitle=Please fill out the following information
namePrompt=Name:
contactMePrompt=Contact me
bestDayPrompt=What's the best day to contact you?
yearOfBirthPrompt=What year were you born?
buttonPrompt=Submit information
backPrompt=Back
languagePrompt=Select the languages you speak:
educationPrompt=Select your highest education level:
emailAppPrompt=Select your email application:
colorPrompt=Select your favorite colors:
thankYouLabel=Thank you {0}, for your information
contactMeLabel=Contact me:
bestDayLabel=Best day to contact you:
yearOfBirthLabel=Your year of birth:
colorLabel=Colors:
languageLabel=Languages:
educationLabel=Education:

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>messages</base-name>
<var>messages</var>
</resource-bundle>
</application>
</faces-config>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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
-->
<!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">
<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,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>jakarta.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
</web-app>

@ -0,0 +1,48 @@
<?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:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<h:outputStylesheet library="css" name="styles.css"/>
<title>#{messages.indexWindowTitle}</title>
</h:head>
<h:body>
<h:outputText value="#{messages.indexPageTitle}" styleClass="emphasis"/>
<h:form>
<h:panelGrid columns="2">
#{messages.namePrompt}
<h:inputText value="#{form.name}"/>
#{messages.contactMePrompt}
<h:selectBooleanCheckbox value="#{form.contactMe}"/>
#{messages.bestDayPrompt}
<h:selectManyMenu value="#{form.bestDaysToContact}">
<f:selectItems value="#{form.daysOfTheWeek}" var="w"
itemLabel="#{w.dayName}" itemValue="#{w.dayNumber}"/>
</h:selectManyMenu>
#{messages.yearOfBirthPrompt}
<h:selectOneMenu value="#{form.yearOfBirth}" required="true">
<f:selectItems value="#{form.yearItems}"/>
</h:selectOneMenu>
#{messages.colorPrompt}
<h:selectManyCheckbox value="#{form.colors}"
selectedClass="selected" disabledClass="disabled"
onchange="submit()">
<f:selectItems value="#{form.colorItems}"/>
</h:selectManyCheckbox>
#{messages.languagePrompt}
<h:selectManyListbox size="5" value="#{form.languages}">
<f:selectItems value="#{form.languageItems}"/>
</h:selectManyListbox>
#{messages.educationPrompt}
<h:selectOneRadio value="#{form.education}"
layout="pageDirection">
<f:selectItems value="#{form.educationItems}"/>
</h:selectOneRadio>
</h:panelGrid>
<h:commandButton value="#{messages.buttonPrompt}" action="showInformation"/>
</h:form>
<h:messages/>
</h:body>
</html>

@ -0,0 +1,10 @@
.emphasis {
font-style: italic;
font-size: 1.3em;
}
.disabled {
color: gray;
}
.selected {
font-weight: bold;
}

@ -0,0 +1,32 @@
<?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:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>#{messages.indexWindowTitle}</title>
</h:head>
<h:body>
<h:form>
<h:outputStylesheet library="css" name="styles.css"/>
<h:outputFormat value="#{messages.thankYouLabel}">
<f:param value="#{form.name}"/>
</h:outputFormat>
<h:panelGrid columns="2">
#{messages.contactMeLabel}
<h:outputText value="#{form.contactMe}"/>
#{messages.bestDayLabel}
<h:outputText value="#{form.bestDaysConcatenated}"/>
#{messages.yearOfBirthLabel}
<h:outputText value="#{form.yearOfBirth}"/>
#{messages.languageLabel}
<h:outputText value="#{form.languages}"/>
#{messages.colorLabel}
<h:outputText value="#{form.colorsConcatenated}"/>
#{messages.educationLabel}
<h:outputText value="#{form.education}"/>
</h:panelGrid>
<h:commandButton value="#{messages.backPrompt}" action="index"/>
</h:form>
</h:body>
</html>

@ -0,0 +1,20 @@
<?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>10-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>
</properties>
</project-shared-configuration>

@ -0,0 +1,42 @@
<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>edu.slcc.asdv.caleb</groupId>
<artifactId>Multicomponents2_Lab_CalebFontenot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Multicomponents2_Lab_CalebFontenot-1.0-SNAPSHOT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jakartaee>10.0.0</jakartaee>
</properties>
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>${jakartaee}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,203 @@
/*
* 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 beans;
import jakarta.inject.Named;
import jakarta.enterprise.context.RequestScoped;
import jakarta.faces.component.UIComponent;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
*
* @author caleb
*/
@Named(value="registration")
@RequestScoped
public class Registration {
UIComponent c;
private String lastName;
private String firstName;
private String mi;
private String gender;
private String major;
private List<String> minor;
private Set<String> remarks;
private List<String> hobby;
public Registration() {
minor = new ArrayList<String>();
minor.add("CS");
minor.add("Math");
minor.add("Engineering");
}
public UIComponent getC()
{
return c;
}
public void setC(UIComponent c)
{
this.c = c;
}
/**
* Get the value of hobby
*
* @return the value of hobby
*/
public List<String> getHobby()
{
return hobby;
}
/**
* Set the value of hobby
*
* @param hobby new value of hobby
*/
public void setHobby(List<String> hobby)
{
this.hobby = hobby;
}
public Set<String> getRemarks()
{
return remarks;
}
public void setRemarks(Set<String> remarks)
{
this.remarks = remarks;
}
/**
* Get the value of minor
*
* @return the value of minor
*/
public List<String> getMinor()
{
return minor;
}
/**
* Set the value of minor
*
* @param minor new value of minor
*/
public void setMinor(List<String> minor)
{
this.minor = minor;
}
public String getMajor()
{
return major;
}
public void setMajor(String major)
{
this.major = major;
}
/**
* Get the value of gender
*
* @return the value of gender
*/
public String getGender()
{
return gender;
}
/**
* Set the value of gender
*
* @param gender new value of gender
*/
public void setGender(String gender)
{
this.gender = gender;
}
public String getMi()
{
return mi;
}
public void setMi(String mi)
{
this.mi = mi;
}
/**
* Get the value of firstName
*
* @return the value of firstName
*/
public String getFirstName()
{
return firstName;
}
/**
* Set the value of firstName
*
* @param firstName new value of firstName
*/
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
public String getResponse()
{
if (lastName == null) {
return ""; // Request has not been made
} else {
String allMinor = "";
for (String s : minor) {
allMinor += s + " ";
}
String allHobby = "";
for (String s : hobby) {
allHobby += s + " ";
}
return "<p style=\"color:red\">You entered <br />"
+ "Last Name: " + lastName + "<br />"
+ "First Name: " + firstName + "<br />"
+ "MI: " + mi + "<br />"
+ "Gender: " + gender + "<br />"
+ "Major: " + major + "<br />"
+ "Minor: " + allMinor + "<br />"
+ "Hobby: " + allHobby + "<br />"
+ "Remarks: " + remarks + "</p>";
}
}
}

@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.multicomponents_lab_calebfontenot;
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 edu.slcc.asdv.caleb.multicomponents_lab_calebfontenot.resources;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
/**
*
* @author
*/
@Path("jakartaee10")
public class JakartaEE10Resource {
@GET
public Response ping(){
return Response
.ok("ping Jakarta EE")
.build();
}
}

@ -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_4_0.xsd"
bean-discovery-mode="all">
</beans>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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
-->
<!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">
<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="6.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_6_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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<title>Start Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

@ -0,0 +1,78 @@
<?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="jakarta.faces.html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<!-- Use h:graphicImage -->
<h3>Student Registration Form
<h:graphicImage name="us.gif" library="images"/>
</h3>
<!-- Use h:panelGrid -->
<h:panelGrid columns="6" style="color:green">
<h:outputLabel value="Last Name"/>
<h:inputText binding="#{registration.c}" id="lastNameInputText" value="#{registration.lastName}"/>
<h:outputLabel value="First Name" />
<h:inputText id="firstNameInputText" required="true"
value="#{registration.firstName}"/>
<h:outputLabel value="MI" />
<h:inputText id="miInputText" size="1" value="#{registration.mi}"/>
</h:panelGrid>
<!-- Use radio buttons -->
<h:panelGrid columns="2">
<h:outputLabel>Gender </h:outputLabel>
<h:selectOneRadio id="genderSelectOneRadio" value="#{registration.gender}"/>
<h:selectItem itemValue="false"
itemLabel="Male"/>
<h:selectItem itemValue="true"
itemLabel="Female"/>
</h:selectOneRadio>
</h:panelGrid>
<!-- Use combo box and list -->
<h:panelGrid columns="4">
<h:outputLabel value="Major "/>
<h:selectOneMenu id="majorSelectOneMenu" value="#{registration.major}">
<f:selectItem itemValue="Computer Science"/>
<f:selectItem itemValue="Mathematics"/>
</h:selectOneMenu>
<h:outputLabel value="Minor "/>
<h:selectManyListbox id="minorSelectManyListbox" value="#{registration.minor}">
<f:selectItem itemValue="Computer Science"/>
<f:selectItem itemValue="Mathematics"/>
<f:selectItem itemValue="English"/>
</h:selectManyListbox>
</h:panelGrid>
<!-- Use check boxes -->
<h:panelGrid columns="4">
<h:outputLabel value="Hobby: "/>
<h:selectManyCheckbox id="hobbySelectManyCheckbox" value="#{registration.hobby}">
<f:selectItem itemValue="Tennis"/>
<f:selectItem itemValue="Golf"/>
<f:selectItem itemValue="Ping Pong"/>
</h:selectManyCheckbox>
</h:panelGrid>
<!-- Use text area -->
<h:panelGrid columns="1">
<h:outputLabel>Remarks:</h:outputLabel>
<h:inputTextarea id="remarksInputTextarea"
style="width:400px; height:50px;" value="#{registration.remarks}" />
</h:panelGrid>
<!-- Use command button -->
<h:commandButton value="Register" />
<h:outputText escape="false" style="color:red"
value="#{registration.response}" />
</h:form>
</h:body>
</html>