master
Caleb Fontenot 2024-04-14 12:22:45 +07:00
parent 8f30705c62
commit f1c589e653
115 changed files with 4562 additions and 70 deletions

4
.gitignore vendored

@ -100,3 +100,7 @@
/Semester 3/Assignments/params/target/
/Semester 3/Assignments/templatesMatricesSample/target/
/Semester 3/Assignments/StockBrokerAjaxThreads/target/
/Semester 3/Assignments/Ajax11_idientifiers/target/
/Semester 3/Assignments/Json1/target/
/Semester 3/Assignments/TermProject1_CalebFontenot copy/target/
/Semester 3/Assignments/TermProject2_CalebFontenot/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>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_15__System_</netbeans.hint.jdkPlatform>
</properties>
</project-shared-configuration>

@ -0,0 +1,48 @@
<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>asdv</groupId>
<artifactId>Ajax11_idientifiers</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>Ajax11_idientifiers-1</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>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>12.0.0</version>
<classifier>jakarta</classifier>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.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,13 @@
package asdv.ajax11_idientifiers;
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 asdv.ajax11_idientifiers.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,34 @@
/*
* 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 asdv5
*/
@Named(value = "ajaxBean")
@RequestScoped
public class AjaxBean
{
private String name;
private int age;
private String notExecuted = "never replaced";
public String getNotExecuted(){return notExecuted;}
public void setNotExecuted(String notExecuted)
{this.notExecuted = notExecuted;}
public int getAge(){return age;}
public void setAge(int age){this.age = age;}
public String getName(){return name;}
public void setName(String name){this.name = name; }
}

@ -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,42 @@
<?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="jakarta.faces.core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Ajax 11</title>
</h:head>
<h:body>
<h:form>
Name: <h:inputText id= "nameInputId" value="#{ajaxBean.name}"/><br/>
Age: <h:inputText id="ageInputId" value="#{ajaxBean.age}"/><br/>
Not executed: <h:inputText id="notExecutedInputId" value="#{ajaxBean.notExecuted}"/><br/>
<h:commandButton value="Execute in Server 2 out of inputTexts" ><br/>
<f:ajax execute="nameInputId ageInputId "
render="nameOutputId ageOutputId notExecutedOutputId"/>
</h:commandButton>
<br/>
<h:outputText id="nameOutputId" value="#{ajaxBean.name}"/><br/>
<h:outputText id="ageOutputId" value="#{ajaxBean.age}"/><br/>
<h:outputText id="notExecutedOutputId" value="#{ajaxBean.notExecuted}"/>
</h:form>
<br/><br/>
<h:form>
Name: <p:inputText id= "nameInputId1" value="#{ajaxBean.name}"/><br/>
Age: <p:inputText id="ageInputId1" value="#{ajaxBean.age}"/><br/>
Not executed: <p:inputText id="notExecutedInputId1" value="#{ajaxBean.notExecuted}"/><br/>
<p:commandButton value="Execute in Server 2 out of inputTexts" ><br/>
<p:ajax process="nameInputId1 ageInputId1 "
update="nameOutputId1 ageOutputId1 notExecutedOutputId1"/>
</p:commandButton>
<br/>
<p:outputLabel id="nameOutputId1" value="#{ajaxBean.name}"/><br/>
<p:outputLabel id="ageOutputId1" value="#{ajaxBean.age}"/><br/>
<p:outputLabel id="notExecutedOutputId1" value="#{ajaxBean.notExecuted}"/>
</h:form>
</h:body>
</html>

Binary file not shown.

@ -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>Facelets</org-netbeans-modules-projectapi.jsf_2e_language>
<netbeans.hint.jdkPlatform>JDK_15__System_</netbeans.hint.jdkPlatform>
</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>asdv</groupId>
<artifactId>Json1</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>Json1</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,13 @@
package asdv.mavenproject3;
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 asdv.mavenproject3.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,225 @@
/*
* 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 jason;
import java.io.StringReader;
import java.io.StringWriter;
import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonArrayBuilder;
import jakarta.json.JsonNumber;
import jakarta.json.JsonObject;
import jakarta.json.JsonObjectBuilder;
import jakarta.json.JsonString;
import jakarta.json.JsonValue;
import jakarta.json.JsonWriter;
import jakarta.json.stream.JsonParser;
import java.util.ArrayList;
/**
*
* @author ASDV2
*/
public class Jason
{
public static JsonObject createObject()
{
JsonObject model = Json.createObjectBuilder()
.add("firstName", "Duke")
.add("lastName", "Java")
.add("age", 18)
.add("streetAddress", "100 Internet Dr")
.add("city", "JavaTown")
.add("state", "JA")
.add("postalCode", "12345")
.add("phoneNumbers", Json.createArrayBuilder()
.add(Json.createObjectBuilder().add("type", "mobile").add("number", "111-111-1111"))
.add(Json.createObjectBuilder().add("type", "home").add("number", "222-222-2222")))
.build();
return model;
}
public static JsonObject createDukeObject()
{
/*
JsonObjectBuilder job = Json.createObjectBuilder();
job = job.add("firstName", "Duke");
job = job.add("lastName", "Java");
JsonObject modelPartial = job.build();
return modelPartial;
*/
JsonArrayBuilder jab = Json.createArrayBuilder();
//one array
jab = jab.add( //1st object
Json.createObjectBuilder()
.add("type", "mobile")
.add("number", "111-111-1111"))
//2nd object
.add(
Json.createObjectBuilder()
.add("type", "home")
.add("number", "222-222-2222")
);
JsonObject model = Json.createObjectBuilder()
.add("firstName", "Duke")
.add("lastName", "Java")
.add("age", 18)
.add("streetAddress", "100 Internet Dr")
.add("city", "JavaTown")
.add("state", "JA")
.add("postalCode", "12345")
.add("phoneNumbers", jab)
/*
.add(
Json.createObjectBuilder()
.add("type", "home")
.add("number", "222-222-2222")
)
*/
.build();
return model;
}
public static ArrayList navigateTree(JsonValue tree, String key, ArrayList list)
{
if (key != null)
{
System.out.print("Key " + key + ": ");
list.add("Key " + key + ": ");
}
switch (tree.getValueType())
{
case OBJECT:
System.out.println("OBJECT");
list.add("OBJECT");
JsonObject object = (JsonObject) tree;
for (String name : object.keySet())
{
navigateTree(object.get(name), name, list);
}
break;
case ARRAY:
System.out.println("ARRAY");
list.add("ARRAY");
JsonArray array = (JsonArray) tree;
for (JsonValue val : array)
{
navigateTree(val, null, list);
}
break;
case STRING:
JsonString st = (JsonString) tree;
System.out.println("STRING " + st.getString());
list.add("STRING" + st.getString() ) ;
break;
case NUMBER:
JsonNumber num = (JsonNumber) tree;
System.out.println("NUMBER " + num.toString());
list.add("NUMBER" + num.toString() ) ;
break;
case TRUE:
case FALSE:
case NULL:
System.out.println(tree.getValueType().toString());
list.add(tree.getValueType().toString());
break;
}
return list;
}
public static String getJsonString(JsonObject jo)
{
StringWriter stWriter = new StringWriter();
JsonWriter jsonWriter = Json.createWriter(stWriter);
jsonWriter.writeObject(jo);
jsonWriter.close();
String jsonData = stWriter.toString();
return jsonData;
}
public static String parseObject(JsonObject jo)
{
JsonParser parser = Json.createParser( new StringReader(jo.toString()) );
String s = "";
while (parser.hasNext())
{
JsonParser.Event event = parser.next();
switch (event)
{
case START_ARRAY:
case END_ARRAY:
case START_OBJECT:
case END_OBJECT:
case VALUE_FALSE:
case VALUE_NULL:
case VALUE_TRUE:
s += "\n" + event.toString() + "\n";
break;
case KEY_NAME:
s += event.toString() + " "
+ parser.getString() + " - ";
break;
case VALUE_STRING:
case VALUE_NUMBER:
s += event.toString() + " "
+ parser.getString();
break;
}
}
return s;
}
public static String testCreateComplexObject()
{
JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
jsonObjectBuilder.add("emp_name", "John");
jsonObjectBuilder.add("emp_id", 1016);
jsonObjectBuilder.add("salary", 80000);
//> create Json array with only values
JsonArrayBuilder jab = Json.createArrayBuilder();
jab.add("Nick");
jab.add("John");
jab.add(888);
JsonArray ja = jab.build();
//> the array got created,
//add it to the json as a child element
jsonObjectBuilder.add("direct_contacts", ja);
//> create an array of key-value pairs
JsonArrayBuilder kvArrBld = Json.createArrayBuilder();
// create each key-value pair as seperate object and add it to the array
kvArrBld.add(Json.createObjectBuilder().add("email", "java2novice@gmail.com").build());
kvArrBld.add(Json.createObjectBuilder().add("mobile", "123123123123").build());
JsonArray contactsArr = kvArrBld.build();
// add contacts array object
jsonObjectBuilder.add("contacts", contactsArr);
JsonObject empObj = jsonObjectBuilder.build();
// Write to String writer.
// if you want you can write it to a file as well
StringWriter strWtr = new StringWriter();
JsonWriter jsonWtr = Json.createWriter(strWtr);
jsonWtr.writeObject(empObj);
jsonWtr.close();
System.out.println(strWtr.toString());
System.out.println("calling the method getJsonString()");
System.out.println(getJsonString(empObj));
return empObj.toString();
}
public static void main(String[] args)
{
JsonObject jo = createObject();
System.out.println(jo);
//JsonObject jo = createDukeObject();
//System.out.println(jo);
//navigateTree(jo, null);
//System.out.println(getJsonString(jo));
//System.out.println(parseObject(jo));
//testCreateComplexObject();
}
}

@ -0,0 +1,81 @@
/*
* 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 jason;
import jakarta.inject.Named;
import jakarta.enterprise.context.RequestScoped;
import jakarta.json.JsonObject;
import jakarta.json.JsonValue;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
/**
*
* @author asdv5
*/
@Named(value = "jsonBean")
@RequestScoped
public class JsonBean
{
private String s;
private String fromWriter;
private String fromParser;
private String complexObject;
private String suppliersObject;
private ArrayList list = new ArrayList();
public JsonBean()
{
s = Jason.createObject().toString();
list = Jason.navigateTree(JsonValue.TRUE, s, list);
list = Jason.navigateTree(Jason.createObject(), null, list);
fromWriter = Jason.getJsonString(Jason.createObject());
fromParser = Jason.parseObject(Jason.createObject());
complexObject = Jason.testCreateComplexObject();
suppliersObject = JsonSupplier.getSuppliersJsonObject();
}
public String getS()
{
return s;
}
public ArrayList getList()
{
return list;
}
public String getFromWriter()
{
return fromWriter;
}
public String getFromParser()
{
return fromParser;
}
public String getComplexObject() {
return complexObject;
}
public String getSuppliersObject() {
return suppliersObject;
}
public void writeSuppliersToFile() throws FileNotFoundException{
JsonObject jo = JsonSupplier.createJsonObjectFromString(this.suppliersObject);
JsonSupplier.writeJsonToTextFile(jo);
}
public void readSuppliersFromFile() throws FileNotFoundException {
JsonObject jo = JsonSupplier.readFileIntoJson("jason.json");
s = jo.toString();
}
}

@ -0,0 +1,160 @@
package jason;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import jakarta.json.Json;
import jakarta.json.JsonArray;
import jakarta.json.JsonArrayBuilder;
import jakarta.json.JsonObject;
import jakarta.json.JsonObjectBuilder;
import jakarta.json.JsonReader;
import jakarta.json.JsonValue;
import jakarta.json.JsonWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.Scanner;
public class JsonSupplier {
/**
* Creates a JsonObject by traversing the arrayList of LinkedHashMap
*
* @param suppliers ArrayList of LinkedHashMap. Each element of the
* arrayList is a row of suppliers table. The key of the LinkedHashMap is
* the attribute name and the value of the attribute Example ( One liked
* hash map is one row from the table) LinkedHashMap 1 : key: snumber,
* value: s1 key: sname, value: white key: status, value: 20 key: city,
* value London LinkedHashMap 2 : key: snumber, value: s2 key: sname, value:
* black key: status, value: 30 key: city, value Paris The value of the map
* @return JsonObject
*/
public static JsonObject createJsonObjectForSuppliers(ArrayList< LinkedHashMap<String, String>> suppliers) {
JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
int counter = 1;
for (LinkedHashMap<String, String> supplier : suppliers)
{
// create an array of key-value pairs
JsonArrayBuilder arraySupplierBld = Json.createArrayBuilder();
// create each key-value pair as seperate object and add it to the array
Set<Map.Entry<String, String>> entrySet = supplier.entrySet();
for (Map.Entry<String, String> entry : entrySet)
{
arraySupplierBld.add(Json.createObjectBuilder().add(entry.getKey(),
entry.getValue()).build());
}
// add supplier-array to object
String objectID = "+" + (counter++);
jsonBuilder.add(objectID, arraySupplierBld);
}
JsonObject allSuppliersJsonObject = jsonBuilder.build();
return allSuppliersJsonObject;
}
/**
* Creates a JsonObject by reading the String data in JSON format
*
* @param jsonData Json format data
* @return JsonObject
*/
public static JsonObject createJsonObjectFromString(String jsonData) {
JsonReader jsonReader = Json.createReader(new StringReader(jsonData));
JsonObject o = jsonReader.readObject();
return o;
}
/**
* Creates a LinkedHashMap of 4 ENTRYies.Keys name: snumber, sname, status
* and city. Values of map are the parameters.
*
* @param snumber value of map
* @param sname value of map
* @param status value of map
* @param city value of map
* @return
*/
public static LinkedHashMap<String, String> createMapOfSupplier(
String snumber,
String sname,
String status,
String city
)
{
LinkedHashMap<String, String> mapSupplier
= new LinkedHashMap<String, String>();
mapSupplier.put("snumber", snumber);
mapSupplier.put("sname", sname);
mapSupplier.put("status", status);
mapSupplier.put("city", city);
return mapSupplier;
}
public static String getSuppliersJsonObject(){
ArrayList< LinkedHashMap<String, String>> suppliers = new ArrayList();
for (int i = 1; i <= 2; ++i)
{
LinkedHashMap<String, String> oneSupplierRowOfTable
= createMapOfSupplier(
"s1" + i,
"Johnson" + i,
Integer.toString(20 + i),
"london" + i);
suppliers.add(oneSupplierRowOfTable);
}
JsonObject j = createJsonObjectForSuppliers(suppliers);
return j.toString();
}
public static void main(String a[]) {
ArrayList< LinkedHashMap<String, String>> suppliers = new ArrayList<>();
for (int i = 1; i <= 2; ++i)
{
LinkedHashMap<String, String> oneSupplierRowOfTable
= createMapOfSupplier(
"s1" + i,
"Johnson" + i,
Integer.toString(20 + i),
"london" + i);
suppliers.add(oneSupplierRowOfTable);
}
JsonObject j = createJsonObjectForSuppliers(suppliers);
StringWriter strWtr = new StringWriter();
JsonWriter jsonWtr = Json.createWriter(strWtr);
jsonWtr.writeObject(j);
String s = strWtr.toString();
System.out.println(s);
jsonWtr.close();
/*
JSONobj.readJASONdataUsingParser(strWtr.toString());
JsonObject o = createJsonObjectFromString(strWtr.toString());
System.out.println("------------------------------------------------");
JSONobj.writeObjectModelToStream(o);
*/
}
public static void writeJsonToTextFile(JsonObject jo) throws FileNotFoundException {
String jsonString = Jason.getJsonString(jo);
PrintWriter output = new PrintWriter(new FileOutputStream("jason.json", true));
output.print(jsonString);
output.close();
}
public static JsonObject readFileIntoJson(String fileName) throws FileNotFoundException {
File file = new java.io.File(fileName);
Scanner input = new Scanner(file);
String joString = "";
while (!input.hasNext()) {
joString += input.next();
}
input.close();
JsonObject jo = createJsonObjectFromString(joString);
return jo;
}
}

@ -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,26 @@
<?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/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>

@ -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>
#{jsonBean.s}
<br/><br/><br/>
#{jsonBean.getList()}
<br/><br/><br/>
#{jsonBean.fromWriter}
<br/><br/><br/>
#{jsonBean.fromParser}
<br/><br/><br/>
#{jsonBean.complexObject}
<br/><br/><br/>
#{jsonBean.suppliersObject}
</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,120 @@
<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>asdv</groupId>
<artifactId>MP1_Ajax</artifactId>
<version>1</version>
<packaging>war</packaging>
<name>MP1_Ajax-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>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>13.0.2</version>
<classifier>jakarta</classifier>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.core</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.asm</artifactId>
<version>9.4.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.antlr</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>jakarta.persistence</artifactId>
<version>2.2.3</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,25 @@
/*
* 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
*/
import asdv.mp1_ajax.pojos.Stock;
import java.util.List;
/**
*
* @author asdv5
*/
public interface Dao<T>
{
void create(T t);
void edit(T t);
void remove(T t);
T find(Object id);
List<T> findAll();
List<T> findRange(int[] range);
int count();
}

@ -0,0 +1,13 @@
package asdv.mp1_ajax;
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,109 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package asdv.mp1_ajax.pojos;
import java.util.List;
import java.util.Set;
/**
*
* @author A. V. Markou
* @param <Many1>
* @param <Many2>
*/
public interface ManyToMany<Many1, Many2>
{
/**
* Creates a Many to Many relationship between the parentLeft and the
* childrenRight. Example for ( Many1 a, Many2 1, 2, 3) it creates --> (a 1)
* ( a 2 ) ( a 3 ) and ( 1, a ), ( 2, a ), ( 3, a). No duplicate values of
* Many2 are allowed.
*
* @param parentLeft - exactly one Many1 object.
* @param childrenRight - one or more Many2 objects.
* @return the previous value associated with Many1, or null if there was no
* Many1 with the same "key".
* @throws ClassCastException - if the class of the specified Many1, or
* Many2 or value prevents it from being stored in this map( i,e Many1 is
* String and you pass an object)
* @throws NullPointerException - if the specified Many1 or Many2 is null
* and ManyToMany does not permit nulls as values.
* @throw IllegalArgumentException - if a duplicate exists in childrenRight
* list ( s1 --> p1,p2,p2 is not allowed).
* @return the previous value associated with parentLeft, or null if there
* was no childrenRight for parentLeft.
*/
List<Many2> add(Many1 parentLeft, Many2... childrenRight);
/**
* Returns the List of all left children of the parentRight.
*
* @param parentRight a parent at the RHS of the many to many relationship.
* @return the List of all left children of the parentRight.
* @throw IllegalArgumentException if the value of parameter parentRight
* does not exist in the RHS of the many to many relationship.
*/
List<Many1> getChildrenLeft(Many2 parentRight);
/**
* Returns the List of all right children of the parentLeft.
*
* @param parentLeft a parent at the LHS of the many to many relationship.
* @return the List of all right children of the parentLeft.
* @throws IllegalArgumentException if the value of parameter parentLeft
* does not exist on the LHS of the many to many relationship.
*/
List<Many2> getChildrenRight(Many1 parentLeft);
/**
* Returns a set of the Many1 elements that exist on the LHS of the many to
* many relationship.
*
* @return Set of Many1
*/
Set<Many1> getParentsLeft();
/**
* Returns a set of the Many2 elements that exist on the RHS of the many to
* many relationship.
*
* @return Set of Many2
*/
Set<Many2> getParentsRight();
/**
* Removes the many1 parameter from the LHS of the many relationship AND all
* its corresponding values that exist in the RHS of the many to many
* relationship. For example given: ( LHS e1: p1, p2 e2: p2, p3 RHS: p1: e1
* p2: e1, e2 p3: e2 after removing e1 from the LHS will results into: ( LHS
* e2: p2, p3 RHS: p2: e2 p3: e2
*
* @param many1 the unique element on the LHS to be removed.
* @throws NullPointerException if parameter many1 is null.
* @return true if the removal occurred, false if many1 does not exist in
* the LHS of the many to many relationship.
*/
boolean removeLeft(Many1 many1);
/**
* Removes the many1 parameter from the RHS of the many relationship AND all
* its corresponding values that exist in the LHS of the many to many
* relationship. For example given: LHS e2: p2, p3 RHS: p2: e2 p3: e2 after
* removing p2 from the RHS will results into: LHS e2: p3 RHS p3: e2
*
*
* @param many2 the unique element on the LHS to be removed.
* @throws NullPointerException if parameter many1 is null.
* @return true if the removal occurred, false if many1 does not exist in
* the LHS of the many to many relationship.
*/
boolean removeRight(Many2 many2);
/**
* Clears all.
*
*/
void clear();
}

@ -0,0 +1,212 @@
/*
* 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 asdv.mp1_ajax.pojos;
import asdv.mp1_ajax.pojos.ManyToMany;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
*
* @author asdv5
*/
public class ManyToManyFactory1
{
public static <Many1, Many2> //generic types to be used in the method
ManyToMany< Many1, Many2>//return type
createManyToMany()
{
return new ManyToMany<Many1, Many2>()
{
private Map<Object, Object> left = new HashMap();
private Map<Object, Object> right = new HashMap();
@Override
public String toString()
{
return "{" + "left=" + left + ", right=" + right + '}';
}
@Override
public List<Many2> add(Many1 parentLeft, Many2... childrenRight)
{
if (parentLeft==null || childrenRight==null || getParentsLeft().contains(parentLeft)) {
throw new IllegalArgumentException("Invalid input: null arguments or duplicate parent");
}
left.put(parentLeft, Arrays.asList(childrenRight));
for(Many2 parentRight : childrenRight)
{
right.put(parentRight, Arrays.asList(parentLeft));
}
return Arrays.asList(childrenRight);
}
@Override
public List<Many1> getChildrenLeft(Many2 parentRight)
{
if(right.get(parentRight)==null)
{
throw new IllegalArgumentException(parentRight+" is not a valid R parent");
}
return (List<Many1>) right.get(parentRight);
}
@Override
public List<Many2> getChildrenRight(Many1 parentLeft)
{
if(left.get(parentLeft)==null)
{
throw new IllegalArgumentException(parentLeft+" is not a valid L parent");
}
return (List<Many2>)left.get(parentLeft);
}
@Override
public Set<Many1> getParentsLeft()
{
return (Set<Many1>) left.keySet();
}
@Override
public Set<Many2> getParentsRight()
{
return (Set<Many2>) right.keySet();
}
@Override
public boolean removeLeft(Many1 many1)
{
if(!getParentsLeft().contains(many1))
{
return false;
}
left.remove(many1);
for(Many2 parentRight : getParentsRight())
{
right.remove(parentRight, many1);
}
return true;
}
@Override
public boolean removeRight(Many2 many2)
{
if(!getParentsRight().contains(many2))
{
return false;
}
right.remove(many2);
for(Many1 parentLeft : getParentsLeft())
{
left.remove(parentLeft, many2);
}
return true;
}
@Override
public void clear()
{
left.clear();
right.clear();
}
};
}
public static void main(String[] args) throws InterruptedException
{
ManyToMany<String, String> mm = ManyToManyFactory1.createManyToMany();
//mm.add(1, 1);///will not compile, we have Many1, Many2 as String
System.out.println("add(e1, p1, p2)returns: " + mm.add("e1", "p1", "p2"));
System.out.println("add(e2, p2, p3)returns: " + mm.add("e2", "p2", "p3"));
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
System.out.println("getParentsRight returns: " + mm.getParentsRight());
System.out.println("getChildrenLeft(p2) returns: " + mm.getChildrenLeft("p2"));
System.out.println("getChildrenLeft(p3) returns: " + mm.getChildrenLeft("p3"));
System.out.println("getChildrenRight(e1) returns: " + mm.getChildrenRight("e1"));
System.out.println("getChildrenRight(e2) returns: " + mm.getChildrenRight("e2"));
System.out.println("-----------------------------------------------");
System.out.println("The internal hash maps of ManyToMany after insertions: " + mm);
System.out.println("----------AFTER REMOVAL of e1 LEFT----------------------------------------");
System.out.println("removeLeft(e1) returns: " + mm.removeLeft("e1"));
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
System.out.println("getParentsRight returns: " + mm.getParentsRight());
System.out.println("getChildrenRight(e2) returns: " + mm.getChildrenRight("e2"));
System.out.println("getChildrenLeft(p2) returns: " + mm.getChildrenLeft("p2"));
System.out.println("getChildrenLeft(p3) returns: " + mm.getChildrenLeft("p3"));
System.out.println("The internal hash maps of ManyToMany after removal LEFT: " + mm);
System.out.println("\n----------AFTER REMOVAL of p2 RIGHT----------------------------------------");
System.out.println("removeRight(p2) returns: " + mm.removeRight("p2"));
System.out.println("getParentsLeft returns: " + mm.getParentsLeft());
System.out.println("getParentsRight returns: " + mm.getParentsRight());
System.out.println("getChildrenRight(e2) returns: " + mm.getChildrenRight("e2"));
System.out.println("getChildrenLeft(p3) returns: " + mm.getChildrenLeft("p3"));
System.out.println("--------------------------------------------------");
System.out.println("mm.removeLeft(e1) returns: " + mm.removeLeft("e1"));
System.out.println("The internal hash maps of ManyToMany after removal RIGHT: " + mm);
Thread.sleep(5000, 0);
System.out.println("---------------CATCHING EXCEPTIONS -----------------------------------");
try
{
mm.getChildrenRight("e10");//e10 dos not exist
}
catch (RuntimeException e)
{
System.err.println("getChildrenRight for e10 throws exception:" + e);
}
try
{
System.out.println(mm.add("e6", new String[]
{
"value1", null
}));
}
catch (RuntimeException e)
{
System.err.println("add(e6, new String[]{null } ) throws exception: " + e);
}
try
{
System.out.println(mm.add(null, "p1"));
}
catch (RuntimeException e)
{
System.err.println("add(null, p1)returns throws exception: " + e);
}
try
{
System.out.println(mm.getChildrenRight("p1"));
}
catch (RuntimeException e)
{
System.err.println("getChildrenRight(p1) throws exception: " + e);
}
try
{
mm.add((String) new Object(), (String) new Object());
}
catch (RuntimeException e)
{
System.err.println("add((String) new Object(), (String) new Object()) throws exception: " + e);
}
mm.clear();
System.out.println("-----------------------------------------------");
System.out.println("The internal hash maps of ManyToMany after clear: " + mm);
}
}

@ -0,0 +1,147 @@
/*
* 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 asdv.mp1_ajax.pojos;
import java.io.Serializable;
import java.util.Collection;
public class Stock implements Serializable
{
private static final long serialVersionUID = 1L;
private String stockId;
private String companyName;
private double priceCurrent;
private double priceClosing;
private long numberOfSharesAvailable;
private long numberOfSharesSold;
private Collection<Transactions> transactionsCollection;
public Stock()
{
}
public Stock(String stockId)
{
this.stockId = stockId;
}
public Stock(String stockId, String companyName, double priceCurrent, double priceClosing, long numberOfSharesAvailable, long numberOfSharesSold)
{
this.stockId = stockId;
this.companyName = companyName;
this.priceCurrent = priceCurrent;
this.priceClosing = priceClosing;
this.numberOfSharesAvailable = numberOfSharesAvailable;
this.numberOfSharesSold = numberOfSharesSold;
}
public String getStockId()
{
return stockId;
}
public void setStockId(String stockId)
{
this.stockId = stockId;
}
public String getCompanyName()
{
return companyName;
}
public void setCompanyName(String companyName)
{
this.companyName = companyName;
}
public double getPriceCurrent()
{
return priceCurrent;
}
public void setPriceCurrent(double priceCurrent)
{
this.priceCurrent = priceCurrent;
}
public double getPriceClosing()
{
return priceClosing;
}
public void setPriceClosing(double priceClosing)
{
this.priceClosing = priceClosing;
}
public long getNumberOfSharesAvailable()
{
return numberOfSharesAvailable;
}
public void setNumberOfSharesAvailable(long numberOfSharesAvailable)
{
this.numberOfSharesAvailable = numberOfSharesAvailable;
}
public long getNumberOfSharesSold()
{
return numberOfSharesSold;
}
public void setNumberOfSharesSold(long numberOfSharesSold)
{
this.numberOfSharesSold = numberOfSharesSold;
}
public Collection<Transactions> getTransactionsCollection()
{
return transactionsCollection;
}
public void setTransactionsCollection(Collection<Transactions> transactionsCollection)
{
this.transactionsCollection = transactionsCollection;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (stockId != null ? stockId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Stock))
{
return false;
}
Stock other = (Stock) object;
if ((this.stockId == null && other.stockId != null) || (this.stockId != null && !this.stockId.equals(other.stockId)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "asdv.mp1_ajax.entities.Stock[ stockId=" + stockId + " ]";
}
}

@ -0,0 +1,98 @@
/*
* 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 asdv.mp1_ajax.pojos;
import java.io.Serializable;
import java.util.Collection;
public class StockHolder implements Serializable
{
private static final long serialVersionUID = 1L;
private Integer stockHolderId;
private String name;
//cascade
private Collection<Transactions> transactionsCollection;
public StockHolder()
{
}
public StockHolder(Integer stockHolderId)
{
this.stockHolderId = stockHolderId;
}
public StockHolder(Integer stockHolderId, String name)
{
this.stockHolderId = stockHolderId;
this.name = name;
}
public Integer getStockHolderId()
{
return stockHolderId;
}
public void setStockHolderId(Integer stockHolderId)
{
this.stockHolderId = stockHolderId;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Collection<Transactions> getTransactionsCollection()
{
return transactionsCollection;
}
public void setTransactionsCollection(Collection<Transactions> transactionsCollection)
{
this.transactionsCollection = transactionsCollection;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (stockHolderId != null ? stockHolderId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof StockHolder))
{
return false;
}
StockHolder other = (StockHolder) object;
if ((this.stockHolderId == null && other.stockHolderId != null) || (this.stockHolderId != null && !this.stockHolderId.equals(other.stockHolderId)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "asdv.mp1_ajax.entities.StockHolder[ stockHolderId=" + stockHolderId + " ]";
}
}

@ -0,0 +1,112 @@
/*
* 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 asdv.mp1_ajax.pojos;
import java.io.Serializable;
public class Transactions implements Serializable
{
private static final long serialVersionUID = 1L;
protected TransactionsPK transactionsPK;
private int qty;
private Stock stock;
private StockHolder stockHolder;
public Transactions()
{
}
public Transactions(TransactionsPK transactionsPK)
{
this.transactionsPK = transactionsPK;
}
public Transactions(TransactionsPK transactionsPK, int qty)
{
this.transactionsPK = transactionsPK;
this.qty = qty;
}
public Transactions(int stockHolderId, String stockId)
{
this.transactionsPK = new TransactionsPK(stockHolderId, stockId);
}
public TransactionsPK getTransactionsPK()
{
return transactionsPK;
}
public void setTransactionsPK(TransactionsPK transactionsPK)
{
this.transactionsPK = transactionsPK;
}
public int getQty()
{
return qty;
}
public void setQty(int qty)
{
this.qty = qty;
}
public Stock getStock()
{
return stock;
}
public void setStock(Stock stock)
{
this.stock = stock;
}
public StockHolder getStockHolder()
{
return stockHolder;
}
public void setStockHolder(StockHolder stockHolder)
{
this.stockHolder = stockHolder;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (transactionsPK != null ? transactionsPK.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Transactions))
{
return false;
}
Transactions other = (Transactions) object;
if ((this.transactionsPK == null && other.transactionsPK != null) || (this.transactionsPK != null && !this.transactionsPK.equals(other.transactionsPK)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "asdv.mp1_ajax.entities.Transactions[ transactionsPK=" + transactionsPK + " ]";
}
}

@ -0,0 +1,87 @@
/*
* 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 asdv.mp1_ajax.pojos;
import java.io.Serializable;
import jakarta.persistence.Embeddable;
/**
*
* @author asdv5
*/
@Embeddable
public class TransactionsPK implements Serializable
{
private int stockHolderId;
private String stockId;
public TransactionsPK()
{
}
public TransactionsPK(int stockHolderId, String stockId)
{
this.stockHolderId = stockHolderId;
this.stockId = stockId;
}
public int getStockHolderId()
{
return stockHolderId;
}
public void setStockHolderId(int stockHolderId)
{
this.stockHolderId = stockHolderId;
}
public String getStockId()
{
return stockId;
}
public void setStockId(String stockId)
{
this.stockId = stockId;
}
@Override
public int hashCode()
{
int hash = 0;
hash += (int) stockHolderId;
hash += (stockId != null ? stockId.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object)
{
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TransactionsPK))
{
return false;
}
TransactionsPK other = (TransactionsPK) object;
if (this.stockHolderId != other.stockHolderId)
{
return false;
}
if ((this.stockId == null && other.stockId != null) || (this.stockId != null && !this.stockId.equals(other.stockId)))
{
return false;
}
return true;
}
@Override
public String toString()
{
return "asdv.mp1_ajax.entities.TransactionsPK[ stockHolderId=" + stockHolderId + ", stockId=" + stockId + " ]";
}
}

@ -0,0 +1,20 @@
package asdv.mp1_ajax.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,36 @@
/*
* 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 edu.slcc.ajax.bl.StockDB;
import jakarta.enterprise.context.SessionScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import java.io.Serializable;
/**
*
* @author asdv5
*/
@Named(value="stockBean")
@SessionScoped
public class StockBean implements Serializable
{
@Inject
StockDB stocks;
/** Creates a new instance of StockBean */
public StockBean() {
}
public StockDB getStocks()
{
return stocks;
}
}

@ -0,0 +1,28 @@
/*
* 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.ajax.bl;
import java.sql.SQLException;
import java.util.List;
public interface Dao<T>
{
void create(T t);
void edit(T t);
void remove(T t);
T find(Object id) ;
List<T> findAll()
throws SQLException;;
List<T> findRange(int[] range);
int count();
}

@ -0,0 +1,73 @@
package edu.slcc.ajax.bl;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
/**
*
* @author ASDV2
*/
public interface Database
{
/**
* Returns a Connection to a database or null if no connection is done.
*
* @param databaseName name
* @param userName database user name
* @param password database password
* @param driver driver that connects us to database
* @return Connection the connection to database or null if no connection
*/
public Connection getConnection(String databaseName, String userName, String password, String driver);
/**
* Selects the projected columns of a table where the AND condition of the
* WHERE clause is true.
*
* @param tableName table name
* @param projectionFields fields if SELECT clause ( projected columns)
* @param whereFieldsNValues fields in WHERE clause, key is the field name(
* LHS ) and value of the field ( RHS ). For example snumber = 's1', status
* > "10".
* @param operators the operators that apply to whereFieldsNValues. They are
* positioned between the LHS and the RHS of the whereFieldsNValues
* parameter. The operators are always the same size as the
* whereFieldsNValues. That is,the first operator applies to the first entry
* of the map, the second operator to the 2nd entry and so on.
* @return the projected columns of a table, after the WHERE clause applies
* by ANDing all entries of the map ( whereFieldsNValues). If an SQL
* exception is thrown return NULL if an error ( exception occurs).
*
*/
public List<String> selectFieldsFromTableWhereFields(String tableName,
List<String> projectionFields,
Map<String, String> whereFieldsNValues,
List<String> operators
);
/**
* Returns the list of all rows of the table "tableName"
*
* @param tableName the name of the table to return
* @return a list with all rows in the the table.
*/
public List<String> selectAllFromTable(String tableName);
/**
* Returns true if the table exists in the database, false otherwise
*
* @param tableName the name of the table
* @return true if the table exists in the database, false otherwise
*/
boolean isTable(String tableName);
/**
* Closes a connection
*
* @param c the connection to close
*/
public void closeConnection(Connection c);
}

@ -0,0 +1,129 @@
/*
* 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.ajax.bl;
import asdv.mp1_ajax.pojos.Stock;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
/**
*
* @author asdv5
*/
public class StockDB
implements Dao<Stock>, Serializable
{
@Override
public List<Stock> findAll()
throws SQLException
{
// test exception code
//if ( true)
// throw new SQLException();
List<Stock> tableStocks = new ArrayList<Stock>();
String databaseName = "nyse";
String userName = "root";
String password = "root";
String URL2 = "com.mysql.jdbc.Driver";
Connection con = new UtilitiesDatabase().connection(
databaseName, userName, password, URL2);
PreparedStatement ps = null;
try
{
if (con == null)
{
throw new RuntimeException("cannot connect to database");
}
String table = "";
ResultSet rs = null;
String sqlStr = "SELECT * FROM stock";
//prepare statement
ps = con.prepareStatement(sqlStr);
//execute
rs = ps.executeQuery();
while (rs.next())
{
String stockId = rs.getString(1);
String companyName = rs.getString(2);
double priceCurrent = rs.getDouble(3);
double priceClosing = rs.getDouble(4);
long numberOfSharesAvailable = rs.getLong(5);
long numberOfSharesSold = rs.getLong(6);
Stock stock = new Stock(stockId, companyName, priceCurrent, priceClosing, numberOfSharesAvailable, numberOfSharesSold);
tableStocks.add(stock);
}
}
catch (Exception ex)
{
ex.printStackTrace();
throw ex;
}
finally
{
try
{
new UtilitiesDatabase().closeDatabaseConnection(con);
// close the resources
if (ps != null)
{
ps.close();
}
}
catch (SQLException sqle)
{
System.out.println(sqle);
sqle.printStackTrace();
throw sqle;
}
}
return tableStocks;
}
@Override
public void create(Stock t)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public void edit(Stock t)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public void remove(Stock t)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public Stock find(Object id)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public List<Stock> findRange(int[] range)
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
@Override
public int count()
{
throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
}

@ -0,0 +1,103 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.ajax.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 + ":8889/" + databaseName + "?useSSL=false";
try
{
con = DriverManager.getConnection(url, userName, password);
con.setReadOnly(false);
}
catch (Exception e)
{
System.err.println(e.toString());
return null;
}
System.out.println("connection successfull");
return con;
}
public void closeDatabaseConnection( Connection con)
{
try
{
if (con != null)
{
con.close();
}
}
catch (SQLException e)
{
System.out.println(e);
e.printStackTrace();
}
}
public static java.sql.Date stringDateToSqlDate(String sDate)
{
java.util.Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
{
date = sdf.parse(sDate);
}
catch (ParseException e)
{
e.printStackTrace();
}
return new java.sql.Date( date.getTime() );
}
public static java.util.Date stringDateToJavaUtilitiesDate(String sDate)
{
java.sql.Date sqldate = stringDateToSqlDate(sDate);
return new java.util.Date(sqldate.getTime() );
}
}

@ -0,0 +1,8 @@
<?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">
<persistence-unit name="asdv_MP1_Ajax_war_1PU" transaction-type="JTA">
<jta-data-source>java:app/nyse</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</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,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="mysql_nyse_rootPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="serverName" value="localhost"/>
<property name="portNumber" value="8889"/>
<property name="databaseName" value="nyse"/>
<property name="User" value="root"/>
<property name="Password" value="root"/>
<property name="URL" value="jdbc:mysql://localhost:8889/nyse?zeroDateTimeBehavior=CONVERT_TO_NULL"/>
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="java:app/nyse" object-type="user" pool-name="mysql_nyse_rootPool"/>
<jdbc-resource enabled="true" jndi-name="java:app/nyse1" object-type="user" pool-name="mysql_nyse_rootPool"/>
</resources>

@ -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,49 @@
<?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"
xmlns:f5="http://xmlns.jcp.org/jsf/passthrough">
<h:head>
<title>MP1 Ajax</title>
<h:outputStylesheet library="css" name="styles.css"/>
</h:head>
<h:body>
<h:form>
<p:dataTable id= "id_dataTable1" value ="#{stockBean.getStocks().findAll() }"
style="width: 100%; "
var="stock"
scrollable="true"
paginator="true"
rowHover ="true"
paginatorPosition="bottom"
>
<p:column headerText="Stock ID" >
<p:outputLabel title= "Stock ID" value="#{stock.stockId}" />
</p:column >
<p:column headerText="Stock Name" >
<p:outputLabel title= "Stock Name" value="#{stock.companyName}" />
</p:column >
<p:column headerText="Current Price" >
<p:outputLabel title= "Current Price" value="#{stock.priceCurrent}" />
</p:column >
<p:column headerText="Closing Price" >
<p:outputLabel title= "Closing Price" value="#{stock.priceClosing}" />
</p:column >
<p:column headerText="Shares Avialable" >
<p:outputLabel title= "Shares Avialable" value="#{stock.numberOfSharesAvailable}" />
</p:column >
<p:column headerText="Shares Sold" >
<p:outputLabel title= "Shares Sold" value="#{stock.numberOfSharesSold}" />
</p:column >
</p:dataTable>
</h:form>
</h:body>
</html>

@ -0,0 +1,45 @@
/*
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
Click nbfs://nbhost/SystemFileSystem/Templates/JSP_Servlet/CascadeStyleSheet.css to edit this template
*/
/*
Created on : Jan 13, 2024, 9:50:00 AM
Author : asdv5
*/
.grandParent{
margin:0 auto;
float:left;
min-width:100px;
max-width:120px;
height:150px;
position:relative;
border-left: 1px solid #000000;
border-right: 1px solid #000000;
background:#cccccc;
font-size:11px;
cursor:pointer;
}
.theColumn{
width:100%;
padding: 20px;
background-color: blue;
}
.elementsOfTheColumn{
width:60%;
margin-left: 10px;
display:inline-table;
position:relative;
}
.elementsOfTheColumnButton{
width:30%;
margin-left: 10px;
display:inline-table;
position:relative;
}

@ -15,6 +15,7 @@ Any value defined here will override the pom.xml file value but is only applicab
-->
<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>
<org-netbeans-modules-projectapi.jsf_2e_language>JSP</org-netbeans-modules-projectapi.jsf_2e_language>
<org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>ide</org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>
</properties>
</project-shared-configuration>

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

@ -0,0 +1,48 @@
<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>TermProject1_CalebFontenot</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>TermProject1_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>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>13.0.5</version>
<classifier>jakarta</classifier>
</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,13 @@
package edu.slcc.asdv.caleb.termproject1_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,38 @@
/*
* 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.caleb.termproject1_calebfontenot.beans;
import jakarta.inject.Named;
import jakarta.faces.view.ViewScoped;
import java.io.Serializable;
import java.util.ArrayList;
/**
*
* @author A. V. Markou
*/
@Named(value = "matrixBeanA")
@ViewScoped
public class MatrixBeanA implements Serializable
{
ArrayList<ArrayList<String>> matrix = new ArrayList<ArrayList<String>>();
ArrayList<ArrayList<String>> getMatrix()
{
return matrix;
}
public void setMatrixA(ArrayList<ArrayList<String>> matrix)
{
this.matrix = matrix;
}
public void changeRowsColumns() {
// String componentId;
}
}

@ -0,0 +1,34 @@
/*
* 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.caleb.termproject1_calebfontenot.beans;
import jakarta.inject.Named;
import jakarta.faces.view.ViewScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import org.primefaces.PrimeFaces;
/**
*
* @author A. V. Markou
*/
@Named(value = "matrixBeanB")
@ViewScoped
public class MatrixBeanB implements Serializable
{
ArrayList<ArrayList<String>> matrix = new ArrayList<ArrayList<String>>();
ArrayList<ArrayList<String>> getMatrix()
{
return matrix;
}
public void setMatrixB(ArrayList<ArrayList<String>> matrix)
{
this.matrix = matrix;
}
}

@ -0,0 +1,32 @@
/*
* 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.caleb.termproject1_calebfontenot.beans;
import jakarta.inject.Named;
import jakarta.faces.view.ViewScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
/**
*
* @author A. V. Markou
*/
@Named(value = "matrixBeanC")
@ViewScoped
public class MatrixBeanC implements Serializable
{
ArrayList<ArrayList<String>> matrix = new ArrayList<ArrayList<String>>();
ArrayList<ArrayList<String>> getMatrix()
{
return matrix;
}
public void setMatrixC(ArrayList<ArrayList<String>> matrix)
{
this.matrix = matrix;
}
}

@ -0,0 +1,64 @@
/*
* 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.caleb.termproject1_calebfontenot.beans;
import jakarta.inject.Named;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.ArrayList;
/**
*
* @author A. V. Markou
*/
@Named(value = "matrixOperations")
@ViewScoped
public class MatrixOperations implements Serializable
{
@Inject
MatrixBeanA matrixA;
@Inject
MatrixBeanB matrixB;
@Inject
MatrixBeanC matrixC;
public String add() {
ArrayList<ArrayList<String>> a = matrixA.getMatrix();
ArrayList<ArrayList<String>> b = matrixB.getMatrix();
ArrayList<ArrayList<String>> c = new ArrayList<ArrayList<String>>();
for ( int i=0; i < a.size(); ++i)
{
ArrayList<String> row = new ArrayList<>();
for ( int j=0; j < a.size(); ++j)
{
Integer result = Integer.parseInt ( a.get(i).get(j))
+
Integer.parseInt ( b.get(i).get(j));
row.add( result.toString() );
}
c.add(row);
System.out.println(row);
}
matrixC.setMatrixC( c );
return "";
}
public String multiply(){return "";}
public MatrixBeanC getMatrixC(){return this.matrixC;}
public MatrixBeanA getMatrixA(){return matrixA;}
public MatrixBeanB getMatrixB(){return matrixB;}
}

@ -0,0 +1,64 @@
/*
* 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.caleb.termproject1_calebfontenot.beans;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.application.FacesMessage.Severity;
import jakarta.faces.context.FacesContext;
import jakarta.inject.Named;
import jakarta.faces.view.ViewScoped;
import jakarta.inject.Inject;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.primefaces.PrimeFaces;
@Named(value = "menuBar")
@ViewScoped
public class MenuBar implements Serializable
{
@Inject
MatrixOperations matrixOperations;
private List<List<Object>> menus = new ArrayList<List<Object>>();
public void add()
{
System.out.println("Menu multiply was called");
matrixOperations.multiply();
List<String> idsC = new ArrayList<>();
idsC.add("formC");
idsC.add("formC:datatableC");
idsC.add("formC:datatableC:columnsC");
idsC.add("formC:datatableC:columnsC:inputTextC");
//idsC.add("form-menu");//:menuBar:submenu_matricies:menuitem_add");
PrimeFaces.current().ajax().update(idsC);
}
public void multiply()
{
message(
FacesMessage.SEVERITY_INFO,
"Not implemented.", "To be implemented."
);
}
public void subtract()
{
message(
FacesMessage.SEVERITY_INFO,
"Not implemented.", "To be implemented."
);
}
public void message(Severity severity, String msg, String msgDetails)
{
FacesMessage m = new FacesMessage(severity, msg, msgDetails);
FacesContext.getCurrentInstance().addMessage("msg", m);
}
}

@ -0,0 +1,261 @@
package edu.slcc.asdv.bl;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask;
/**
*
* @author A. V. Markou
*/
public class Matrices implements Matrix
{
@Override
public ArrayList<ArrayList<BigInteger>> addParallel(ArrayList<ArrayList<BigInteger>> A, ArrayList<ArrayList<BigInteger>> B)
{
RecursiveTask<ArrayList<ArrayList<BigInteger>>> rt
= new Matrices.MatricesAddition(0, A.size() - 1, A, B);
ForkJoinPool pool = new ForkJoinPool();
ArrayList<ArrayList<BigInteger>> result = pool.invoke(rt);
return result;
}
@Override
public ArrayList<ArrayList<BigInteger>> multiplyParallel(ArrayList<ArrayList<BigInteger>> A, ArrayList<ArrayList<BigInteger>> B)
{
RecursiveTask<ArrayList<ArrayList<BigInteger>>> rt
= new Matrices.MatricesMultiplication(0, A.size() - 1, A, B);
ForkJoinPool pool = new ForkJoinPool();
ArrayList<ArrayList<BigInteger>> result = pool.invoke(rt);
return result;
}
static class MatricesAddition extends RecursiveTask<ArrayList<ArrayList<BigInteger>>>
{
ArrayList<ArrayList<BigInteger>> A;
ArrayList<ArrayList<BigInteger>> B;
ArrayList<ArrayList<BigInteger>> AplusB;
final int HOW_MANY_ROWS_IN_PARALLEL = 100;//threshold
int startIndex;
int endIndex;
public MatricesAddition(int startIndex, int endIndex,
ArrayList<ArrayList<BigInteger>> A,
ArrayList<ArrayList<BigInteger>> B)
{
this.startIndex = startIndex;//start at this row of the matrix
this.endIndex = endIndex;//end at this row of the matrix
this.A = A;
this.B = B;
AplusB = new ArrayList<ArrayList<BigInteger>>();
}
@Override
protected ArrayList<ArrayList<BigInteger>> compute()
{
//>>This is the addition of matrices in the IF.
//That is, HOW_MANY_ROWS_IN_PARALLEL from matrix A and HOW_MANY_ROWS_IN_PARALLEL from matrix B
if (this.endIndex - this.startIndex < HOW_MANY_ROWS_IN_PARALLEL)
{
ArrayList<ArrayList<BigInteger>> resultC = new ArrayList<ArrayList<BigInteger>>();
for (int i = this.startIndex; i <= this.endIndex; ++i)
{
//>create a new row to add it to the resulting matrix resultC
ArrayList<BigInteger> rowAplusB = new ArrayList<BigInteger>();
for (int j = 0; j < A.get(0).size(); j++)
//>get the Ith row from A and the Ith row from B and
//and add all the Jth entries from each row
{
BigInteger x = A.get(i).get(j);
BigInteger y = B.get(i).get(j);
BigInteger z = x.add(y);
rowAplusB.add(z);
}
resultC.add(rowAplusB);
}
return resultC;
}
else
{ //>> keep on FORKING the matrix until the
//side of the matric is equal or less to HOW_MANY_ROWS_IN_PARALLEL
int mid = (this.endIndex + this.startIndex) / 2;
RecursiveTask<ArrayList<ArrayList<BigInteger>>> firstHalf
= new MatricesAddition(this.startIndex, mid, A, B);
RecursiveTask<ArrayList<ArrayList<BigInteger>>> secondHalf
= new MatricesAddition(mid + 1, this.endIndex, A, B);
firstHalf.fork();//this line will invoke method compute
secondHalf.fork();///this line will invoke method compute
//>> join what the FORKs returned from the IFs
AplusB.addAll(firstHalf.join());
AplusB.addAll(secondHalf.join());
return AplusB;
}
}
}
/**
* Multiples two lists one 1-t01 correspondence, that is the 1st element of
* the first list is multiplied with 1st elements of the second list and so
* on
*
* @param list1
* @param list2
* @return the multiplied results
*/
public static ArrayList<BigInteger> multiplyLists(ArrayList<BigInteger> list1, ArrayList<BigInteger> list2)
{
ArrayList<BigInteger> resultsOfMultiplications = new ArrayList<BigInteger>();
for (int bi = 0; bi < list1.size();
++bi)
{
resultsOfMultiplications.add(list1.get(bi).multiply(list2.get(bi)));
}
return resultsOfMultiplications;
}
public static ArrayList<ArrayList<BigInteger>> columnMajorOrderReversal(ArrayList<ArrayList<BigInteger>> b)
{
ArrayList<ArrayList<BigInteger>> tranformed = new ArrayList<ArrayList<BigInteger>>();
for (int column = 0;
column < b.get(0).size();
++column)
{
ArrayList<BigInteger> rowTrandormedToColmn = new ArrayList<BigInteger>();
for (int row = 0;
row < b.size();
++row)
{
BigInteger bd = b.get(row).get(column);
rowTrandormedToColmn.add(bd);
}
tranformed.add(rowTrandormedToColmn);
}
return tranformed;
}
/**
* Adds a list of Big Decimals and returns the result of the addition.
*
* @param list - list of BigDecimal type
* @return the sum of the list
*/
public static BigInteger add(ArrayList<BigInteger> list)
{
BigInteger bd = BigInteger.ZERO;
for (int bi = 0; bi < list.size();
bi++)
{
bd = bd.add(list.get(bi));
}
return bd;
}
static class MatricesMultiplication extends RecursiveTask<ArrayList<ArrayList<BigInteger>>>
{
ArrayList<ArrayList<BigInteger>> A;
ArrayList<ArrayList<BigInteger>> B;
ArrayList<ArrayList<BigInteger>> AxB;
final int HOW_MANY_ROWS_IN_PARALLEL = 3;//threshold
int startIndex;
int endIndex;
public MatricesMultiplication(int startIndex, int endIndex,
ArrayList<ArrayList<BigInteger>> A,
ArrayList<ArrayList<BigInteger>> B)
{
this.startIndex = startIndex;//start at this row of the matrix
this.endIndex = endIndex;//end at this row of the matrix
this.A = A;
this.B = B;
AxB = new ArrayList<ArrayList<BigInteger>>();
}
/**
* matrix 1, 2, 3 4, 5, 6
*
* will be transformed to 1, 4 2, 5 3, 6
*
* @param list
* @return
*/
@Override
protected ArrayList<ArrayList<BigInteger>> compute()
{
//>>This is the addition of matrices in the IF.
//That is, HOW_MANY_ROWS_IN_PARALLEL from matrix A and HOW_MANY_ROWS_IN_PARALLEL from matrix B
if (this.endIndex - this.startIndex < HOW_MANY_ROWS_IN_PARALLEL)
{
ArrayList<ArrayList<BigInteger>> resultC = new ArrayList<ArrayList<BigInteger>>();
ArrayList<ArrayList<BigInteger>> bTransformed = columnMajorOrderReversal(B);
for (int biA = this.startIndex;
biA <= this.endIndex;
++biA)
{
ArrayList<BigInteger> rowA = A.get(biA);
ArrayList<BigInteger> rowAxB = new ArrayList<BigInteger>();
ArrayList<BigInteger> rowCalculation = new ArrayList<BigInteger>();
for (int biB = 0;
biB < bTransformed.size();
++biB)
{
ArrayList<BigInteger> rowB = bTransformed.get(biB);
ArrayList<BigInteger> productsOfRow = multiplyLists(rowA, rowB);
BigInteger sumOfRow = add(productsOfRow);
rowCalculation.add(sumOfRow);
}
resultC.add(rowCalculation);
}
return resultC;
}
else
{ //>> keep on FORKING the matrix until the
//side of the matric is equal or less to HOW_MANY_ROWS_IN_PARALLEL
int mid = (this.startIndex + this.endIndex) / 2;
RecursiveTask<ArrayList<ArrayList<BigInteger>>> firstHalf
= new MatricesMultiplication(this.startIndex, mid, A, B);
RecursiveTask<ArrayList<ArrayList<BigInteger>>> secondHalf
= new MatricesMultiplication(mid + 1, this.endIndex, A, B);
firstHalf.fork();//this line will invoke method compute
secondHalf.fork();///this line will invoke method compute
//>> join what the FORKs returned from the IFs
AxB.addAll(firstHalf.join());
AxB.addAll(secondHalf.join());
return AxB;
}
}
}
}

@ -0,0 +1,19 @@
/*
* 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.math.BigInteger;
import java.util.ArrayList;
/**
*
* @author ASDV1
*/
public interface Matrix
{
ArrayList<ArrayList<BigInteger>> addParallel(ArrayList<ArrayList<BigInteger>> A, ArrayList<ArrayList<BigInteger>> B);
ArrayList<ArrayList<BigInteger>> multiplyParallel(ArrayList<ArrayList<BigInteger>> A, ArrayList<ArrayList<BigInteger>> B);
}

@ -0,0 +1,20 @@
package edu.slcc.asdv.caleb.termproject1_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,123 @@
/*
* 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.caleb.termproject1_calebfontenot.utilities;
import jakarta.el.ELContext;
import jakarta.el.ELResolver;
import jakarta.faces.application.Application;
import jakarta.faces.application.FacesMessage;
import jakarta.faces.component.UIComponent;
import jakarta.faces.context.FacesContext;
import java.math.BigInteger;
import java.util.ArrayList;
public class Utilities
{
public static UIComponent findComponent(String id)
{
UIComponent result = null;
UIComponent root = FacesContext.getCurrentInstance().getViewRoot();
if (root != null)
{
result = findComponent(root, id);
}
return result;
}
public static UIComponent findComponent(UIComponent root, String id)
{
UIComponent result = null;
if (root.getId().equals(id))
{
return root;
}
for (UIComponent child : root.getChildren())
{
if (child.getId().equals(id))
{
result = child;
break;
}
result = findComponent(child, id);
if (result != null)
{
break;
}
}
return result;
}
public static void printIDs(UIComponent component)
{
System.out.println("\n\nPARENT ID " + component.getId());
if (component.getChildren() == null)
{
return;
}
for (UIComponent child : component.getChildren())
{
System.out.println("\t\tCHILD ID " + child.getId());
printIDs(child);
}
}
public static boolean isNumberOrDecimal( String s )
{
System.out.println("isNumberOrDecimal called " + s);
//[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)
String regx = "^[+-]?(\\d*\\.)?\\d+$";
return s.matches(regx);
}
public static void message( FacesMessage.Severity severity, String msg, String msgDetails)
{
FacesMessage m = new FacesMessage(severity, msg, msgDetails);
FacesContext.getCurrentInstance().addMessage("msg", m);
}
public static <T> T getCDIBean(String nameOfTheBean)
{
ELContext elc = FacesContext.getCurrentInstance().getELContext();
FacesContext fc = FacesContext.getCurrentInstance();
Application ap = fc.getApplication();
ELResolver elr = ap.getELResolver();
return (T) elr.getValue(elc, null, nameOfTheBean);
}
public static ArrayList<ArrayList<String>> convertBigIntegerToString(ArrayList<ArrayList<BigInteger>> matrix)
{
ArrayList<ArrayList<String>> stringMatrix = new ArrayList<ArrayList<String>>();
for (ArrayList<BigInteger> row : matrix)
{
ArrayList<String> stringRow = new ArrayList<String>();
for (BigInteger bigInt : row)
{
stringRow.add(new String(bigInt.toString()));
}
stringMatrix.add(stringRow);
}
return stringMatrix;
}
}

@ -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,56 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<title></title>
</h:head>
<h:body>
<ui:composition
template="resources/templates/generic/generic-layout.xhtml">
<ui:param name="wrapperWidth" value="80%"/>
<ui:define name="title">
Application Software Development, SLCC
</ui:define>
<ui:define name="top">
Templates, and Menus Illustration
</ui:define>
<ui:param name="loginsearch" value="true"/>
<ui:define name="logo"> </ui:define>
<ui:define name="login">
<ui:include src="/login-n-search/login.xhtml"/>
</ui:define>
<ui:define name="search">
<ui:include src="/login-n-search/search.xhtml"/>
</ui:define>
<ui:define name="menu">
<ui:include src="/matrices/menuMatrices.xhtml">
<ui:param name = "isMenu" value="true" />
</ui:include>
</ui:define>
<ui:param name="left" value="false"/>
<!-- if we do NOT want right to appear, set right to false -->
<ui:param name="right" value="false"/>
<ui:param name="content" value="true"/>
<ui:define name="content">
<ui:include src="/matrices/compose.xhtml"/>
</ui:define>
<ui:define name="bottom">ASDV 2800 , Templates</ui:define>
</ui:composition>
<br />
</h:body>
</html>

@ -0,0 +1,25 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui"
xmlns:f5="http://xmlns.jcp.org/jsf/passthrough">
<h:head>
<title>Login</title>
>
</h:head>
<h:body>
<ui:composition>
<h:form id="loginFormId">
<h:inputText styleClass="inputs" value="" f5:type="email" f5:placeholder="E-mail"/>
<h:inputSecret styleClass="inputs" value="" f5:placeholder="Password"/>
<h:commandButton styleClass="lbutton" value="Login"/>
</h:form>
</ui:composition>
</h:body>
</html>

@ -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"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f5="http://xmlns.jcp.org/jsf/passthrough">
<h:head>
<title>Login</title>
>
</h:head>
<h:body>
<ui:composition>
<h:form id="searchFormId">
<h:inputText styleClass="inputs" value="" f5:type="email" f5:placeholder="Search"/>
<h:commandButton styleClass="lbutton" value="Search!"/>
</h:form>
</ui:composition>
</h:body>
</html>

@ -0,0 +1,26 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<ui:fragment>
<p:panelGrid columns="3" >
<p:column >
<ui:include src="/matrices/matrixA.xhtml"/>
</p:column>
<p:column >
<ui:include src="/matrices/matrixB.xhtml"/>
</p:column>
<p:column >
<ui:include src="/matrices/matrixC.xhtml"/>
</p:column>
</p:panelGrid>
</ui:fragment>
</h:body>
</html>

@ -0,0 +1,24 @@
<?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>MatriX A</title>
<h:outputStylesheet name="css/layout-css/dataTable.css" />
<h:outputScript library="js" name="do_validation.js"/>
</h:head>
<h:body>
<h:form id="form_matrix_A">
<p:tooltip globalSelector="true"/>
<p:growl id="id_messageA" showDetail="true"/>
<h3>Matrix A</h3>
<h4>DataTable of dynamically created of input-texts</h4>
</h:form>
</h:body>
</html>

@ -0,0 +1,18 @@
<?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>MatriX A</title>
</h:head>
<h:body>
<h:form id="form_matrix_B">
<h3>Matrix B</h3>
<h4>DataTable of dynamically created of input-texts</h4>
</h:form>
</h:body>
</html>

@ -0,0 +1,18 @@
<?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>MAtrix C</title>
</h:head>
<h:body>
<h:form id="formC" >
<h3> Matrix C = A menu-operation B </h3>
</h:form>
</h:body>
</html>

@ -0,0 +1,29 @@
<?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"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Menu Matricies</title>
</h:head>
<h:body>
<ui:fragment rendered="#{isMenu eq 'true' ? true : false}">
<p:tooltip globalSelector="true"/>
<h:form id="form_menu">
<p:growl id="id_message" showDetail="true"/>
<p:menubar id="menuBar">
<p:submenu id="submenu_matricies" label="Matrix" icon="pi pi-table">
<p:menuitem title="Addition" id ="menuitem_add" value="Add" disabled="false"
action="#{menuBar.add()}" icon="pi pi-plus" update="id_message"/>
<p:menuitem title="Multiplication" id ="menuitem_multiply" value="Multiply" disabled="false"
action="#{menuBar.multiply()}" icon="pi pi-plus" update="id_message"/>
<p:menuitem title="Subtraction" id ="menuitem_subtract" value="Subtract" disabled="false"
action="#{menuBar.subtract()}" icon="pi pi-plus" update="id_message"/>
</p:submenu>
</p:menubar>
</h:form>
</ui:fragment>
</h:body>
</html>

@ -0,0 +1,39 @@
<?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:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<title>Menu</title>
</h:head>
<h:body>
<ui:fragment rendered="#{ isMenu eq 'true' ? true : false}">
<p:tooltip globalSelector="true"/>
<h:form id="form_menu">
<p:growl id="id_message" showDetail="true"/>
<p:menubar id="menuBar">
<p:submenu id ="submenu_matrices"
label="Matrix" icon="pi pi-table">
<p:menuitem title="This does addition"
id ="menuitem_add" value="Add" disabled="false"
action="#{menuBar.add()}"
icon="pi pi-plus" update="id_message "/>
<p:menuitem icon="pi pi-times" title="Multiplication"
id ="menuitem_multiply" value="Multiply"
disabled="false"
action="#{menuBar.multiply()}"
update="id_message"/>
<p:menuitem title="Subtraction" id ="menuitem_subtract" value="Subtract"
action="#{menuBar.subtract}" disabled="false"
icon="pi pi-minus" update="id_message"/>
</p:submenu>
</p:menubar>
</h:form>
</ui:fragment >
</h:body>
</html>

@ -0,0 +1,18 @@
#bottom {
margin: 0px 0px 0px 0px;
text-align:center;
color: #ffffff;
background-image: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0, blue),
color-stop(1, blue)
);
background-image: -o-linear-gradient(bottom, blue 0%, #120205 100%);
background-image: -moz-linear-gradient(bottom, blue 0%, #120205 100%);
background-image: -webkit-linear-gradient(bottom, blue 0%, #120205 100%);
background-image: -ms-linear-gradient(bottom, blue 0%, #120205 100%);
background-image: linear-gradient(to bottom, blue 0%, #120205 100%);
}

@ -0,0 +1,50 @@
#wrapper {
margin-left:auto;
margin-right:auto;
}
#title {
position: relative;
margin: 1px 0px 0px 0px;
}
#login_and_search {
position: relative;
margin: 0px 0px 5px 0px;
}
#login {
float: left;
position: relative;
}
#search {
float: right;
position: relative;
}
#top {
position: relative;
overflow: hidden;
}
#bottom {
position: relative;
}
#left {
float: left;
}
#logo {
float: left;
}
#right {
float: right;
}
#content {
overflow: hidden;
}

@ -0,0 +1,237 @@
.rowNumber{
margin-right:20px;
width : 100px;
background: blue;
font-family: Impact;
font-size: 1.2em;
color: white;
}
body .ui-datatable .ui-paginator {
position: relative;
text-align: left;
bottom: 0px;
width: inherit;
padding: 2px;
z-index: 1;
}
.input {
font-size: 1em;
max-width: 35px;
min-width: 35px;
height : 35px;
font-size: 1em;
font-family: inherit;
background-color: #fff;
border: solid 1px;
border-color: blueviolet;
border-radius: 4px;
}
.dataTables {
overflow-y:scroll;
overflow-x:scroll;
height : 386px;
width: 300px;
display:block;
background-color: #fff;
zoom: 1;
}
.ui-datatable table{
border-collapse:collapse;
width:100%;
}
.ui-datatable.ui-datatable-header,.ui-datatable.ui-datatable-footer{
text-align:center;
padding:4px 10px;
}
.ui-datatable.ui-datatable-header{
border-bottom:0px none;
}
.ui-datatable.ui-datatable-footer{
border-top:0px none;
}
.ui-datatable thead th
{
font-family: Arial;
font-size: 1.2em;
color: blue;
background: white;
}
.ui-datatable thead td
{
font-family: Impact;
font-size:1.2em;
color: blue;
}
.ui-datatable tfoot td{
text-align:center;
}
ui-datatable thead th
{
overflow:hidden;
}
.ui-datatable tbody td , .ui-datatable tfoot td{
padding:4px 10px;
overflow:hidden;
white-space:nowrap;
border-width:1px;
border-style:solid;
}
.ui-datatable tbody tr
{
clear: both;
}
.ui-datatable .ui-sortable-column{
cursor:pointer;
}
.ui-datatable div.ui-dt-c{
position:relative;
}
.ui-datatable .ui-sortable-column-icon{
display:inline-block;
margin:-3px 0px -3px 2px;
}
.ui-datatable .ui-column-filter{
display:block;
width:100px;
margin:auto;
}
.ui-datatable .ui-expanded-row{
border-bottom:0px none;
}
.ui-datatable .ui-expanded-row-content{
border-top:0px none;
}
.ui-datatable .ui-row-toggler{
cursor:pointer;
}
.ui-datatable tr.ui-state-highlight{
cursor:pointer;
}
.ui-datatable .ui-selection-column .ui-chkbox-all{
display:block;
margin:0px auto;
width:16px;
height:16px;
}
.ui-datatable-scrollable table{
table-layout:auto;
}
.ui-datatable-scrollable-body{
overflow:auto;
}
.ui-datatable-scrollable-header,.ui-datatable-scrollable-footer{
overflow:hidden;
border:0px none;
}
.ui-datatable-scrollable .ui-datatable-scrollable-header,.ui-datatable-scrollable .ui-datatable-scrollable-footer{
position:relative;
}
.ui-datatable-scrollable .ui-datatable-scrollable-header td{
font-weight:normal;
}
.ui-datatable-scrollable-body::-webkit-scrollbar{
-webkit-appearance:none;
width:15px;
background-color:transparent;
}
.ui-datatable-scrollable-body::-webkit-scrollbar-thumb{
border-radius:8px;
border:1px solid white;
background-color:rgba(194,194,194,.5);
}
.ui-datatable .ui-datatable-data tr.ui-state-hover{
border-color:inherit;
font-weight:inherit;
cursor:pointer;
}
.ui-datatable .ui-paginator,.ui-datatable .ui-paginator{
padding:2px;
}
.ui-column-dnd-top, ui-column-dnd-bottom{
display:none;
position:absolute;
}
.ui-column-dnd-top .ui-icon, ui-column-dnd-bottom .ui-icon{
position:absolute;
top:-4px;
}
/* InCell Editing */.ui-datatable .ui-cell-editor-input{
display:none;
}
.ui-datatable .ui-row-editing .ui-cell-editor .ui-cell-editor-output{
display:none;
}
.ui-datatable .ui-row-editing .ui-cell-editor .ui-cell-editor-input{
display:block;
}
.ui-datatable .ui-row-editor span{
cursor:pointer;
display:inline-block;
}
.ui-datatable .ui-row-editor .ui-icon-pencil{
display:inline-block;
}
.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-pencil{
display:none;
}
.ui-datatable .ui-row-editor .ui-icon-check,.ui-datatable .ui-row-editor .ui-icon-close{
display:none;
}
.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-check,.ui-datatable .ui-row-editing .ui-row-editor .ui-icon-close{
display:inline-block;
}
.ui-datatable .ui-datatable-data tr.ui-row-editing td.ui-editable-column,.ui-datatable .ui-datatable-data td.ui-cell-editing{
padding:0;
margin:0;
}
/*resizer */.ui-datatable .ui-column-resizer{
width:8px;
height:20px;
padding:0px;
cursor:col-resize;
background-image:url("/ScraperOnWeb/javax.faces.resource/spacer/dot_clear.gif.jsf?ln=primefaces");
margin:-4px -10px -4px 0px;
float:right;
}
.ui-datatable .ui-filter-column .ui-column-resizer{
height:45px;
}
.ui-datatable .ui-column-resizer-helper{
width:1px;
position:absolute;
z-index:10;
display:none;
}
.ui-datatable-resizable{
padding-bottom:1px;/*fix for webkit overlow*/
overflow:auto;
}
.ui-datatable-resizable table{
table-layout:auto;
}
.ui-datatable-rtl{
direction:rtl;
}
.ui-datatable-rtl.ui-datatable thead th, .ui-datatable-rtl.ui-datatable tfoot td{
text-align:right;
}

@ -0,0 +1,8 @@
body {
background-color: #ffffff;
font-size: 12px;
font-family: Verdana, "Verdana CE", Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
color: #000000;
margin: 2px;
}

@ -0,0 +1,34 @@
* {box-sizing: border-box;}
.img-zoom-container {
position: relative;
}
.img-zoom-lens {
position: absolute;
/*set the size of the lens:*/
width: 40px;
height: 40px;
}
.img-zoom-result {
/*border: 5px solid #000000;*/
/*set the size of the result div:*/
width: 300px;
height: 300px;
}
.myDiv
{
align: center;
padding: 30px;
margin: 10;
border-left: 10px solid navy;
}
.hpanel{
position: relative;
top: 0px; left: 0px;
}

@ -0,0 +1,22 @@
#left {
background-image: -webkit-gradient(
linear,
left top,
left bottom,
color-stop(0, #2D4A37),
color-stop(1, #789480)
);
background-image: -o-linear-gradient(bottom, #2D4A37 0%, #789480 100%);
background-image: -moz-linear-gradient(bottom, #2D4A37 0%, #789480 100%);
background-image: -webkit-linear-gradient(bottom, #2D4A37 0%, #789480 100%);
background-image: -ms-linear-gradient(bottom, #2D4A37 0%, #789480 100%);
background-image: linear-gradient(to bottom, #2D4A37 0%, #789480 100%);
-moz-box-shadow: 0px 0px 15px 3px #333333;
-webkit-box-shadow: 0px 0px 15px 3px #333333;
box-shadow: 0px 0px 15px 3px #333333;
text-align:left;
padding-left:10px;
margin-right: 5px;
}

@ -0,0 +1,65 @@
.inputs {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background-color: #00f;
background: -moz-linear-gradient(top, #FFF, #EAEAEA);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.0, #FFF), color-stop(1.0, #EAEAEA));
border: 1px solid #CACACA;
color: #444;
font-size: 1.1em;
margin: 0px 10px 0px 0px;
padding-left: 2px;
width:200px;
}
.inputs:focus {
color: #ffffff;
background: #0000cc;
-webkit-box-shadow: 0 0 25px #CCC;
-moz-box-shadow: 0 0 25px #cccc00;
box-shadow: 0 0 25px #CCCC00;
-webkit-transform: scale(1.05);
-moz-transform: scale(1.05);
transform: scale(1.05);
}
.lbutton {
-moz-box-shadow: 4px 7px 13px -7px #276873;
-webkit-box-shadow: 4px 7px 13px -7px #276873;
box-shadow: 4px 7px 13px -7px #276873;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #171717), color-stop(1, #d92323));
background:-moz-linear-gradient(top, #171717 5%, #222 100%);
background:-webkit-linear-gradient(top, #171717 5%, #222 100%);
background:-o-linear-gradient(top, #171717 5%, #222 100%);
background:-ms-linear-gradient(top, #171717 5%, #222 100%);
background:linear-gradient(to bottom, #171717 5%, #222 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#171717', endColorstr='#d92323',GradientType=0);
background-color:#222;
-moz-border-radius:17px;
-webkit-border-radius:17px;
border-radius:17px;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:12px;
font-weight:bold;
padding:2px 12px;
text-decoration:none;
text-shadow:0px 1px 0px #3d768a;
}
.lbutton:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #222), color-stop(1, #171717));
background:-moz-linear-gradient(top, #00f 5%, #222 100%);
background:-webkit-linear-gradient(top, 00f 5%, #222 100%);
background:-o-linear-gradient(top, #00f 5%, #222 100%);
background:-ms-linear-gradient(top, #00f 5%, #222 100%);
background:linear-gradient(to bottom, #00f 5%, #222 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d92323', endColorstr='#222',GradientType=0);
background-color:#00f;
}
.lbutton:active {
position:relative;
top:1px;
}

@ -0,0 +1,8 @@
#login_and_search {
width:100%;
height:90px;
background-color: white;
padding: 20px;
display: inline-block;
}

@ -0,0 +1,9 @@
#logo {
background-image : url("#{resource['images/owl.png']}") ;
background-repeat: no-repeat;
margin-right: 0px;
width:60px;
height:60px;
float: left;
}

@ -0,0 +1,37 @@
#menu {
white-space: nowrap;
height: 28px;
width:100%;
background: #fff url("#{resource['images/menu.png']}") bottom center ;
margin-bottom: 5px;
}
#menu ul {
margin: 0;
padding: 0;
list-style:none;
float:left;
}
#menu li {
float: left;
margin: 0 3px 0 3px;
padding: 0;
background: transparent;
}
#menu a {
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
font-weight: normal;
float:left;
display:block;
height: 26px;
line-height: 24px;
padding: 2px 10px 0 10px;
color: #cccc00;
text-decoration: none;
background: transparent;
}

@ -0,0 +1,5 @@
#right {
background-color: #FA0519;
text-align:center;
margin-left: 5px;
}

@ -0,0 +1,67 @@
a {
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
font-weight: normal;
float:left;
display:block;
height: 26px;
line-height: 24px;
padding: 2px 10px 0 10px;
color: #cccc00;
text-decoration:#A3979A;
background-color: white;
border: white;
padding: 0px
}
a.hover {
float: left;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
font-weight: normal;
float:left;
display:block;
height: 26px;
line-height: 24px;
color: #cccc00;
text-decoration: none;
background-color: white;
border: white;
padding: 0px
}
.menus
{
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
font-weight: normal;
float:right;
color: #cccc00;
text-decoration:#A3979A;
background-color: white;
border: white;
padding: 0px ;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
.affaires .ui-menuitem-text{color:#cccc00;
decoration: bold, italic;
}
.affaires .ui-menu-child{background: white; mouseover: #000;
background-color: #A80000;}
.affaires .ui-menubar{mouseover: #000;
background-color: #A80000;}
.affaires .ui-state-hover {}
a.active {
color: #D09d23;
font-weight: bold;
background-color : #c7c3c3;
}

@ -0,0 +1,9 @@
#title {
background: white;
color:blue;
text-align:center;
font-size: 24px;
font-weight: bold;
}

@ -0,0 +1,9 @@
#top {
color: blue;
font-family: cursive, sans-serif;
font-size: 22px;
font-style: italic;
text-align: center;
height:60px;
background: white;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

@ -0,0 +1,22 @@
function validateText(textInputID)
{
var htmlInputText = document.getElementById(textInputID);
var text = htmlInputText.value;
var regex = /[^A-Za-z0-9]/g;
if (text.search( regex) != -1)
{
newText = text.replace(regex, "");
htmlInputText.value = newText;
//alert("alphanumeric chars only please");
}
}

@ -0,0 +1,12 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<ui:composition >
<h1>This is default footer</h1>
</ui:composition>
</h:body>
</html>

@ -0,0 +1,12 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<ui:composition>
This is default content
</ui:composition>
</h:body>
</html>

@ -0,0 +1,12 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<ui:composition>
This is default left side
</ui:composition>
</h:body>
</html>

@ -0,0 +1,12 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<ui:composition>
Default Login Section
</ui:composition>
</h:body>
</html>

@ -0,0 +1,12 @@
<?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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:body>
<ui:composition>
LOGO
</ui:composition>
</h:body>
</html>

@ -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:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">
<h:body>
<ui:composition>
Menu default
</ui:composition>
</h:body>
</html>

Some files were not shown because too many files have changed in this diff Show More