:(
This commit is contained in:
parent
8f30705c62
commit
f1c589e653
4
.gitignore
vendored
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/
|
||||
|
BIN
Semester 3/Assignments/Ajax11_idientifiers.zip
Normal file
BIN
Semester 3/Assignments/Ajax11_idientifiers.zip
Normal file
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>
|
48
Semester 3/Assignments/Ajax11_idientifiers/pom.xml
Normal file
48
Semester 3/Assignments/Ajax11_idientifiers/pom.xml
Normal file
@ -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>
|
BIN
Semester 3/Assignments/Json1.zip
Normal file
BIN
Semester 3/Assignments/Json1.zip
Normal file
Binary file not shown.
21
Semester 3/Assignments/Json1/nb-configuration.xml
Normal file
21
Semester 3/Assignments/Json1/nb-configuration.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-shared-configuration>
|
||||
<!--
|
||||
This file contains additional configuration written by modules in the NetBeans IDE.
|
||||
The configuration is intended to be shared among all the users of project and
|
||||
therefore it is assumed to be part of version control checkout.
|
||||
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
||||
-->
|
||||
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
|
||||
<!--
|
||||
Properties that influence various parts of the IDE, especially code formatting and the like.
|
||||
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
|
||||
That way multiple projects can share the same settings (useful for formatting rules for example).
|
||||
Any value defined here will override the pom.xml file value but is only applicable to the current project.
|
||||
-->
|
||||
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>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>
|
42
Semester 3/Assignments/Json1/pom.xml
Normal file
42
Semester 3/Assignments/Json1/pom.xml
Normal file
@ -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();
|
||||
}
|
||||
}
|
225
Semester 3/Assignments/Json1/src/main/java/jason/Jason.java
Normal file
225
Semester 3/Assignments/Json1/src/main/java/jason/Jason.java
Normal file
@ -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>
|
26
Semester 3/Assignments/Json1/src/main/webapp/WEB-INF/web.xml
Normal file
26
Semester 3/Assignments/Json1/src/main/webapp/WEB-INF/web.xml
Normal file
@ -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>
|
21
Semester 3/Assignments/Json1/src/main/webapp/index.xhtml
Normal file
21
Semester 3/Assignments/Json1/src/main/webapp/index.xhtml
Normal file
@ -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>
|
Binary file not shown.
@ -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>
|
48
Semester 3/Assignments/TermProject2_CalebFontenot/pom.xml
Normal file
48
Semester 3/Assignments/TermProject2_CalebFontenot/pom.xml
Normal file
@ -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,3 @@
|
||||
#content {
|
||||
background: white;
|
||||
}
|
@ -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,3 @@
|
||||
#search {
|
||||
color: #ffffff;
|
||||
}
|
@ -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: 3.6 KiB |
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
Loading…
Reference in New Issue
Block a user