commit d4db89fdf79dceefb2db9a0af3c2395d3b7de1ff Author: cruales Date: Fri Nov 11 16:34:36 2022 -0500 Portal en postgres diff --git a/.svn/entries b/.svn/entries new file mode 100644 index 0000000..a73946a --- /dev/null +++ b/.svn/entries @@ -0,0 +1,71 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ejb +dir + +ear +dir + +pom.xml +file + + + + +2022-07-28T03:45:37.714079Z +3a25df4f23bb0e667a9ff2f1a740b53d +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6781 + +web +dir + diff --git a/.svn/prop-base/pom.xml.svn-base b/.svn/prop-base/pom.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/.svn/prop-base/pom.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/.svn/text-base/pom.xml.svn-base b/.svn/text-base/pom.xml.svn-base new file mode 100644 index 0000000..d8287fe --- /dev/null +++ b/.svn/text-base/pom.xml.svn-base @@ -0,0 +1,153 @@ + + + + portal + 4.0.0 + com.fp.armas + portal + 2.1 + pom + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + ejb + web + ear + + + + + + UTF-8 + + + + 7.4.Final + + + 1.0.7.Final + + + + 7.2.0.Final + + + + + 2.6 + 2.3 + 2.10 + 2.1.1 + + + 1.7 + 1.7 + + + + + + + + com.fp.armas + portal-ejb + ${project.version} + ejb + + + + + com.fp.armas + portal-web + ${project.version} + war + compile + + + + + org.jboss.bom + jboss-javaee-6.0-with-tools + ${version.jboss.bom} + pom + import + + + + org.jboss.bom + jboss-javaee-6.0-with-hibernate + ${version.jboss.bom} + pom + import + + + + javax.mail + mail + 1.4.7 + + + + + + + + + + + org.jboss.as.plugins + jboss-as-maven-plugin + ${version.jboss.maven.plugin} + true + + true + + + + + + + diff --git a/ear/.svn/entries b/ear/.svn/entries new file mode 100644 index 0000000..232c0d4 --- /dev/null +++ b/ear/.svn/entries @@ -0,0 +1,65 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ear +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +src +dir + +pom.xml +file + + + + +2022-07-28T03:45:36.082072Z +392bcf8ba500ae1cbe5e05c6f97a56f5 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4700 + diff --git a/ear/.svn/prop-base/pom.xml.svn-base b/ear/.svn/prop-base/pom.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ear/.svn/prop-base/pom.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ear/.svn/text-base/pom.xml.svn-base b/ear/.svn/text-base/pom.xml.svn-base new file mode 100644 index 0000000..59b8571 --- /dev/null +++ b/ear/.svn/text-base/pom.xml.svn-base @@ -0,0 +1,109 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-ear + ear + + portal - ear + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + com.fp.armas + portal-web + war + + + com.fp.armas + portal-ejb + ejb + + + + + ${project.artifactId} + + + org.apache.maven.plugins + maven-ear-plugin + ${version.ear.plugin} + + + 6 + + lib + + no-version + + + + + + org.jboss.as.plugins + jboss-as-maven-plugin + + ${project.artifactId}.ear + false + + + + + + + + + + + + openshift + + + + maven-ear-plugin + ${version.ear.plugin} + + deployments + + + + + + + + diff --git a/ear/pom.xml b/ear/pom.xml new file mode 100644 index 0000000..59b8571 --- /dev/null +++ b/ear/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-ear + ear + + portal - ear + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + com.fp.armas + portal-web + war + + + com.fp.armas + portal-ejb + ejb + + + + + ${project.artifactId} + + + org.apache.maven.plugins + maven-ear-plugin + ${version.ear.plugin} + + + 6 + + lib + + no-version + + + + + + org.jboss.as.plugins + jboss-as-maven-plugin + + ${project.artifactId}.ear + false + + + + + + + + + + + + openshift + + + + maven-ear-plugin + ${version.ear.plugin} + + deployments + + + + + + + + diff --git a/ear/src/.svn/entries b/ear/src/.svn/entries new file mode 100644 index 0000000..2e09eee --- /dev/null +++ b/ear/src/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ear/src +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +main +dir + diff --git a/ear/src/main/.svn/entries b/ear/src/main/.svn/entries new file mode 100644 index 0000000..c7bc0dc --- /dev/null +++ b/ear/src/main/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ear/src/main +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +application +dir + diff --git a/ear/src/main/application/.svn/entries b/ear/src/main/application/.svn/entries new file mode 100644 index 0000000..8cad90e --- /dev/null +++ b/ear/src/main/application/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ear/src/main/application +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +META-INF +dir + diff --git a/ear/src/main/application/META-INF/.svn/entries b/ear/src/main/application/META-INF/.svn/entries new file mode 100644 index 0000000..1925c6a --- /dev/null +++ b/ear/src/main/application/META-INF/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ear/src/main/application/META-INF +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + diff --git a/ear/target/application.xml b/ear/target/application.xml new file mode 100644 index 0000000..ca1514f --- /dev/null +++ b/ear/target/application.xml @@ -0,0 +1,14 @@ + + + portal-ear + + + portal-web.war + /portal-web + + + + portal-ejb.jar + + lib + \ No newline at end of file diff --git a/ear/target/maven-archiver/pom.properties b/ear/target/maven-archiver/pom.properties new file mode 100644 index 0000000..bd7453c --- /dev/null +++ b/ear/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Nov 11 13:12:55 ECT 2022 +version=2.1 +groupId=com.fp.armas +artifactId=portal-ear diff --git a/ear/target/portal-ear.ear b/ear/target/portal-ear.ear new file mode 100644 index 0000000..6173023 Binary files /dev/null and b/ear/target/portal-ear.ear differ diff --git a/ear/target/portal-ear/META-INF/application.xml b/ear/target/portal-ear/META-INF/application.xml new file mode 100644 index 0000000..ca1514f --- /dev/null +++ b/ear/target/portal-ear/META-INF/application.xml @@ -0,0 +1,14 @@ + + + portal-ear + + + portal-web.war + /portal-web + + + + portal-ejb.jar + + lib + \ No newline at end of file diff --git a/ear/target/portal-ear/lib/commons-codec.jar b/ear/target/portal-ear/lib/commons-codec.jar new file mode 100644 index 0000000..efa7f72 Binary files /dev/null and b/ear/target/portal-ear/lib/commons-codec.jar differ diff --git a/ear/target/portal-ear/lib/commons-io.jar b/ear/target/portal-ear/lib/commons-io.jar new file mode 100644 index 0000000..90035a4 Binary files /dev/null and b/ear/target/portal-ear/lib/commons-io.jar differ diff --git a/ear/target/portal-ear/lib/commons-lang3.jar b/ear/target/portal-ear/lib/commons-lang3.jar new file mode 100644 index 0000000..a85e539 Binary files /dev/null and b/ear/target/portal-ear/lib/commons-lang3.jar differ diff --git a/ear/target/portal-ear/lib/general-mail.jar b/ear/target/portal-ear/lib/general-mail.jar new file mode 100644 index 0000000..c83caff Binary files /dev/null and b/ear/target/portal-ear/lib/general-mail.jar differ diff --git a/ear/target/portal-ear/portal-ejb.jar b/ear/target/portal-ear/portal-ejb.jar new file mode 100644 index 0000000..2a7a83c Binary files /dev/null and b/ear/target/portal-ear/portal-ejb.jar differ diff --git a/ear/target/portal-ear/portal-web.war b/ear/target/portal-ear/portal-web.war new file mode 100644 index 0000000..c6bb066 Binary files /dev/null and b/ear/target/portal-ear/portal-web.war differ diff --git a/ejb/.svn/entries b/ejb/.svn/entries new file mode 100644 index 0000000..1077e67 --- /dev/null +++ b/ejb/.svn/entries @@ -0,0 +1,65 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +src +dir + +pom.xml +file + + + + +2022-07-28T03:45:35.912071Z +4d7f42408b4a105801ff38e267ff25c7 +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +7458 + diff --git a/ejb/.svn/prop-base/pom.xml.svn-base b/ejb/.svn/prop-base/pom.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/.svn/prop-base/pom.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/.svn/text-base/pom.xml.svn-base b/ejb/.svn/text-base/pom.xml.svn-base new file mode 100644 index 0000000..7a3db17 --- /dev/null +++ b/ejb/.svn/text-base/pom.xml.svn-base @@ -0,0 +1,195 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-ejb + ejb + + portal - ejb + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + + + org.jboss.spec.javax.ejb + jboss-ejb-api_3.1_spec + provided + + + + + javax.enterprise + cdi-api + provided + + + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + provided + + + + + + + org.hibernate + hibernate-validator + provided + + + + + + junit + junit + test + + + + + + org.jboss.arquillian.junit + arquillian-junit-container + test + + + + org.jboss.arquillian.protocol + arquillian-protocol-servlet + test + + + + com.fp.general + general-mail + 2.1 + + + commons-codec + commons-codec + 1.7 + + + commons-io + commons-io + 2.4 + + + commons-lang + commons-lang + + + + + org.apache.commons + commons-lang3 + 3.1 + + + + + ${project.artifactId} + + + maven-ejb-plugin + ${version.ejb.plugin} + + + 3.1 + + + + + + + + + + default + + true + + + + + maven-surefire-plugin + ${version.surefire.plugin} + + true + + + + + + + + + + + arq-jbossas-managed + + + org.jboss.as + jboss-as-arquillian-container-managed + test + + + + + + + + arq-jbossas-remote + + + org.jboss.as + jboss-as-arquillian-container-remote + test + + + + + + + diff --git a/ejb/pom.xml b/ejb/pom.xml new file mode 100644 index 0000000..728669d --- /dev/null +++ b/ejb/pom.xml @@ -0,0 +1,180 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-ejb + ejb + + portal - ejb + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + + + org.jboss.spec.javax.ejb + jboss-ejb-api_3.1_spec + provided + + + + + javax.enterprise + cdi-api + provided + + + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + provided + + + + + + + org.hibernate + hibernate-validator + provided + + + + + + junit + junit + test + + + + + + org.jboss.arquillian.junit + arquillian-junit-container + test + + + + org.jboss.arquillian.protocol + arquillian-protocol-servlet + test + + + + com.fp.general + general-mail + 2.1 + + + commons-codec + commons-codec + 1.7 + + + commons-io + commons-io + 2.4 + + + commons-lang + commons-lang + + + + + org.apache.commons + commons-lang3 + 3.1 + + + + + ${project.artifactId} + + + maven-ejb-plugin + ${version.ejb.plugin} + + + 3.1 + + + + + + + + + + default + + true + + + + + maven-surefire-plugin + ${version.surefire.plugin} + + true + + + + + + + + + + + arq-jbossas-managed + + + org.jboss.as + jboss-as-arquillian-container-managed + test + + + + + + + + arq-jbossas-remote + + + org.jboss.as + jboss-as-arquillian-container-remote + test + + + + + + + diff --git a/ejb/src/.svn/entries b/ejb/src/.svn/entries new file mode 100644 index 0000000..02dc3c7 --- /dev/null +++ b/ejb/src/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +test +dir + +main +dir + diff --git a/ejb/src/main/.svn/entries b/ejb/src/main/.svn/entries new file mode 100644 index 0000000..d0dd936 --- /dev/null +++ b/ejb/src/main/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +java +dir + +resources +dir + diff --git a/ejb/src/main/java/.svn/entries b/ejb/src/main/java/.svn/entries new file mode 100644 index 0000000..1c04c30 --- /dev/null +++ b/ejb/src/main/java/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ec +dir + +com +dir + diff --git a/ejb/src/main/java/com/.svn/entries b/ejb/src/main/java/com/.svn/entries new file mode 100644 index 0000000..0c114b3 --- /dev/null +++ b/ejb/src/main/java/com/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +fp +dir + diff --git a/ejb/src/main/java/com/fp/.svn/entries b/ejb/src/main/java/com/fp/.svn/entries new file mode 100644 index 0000000..a748f95 --- /dev/null +++ b/ejb/src/main/java/com/fp/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +armas +dir + diff --git a/ejb/src/main/java/com/fp/armas/.svn/entries b/ejb/src/main/java/com/fp/armas/.svn/entries new file mode 100644 index 0000000..9d38cef --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + diff --git a/ejb/src/main/java/com/fp/armas/portal/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/.svn/entries new file mode 100644 index 0000000..03a226f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/.svn/entries @@ -0,0 +1,43 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +model +dir + +service +dir + +dao +dir + +facade +dir + +util +dir + diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/dao/.svn/entries new file mode 100644 index 0000000..9a0acd1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/.svn/entries @@ -0,0 +1,37 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/dao +svn://172.17.26.185/COMACO + + + +2015-08-18T09:55:02.931391Z +4270 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +exceptions +dir + +general +dir + +registro +dir + diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/entries new file mode 100644 index 0000000..ba2c1ba --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/dao/exceptions +svn://172.17.26.185/COMACO + + + +2014-11-13T10:15:26.527370Z +2726 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +DaoException.java +file + + + + +2022-07-28T03:45:35.084067Z +8a92a0037dc88eaf56c16b58a1f21cd4 +2014-11-13T10:15:26.527370Z +2726 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +866 + diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/prop-base/DaoException.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/prop-base/DaoException.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/prop-base/DaoException.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/text-base/DaoException.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/text-base/DaoException.java.svn-base new file mode 100644 index 0000000..5239bbf --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/.svn/text-base/DaoException.java.svn-base @@ -0,0 +1,37 @@ +package com.fp.armas.portal.dao.exceptions; + +/** + * Excepción que maneja los errores a nivel del DAO + * @author dcruz + * + */ +public class DaoException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public DaoException() { + // TODO Auto-generated constructor stub + } + + public DaoException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public DaoException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + + public DaoException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public DaoException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/DaoException.java b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/DaoException.java new file mode 100644 index 0000000..5239bbf --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/exceptions/DaoException.java @@ -0,0 +1,37 @@ +package com.fp.armas.portal.dao.exceptions; + +/** + * Excepción que maneja los errores a nivel del DAO + * @author dcruz + * + */ +public class DaoException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public DaoException() { + // TODO Auto-generated constructor stub + } + + public DaoException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public DaoException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + + public DaoException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public DaoException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/entries new file mode 100644 index 0000000..be896e6 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/dao/general +svn://172.17.26.185/COMACO + + + +2015-01-23T09:49:13.248110Z +3796 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +GenericDao.java +file + + + + +2022-07-28T03:45:35.117068Z +5e895dc58b9f36a1ec5027a7e29fa0ce +2015-01-23T09:49:13.248110Z +3796 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1186 + +GenericDaoImpl.java +file + + + + +2022-07-28T03:45:35.118068Z +42bd3d5bc84f75fd99ece740ea05f585 +2015-01-23T09:49:13.248110Z +3796 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +5049 + diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDaoImpl.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDaoImpl.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/prop-base/GenericDaoImpl.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDao.java.svn-base new file mode 100644 index 0000000..3d69ac1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDao.java.svn-base @@ -0,0 +1,57 @@ +package com.fp.armas.portal.dao.general; + +import java.io.Serializable; + +import com.fp.armas.portal.util.RegistroException; + +/** + * Dao general que contienen metodos generales de acceso a datos + * @author dcruz + * + * @param entidad de la cual se generará el DAO + */ +public interface GenericDao { + + /** + * Persiste una entidad + * @param entity + * @throws RegistroException + */ + void create(T entity) throws RegistroException; + + /** + * Actualiza una entidad + * @param entity + * @throws RegistroException + */ + void update(T entity) throws RegistroException; + + /** + * Elimina una entidad + * @param entity + * @throws RegistroException + */ + void delete(T entity) throws RegistroException; + + /** + * Pasa a estado detached la entidad + * @param entity + * @throws RegistroException + */ + void detach(T entity) throws RegistroException; + + /** + * Obtiene la entidad actual de la base + * @param entity + * @throws RegistroException + */ + void refresh(T entity) throws RegistroException; + + /** + * Busca una entidad por id + * @param id + * @return + * @throws RegistroException + */ + T buscarPorId(Serializable id) throws RegistroException; +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDaoImpl.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDaoImpl.java.svn-base new file mode 100644 index 0000000..4922e84 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/.svn/text-base/GenericDaoImpl.java.svn-base @@ -0,0 +1,151 @@ +package com.fp.armas.portal.dao.general; + +import java.io.Serializable; +import java.lang.reflect.ParameterizedType; + +import javax.persistence.EntityExistsException; +import javax.persistence.EntityManager; +import javax.persistence.EntityNotFoundException; +import javax.persistence.LockTimeoutException; +import javax.persistence.NoResultException; +import javax.persistence.NonUniqueResultException; +import javax.persistence.OptimisticLockException; +import javax.persistence.PersistenceContext; +import javax.persistence.PersistenceException; +import javax.persistence.PessimisticLockException; +import javax.persistence.QueryTimeoutException; +import javax.persistence.RollbackException; +import javax.persistence.TransactionRequiredException; + +import com.fp.armas.portal.dao.exceptions.DaoException; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; +import com.fp.armas.portal.util.qualifier.DefaultDao; + +/** + * Implementación del DAO genérico + * @author dcruz + * + * @param + */ +@DefaultDao +public class GenericDaoImpl implements GenericDao{ + + /** + * Contexto de persistencia asociado a la base + */ + @PersistenceContext(unitName="portalPU") + private EntityManager entityManager; + + private Class idClass; + + @SuppressWarnings("unchecked") + public GenericDaoImpl(Class idClass) { + this.idClass = idClass; + } + + @Override + public void create(T entity) throws DaoException { + // TODO Auto-generated method stub + try{ + this.getEntityManager().clear(); + this.getEntityManager().persist(entity); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void update(T entity) throws DaoException { + // TODO Auto-generated method stub + try { + this.getEntityManager().clear(); + this.getEntityManager().merge(entity); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void delete(T entity) throws DaoException { + // TODO Auto-generated method stub + try{ + this.getEntityManager().clear(); + this.getEntityManager().remove(this.getEntityManager().contains(entity) ? entity : this.getEntityManager().merge(entity)); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public T buscarPorId(Serializable id) throws RegistroException { + try { + return this.getEntityManager().find(idClass, id); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void detach(T entity) throws RegistroException { + try { + this.getEntityManager().detach(entity); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void refresh(T entity) throws RegistroException { + try { + this.getEntityManager().refresh(entity); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + public EntityManager getEntityManager() { + return entityManager; + } + + private DaoException transformDaoException(PersistenceException e){ + if(e instanceof EntityExistsException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.exists"), e); + }else if(e instanceof EntityNotFoundException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.notfound"), e); + }else if(e instanceof LockTimeoutException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.timeout"), e); + }else if(e instanceof NonUniqueResultException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.nonuniqueresult"), e); + }else if(e instanceof NoResultException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.noresult"), e); + }else if(e instanceof OptimisticLockException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.optimisticlock"), e); + }else if(e instanceof PessimisticLockException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.optimisticlock"), e); + }else if(e instanceof QueryTimeoutException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.querytimeout"), e); + }else if(e instanceof RollbackException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.transaction.rollback"), e); + }else if(e instanceof TransactionRequiredException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.transaction.requiredtransaction"), e); + } + return new DaoException(e); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDao.java new file mode 100644 index 0000000..3d69ac1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDao.java @@ -0,0 +1,57 @@ +package com.fp.armas.portal.dao.general; + +import java.io.Serializable; + +import com.fp.armas.portal.util.RegistroException; + +/** + * Dao general que contienen metodos generales de acceso a datos + * @author dcruz + * + * @param entidad de la cual se generará el DAO + */ +public interface GenericDao { + + /** + * Persiste una entidad + * @param entity + * @throws RegistroException + */ + void create(T entity) throws RegistroException; + + /** + * Actualiza una entidad + * @param entity + * @throws RegistroException + */ + void update(T entity) throws RegistroException; + + /** + * Elimina una entidad + * @param entity + * @throws RegistroException + */ + void delete(T entity) throws RegistroException; + + /** + * Pasa a estado detached la entidad + * @param entity + * @throws RegistroException + */ + void detach(T entity) throws RegistroException; + + /** + * Obtiene la entidad actual de la base + * @param entity + * @throws RegistroException + */ + void refresh(T entity) throws RegistroException; + + /** + * Busca una entidad por id + * @param id + * @return + * @throws RegistroException + */ + T buscarPorId(Serializable id) throws RegistroException; +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDaoImpl.java b/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDaoImpl.java new file mode 100644 index 0000000..4922e84 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/general/GenericDaoImpl.java @@ -0,0 +1,151 @@ +package com.fp.armas.portal.dao.general; + +import java.io.Serializable; +import java.lang.reflect.ParameterizedType; + +import javax.persistence.EntityExistsException; +import javax.persistence.EntityManager; +import javax.persistence.EntityNotFoundException; +import javax.persistence.LockTimeoutException; +import javax.persistence.NoResultException; +import javax.persistence.NonUniqueResultException; +import javax.persistence.OptimisticLockException; +import javax.persistence.PersistenceContext; +import javax.persistence.PersistenceException; +import javax.persistence.PessimisticLockException; +import javax.persistence.QueryTimeoutException; +import javax.persistence.RollbackException; +import javax.persistence.TransactionRequiredException; + +import com.fp.armas.portal.dao.exceptions.DaoException; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; +import com.fp.armas.portal.util.qualifier.DefaultDao; + +/** + * Implementación del DAO genérico + * @author dcruz + * + * @param + */ +@DefaultDao +public class GenericDaoImpl implements GenericDao{ + + /** + * Contexto de persistencia asociado a la base + */ + @PersistenceContext(unitName="portalPU") + private EntityManager entityManager; + + private Class idClass; + + @SuppressWarnings("unchecked") + public GenericDaoImpl(Class idClass) { + this.idClass = idClass; + } + + @Override + public void create(T entity) throws DaoException { + // TODO Auto-generated method stub + try{ + this.getEntityManager().clear(); + this.getEntityManager().persist(entity); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void update(T entity) throws DaoException { + // TODO Auto-generated method stub + try { + this.getEntityManager().clear(); + this.getEntityManager().merge(entity); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void delete(T entity) throws DaoException { + // TODO Auto-generated method stub + try{ + this.getEntityManager().clear(); + this.getEntityManager().remove(this.getEntityManager().contains(entity) ? entity : this.getEntityManager().merge(entity)); + this.getEntityManager().flush(); + } catch(PersistenceException e){ + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public T buscarPorId(Serializable id) throws RegistroException { + try { + return this.getEntityManager().find(idClass, id); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void detach(T entity) throws RegistroException { + try { + this.getEntityManager().detach(entity); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + @Override + public void refresh(T entity) throws RegistroException { + try { + this.getEntityManager().refresh(entity); + } catch (PersistenceException e) { + throw transformDaoException(e); + } catch (Throwable e) { + throw new DaoException(e); + } + } + + public EntityManager getEntityManager() { + return entityManager; + } + + private DaoException transformDaoException(PersistenceException e){ + if(e instanceof EntityExistsException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.exists"), e); + }else if(e instanceof EntityNotFoundException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.notfound"), e); + }else if(e instanceof LockTimeoutException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.timeout"), e); + }else if(e instanceof NonUniqueResultException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.nonuniqueresult"), e); + }else if(e instanceof NoResultException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.noresult"), e); + }else if(e instanceof OptimisticLockException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.optimisticlock"), e); + }else if(e instanceof PessimisticLockException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.lock.optimisticlock"), e); + }else if(e instanceof QueryTimeoutException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.entity.querytimeout"), e); + }else if(e instanceof RollbackException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.transaction.rollback"), e); + }else if(e instanceof TransactionRequiredException){ + return new DaoException(PortalMessages.getInstancia().getString("error.jpa.transaction.requiredtransaction"), e); + } + return new DaoException(e); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/entries new file mode 100644 index 0000000..b1ce613 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/entries @@ -0,0 +1,708 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/dao/registro +svn://172.17.26.185/COMACO + + + +2015-08-18T09:55:02.931391Z +4270 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +CantonDao.java +file + + + + +2022-07-28T03:45:35.214068Z +ece9f34a155cacb8208d5049523db427 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1366 + +UsuarioDetalleDao.java +file + + + + +2022-07-28T03:45:35.214068Z +45287cf73169747b9a4b2de6ba41df4a +2015-08-18T09:55:02.931391Z +4270 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +1311 + +ArchivoDetalleDao.java +file + + + + +2022-07-28T03:45:35.215068Z +0896a2d50d007001d3ff0b81191a35c9 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +387 + +DireccionPersonaDao.java +file + + + + +2022-07-28T03:45:35.216068Z +75fffe7a96139248671b3ad4e7b827d9 +2015-08-18T09:55:02.931391Z +4270 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +3490 + +CompaniaDao.java +file + + + + +2022-07-28T03:45:35.216068Z +5d19eeeffb5c13f21b3b153deec30368 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +401 + +UsuarioDao.java +file + + + + +2022-07-28T03:45:35.215068Z +718a4d445a7976fd7f4d9bc43d90b187 +2015-08-18T09:55:02.931391Z +4270 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +1081 + +CiudadDao.java +file + + + + +2022-07-28T03:45:35.217068Z +8589dcfa20e2ece22012750d2ab97a76 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1443 + +CatalogoDao.java +file + + + + +2022-07-28T03:45:35.217068Z +b434b4868ea901e2a978f446fcbc7c6a +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1973 + +UsuarioPerfilDao.java +file + + + + +2022-07-28T03:45:35.216068Z +97068c545268b1532df26531930d75da +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +385 + +ProvinciaDao.java +file + + + + +2022-07-28T03:45:35.217068Z +81fbe1c56502c7ba2affdf0292473f21 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1273 + +ArchivoDao.java +file + + + + +2022-07-28T03:45:35.218068Z +4f2d33d90395c5a53ada0ff796cf0ca3 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +345 + +PaisDao.java +file + + + + +2022-07-28T03:45:35.218068Z +ea61c733b0f8196ea479dfa8992063b2 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1075 + +PersonaNaturalDao.java +file + + + + +2022-07-28T03:45:35.219068Z +94b43d08d4a2f548cdd53a0b010aacae +2015-08-18T09:55:02.931391Z +4270 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +1354 + +UsuarioDetalle.java +file + + + + +2022-07-28T03:45:35.218068Z +eb100fef2219a0a03842093d8740b7c6 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +377 + +SecuenciaDao.java +file + + + + +2022-07-28T03:45:35.219068Z +2513a3fc877ebcf382193d9b7bc3a76e +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +755 + +PersonaDetalleDao.java +file + + + + +2022-07-28T03:45:35.220068Z +1419e9b713da3ef2ee1eb9982655e36c +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1489 + +TelefonoPersonaDao.java +file + + + + +2022-07-28T03:45:35.220068Z +36171823bf16f0a8645c2177ad45eba3 +2015-08-18T09:55:02.931391Z +4270 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +3078 + +ParroquiaDao.java +file + + + + +2022-07-28T03:45:35.220068Z +08ebd816052a5bcea176e735bc2f73dd +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1376 + +ActividadEconomicaDao.java +file + + + + +2022-07-28T03:45:35.221068Z +429f499febe103d26b4450b35d9ca153 +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1180 + +PersonaDao.java +file + + + + +2022-07-28T03:45:35.221068Z +5ebb2caab621af87c9c6ea1a23368fad +2015-01-23T09:48:58.662084Z +3795 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +353 + diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ActividadEconomicaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ActividadEconomicaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ActividadEconomicaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDetalleDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ArchivoDetalleDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CantonDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CantonDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CantonDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CatalogoDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CatalogoDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CatalogoDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CiudadDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CiudadDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CiudadDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CompaniaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CompaniaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/CompaniaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/DireccionPersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/DireccionPersonaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/DireccionPersonaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PaisDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PaisDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PaisDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ParroquiaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ParroquiaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ParroquiaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDetalleDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaDetalleDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaNaturalDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaNaturalDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/PersonaNaturalDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ProvinciaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ProvinciaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/ProvinciaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/SecuenciaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/SecuenciaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/SecuenciaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/TelefonoPersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/TelefonoPersonaDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/TelefonoPersonaDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalle.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalle.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalle.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalleDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioDetalleDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioPerfilDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioPerfilDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/prop-base/UsuarioPerfilDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ActividadEconomicaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ActividadEconomicaDao.java.svn-base new file mode 100644 index 0000000..c4f5533 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ActividadEconomicaDao.java.svn-base @@ -0,0 +1,37 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneactivity} + * @author dcruz + * + */ +public class ActividadEconomicaDao extends GenericDaoImpl { + + public ActividadEconomicaDao() { + super(Tgeneactivity.class); + } + + /** + * Retorna todas las actividades economicas existentes + * @return + * @throws RegistroException + */ + public Collection buscarActividadEconomicas() throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneactivity.class); + Root tactivityRoot = query.from(Tgeneactivity.class); + query.orderBy(cb.asc(tactivityRoot.get("activitycode"))); + query.select(tactivityRoot); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDao.java.svn-base new file mode 100644 index 0000000..f87d3a5 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDao.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenefile; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenefile} + * @author dcruz + * + */ +public class ArchivoDao extends GenericDaoImpl { + + public ArchivoDao() { + super(Tgenefile.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDetalleDao.java.svn-base new file mode 100644 index 0000000..0eccf65 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ArchivoDetalleDao.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenefilesdetail; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenefilesdetail} + * @author dcruz + * + */ +public class ArchivoDetalleDao extends GenericDaoImpl { + + public ArchivoDetalleDao() { + super(Tgenefilesdetail.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CantonDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CantonDao.java.svn-base new file mode 100644 index 0000000..9f44b0f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CantonDao.java.svn-base @@ -0,0 +1,42 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecanton} + * @author dcruz + * + */ +public class CantonDao extends GenericDaoImpl { + + public CantonDao() { + super(Tgenecanton.class); + } + + /** + * Busca los cantones en base a los criterios ingresados + * @param countryCode + * @param provinceCode + * @return + */ + public Collection buscarCantonesxPaisyProvincia(String countryCode, String provinceCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecanton.class); + Root tcantonRoot = query.from(Tgenecanton.class); + query.where(cb.equal(tcantonRoot.get("id").get("countrycode"), countryCode), cb.equal(tcantonRoot.get("id").get("provincecode"), provinceCode)); + query.orderBy(cb.asc(tcantonRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CatalogoDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CatalogoDao.java.svn-base new file mode 100644 index 0000000..e709f15 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CatalogoDao.java.svn-base @@ -0,0 +1,45 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecatalogdetail} + * @author dcruz + * + */ +public class CatalogoDao extends GenericDaoImpl { + + public CatalogoDao(){ + super(Tgenecatalogdetail.class); + } + + /** + * Busca los detalles del catálogo en base el catalogcode + * @param codigoTipo + * @return + * @throws RegistroException + */ + public Collection buscarCatalogo(String codigoTipo) throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecatalogdetail.class); + Root rootTgenecatalog = query.from(Tgenecatalogdetail.class); + query.select(rootTgenecatalog).where(cb.equal(rootTgenecatalog.get("id").get("catalogcode"), codigoTipo)).orderBy(cb.asc(rootTgenecatalog.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } + + public Collection buscarCatalogo(String codigoTipo, String legalCode) throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecatalogdetail.class); + Root rootTgenecatalog = query.from(Tgenecatalogdetail.class); + query.select(rootTgenecatalog).where(cb.and(cb.equal(rootTgenecatalog.get("id").get("catalogcode"), codigoTipo), cb.equal(rootTgenecatalog.get("legalcode"), legalCode))).orderBy(cb.asc(rootTgenecatalog.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CiudadDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CiudadDao.java.svn-base new file mode 100644 index 0000000..d5f6874 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CiudadDao.java.svn-base @@ -0,0 +1,43 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecity} + * @author dcruz + * + */ +public class CiudadDao extends GenericDaoImpl { + + public CiudadDao() { + super(Tgenecity.class); + } + + /** + * Busca la ciudad en base a los criterios de busqueda ingresado + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection buscarCiudad(String countryCode, String provinceCode, String cantonCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecity.class); + Root tciudadRoot = query.from(Tgenecity.class); + query.where(cb.equal(tciudadRoot.get("id").get("countrycode"), countryCode), cb.equal(tciudadRoot.get("id").get("provincecode"), provinceCode), cb.equal(tciudadRoot.get("id").get("cantoncode"), cantonCode)); + query.orderBy(cb.asc(tciudadRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CompaniaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CompaniaDao.java.svn-base new file mode 100644 index 0000000..41aaa1d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/CompaniaDao.java.svn-base @@ -0,0 +1,18 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustcompany; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustcompany} + * @author dcruz + * + */ +public class CompaniaDao extends GenericDaoImpl { + + public CompaniaDao() { + super(Tcustcompany.class); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/DireccionPersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/DireccionPersonaDao.java.svn-base new file mode 100644 index 0000000..0b0b481 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/DireccionPersonaDao.java.svn-base @@ -0,0 +1,80 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersonaddress} + * @author dcruz + * + */ +public class DireccionPersonaDao extends GenericDaoImpl { + + public DireccionPersonaDao() { + super(Tcustpersonaddress.class); + } + + @SuppressWarnings("unchecked") + public Tcustpersonaddress buscaDireccionPrincipal(Integer personcode) throws RegistroException{ + Tcustpersonaddress direccioPrincipal = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.principal=:principal"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("principal", PortalMessages.getInstancia().getString("valor.general.si")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + direccioPrincipal = listaddress.iterator().next(); + } + return direccioPrincipal; + } + + /** + * Busca y retorna la primera dirección encontrada + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public Tcustpersonaddress buscaDireccionPorTipo(Integer personcode, String tipodireccion) throws RegistroException{ + Tcustpersonaddress direccioPrincipal = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.addresstypecatalog=:tipodireccion AND o.addresstypecatalogcode=:tipodireccioncodigo"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("tipodireccion", tipodireccion); + query.setParameter("tipodireccioncodigo", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + direccioPrincipal = listaddress.iterator().next(); + } + return direccioPrincipal; + } + + /** + * Busca y retorna todas las direcciones encontradas + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaDireccionesPorTipo(Long personcode, String tipodireccion) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.addresstypecatalog=:tipodireccion AND o.addresstypecatalogcode=:tipodireccioncodigo"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("tipodireccion", tipodireccion); + query.setParameter("tipodireccioncodigo", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + return listaddress; + } + return null; + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PaisDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PaisDao.java.svn-base new file mode 100644 index 0000000..ea9142c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PaisDao.java.svn-base @@ -0,0 +1,35 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecountry} + * @author dcruz + * + */ +public class PaisDao extends GenericDaoImpl { + + public PaisDao() { + super(Tgenecountry.class); + } + + public Collection buscarPaises() { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecountry.class); + Root tgeneCountryRoot = query.from(Tgenecountry.class); + query.select(tgeneCountryRoot).orderBy(cb.asc(tgeneCountryRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ParroquiaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ParroquiaDao.java.svn-base new file mode 100644 index 0000000..6834d1d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ParroquiaDao.java.svn-base @@ -0,0 +1,38 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneparroquia; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneparroquia} + * @author dcruz + * + */ +public class ParroquiaDao extends GenericDaoImpl { + + public ParroquiaDao() { + super(Tgeneparroquia.class); + } + + /** + * Retorna las parroquias de un canton específico + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection buscarParroquias(String countryCode, String provinceCode, String cantonCode) { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneparroquia.class); + Root tparroquiaRoot = query.from(Tgeneparroquia.class); + query.where(cb.equal(tparroquiaRoot.get("id").get("countrycode"), countryCode), cb.equal(tparroquiaRoot.get("id").get("provincecode"), provinceCode), cb.equal(tparroquiaRoot.get("id").get("cantoncode"), cantonCode)); + query.orderBy(cb.asc(tparroquiaRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDao.java.svn-base new file mode 100644 index 0000000..2b0dd92 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDao.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustperson; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustperson} + * @author dcruz + * + */ +public class PersonaDao extends GenericDaoImpl { + + public PersonaDao() { + super(Tcustperson.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDetalleDao.java.svn-base new file mode 100644 index 0000000..5f657fc --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaDetalleDao.java.svn-base @@ -0,0 +1,40 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersondetail} + */ +public class PersonaDetalleDao extends GenericDaoImpl { + + + public PersonaDetalleDao() { + super(Tcustpersondetail.class); + } + + public Tcustpersondetail buscarPorIdentificacion(String codigoIdentificacion) throws RegistroException { + try { + Tcustpersondetail detallePersona = null; + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tcustpersondetail.class); + Root personDetailRoot = query.from(Tcustpersondetail.class); + query.where(cb.equal(personDetailRoot.get("identification"), codigoIdentificacion),cb.equal(personDetailRoot.get("id").get("dateto"), FechaUtil.obtenerFecha(2999, 11, 31))); + List detallesPersona = this.getEntityManager().createQuery(query).getResultList(); + if(!detallesPersona.isEmpty()){ + detallePersona = detallesPersona.get(0); + } + return detallePersona; + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaNaturalDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaNaturalDao.java.svn-base new file mode 100644 index 0000000..d3a884a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/PersonaNaturalDao.java.svn-base @@ -0,0 +1,44 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustcompany} + * @author dcruz + * + */ +public class PersonaNaturalDao extends GenericDaoImpl { + + public PersonaNaturalDao() { + super(Tcustpeople.class); + } + + /** + * Busca y retorna todas las personas naturales vigentes encontradas + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaPersonaNatural(Long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpeople o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List listpeople = query.getResultList(); + if(listpeople != null && !listpeople.isEmpty()){ + return listpeople; + } + return null; + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ProvinciaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ProvinciaDao.java.svn-base new file mode 100644 index 0000000..fe6162e --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/ProvinciaDao.java.svn-base @@ -0,0 +1,40 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneprovince} + * @author dcruz + * + */ +public class ProvinciaDao extends GenericDaoImpl { + + public ProvinciaDao() { + super(Tgeneprovince.class); + } + + /** + * Consulta todas las provincias de un pa&iiacute;s + * @param countryCode + * @return + */ + public Collection buscarProvinciasxPais(String countryCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneprovince.class); + Root tgeneprovinceRoot = query.from(Tgeneprovince.class); + query.where(cb.equal(tgeneprovinceRoot.get("id").get("countrycode"), countryCode)).orderBy(cb.asc(tgeneprovinceRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/SecuenciaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/SecuenciaDao.java.svn-base new file mode 100644 index 0000000..a645457 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/SecuenciaDao.java.svn-base @@ -0,0 +1,28 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenesequence; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenesequence} + * @author dcruz + * + */ +public class SecuenciaDao extends GenericDaoImpl { + + public SecuenciaDao() { + super(Tgenesequence.class); + } + + /** + * Retorna la secuencia por coódigo ingresado + * @param nombreSecuencia + * @return + * @throws RegistroException + */ + public Tgenesequence obtenerSecuencia(String nombreSecuencia) throws RegistroException{ + Tgenesequence sequence = this.getEntityManager().find(Tgenesequence.class, nombreSecuencia); + return sequence; + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/TelefonoPersonaDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/TelefonoPersonaDao.java.svn-base new file mode 100644 index 0000000..383d821 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/TelefonoPersonaDao.java.svn-base @@ -0,0 +1,78 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersonphone} + * @author dcruz + * + */ +public class TelefonoPersonaDao extends GenericDaoImpl { + + public TelefonoPersonaDao() { + super(Tcustpersonphone.class); + } + + /** + * Retorna el primer teléfono encontrado del tipo enviado + * @param personcode + * @param tipotelefono + * @return + */ + @SuppressWarnings("unchecked") + public Tcustpersonphone obtenerTelefonoTipo(Integer personcode, String tipotelefono) { + Tcustpersonphone telefono = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("valortelefono", tipotelefono); + query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); + List listphones = query.getResultList(); + if(listphones != null && !listphones.isEmpty()){ + telefono = listphones.iterator().next(); + } + return telefono; + } + + /** + * Retorna el primer teléfono encontrado del tipo enviado + * @param personcode + * @param tipotelefono + * @return + */ + @SuppressWarnings("unchecked") + public List obtenerTelefonosPorTipo(Long personcode, String tipotelefono) { + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("valortelefono", tipotelefono); + query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); + List listphones = query.getResultList(); + if(listphones != null && !listphones.isEmpty()){ + return listphones; + } + return null; + } + + /** + * Busca y retorna la primera dirección encontrada + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + public Long maxSecuencia(long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT max(o.id.phonesequence) FROM Tcustpersonphone o WHERE o.id.personcode=:personcode"); + query.setParameter("personcode", (long)personcode); + //query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + return (Long)query.getSingleResult(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDao.java.svn-base new file mode 100644 index 0000000..58d45f9 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDao.java.svn-base @@ -0,0 +1,41 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuser; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuser} + * @author dcruz + * + */ +public class UsuarioDao extends GenericDaoImpl { + + public UsuarioDao() { + super(Tsafeuser.class); + } + + /** + * Busca y retorna todos los usuarios encontrados + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaUsers(String usercode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tsafeuser o WHERE o.usercode=:usercode"); + query.setParameter("usercode", usercode); + List listUser = query.getResultList(); + if(listUser != null && !listUser.isEmpty()){ + return listUser; + } + return null; + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalle.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalle.java.svn-base new file mode 100644 index 0000000..d95f583 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalle.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuserdetail; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserdetail} + * @author dcruz + * + */ +public class UsuarioDetalle extends GenericDaoImpl { + + public UsuarioDetalle() { + super(Tsafeuserdetail.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalleDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalleDao.java.svn-base new file mode 100644 index 0000000..8d76781 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioDetalleDao.java.svn-base @@ -0,0 +1,44 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserdetail} + * @author dcruz + * + */ +public class UsuarioDetalleDao extends GenericDaoImpl { + + public UsuarioDetalleDao() { + super(Tsafeuserdetail.class); + } + + /** + * Busca y retorna todos los usuarios encontrados + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaUserDetail(Long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tsafeuserdetail o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List listpeople = query.getResultList(); + if(listpeople != null && !listpeople.isEmpty()){ + return listpeople; + } + return null; + } + + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioPerfilDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioPerfilDao.java.svn-base new file mode 100644 index 0000000..b729c8c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/.svn/text-base/UsuarioPerfilDao.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuserprofile; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserprofile} + * @author dcruz + * + */ +public class UsuarioPerfilDao extends GenericDaoImpl { + + public UsuarioPerfilDao() { + super(Tsafeuserprofile.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.java new file mode 100644 index 0000000..c4f5533 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.java @@ -0,0 +1,37 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneactivity} + * @author dcruz + * + */ +public class ActividadEconomicaDao extends GenericDaoImpl { + + public ActividadEconomicaDao() { + super(Tgeneactivity.class); + } + + /** + * Retorna todas las actividades economicas existentes + * @return + * @throws RegistroException + */ + public Collection buscarActividadEconomicas() throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneactivity.class); + Root tactivityRoot = query.from(Tgeneactivity.class); + query.orderBy(cb.asc(tactivityRoot.get("activitycode"))); + query.select(tactivityRoot); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDao.java new file mode 100644 index 0000000..f87d3a5 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDao.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenefile; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenefile} + * @author dcruz + * + */ +public class ArchivoDao extends GenericDaoImpl { + + public ArchivoDao() { + super(Tgenefile.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.java new file mode 100644 index 0000000..0eccf65 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenefilesdetail; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenefilesdetail} + * @author dcruz + * + */ +public class ArchivoDetalleDao extends GenericDaoImpl { + + public ArchivoDetalleDao() { + super(Tgenefilesdetail.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/CantonDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CantonDao.java new file mode 100644 index 0000000..9f44b0f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CantonDao.java @@ -0,0 +1,42 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecanton} + * @author dcruz + * + */ +public class CantonDao extends GenericDaoImpl { + + public CantonDao() { + super(Tgenecanton.class); + } + + /** + * Busca los cantones en base a los criterios ingresados + * @param countryCode + * @param provinceCode + * @return + */ + public Collection buscarCantonesxPaisyProvincia(String countryCode, String provinceCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecanton.class); + Root tcantonRoot = query.from(Tgenecanton.class); + query.where(cb.equal(tcantonRoot.get("id").get("countrycode"), countryCode), cb.equal(tcantonRoot.get("id").get("provincecode"), provinceCode)); + query.orderBy(cb.asc(tcantonRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/CatalogoDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CatalogoDao.java new file mode 100644 index 0000000..4493f1f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CatalogoDao.java @@ -0,0 +1,47 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecatalogdetail} + * @author dcruz + * + */ +public class CatalogoDao extends GenericDaoImpl { + + public CatalogoDao(){ + super(Tgenecatalogdetail.class); + } + + /** + * Busca los detalles del catálogo en base el catalogcode + * @param codigoTipo + * @return + * @throws RegistroException + */ + public Collection buscarCatalogo(String codigoTipo) throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecatalogdetail.class); + Root rootTgenecatalog = query.from(Tgenecatalogdetail.class); + query.select(rootTgenecatalog).where(cb.equal(rootTgenecatalog.get("id").get("catalogcode"), + codigoTipo)).orderBy(cb.asc(rootTgenecatalog.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } + + public Collection buscarCatalogo(String codigoTipo, String legalCode) throws RegistroException{ + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecatalogdetail.class); + Root rootTgenecatalog = query.from(Tgenecatalogdetail.class); + query.select(rootTgenecatalog).where(cb.and(cb.equal(rootTgenecatalog.get("id").get("catalogcode"), codigoTipo), + cb.equal(rootTgenecatalog.get("legalcode"), legalCode))).orderBy(cb.asc(rootTgenecatalog.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/CiudadDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CiudadDao.java new file mode 100644 index 0000000..d5f6874 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CiudadDao.java @@ -0,0 +1,43 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecity} + * @author dcruz + * + */ +public class CiudadDao extends GenericDaoImpl { + + public CiudadDao() { + super(Tgenecity.class); + } + + /** + * Busca la ciudad en base a los criterios de busqueda ingresado + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection buscarCiudad(String countryCode, String provinceCode, String cantonCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecity.class); + Root tciudadRoot = query.from(Tgenecity.class); + query.where(cb.equal(tciudadRoot.get("id").get("countrycode"), countryCode), cb.equal(tciudadRoot.get("id").get("provincecode"), provinceCode), cb.equal(tciudadRoot.get("id").get("cantoncode"), cantonCode)); + query.orderBy(cb.asc(tciudadRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/CompaniaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CompaniaDao.java new file mode 100644 index 0000000..41aaa1d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/CompaniaDao.java @@ -0,0 +1,18 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustcompany; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustcompany} + * @author dcruz + * + */ +public class CompaniaDao extends GenericDaoImpl { + + public CompaniaDao() { + super(Tcustcompany.class); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/DireccionPersonaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/DireccionPersonaDao.java new file mode 100644 index 0000000..0b0b481 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/DireccionPersonaDao.java @@ -0,0 +1,80 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersonaddress} + * @author dcruz + * + */ +public class DireccionPersonaDao extends GenericDaoImpl { + + public DireccionPersonaDao() { + super(Tcustpersonaddress.class); + } + + @SuppressWarnings("unchecked") + public Tcustpersonaddress buscaDireccionPrincipal(Integer personcode) throws RegistroException{ + Tcustpersonaddress direccioPrincipal = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.principal=:principal"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("principal", PortalMessages.getInstancia().getString("valor.general.si")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + direccioPrincipal = listaddress.iterator().next(); + } + return direccioPrincipal; + } + + /** + * Busca y retorna la primera dirección encontrada + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public Tcustpersonaddress buscaDireccionPorTipo(Integer personcode, String tipodireccion) throws RegistroException{ + Tcustpersonaddress direccioPrincipal = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.addresstypecatalog=:tipodireccion AND o.addresstypecatalogcode=:tipodireccioncodigo"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("tipodireccion", tipodireccion); + query.setParameter("tipodireccioncodigo", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + direccioPrincipal = listaddress.iterator().next(); + } + return direccioPrincipal; + } + + /** + * Busca y retorna todas las direcciones encontradas + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaDireccionesPorTipo(Long personcode, String tipodireccion) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonaddress o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.addresstypecatalog=:tipodireccion AND o.addresstypecatalogcode=:tipodireccioncodigo"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("tipodireccion", tipodireccion); + query.setParameter("tipodireccioncodigo", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion")); + List listaddress = query.getResultList(); + if(listaddress != null && !listaddress.isEmpty()){ + return listaddress; + } + return null; + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/PaisDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PaisDao.java new file mode 100644 index 0000000..ea9142c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PaisDao.java @@ -0,0 +1,35 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenecountry} + * @author dcruz + * + */ +public class PaisDao extends GenericDaoImpl { + + public PaisDao() { + super(Tgenecountry.class); + } + + public Collection buscarPaises() { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgenecountry.class); + Root tgeneCountryRoot = query.from(Tgenecountry.class); + query.select(tgeneCountryRoot).orderBy(cb.asc(tgeneCountryRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/ParroquiaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ParroquiaDao.java new file mode 100644 index 0000000..6834d1d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ParroquiaDao.java @@ -0,0 +1,38 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneparroquia; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneparroquia} + * @author dcruz + * + */ +public class ParroquiaDao extends GenericDaoImpl { + + public ParroquiaDao() { + super(Tgeneparroquia.class); + } + + /** + * Retorna las parroquias de un canton específico + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection buscarParroquias(String countryCode, String provinceCode, String cantonCode) { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneparroquia.class); + Root tparroquiaRoot = query.from(Tgeneparroquia.class); + query.where(cb.equal(tparroquiaRoot.get("id").get("countrycode"), countryCode), cb.equal(tparroquiaRoot.get("id").get("provincecode"), provinceCode), cb.equal(tparroquiaRoot.get("id").get("cantoncode"), cantonCode)); + query.orderBy(cb.asc(tparroquiaRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDao.java new file mode 100644 index 0000000..2b0dd92 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDao.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustperson; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustperson} + * @author dcruz + * + */ +public class PersonaDao extends GenericDaoImpl { + + public PersonaDao() { + super(Tcustperson.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDetalleDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDetalleDao.java new file mode 100644 index 0000000..5f657fc --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaDetalleDao.java @@ -0,0 +1,40 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersondetail} + */ +public class PersonaDetalleDao extends GenericDaoImpl { + + + public PersonaDetalleDao() { + super(Tcustpersondetail.class); + } + + public Tcustpersondetail buscarPorIdentificacion(String codigoIdentificacion) throws RegistroException { + try { + Tcustpersondetail detallePersona = null; + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tcustpersondetail.class); + Root personDetailRoot = query.from(Tcustpersondetail.class); + query.where(cb.equal(personDetailRoot.get("identification"), codigoIdentificacion),cb.equal(personDetailRoot.get("id").get("dateto"), FechaUtil.obtenerFecha(2999, 11, 31))); + List detallesPersona = this.getEntityManager().createQuery(query).getResultList(); + if(!detallesPersona.isEmpty()){ + detallePersona = detallesPersona.get(0); + } + return detallePersona; + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaNaturalDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaNaturalDao.java new file mode 100644 index 0000000..d3a884a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/PersonaNaturalDao.java @@ -0,0 +1,44 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustcompany} + * @author dcruz + * + */ +public class PersonaNaturalDao extends GenericDaoImpl { + + public PersonaNaturalDao() { + super(Tcustpeople.class); + } + + /** + * Busca y retorna todas las personas naturales vigentes encontradas + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaPersonaNatural(Long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpeople o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List listpeople = query.getResultList(); + if(listpeople != null && !listpeople.isEmpty()){ + return listpeople; + } + return null; + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/ProvinciaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ProvinciaDao.java new file mode 100644 index 0000000..fe6162e --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/ProvinciaDao.java @@ -0,0 +1,40 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.Collection; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Root; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgeneprovince} + * @author dcruz + * + */ +public class ProvinciaDao extends GenericDaoImpl { + + public ProvinciaDao() { + super(Tgeneprovince.class); + } + + /** + * Consulta todas las provincias de un pa&iiacute;s + * @param countryCode + * @return + */ + public Collection buscarProvinciasxPais(String countryCode) { + try { + CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Tgeneprovince.class); + Root tgeneprovinceRoot = query.from(Tgeneprovince.class); + query.where(cb.equal(tgeneprovinceRoot.get("id").get("countrycode"), countryCode)).orderBy(cb.asc(tgeneprovinceRoot.get("description"))); + return this.getEntityManager().createQuery(query).getResultList(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/SecuenciaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/SecuenciaDao.java new file mode 100644 index 0000000..a645457 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/SecuenciaDao.java @@ -0,0 +1,28 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tgenesequence; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tgenesequence} + * @author dcruz + * + */ +public class SecuenciaDao extends GenericDaoImpl { + + public SecuenciaDao() { + super(Tgenesequence.class); + } + + /** + * Retorna la secuencia por coódigo ingresado + * @param nombreSecuencia + * @return + * @throws RegistroException + */ + public Tgenesequence obtenerSecuencia(String nombreSecuencia) throws RegistroException{ + Tgenesequence sequence = this.getEntityManager().find(Tgenesequence.class, nombreSecuencia); + return sequence; + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.java new file mode 100644 index 0000000..383d821 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.java @@ -0,0 +1,78 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tcustpersonphone} + * @author dcruz + * + */ +public class TelefonoPersonaDao extends GenericDaoImpl { + + public TelefonoPersonaDao() { + super(Tcustpersonphone.class); + } + + /** + * Retorna el primer teléfono encontrado del tipo enviado + * @param personcode + * @param tipotelefono + * @return + */ + @SuppressWarnings("unchecked") + public Tcustpersonphone obtenerTelefonoTipo(Integer personcode, String tipotelefono) { + Tcustpersonphone telefono = null; + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("valortelefono", tipotelefono); + query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); + List listphones = query.getResultList(); + if(listphones != null && !listphones.isEmpty()){ + telefono = listphones.iterator().next(); + } + return telefono; + } + + /** + * Retorna el primer teléfono encontrado del tipo enviado + * @param personcode + * @param tipotelefono + * @return + */ + @SuppressWarnings("unchecked") + public List obtenerTelefonosPorTipo(Long personcode, String tipotelefono) { + Query query = this.getEntityManager().createQuery("SELECT o FROM Tcustpersonphone o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto AND o.phonetypecatalog=:valortelefono AND o.phonetypecatalogcode=:tipocodigotelefono"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + query.setParameter("valortelefono", tipotelefono); + query.setParameter("tipocodigotelefono", PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono")); + List listphones = query.getResultList(); + if(listphones != null && !listphones.isEmpty()){ + return listphones; + } + return null; + } + + /** + * Busca y retorna la primera dirección encontrada + * @param personcode + * @param tipodireccion + * @return + * @throws RegistroException + */ + public Long maxSecuencia(long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT max(o.id.phonesequence) FROM Tcustpersonphone o WHERE o.id.personcode=:personcode"); + query.setParameter("personcode", (long)personcode); + //query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + return (Long)query.getSingleResult(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDao.java new file mode 100644 index 0000000..58d45f9 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDao.java @@ -0,0 +1,41 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuser; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuser} + * @author dcruz + * + */ +public class UsuarioDao extends GenericDaoImpl { + + public UsuarioDao() { + super(Tsafeuser.class); + } + + /** + * Busca y retorna todos los usuarios encontrados + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaUsers(String usercode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tsafeuser o WHERE o.usercode=:usercode"); + query.setParameter("usercode", usercode); + List listUser = query.getResultList(); + if(listUser != null && !listUser.isEmpty()){ + return listUser; + } + return null; + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalle.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalle.java new file mode 100644 index 0000000..d95f583 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalle.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuserdetail; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserdetail} + * @author dcruz + * + */ +public class UsuarioDetalle extends GenericDaoImpl { + + public UsuarioDetalle() { + super(Tsafeuserdetail.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.java new file mode 100644 index 0000000..8d76781 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.java @@ -0,0 +1,44 @@ +package com.fp.armas.portal.dao.registro; + +import java.util.List; + +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.RegistroException; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserdetail} + * @author dcruz + * + */ +public class UsuarioDetalleDao extends GenericDaoImpl { + + public UsuarioDetalleDao() { + super(Tsafeuserdetail.class); + } + + /** + * Busca y retorna todos los usuarios encontrados + * @param personcode + * @return + * @throws RegistroException + */ + @SuppressWarnings("unchecked") + public List buscaUserDetail(Long personcode) throws RegistroException{ + Query query = this.getEntityManager().createQuery("SELECT o FROM Tsafeuserdetail o WHERE o.id.personcode=:personcode AND o.id.dateto=:dateto"); + query.setParameter("personcode", (long)personcode); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List listpeople = query.getResultList(); + if(listpeople != null && !listpeople.isEmpty()){ + return listpeople; + } + return null; + } + + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.java b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.java new file mode 100644 index 0000000..b729c8c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.dao.registro; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.model.Tsafeuserprofile; + +/** + * Objeto de acceso a datos de la tabla {@link Tsafeuserprofile} + * @author dcruz + * + */ +public class UsuarioPerfilDao extends GenericDaoImpl { + + public UsuarioPerfilDao() { + super(Tsafeuserprofile.class); + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/entries new file mode 100644 index 0000000..759987b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/facade +svn://172.17.26.185/COMACO + + + +2015-03-03T05:23:24.007260Z +3882 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +PortalService.java +file + + + + +2022-07-28T03:45:35.283068Z +356fec3f218dcc8c769ed1881ac59fd0 +2015-03-03T05:23:24.007260Z +3882 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +5890 + +PortalServiceBean.java +file + + + + +2022-07-28T03:45:35.284068Z +9b9cb3d737b69002c9e6a6d75a76a3ea +2015-03-03T05:23:24.007260Z +3882 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +4836 + diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalService.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalService.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalService.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalServiceBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalServiceBean.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/prop-base/PortalServiceBean.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalService.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalService.java.svn-base new file mode 100644 index 0000000..b6ab533 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalService.java.svn-base @@ -0,0 +1,182 @@ +package com.fp.armas.portal.facade; + +import java.util.Collection; + +import javax.ejb.Local; + +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.RegistroException; + +/** + * Interfaz que es la fachada principal con la parte de negocio no se puede acceder a una funcionalidad si no es por aqui + * + * Application Service + * @author dcruz + * + * + */ +@Local +public interface PortalService { + + /** + * Devuelve una {@link Collection} que representan el tipo de documentacion + * @return {@link Collection} de {@link Tgenecatalogdetail} + */ + Collection obtenerCatalogo(String codigoTipo) throws RegistroException; + + /** + * Devuelve una {@link Collection} de {@link Tgeneactivity} + * @return + * @throws RegistroException + */ + Collection obtenerActividadEconomica() throws RegistroException; + + /** + * Obtiene un catalogo por su tipo y legalcode + * @param codigoTipo + * @param legalCode + * @return + */ + Collection obtenerCatalogo(String codigoTipo, String legalCode) throws RegistroException; + + /** + * Devuelve todos los paises existentes + * @return una {@link Collection} de {@link Tgenecountry} + */ + Collection obtenerPais() throws RegistroException; + + /** + * Devuelve las provincias de un determinado {@link Tgenecountry} + * @param codPais + * @return una {@link Collection} de {@link Tgeneprovince} + */ + Collection obtenerProvincias(String codPais) throws RegistroException; + + /** + * Devuelve los cantones en base al pais y provincia + * @param codPais + * @param codProvincia + * @return {@link Collection} de {@link Tgenecanton} + */ + Collection obtenerCantones(String codPais, String codProvincia) throws RegistroException; + + /** + * Devuelve las parroquias en base el pais, provincia, y cantón + * @param codPais + * @param codProvincia + * @param codCanton + * @return una {@link Collection} de {@link Tgeneparroquia} + */ + Collection obtenerParroquias(String codPais, String codProvincia, String codCanton) throws RegistroException; + + /** + * Devuelve las parroquias en base el pais, provincia, y cantón + * @param codPais + * @param codProvincia + * @param codCanton + * @return {@link Collection} de {@link Tgenecity} + */ + Collection obtenerCiudades(String codPais, String codProvincia, String codCanton) throws RegistroException; + + /** + * Método que se encarga de almacenar el usuario en maia y a su vez activarlo + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @param actualizacion + * @throws RegistroException + */ + void guardarUsuarioMaia(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException; + + /** + * Actualiza todos los datos de la persona desde el portal + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @throws RegistroException + */ + void actualizarDatosUsuario(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException; + + /** + * Devuelve una persona por identificación + * @param codigoIdentificacion + * @return + * @throws RegistroException + */ + Tcustpersondetail obtenerDetallePersonaPorIdentificacion(String codigoIdentificacion) throws RegistroException; + + /** + * Retorna la companía en base al personcode + * @param personcode + * @return + * @throws RegistroException + */ + Tcustcompany obtenerCompaniaPorId(Integer personcode) throws RegistroException; + + /** + * Retorna la información de la persona natural en base al personcode + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpeople obtenerPersonaNaturalPorId(Integer personcode) throws RegistroException; + + /** + * Retorna la información de la dirección principal + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) throws RegistroException; + + /** + * Retorna el correo de la persona + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonaddress obtenerCorreo(Integer personcode) throws RegistroException; + + /** + * Retorna el teléfono fijo de la persona + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonphone obtenerTelefonoFijo(Integer personcode) throws RegistroException; + + /** + * Retorna el teléfono celular de la persona + * @param personcode + * @return + */ + Tcustpersonphone obtenerTelefonoCelular(Integer personcode); + /** + * Obtener información de las imagenes + * @param personcode + * @return + */ + public Tgenefilesdetail obtenerImagen(long code); +} diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalServiceBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalServiceBean.java.svn-base new file mode 100644 index 0000000..4d71f3b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/.svn/text-base/PortalServiceBean.java.svn-base @@ -0,0 +1,151 @@ +package com.fp.armas.portal.facade; + +import java.util.Collection; + +import javax.ejb.EJB; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; + +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.service.RegistroBean; +import com.fp.armas.portal.util.RegistroException; + +@Stateless +@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) +public class PortalServiceBean implements PortalService { + + @EJB + private RegistroBean registroBean; + + @Override + public Collection obtenerCatalogo(String codigoTipo) { + // TODO Auto-generated method stub + return registroBean.obtenerCatalogo(codigoTipo); + } + + @Override + public Collection obtenerActividadEconomica() + throws RegistroException { + // TODO Auto-generated method stub + return registroBean.obtenerActividades(); + } + + @Override + public Collection obtenerCatalogo(String codigoTipo, + String legalCode) { + // TODO Auto-generated method stub + return registroBean.obtenerCalogo(codigoTipo, legalCode); + } + + @Override + public Collection obtenerPais() { + // TODO Auto-generated method stub + return registroBean.obtenerPaises(); + } + + @Override + public Collection obtenerProvincias(String codPais) { + return registroBean.obtenerProvincias(codPais); + } + + @Override + public Collection obtenerCantones(String codPais, + String codProvincia) { + // TODO Auto-generated method stub + return registroBean.obtenerCantones(codPais, codProvincia); + } + + @Override + public Collection obtenerParroquias(String codPais, + String codProvincia, String codCanton) { + // TODO Auto-generated method stub + return registroBean.obtenerParroquias(codPais, codProvincia, codCanton); + } + + @Override + public Collection obtenerCiudades(String codPais, + String codProvincia, String codCanton) { + // TODO Auto-generated method stub + return registroBean.obtenerCiudades(codPais, codProvincia, codCanton); + } + + @Override + public void guardarUsuarioMaia(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) { + // TODO Auto-generated method stub + registroBean.guardarUsuario(persona, direccionPersona, correoPersona, telefonoPersona, telefonoCelular, adicionalPersona, compania, foto); + } + + @Override + public Tcustpersondetail obtenerDetallePersonaPorIdentificacion( + String codigoIdentificacion) throws RegistroException { + // TODO Auto-generated method stub + return registroBean.obtenerPersonaPorIdentificacion(codigoIdentificacion); + } + + @Override + public void actualizarDatosUsuario(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, + Tcustcompany compania, Tgenefilesdetail foto) + throws RegistroException { + // TODO Auto-generated method stub + + } + + @Override + public Tcustcompany obtenerCompaniaPorId(Integer personcode) + throws RegistroException { + return registroBean.obtenerCompania(personcode); + } + + @Override + public Tcustpeople obtenerPersonaNaturalPorId(Integer personcode) + throws RegistroException { + return registroBean.obtenerPersonaNaturalId(personcode); + } + + @Override + public Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) + throws RegistroException { + return registroBean.obtenerDireccionPrincipal(personcode); + } + + @Override + public Tcustpersonaddress obtenerCorreo(Integer personcode) + throws RegistroException { + return registroBean.obtenerDireccionCorreo(personcode); + } + + @Override + public Tcustpersonphone obtenerTelefonoFijo(Integer personcode) + throws RegistroException { + return registroBean.obtenerTelefonoFijo(personcode); + } + + @Override + public Tcustpersonphone obtenerTelefonoCelular(Integer personcode) { + return registroBean.obtenerTelefonoCelular(personcode); + } + + @Override + public Tgenefilesdetail obtenerImagen(long code){ + return registroBean.obtenerImagen(code); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/PortalService.java b/ejb/src/main/java/com/fp/armas/portal/facade/PortalService.java new file mode 100644 index 0000000..b6ab533 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/PortalService.java @@ -0,0 +1,182 @@ +package com.fp.armas.portal.facade; + +import java.util.Collection; + +import javax.ejb.Local; + +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.RegistroException; + +/** + * Interfaz que es la fachada principal con la parte de negocio no se puede acceder a una funcionalidad si no es por aqui + * + * Application Service + * @author dcruz + * + * + */ +@Local +public interface PortalService { + + /** + * Devuelve una {@link Collection} que representan el tipo de documentacion + * @return {@link Collection} de {@link Tgenecatalogdetail} + */ + Collection obtenerCatalogo(String codigoTipo) throws RegistroException; + + /** + * Devuelve una {@link Collection} de {@link Tgeneactivity} + * @return + * @throws RegistroException + */ + Collection obtenerActividadEconomica() throws RegistroException; + + /** + * Obtiene un catalogo por su tipo y legalcode + * @param codigoTipo + * @param legalCode + * @return + */ + Collection obtenerCatalogo(String codigoTipo, String legalCode) throws RegistroException; + + /** + * Devuelve todos los paises existentes + * @return una {@link Collection} de {@link Tgenecountry} + */ + Collection obtenerPais() throws RegistroException; + + /** + * Devuelve las provincias de un determinado {@link Tgenecountry} + * @param codPais + * @return una {@link Collection} de {@link Tgeneprovince} + */ + Collection obtenerProvincias(String codPais) throws RegistroException; + + /** + * Devuelve los cantones en base al pais y provincia + * @param codPais + * @param codProvincia + * @return {@link Collection} de {@link Tgenecanton} + */ + Collection obtenerCantones(String codPais, String codProvincia) throws RegistroException; + + /** + * Devuelve las parroquias en base el pais, provincia, y cantón + * @param codPais + * @param codProvincia + * @param codCanton + * @return una {@link Collection} de {@link Tgeneparroquia} + */ + Collection obtenerParroquias(String codPais, String codProvincia, String codCanton) throws RegistroException; + + /** + * Devuelve las parroquias en base el pais, provincia, y cantón + * @param codPais + * @param codProvincia + * @param codCanton + * @return {@link Collection} de {@link Tgenecity} + */ + Collection obtenerCiudades(String codPais, String codProvincia, String codCanton) throws RegistroException; + + /** + * Método que se encarga de almacenar el usuario en maia y a su vez activarlo + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @param actualizacion + * @throws RegistroException + */ + void guardarUsuarioMaia(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException; + + /** + * Actualiza todos los datos de la persona desde el portal + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @throws RegistroException + */ + void actualizarDatosUsuario(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException; + + /** + * Devuelve una persona por identificación + * @param codigoIdentificacion + * @return + * @throws RegistroException + */ + Tcustpersondetail obtenerDetallePersonaPorIdentificacion(String codigoIdentificacion) throws RegistroException; + + /** + * Retorna la companía en base al personcode + * @param personcode + * @return + * @throws RegistroException + */ + Tcustcompany obtenerCompaniaPorId(Integer personcode) throws RegistroException; + + /** + * Retorna la información de la persona natural en base al personcode + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpeople obtenerPersonaNaturalPorId(Integer personcode) throws RegistroException; + + /** + * Retorna la información de la dirección principal + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) throws RegistroException; + + /** + * Retorna el correo de la persona + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonaddress obtenerCorreo(Integer personcode) throws RegistroException; + + /** + * Retorna el teléfono fijo de la persona + * @param personcode + * @return + * @throws RegistroException + */ + Tcustpersonphone obtenerTelefonoFijo(Integer personcode) throws RegistroException; + + /** + * Retorna el teléfono celular de la persona + * @param personcode + * @return + */ + Tcustpersonphone obtenerTelefonoCelular(Integer personcode); + /** + * Obtener información de las imagenes + * @param personcode + * @return + */ + public Tgenefilesdetail obtenerImagen(long code); +} diff --git a/ejb/src/main/java/com/fp/armas/portal/facade/PortalServiceBean.java b/ejb/src/main/java/com/fp/armas/portal/facade/PortalServiceBean.java new file mode 100644 index 0000000..4d71f3b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/facade/PortalServiceBean.java @@ -0,0 +1,151 @@ +package com.fp.armas.portal.facade; + +import java.util.Collection; + +import javax.ejb.EJB; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; + +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.service.RegistroBean; +import com.fp.armas.portal.util.RegistroException; + +@Stateless +@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) +public class PortalServiceBean implements PortalService { + + @EJB + private RegistroBean registroBean; + + @Override + public Collection obtenerCatalogo(String codigoTipo) { + // TODO Auto-generated method stub + return registroBean.obtenerCatalogo(codigoTipo); + } + + @Override + public Collection obtenerActividadEconomica() + throws RegistroException { + // TODO Auto-generated method stub + return registroBean.obtenerActividades(); + } + + @Override + public Collection obtenerCatalogo(String codigoTipo, + String legalCode) { + // TODO Auto-generated method stub + return registroBean.obtenerCalogo(codigoTipo, legalCode); + } + + @Override + public Collection obtenerPais() { + // TODO Auto-generated method stub + return registroBean.obtenerPaises(); + } + + @Override + public Collection obtenerProvincias(String codPais) { + return registroBean.obtenerProvincias(codPais); + } + + @Override + public Collection obtenerCantones(String codPais, + String codProvincia) { + // TODO Auto-generated method stub + return registroBean.obtenerCantones(codPais, codProvincia); + } + + @Override + public Collection obtenerParroquias(String codPais, + String codProvincia, String codCanton) { + // TODO Auto-generated method stub + return registroBean.obtenerParroquias(codPais, codProvincia, codCanton); + } + + @Override + public Collection obtenerCiudades(String codPais, + String codProvincia, String codCanton) { + // TODO Auto-generated method stub + return registroBean.obtenerCiudades(codPais, codProvincia, codCanton); + } + + @Override + public void guardarUsuarioMaia(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) { + // TODO Auto-generated method stub + registroBean.guardarUsuario(persona, direccionPersona, correoPersona, telefonoPersona, telefonoCelular, adicionalPersona, compania, foto); + } + + @Override + public Tcustpersondetail obtenerDetallePersonaPorIdentificacion( + String codigoIdentificacion) throws RegistroException { + // TODO Auto-generated method stub + return registroBean.obtenerPersonaPorIdentificacion(codigoIdentificacion); + } + + @Override + public void actualizarDatosUsuario(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, + Tcustcompany compania, Tgenefilesdetail foto) + throws RegistroException { + // TODO Auto-generated method stub + + } + + @Override + public Tcustcompany obtenerCompaniaPorId(Integer personcode) + throws RegistroException { + return registroBean.obtenerCompania(personcode); + } + + @Override + public Tcustpeople obtenerPersonaNaturalPorId(Integer personcode) + throws RegistroException { + return registroBean.obtenerPersonaNaturalId(personcode); + } + + @Override + public Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) + throws RegistroException { + return registroBean.obtenerDireccionPrincipal(personcode); + } + + @Override + public Tcustpersonaddress obtenerCorreo(Integer personcode) + throws RegistroException { + return registroBean.obtenerDireccionCorreo(personcode); + } + + @Override + public Tcustpersonphone obtenerTelefonoFijo(Integer personcode) + throws RegistroException { + return registroBean.obtenerTelefonoFijo(personcode); + } + + @Override + public Tcustpersonphone obtenerTelefonoCelular(Integer personcode) { + return registroBean.obtenerTelefonoCelular(personcode); + } + + @Override + public Tgenefilesdetail obtenerImagen(long code){ + return registroBean.obtenerImagen(code); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/model/.svn/entries new file mode 100644 index 0000000..cfcef02 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/entries @@ -0,0 +1,1150 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/model +svn://172.17.26.185/COMACO + + + +2015-03-26T10:29:53.271609Z +3976 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +TcustpeoplePK.java +file + + + + +2022-07-28T03:45:34.938067Z +c2ec3e0c2b5e4b398cb995dee4ca06e1 +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1490 + +TgeneprovincePK.java +file + + + + +2022-07-28T03:45:34.938067Z +610dc3a1aaddf183cd653073b138bb55 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1366 + +TgenefilesdetailPK.java +file + + + + +2022-07-28T03:45:34.938067Z +e6bbdc33a2e2c004850a4ed25bff69ec +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1437 + +Tcustpeople.java +file + + + + +2022-07-28T03:45:34.939067Z +515c74fbc4fccb0b3774a6f933979aab +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +7292 + +TcustpersondetailPK.java +file + + + + +2022-07-28T03:45:34.939067Z +d37f547b93092240e678db81ab77b289 +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1532 + +Tgeneprovince.java +file + + + + +2022-07-28T03:45:34.939067Z +403470d3b544231e08f99e9345d05480 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2180 + +Tgenefilesdetail.java +file + + + + +2022-07-28T03:45:34.940067Z +73b42d264b549d1f4a30ac062a51c7f0 +2014-11-13T10:16:41.154906Z +2728 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3539 + +Tcustpersondetail.java +file + + + + +2022-07-28T03:45:34.940067Z +469b9cfaddaee0e692da004167cbfbd3 +2015-03-26T10:29:53.271609Z +3976 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +9113 + +TsafeuserdetailPK.java +file + + + + +2022-07-28T03:45:34.940067Z +0a2d509ca0fd9e925d19ea4e7a6ad8a8 +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1799 + +TgeneparroquiaPK.java +file + + + + +2022-07-28T03:45:34.941067Z +0c992db19e1a62d95487971aace51601 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2062 + +Tsafeuserdetail.java +file + + + + +2022-07-28T03:45:34.941067Z +458fecd2c2767a8d9d015e80c7e61194 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4832 + +TcustcompanyPK.java +file + + + + +2022-07-28T03:45:34.942067Z +d2a1a2be65923c4f281012b73d1df0db +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1497 + +Tgeneparroquia.java +file + + + + +2022-07-28T03:45:34.942067Z +c4802fb5c7c24931f1219a72c65af7f7 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2619 + +Tgenecountry.java +file + + + + +2022-07-28T03:45:34.942067Z +cd244b5ff2698f1299b26b12279c6e59 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2321 + +Tcustperson.java +file + + + + +2022-07-28T03:45:34.943067Z +4b950b7f710922603e2c4c77195c45f9 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3684 + +Tcustcompany.java +file + + + + +2022-07-28T03:45:34.943067Z +93a54f7c763b9f13233ad38baf538a24 +2014-11-13T04:51:10.606208Z +2692 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6510 + +TcustpersonaddressPK.java +file + + + + +2022-07-28T03:45:34.943067Z +26ed456a493d6cabb035b57b20706620 +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1933 + +Tcustpersonaddress.java +file + + + + +2022-07-28T03:45:34.944067Z +bf5c3f82e0b9c955d4a524be0d750f28 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +7170 + +TgenecantonPK.java +file + + + + +2022-07-28T03:45:34.944067Z +dac62f8e2a36e11a1c8a8c5c48c24e8d +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1684 + +Tsafeuser.java +file + + + + +2022-07-28T03:45:34.944067Z +c06f2862fc2592eddb8679317a870247 +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +8395 + +Tgenefile.java +file + + + + +2022-07-28T03:45:34.945067Z +3b6275d2b73d9b9679afb88fad2c0b24 +2014-11-13T04:51:10.606208Z +2692 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2876 + +Tgenecanton.java +file + + + + +2022-07-28T03:45:34.945067Z +4bcab9ceacaf0301ab73d7ed31147715 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3053 + +TgenecatalogdetailPK.java +file + + + + +2022-07-28T03:45:34.945067Z +f15351e767d5752fb977e7226d1d00e4 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1376 + +TsafeuserprofilePK.java +file + + + + +2022-07-28T03:45:34.946067Z +8dbc6649a7ded75e9efb68d2fb098ffd +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1874 + +TcustpersonphonePK.java +file + + + + +2022-07-28T03:45:34.946067Z +d2da3fcca4a5241b8cc1068268adceac +2015-01-23T10:28:07.049863Z +3797 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2034 + +Tgeneactivity.java +file + + + + +2022-07-28T03:45:34.946067Z +f7ef053df96a9be0cdfab5ffda863ab3 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1902 + +Tgenecatalogdetail.java +file + + + + +2022-07-28T03:45:34.947067Z +22dad851930941ad09d169574088a9ab +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1606 + +Tsafeuserprofile.java +file + + + + +2022-07-28T03:45:34.947067Z +b0f5b617c86aace53a6bde00c6f223c7 +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1450 + +Tcustpersonphone.java +file + + + + +2022-07-28T03:45:34.948067Z +2a841bdf782a70e4990924d0a339b6ac +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3861 + +TgenecityPK.java +file + + + + +2022-07-28T03:45:34.948067Z +aa4570c5ec58e7d0808ad80ac47e344f +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1982 + +Tgenecity.java +file + + + + +2022-07-28T03:45:34.948067Z +021a059ae774e1a0a6d2dc9946442c26 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2076 + +Tgenesequence.java +file + + + + +2022-07-28T03:45:34.949067Z +bba0eebfacd392dbd490a381cb4d8657 +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1586 + +Tgenecatalog.java +file + + + + +2022-07-28T03:45:34.949067Z +824be341c1570bb71b8737239ad2af1a +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1879 + diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustcompany.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustcompany.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustcompany.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustcompanyPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustcompanyPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustcompanyPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpeople.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpeople.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpeople.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpeoplePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpeoplePK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpeoplePK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustperson.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustperson.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustperson.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonaddress.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonaddress.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonaddress.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonaddressPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonaddressPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonaddressPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersondetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersondetail.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersondetail.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersondetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersondetailPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersondetailPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonphone.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonphone.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tcustpersonphone.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonphonePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonphonePK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TcustpersonphonePK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneactivity.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneactivity.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneactivity.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecanton.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecanton.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecanton.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecantonPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecantonPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecantonPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalog.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalog.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalog.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalogdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalogdetail.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecatalogdetail.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecatalogdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecatalogdetailPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecatalogdetailPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecity.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecity.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecity.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecityPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecityPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenecityPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecountry.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecountry.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenecountry.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefile.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefile.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefile.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefilesdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefilesdetail.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenefilesdetail.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenefilesdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenefilesdetailPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgenefilesdetailPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneparroquia.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneparroquia.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneparroquia.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneparroquiaPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneparroquiaPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneparroquiaPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneprovince.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneprovince.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgeneprovince.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneprovincePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneprovincePK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TgeneprovincePK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenesequence.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenesequence.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tgenesequence.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuser.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuser.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuser.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserdetail.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserdetail.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserdetailPK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserdetailPK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserprofile.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserprofile.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/Tsafeuserprofile.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserprofilePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserprofilePK.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/prop-base/TsafeuserprofilePK.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustcompany.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustcompany.java.svn-base new file mode 100644 index 0000000..bbbcb83 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustcompany.java.svn-base @@ -0,0 +1,290 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.util.Date; + + +/** + * The persistent class for the TCUSTCOMPANY database table. + * + */ +@Entity +public class Tcustcompany implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustcompanyPK id; + + private String businessclasscatalog; + + private String businessclasscatalogcode; + + private String businesstypecatalog; + + private String businesstypecatalogcode; + + private String commercialregister; + + @Temporal(TemporalType.DATE) + private Date constitutiondate; + + private BigDecimal contributedcapital; + + private String corporatepurpose; + + private Timestamp datefrom; + + private Integer employeenumber; + + private String employercode; + + @Temporal(TemporalType.DATE) + private Date expirationdate; + + private String ingressuser; + + private String institutiontypecatalog; + + private String institutiontypecatalogcode; + + private Integer membersnumber; + + private String modifyuser; + + private Integer nominalcapital; + + private String operativestatuscatalog; + + private String operativestatuscatalogcode; + + private Integer originalcapital; + + @Lob + private byte[] picture; + + @Column(name="LOGO") + private Integer logo; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="LOGO", insertable=false, updatable=false) + private Tgenefile tgenefile; + + public Tcustcompany() { + } + + public TcustcompanyPK getId() { + return this.id; + } + + public void setId(TcustcompanyPK id) { + this.id = id; + } + + public String getBusinessclasscatalog() { + return this.businessclasscatalog; + } + + public void setBusinessclasscatalog(String businessclasscatalog) { + this.businessclasscatalog = businessclasscatalog; + } + + public String getBusinessclasscatalogcode() { + return this.businessclasscatalogcode; + } + + public void setBusinessclasscatalogcode(String businessclasscatalogcode) { + this.businessclasscatalogcode = businessclasscatalogcode; + } + + public String getBusinesstypecatalog() { + return this.businesstypecatalog; + } + + public void setBusinesstypecatalog(String businesstypecatalog) { + this.businesstypecatalog = businesstypecatalog; + } + + public String getBusinesstypecatalogcode() { + return this.businesstypecatalogcode; + } + + public void setBusinesstypecatalogcode(String businesstypecatalogcode) { + this.businesstypecatalogcode = businesstypecatalogcode; + } + + public String getCommercialregister() { + return this.commercialregister; + } + + public void setCommercialregister(String commercialregister) { + this.commercialregister = commercialregister; + } + + public Date getConstitutiondate() { + return this.constitutiondate; + } + + public void setConstitutiondate(Date constitutiondate) { + this.constitutiondate = constitutiondate; + } + + public BigDecimal getContributedcapital() { + return this.contributedcapital; + } + + public void setContributedcapital(BigDecimal contributedcapital) { + this.contributedcapital = contributedcapital; + } + + public String getCorporatepurpose() { + return this.corporatepurpose; + } + + public void setCorporatepurpose(String corporatepurpose) { + this.corporatepurpose = corporatepurpose; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public Integer getEmployeenumber() { + return this.employeenumber; + } + + public void setEmployeenumber(Integer employeenumber) { + this.employeenumber = employeenumber; + } + + public String getEmployercode() { + return this.employercode; + } + + public void setEmployercode(String employercode) { + this.employercode = employercode; + } + + public Date getExpirationdate() { + return this.expirationdate; + } + + public void setExpirationdate(Date expirationdate) { + this.expirationdate = expirationdate; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getInstitutiontypecatalog() { + return this.institutiontypecatalog; + } + + public void setInstitutiontypecatalog(String institutiontypecatalog) { + this.institutiontypecatalog = institutiontypecatalog; + } + + public String getInstitutiontypecatalogcode() { + return this.institutiontypecatalogcode; + } + + public void setInstitutiontypecatalogcode(String institutiontypecatalogcode) { + this.institutiontypecatalogcode = institutiontypecatalogcode; + } + + public Integer getMembersnumber() { + return this.membersnumber; + } + + public void setMembersnumber(Integer membersnumber) { + this.membersnumber = membersnumber; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public Integer getNominalcapital() { + return this.nominalcapital; + } + + public void setNominalcapital(Integer nominalcapital) { + this.nominalcapital = nominalcapital; + } + + public String getOperativestatuscatalog() { + return this.operativestatuscatalog; + } + + public void setOperativestatuscatalog(String operativestatuscatalog) { + this.operativestatuscatalog = operativestatuscatalog; + } + + public String getOperativestatuscatalogcode() { + return this.operativestatuscatalogcode; + } + + public void setOperativestatuscatalogcode(String operativestatuscatalogcode) { + this.operativestatuscatalogcode = operativestatuscatalogcode; + } + + public Integer getOriginalcapital() { + return this.originalcapital; + } + + public void setOriginalcapital(Integer originalcapital) { + this.originalcapital = originalcapital; + } + + public byte[] getPicture() { + return this.picture; + } + + public void setPicture(byte[] picture) { + this.picture = picture; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tgenefile getTgenefile() { + return this.tgenefile; + } + + public void setTgenefile(Tgenefile tgenefile) { + this.tgenefile = tgenefile; + } + + public Integer getLogo() { + return logo; + } + + public void setLogo(Integer logo) { + this.logo = logo; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustcompanyPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustcompanyPK.java.svn-base new file mode 100644 index 0000000..d4b4263 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustcompanyPK.java.svn-base @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTCOMPANY database table. + * + */ +@Embeddable +public class TcustcompanyPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustcompanyPK() { + } + + public TcustcompanyPK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustcompanyPK)) { + return false; + } + TcustcompanyPK castOther = (TcustcompanyPK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpeople.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpeople.java.svn-base new file mode 100644 index 0000000..153cad4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpeople.java.svn-base @@ -0,0 +1,341 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + + +/** + * The persistent class for the TCUSTPEOPLE database table. + * + */ +@Entity +public class Tcustpeople implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpeoplePK id; + + private String birthcantoncode; + + private String birthcitycode; + + private String birthcountrycode; + + @Temporal(TemporalType.DATE) + private Date birthdate; + + private String birthparroquiacode; + + private String birthprovincecode; + + private Long codigosib; + + private Timestamp datefrom; + + private String educationlevelcatalog; + + private String educationlevelcatalogcode; + + private String firstname; + + private String gender; + + private String ingressusercode; + + private String lastname; + + private String maritalname; + + private String maritalstatuscatalog; + + private String maritalstatuscatalogcode; + + private String middlename; + + private String modifyusercode; + + private String nacionality; + + private String notactivitycatalog; + + private String notactivitycatalogcode; + + private Long photocode; + + private String professioncatalog; + + private String professioncatalogcode; + + private Long recordversion; + + private Long signaturecode; + + private String surename; + + private Double height; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + public Tcustpeople() { + } + + public TcustpeoplePK getId() { + return this.id; + } + + public void setId(TcustpeoplePK id) { + this.id = id; + } + + public String getBirthcantoncode() { + return this.birthcantoncode; + } + + public void setBirthcantoncode(String birthcantoncode) { + this.birthcantoncode = birthcantoncode; + } + + public String getBirthcitycode() { + return this.birthcitycode; + } + + public void setBirthcitycode(String birthcitycode) { + this.birthcitycode = birthcitycode; + } + + public String getBirthcountrycode() { + return this.birthcountrycode; + } + + public void setBirthcountrycode(String birthcountrycode) { + this.birthcountrycode = birthcountrycode; + } + + public Date getBirthdate() { + return this.birthdate; + } + + public void setBirthdate(Date birthdate) { + this.birthdate = birthdate; + } + + public String getBirthparroquiacode() { + return this.birthparroquiacode; + } + + public void setBirthparroquiacode(String birthparroquiacode) { + this.birthparroquiacode = birthparroquiacode; + } + + public String getBirthprovincecode() { + return this.birthprovincecode; + } + + public void setBirthprovincecode(String birthprovincecode) { + this.birthprovincecode = birthprovincecode; + } + + public Long getCodigosib() { + return this.codigosib; + } + + public void setCodigosib(Long codigosib) { + this.codigosib = codigosib; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getEducationlevelcatalog() { + return this.educationlevelcatalog; + } + + public void setEducationlevelcatalog(String educationlevelcatalog) { + this.educationlevelcatalog = educationlevelcatalog; + } + + public String getEducationlevelcatalogcode() { + return this.educationlevelcatalogcode; + } + + public void setEducationlevelcatalogcode(String educationlevelcatalogcode) { + this.educationlevelcatalogcode = educationlevelcatalogcode; + } + + public String getFirstname() { + return this.firstname; + } + + public void setFirstname(String firstname) { + this.firstname = firstname; + } + + public String getGender() { + return this.gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getIngressusercode() { + return this.ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getLastname() { + return this.lastname; + } + + public void setLastname(String lastname) { + this.lastname = lastname; + } + + public String getMaritalname() { + return this.maritalname; + } + + public void setMaritalname(String maritalname) { + this.maritalname = maritalname; + } + + public String getMaritalstatuscatalog() { + return this.maritalstatuscatalog; + } + + public void setMaritalstatuscatalog(String maritalstatuscatalog) { + this.maritalstatuscatalog = maritalstatuscatalog; + } + + public String getMaritalstatuscatalogcode() { + return this.maritalstatuscatalogcode; + } + + public void setMaritalstatuscatalogcode(String maritalstatuscatalogcode) { + this.maritalstatuscatalogcode = maritalstatuscatalogcode; + } + + public String getMiddlename() { + return this.middlename; + } + + public void setMiddlename(String middlename) { + this.middlename = middlename; + } + + public String getModifyusercode() { + return this.modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + + public String getNacionality() { + return this.nacionality; + } + + public void setNacionality(String nacionality) { + this.nacionality = nacionality; + } + + public String getNotactivitycatalog() { + return this.notactivitycatalog; + } + + public void setNotactivitycatalog(String notactivitycatalog) { + this.notactivitycatalog = notactivitycatalog; + } + + public String getNotactivitycatalogcode() { + return this.notactivitycatalogcode; + } + + public void setNotactivitycatalogcode(String notactivitycatalogcode) { + this.notactivitycatalogcode = notactivitycatalogcode; + } + + public Long getPhotocode() { + return this.photocode; + } + + public void setPhotocode(Long photocode) { + this.photocode = photocode; + } + + public String getProfessioncatalog() { + return this.professioncatalog; + } + + public void setProfessioncatalog(String professioncatalog) { + this.professioncatalog = professioncatalog; + } + + public String getProfessioncatalogcode() { + return this.professioncatalogcode; + } + + public void setProfessioncatalogcode(String professioncatalogcode) { + this.professioncatalogcode = professioncatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Long getSignaturecode() { + return this.signaturecode; + } + + public void setSignaturecode(Long signaturecode) { + this.signaturecode = signaturecode; + } + + public String getSurename() { + return this.surename; + } + + public void setSurename(String surename) { + this.surename = surename; + } + + public Tcustperson getTcustperson() { + return tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Double getHeight() { + return height; + } + + public void setHeight(Double height) { + this.height = height; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpeoplePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpeoplePK.java.svn-base new file mode 100644 index 0000000..414449f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpeoplePK.java.svn-base @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPEOPLE database table. + * + */ +@Embeddable +public class TcustpeoplePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpeoplePK() { + } + + public TcustpeoplePK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpeoplePK)) { + return false; + } + TcustpeoplePK castOther = (TcustpeoplePK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustperson.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustperson.java.svn-base new file mode 100644 index 0000000..203216f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustperson.java.svn-base @@ -0,0 +1,135 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.util.Set; + + +/** + * The persistent class for the TCUSTPERSON database table. + * + */ +@Entity +@Table(name="TCUSTPERSON") +public class Tcustperson implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private long personcode; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tcustperson") + private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tcustperson") + private Set tcustpersondetails; + + //bi-directional many-to-one association to Tsafeuser + @OneToMany(mappedBy="tcustperson") + private Set tsafeusers; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tcustperson") + private Set tcustpersonphones; + + public Tcustperson() { + } + + public long getPersoncode() { + return this.personcode; + } + + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + + public Set getTcustpersonaddresses() { + return this.tcustpersonaddresses; + } + + public void setTcustpersonaddresses(Set tcustpersonaddresses) { + this.tcustpersonaddresses = tcustpersonaddresses; + } + + public Tcustpersonaddress addTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().add(tcustpersonaddress); + tcustpersonaddress.setTcustperson(this); + + return tcustpersonaddress; + } + + public Tcustpersonaddress removeTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().remove(tcustpersonaddress); + tcustpersonaddress.setTcustperson(null); + + return tcustpersonaddress; + } + + public Set getTcustpersondetails() { + return this.tcustpersondetails; + } + + public void setTcustpersondetails(Set tcustpersondetails) { + this.tcustpersondetails = tcustpersondetails; + } + + public Tcustpersondetail addTcustpersondetail(Tcustpersondetail tcustpersondetail) { + getTcustpersondetails().add(tcustpersondetail); + tcustpersondetail.setTcustperson(this); + + return tcustpersondetail; + } + + public Tcustpersondetail removeTcustpersondetail(Tcustpersondetail tcustpersondetail) { + getTcustpersondetails().remove(tcustpersondetail); + tcustpersondetail.setTcustperson(null); + + return tcustpersondetail; + } + + public Set getTsafeusers() { + return this.tsafeusers; + } + + public void setTsafeusers(Set tsafeusers) { + this.tsafeusers = tsafeusers; + } + + public Tsafeuser addTsafeuser(Tsafeuser tsafeuser) { + getTsafeusers().add(tsafeuser); + tsafeuser.setTcustperson(this); + + return tsafeuser; + } + + public Tsafeuser removeTsafeuser(Tsafeuser tsafeuser) { + getTsafeusers().remove(tsafeuser); + tsafeuser.setTcustperson(null); + + return tsafeuser; + } + + public Set getTcustpersonphones() { + return this.tcustpersonphones; + } + + public void setTcustpersonphones(Set tcustpersonphones) { + this.tcustpersonphones = tcustpersonphones; + } + + public Tcustpersonphone addTcustpersonphone(Tcustpersonphone tcustpersonphone) { + getTcustpersonphones().add(tcustpersonphone); + tcustpersonphone.setTcustperson(this); + + return tcustpersonphone; + } + + public Tcustpersonphone removeTcustpersonphone(Tcustpersonphone tcustpersonphone) { + getTcustpersonphones().remove(tcustpersonphone); + tcustpersonphone.setTcustperson(null); + + return tcustpersonphone; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonaddress.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonaddress.java.svn-base new file mode 100644 index 0000000..3910088 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonaddress.java.svn-base @@ -0,0 +1,309 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONADDRESS database table. + * + */ +@Entity +public class Tcustpersonaddress implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersonaddressPK id; + + private String address; + + private String addresstypecatalog; + + private String addresstypecatalogcode; + + private Timestamp datefrom; + + private String department; + + private String principal; + + @Version + private Long recordversion; + + private String remark; + + private String street; + + private String streetnumber; + + private String urbanization; + + @Column + private String ingressusercode; + + @Column + private String modifyusercode; + + @Column + private String cantonCode; + + @Column + private String countryCode; + + @Column + private String provinceCode; + + @Column + private String cityCode; + + @Column + private String parroquiaCode; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser2; + + //bi-directional many-to-one association to Tgenecity + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE", updatable=false, insertable=false), + @JoinColumn(name="CITYCODE", referencedColumnName="CITYCODE", updatable=false, insertable=false), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE", updatable=false, insertable=false), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE", updatable=false, insertable=false) + }) + private Tgenecity tgenecity; + + //bi-directional many-to-one association to Tgeneparroquia + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE", updatable=false, insertable=false), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE", updatable=false, insertable=false), + @JoinColumn(name="PARROQUIACODE", referencedColumnName="PARROQUIACODE", updatable=false, insertable=false), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE", updatable=false, insertable=false) + }) + private Tgeneparroquia tgeneparroquia; + + public Tcustpersonaddress() { + } + + public TcustpersonaddressPK getId() { + return this.id; + } + + public void setId(TcustpersonaddressPK id) { + this.id = id; + } + + public String getAddress() { + return this.address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getAddresstypecatalog() { + return this.addresstypecatalog; + } + + public void setAddresstypecatalog(String addresstypecatalog) { + this.addresstypecatalog = addresstypecatalog; + } + + public String getAddresstypecatalogcode() { + return this.addresstypecatalogcode; + } + + public void setAddresstypecatalogcode(String addresstypecatalogcode) { + this.addresstypecatalogcode = addresstypecatalogcode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getDepartment() { + return this.department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getPrincipal() { + return this.principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public String getRemark() { + return this.remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getStreet() { + return this.street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getStreetnumber() { + return this.streetnumber; + } + + public void setStreetnumber(String streetnumber) { + this.streetnumber = streetnumber; + } + + public String getUrbanization() { + return this.urbanization; + } + + public void setUrbanization(String urbanization) { + this.urbanization = urbanization; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + +// public Tgenecity getTgenecity() { +// return this.tgenecity; +// } +// +// public void setTgenecity(Tgenecity tgenecity) { +// this.tgenecity = tgenecity; +// } + + public Tgeneparroquia getTgeneparroquia() { + return this.tgeneparroquia; + } + + public void setTgeneparroquia(Tgeneparroquia tgeneparroquia) { + this.tgeneparroquia = tgeneparroquia; + } + + public String getIngressusercode() { + return ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getModifyusercode() { + return modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + + public String getCantonCode() { + return cantonCode; + } + + public void setCantonCode(String cantonCode) { + this.cantonCode = cantonCode; + } + + public String getCountryCode() { + return countryCode; + } + + public void setCountryCode(String countryCode) { + this.countryCode = countryCode; + } + + public String getProvinceCode() { + return provinceCode; + } + + public void setProvinceCode(String provinceCode) { + this.provinceCode = provinceCode; + } + + public String getCityCode() { + return cityCode; + } + + public void setCityCode(String cityCode) { + this.cityCode = cityCode; + } + + public String getParroquiaCode() { + return parroquiaCode; + } + + public void setParroquiaCode(String parroquiaCode) { + this.parroquiaCode = parroquiaCode; + } + + public Tgenecity getTgenecity() { + return tgenecity; + } + + public void setTgenecity(Tgenecity tgenecity) { + this.tgenecity = tgenecity; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonaddressPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonaddressPK.java.svn-base new file mode 100644 index 0000000..86bdc7f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonaddressPK.java.svn-base @@ -0,0 +1,79 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPERSONADDRESS database table. + * + */ +@Embeddable +public class TcustpersonaddressPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + private long addressnumber; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpersonaddressPK() { + } + + public TcustpersonaddressPK(long personcode, long addressnumber, Date dateto) { + super(); + this.personcode = personcode; + this.addressnumber = addressnumber; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public long getAddressnumber() { + return this.addressnumber; + } + public void setAddressnumber(long addressnumber) { + this.addressnumber = addressnumber; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersonaddressPK)) { + return false; + } + TcustpersonaddressPK castOther = (TcustpersonaddressPK)other; + return + (this.personcode == castOther.personcode) + && (this.addressnumber == castOther.addressnumber) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + ((int) (this.addressnumber ^ (this.addressnumber >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersondetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersondetail.java.svn-base new file mode 100644 index 0000000..3b05bd2 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersondetail.java.svn-base @@ -0,0 +1,408 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONDETAIL database table. + * + */ +@Entity +public class Tcustpersondetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersondetailPK id; + + @Column + private String activitycode; + + private Long branchcode; + + private String clienttypecatalog; + + private String clienttypecatalogcode; + + private Long companycode; + + @Temporal(TemporalType.DATE) + private Date dateexpidentification; + + private Timestamp datefrom; + + private String economicsectorcatalog; + + private String economicsectorcatalogcode; + + private String identification; + + private String identificationcatalog; + + private String identificationcatalogcode; + + private String innerscore; + + private String ismigrated; + + private String languagecode; + + private String name; + + private String nickname; + + private Long officecode; + + private String parthnernumber; + + private String persontypecatalog; + + private String persontypecatalogcode; + + @Version + private Long recordversion; + + private String ingressuser; + + private String modifyuser; + + @Temporal(TemporalType.DATE) + private Date registerdate; + + private String sbsemployee; + + private String sbsusercode; + + private String taxexempt; + + private String legalrepresent; + + private String legalrepresentidentification; + + @Column(name="ECONIMICACT", nullable=true) + + private String econimicact; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="ACTIVITYCODE", insertable=false, updatable=false) + private Tgeneactivity tgeneactivity; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSER", insertable=false, updatable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSER", insertable=false, updatable=false) + private Tsafeuser tsafeuser2; + + public Tcustpersondetail() { + } + + public TcustpersondetailPK getId() { + return this.id; + } + + public void setId(TcustpersondetailPK id) { + this.id = id; + } + + public Long getBranchcode() { + return this.branchcode; + } + + public void setBranchcode(Long branchcode) { + this.branchcode = branchcode; + } + + public String getClienttypecatalog() { + return this.clienttypecatalog; + } + + public void setClienttypecatalog(String clienttypecatalog) { + this.clienttypecatalog = clienttypecatalog; + } + + public String getClienttypecatalogcode() { + return this.clienttypecatalogcode; + } + + public void setClienttypecatalogcode(String clienttypecatalogcode) { + this.clienttypecatalogcode = clienttypecatalogcode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Date getDateexpidentification() { + return this.dateexpidentification; + } + + public void setDateexpidentification(Date dateexpidentification) { + this.dateexpidentification = dateexpidentification; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getEconomicsectorcatalog() { + return this.economicsectorcatalog; + } + + public void setEconomicsectorcatalog(String economicsectorcatalog) { + this.economicsectorcatalog = economicsectorcatalog; + } + + public String getEconomicsectorcatalogcode() { + return this.economicsectorcatalogcode; + } + + public void setEconomicsectorcatalogcode(String economicsectorcatalogcode) { + this.economicsectorcatalogcode = economicsectorcatalogcode; + } + + public String getIdentification() { + return this.identification; + } + + public void setIdentification(String identification) { + this.identification = identification; + } + + public String getIdentificationcatalog() { + return this.identificationcatalog; + } + + public void setIdentificationcatalog(String identificationcatalog) { + this.identificationcatalog = identificationcatalog; + } + + public String getIdentificationcatalogcode() { + return this.identificationcatalogcode; + } + + public void setIdentificationcatalogcode(String identificationcatalogcode) { + this.identificationcatalogcode = identificationcatalogcode; + } + + public String getInnerscore() { + return this.innerscore; + } + + public void setInnerscore(String innerscore) { + this.innerscore = innerscore; + } + + public String getIsmigrated() { + return this.ismigrated; + } + + public void setIsmigrated(String ismigrated) { + this.ismigrated = ismigrated; + } + + public String getLanguagecode() { + return this.languagecode; + } + + public void setLanguagecode(String languagecode) { + this.languagecode = languagecode; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNickname() { + return this.nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Long getOfficecode() { + return this.officecode; + } + + public void setOfficecode(Long officecode) { + this.officecode = officecode; + } + + public String getParthnernumber() { + return this.parthnernumber; + } + + public void setParthnernumber(String parthnernumber) { + this.parthnernumber = parthnernumber; + } + + public String getPersontypecatalog() { + return this.persontypecatalog; + } + + public void setPersontypecatalog(String persontypecatalog) { + this.persontypecatalog = persontypecatalog; + } + + public String getPersontypecatalogcode() { + return this.persontypecatalogcode; + } + + public void setPersontypecatalogcode(String persontypecatalogcode) { + this.persontypecatalogcode = persontypecatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Date getRegisterdate() { + return this.registerdate; + } + + public void setRegisterdate(Date registerdate) { + this.registerdate = registerdate; + } + + public String getSbsemployee() { + return this.sbsemployee; + } + + public void setSbsemployee(String sbsemployee) { + this.sbsemployee = sbsemployee; + } + + public String getSbsusercode() { + return this.sbsusercode; + } + + public void setSbsusercode(String sbsusercode) { + this.sbsusercode = sbsusercode; + } + + public String getTaxexempt() { + return this.taxexempt; + } + + public void setTaxexempt(String taxexempt) { + this.taxexempt = taxexempt; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + + public Tgeneactivity getTgeneactivity() { + return tgeneactivity; + } + + public void setTgeneactivity(Tgeneactivity tgeneactivity) { + this.tgeneactivity = tgeneactivity; + } + + public String getActivitycode() { + return activitycode; + } + + public void setActivitycode(String activitycode) { + this.activitycode = activitycode; + } + + public String getIngressuser() { + return ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getLegalrepresent() { + return legalrepresent; + } + + public void setLegalrepresent(String legalrepresent) { + this.legalrepresent = legalrepresent; + } + + public String getLegalrepresentidentification() { + return legalrepresentidentification; + } + + public void setLegalrepresentidentification(String legalrepresentidentification) { + this.legalrepresentidentification = legalrepresentidentification; + } + + public String getEconimicact() { + return econimicact; + } + + public void setEconimicact(String econimicact) { + this.econimicact = econimicact; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersondetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersondetailPK.java.svn-base new file mode 100644 index 0000000..29afdd4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersondetailPK.java.svn-base @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPERSONDETAIL database table. + * + */ +@Embeddable +public class TcustpersondetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpersondetailPK() { + } + + public TcustpersondetailPK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersondetailPK)) { + return false; + } + TcustpersondetailPK castOther = (TcustpersondetailPK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonphone.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonphone.java.svn-base new file mode 100644 index 0000000..a031eab --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tcustpersonphone.java.svn-base @@ -0,0 +1,176 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONPHONE database table. + * + */ +@Entity +public class Tcustpersonphone implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersonphonePK id; + + private Long addressnumber; + + private Long areacode; + + private Timestamp datefrom; + + private Long extension; + + private String phonenumber; + + private String phonetypecatalog; + + private String phonetypecatalogcode; + + private String ingressusercode; + + private String modifyusercode; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser2; + + public Tcustpersonphone() { + } + + public TcustpersonphonePK getId() { + return this.id; + } + + public void setId(TcustpersonphonePK id) { + this.id = id; + } + + public Long getAddressnumber() { + return this.addressnumber; + } + + public void setAddressnumber(Long addressnumber) { + this.addressnumber = addressnumber; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public Long getExtension() { + return this.extension; + } + + public void setExtension(Long extension) { + this.extension = extension; + } + + public String getPhonenumber() { + return this.phonenumber; + } + + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } + + public String getPhonetypecatalog() { + return this.phonetypecatalog; + } + + public void setPhonetypecatalog(String phonetypecatalog) { + this.phonetypecatalog = phonetypecatalog; + } + + public String getPhonetypecatalogcode() { + return this.phonetypecatalogcode; + } + + public void setPhonetypecatalogcode(String phonetypecatalogcode) { + this.phonetypecatalogcode = phonetypecatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + + public String getIngressusercode() { + return ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getModifyusercode() { + return modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonphonePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonphonePK.java.svn-base new file mode 100644 index 0000000..e9080bf --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TcustpersonphonePK.java.svn-base @@ -0,0 +1,80 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * The primary key class for the TCUSTPERSONPHONE database table. + * + */ +@Embeddable +public class TcustpersonphonePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + private long phonesequence; + + public TcustpersonphonePK() { + } + + public TcustpersonphonePK(long personcode, Date dateto, long phonesequence) { + super(); + this.personcode = personcode; + this.dateto = dateto; + this.phonesequence = phonesequence; + } + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + public long getPhonesequence() { + return this.phonesequence; + } + public void setPhonesequence(long phonesequence) { + this.phonesequence = phonesequence; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersonphonePK)) { + return false; + } + TcustpersonphonePK castOther = (TcustpersonphonePK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto) + && (this.phonesequence == castOther.phonesequence); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + hash = hash * prime + ((int) (this.phonesequence ^ (this.phonesequence >>> 32))); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneactivity.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneactivity.java.svn-base new file mode 100644 index 0000000..597fbf3 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneactivity.java.svn-base @@ -0,0 +1,91 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; + + +/** + * The persistent class for the TGENEACTIVITY database table. + * + */ +@Entity +@NamedQuery(name="Tgeneactivity.findAll", query="SELECT t FROM Tgeneactivity t") +public class Tgeneactivity implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String activitycode; + + private String ciiucode; + + private String description; + + private Timestamp modifydate; + + private String modifyuser; + + private String segmenttypecatalog; + + private String segmenttypecatalogcode; + + public Tgeneactivity() { + } + + public String getActivitycode() { + return this.activitycode; + } + + public void setActivitycode(String activitycode) { + this.activitycode = activitycode; + } + + public String getCiiucode() { + return this.ciiucode; + } + + public void setCiiucode(String ciiucode) { + this.ciiucode = ciiucode; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getModifydate() { + return this.modifydate; + } + + public void setModifydate(Timestamp modifydate) { + this.modifydate = modifydate; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getSegmenttypecatalog() { + return this.segmenttypecatalog; + } + + public void setSegmenttypecatalog(String segmenttypecatalog) { + this.segmenttypecatalog = segmenttypecatalog; + } + + public String getSegmenttypecatalogcode() { + return this.segmenttypecatalogcode; + } + + public void setSegmenttypecatalogcode(String segmenttypecatalogcode) { + this.segmenttypecatalogcode = segmenttypecatalogcode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecanton.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecanton.java.svn-base new file mode 100644 index 0000000..1eab2fd --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecanton.java.svn-base @@ -0,0 +1,127 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECANTON database table. + * + */ +@Entity +public class Tgenecanton implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecantonPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgeneprovince + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgeneprovince tgeneprovince; + + //bi-directional many-to-one association to Tgenecity + @OneToMany(mappedBy="tgenecanton") + private Set tgenecities; + + //bi-directional many-to-one association to Tgeneparroquia + @OneToMany(mappedBy="tgenecanton") + private Set tgeneparroquias; + + public Tgenecanton() { + } + + public TgenecantonPK getId() { + return this.id; + } + + public void setId(TgenecantonPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tgeneprovince getTgeneprovince() { + return this.tgeneprovince; + } + + public void setTgeneprovince(Tgeneprovince tgeneprovince) { + this.tgeneprovince = tgeneprovince; + } + + public Set getTgenecities() { + return this.tgenecities; + } + + public void setTgenecities(Set tgenecities) { + this.tgenecities = tgenecities; + } + + public Tgenecity addTgenecity(Tgenecity tgenecity) { + getTgenecities().add(tgenecity); + tgenecity.setTgenecanton(this); + + return tgenecity; + } + + public Tgenecity removeTgenecity(Tgenecity tgenecity) { + getTgenecities().remove(tgenecity); + tgenecity.setTgenecanton(null); + + return tgenecity; + } + + public Set getTgeneparroquias() { + return this.tgeneparroquias; + } + + public void setTgeneparroquias(Set tgeneparroquias) { + this.tgeneparroquias = tgeneparroquias; + } + + public Tgeneparroquia addTgeneparroquia(Tgeneparroquia tgeneparroquia) { + getTgeneparroquias().add(tgeneparroquia); + tgeneparroquia.setTgenecanton(this); + + return tgeneparroquia; + } + + public Tgeneparroquia removeTgeneparroquia(Tgeneparroquia tgeneparroquia) { + getTgeneparroquias().remove(tgeneparroquia); + tgeneparroquia.setTgenecanton(null); + + return tgeneparroquia; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecantonPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecantonPK.java.svn-base new file mode 100644 index 0000000..fa16452 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecantonPK.java.svn-base @@ -0,0 +1,67 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECANTON database table. + * + */ +@Embeddable +public class TgenecantonPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + private String cantoncode; + + public TgenecantonPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecantonPK)) { + return false; + } + TgenecantonPK castOther = (TgenecantonPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalog.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalog.java.svn-base new file mode 100644 index 0000000..0cbae6f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalog.java.svn-base @@ -0,0 +1,79 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; + + +/** + * The persistent class for the TGENECATALOG database table. + * + */ +@Entity +public class Tgenecatalog implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String catalogcode; + + private String description; + + private Long recordversion; + + //bi-directional many-to-one association to Tgenecatalogdetail + @OneToMany(mappedBy="tgenecatalog") + private Set tgenecatalogdetails; + + public Tgenecatalog() { + } + + public String getCatalogcode() { + return this.catalogcode; + } + + public void setCatalogcode(String catalogcode) { + this.catalogcode = catalogcode; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTgenecatalogdetails() { + return this.tgenecatalogdetails; + } + + public void setTgenecatalogdetails(Set tgenecatalogdetails) { + this.tgenecatalogdetails = tgenecatalogdetails; + } + + public Tgenecatalogdetail addTgenecatalogdetail(Tgenecatalogdetail tgenecatalogdetail) { + getTgenecatalogdetails().add(tgenecatalogdetail); + tgenecatalogdetail.setTgenecatalog(this); + + return tgenecatalogdetail; + } + + public Tgenecatalogdetail removeTgenecatalogdetail(Tgenecatalogdetail tgenecatalogdetail) { + getTgenecatalogdetails().remove(tgenecatalogdetail); + tgenecatalogdetail.setTgenecatalog(null); + + return tgenecatalogdetail; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalogdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalogdetail.java.svn-base new file mode 100644 index 0000000..99aa6cb --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecatalogdetail.java.svn-base @@ -0,0 +1,77 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + + +/** + * The persistent class for the TGENECATALOGDETAIL database table. + * + */ +@Entity +public class Tgenecatalogdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecatalogdetailPK id; + + private String description; + + private String legalcode; + + private Long recordversion; + + //bi-directional many-to-one association to Tgenecatalog + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="CATALOGCODE") + private Tgenecatalog tgenecatalog; + + public Tgenecatalogdetail() { + } + + public TgenecatalogdetailPK getId() { + return this.id; + } + + public void setId(TgenecatalogdetailPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getLegalcode() { + return this.legalcode; + } + + public void setLegalcode(String legalcode) { + this.legalcode = legalcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tgenecatalog getTgenecatalog() { + return this.tgenecatalog; + } + + public void setTgenecatalog(Tgenecatalog tgenecatalog) { + this.tgenecatalog = tgenecatalog; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecatalogdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecatalogdetailPK.java.svn-base new file mode 100644 index 0000000..985f17c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecatalogdetailPK.java.svn-base @@ -0,0 +1,57 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECATALOGDETAIL database table. + * + */ +@Embeddable +public class TgenecatalogdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(name="\"CATALOG\"") + private String catalog; + + @Column(insertable=false, updatable=false) + private String catalogcode; + + public TgenecatalogdetailPK() { + } + public String getCatalog() { + return this.catalog; + } + public void setCatalog(String catalog) { + this.catalog = catalog; + } + public String getCatalogcode() { + return this.catalogcode; + } + public void setCatalogcode(String catalogcode) { + this.catalogcode = catalogcode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecatalogdetailPK)) { + return false; + } + TgenecatalogdetailPK castOther = (TgenecatalogdetailPK)other; + return + this.catalog.equals(castOther.catalog) + && this.catalogcode.equals(castOther.catalogcode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.catalog.hashCode(); + hash = hash * prime + this.catalogcode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecity.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecity.java.svn-base new file mode 100644 index 0000000..25d159b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecity.java.svn-base @@ -0,0 +1,86 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECITY database table. + * + */ +@Entity +public class Tgenecity implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecityPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustpersonaddress +// @OneToMany(mappedBy="tgenecity") +// private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tgenecanton + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE"), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgenecanton tgenecanton; + + public Tgenecity() { + } + + public TgenecityPK getId() { + return this.id; + } + + public void setId(TgenecityPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + +// public Set getTcustpersonaddresses() { +// return this.tcustpersonaddresses; +// } +// +// public void setTcustpersonaddresses(Set tcustpersonaddresses) { +// this.tcustpersonaddresses = tcustpersonaddresses; +// } + + public Tgenecanton getTgenecanton() { + return this.tgenecanton; + } + + public void setTgenecanton(Tgenecanton tgenecanton) { + this.tgenecanton = tgenecanton; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecityPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecityPK.java.svn-base new file mode 100644 index 0000000..8835571 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenecityPK.java.svn-base @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECITY database table. + * + */ +@Embeddable +public class TgenecityPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + @Column(insertable=false, updatable=false) + private String cantoncode; + + private String citycode; + + public TgenecityPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + public String getCitycode() { + return this.citycode; + } + public void setCitycode(String citycode) { + this.citycode = citycode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecityPK)) { + return false; + } + TgenecityPK castOther = (TgenecityPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode) + && this.citycode.equals(castOther.citycode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + hash = hash * prime + this.citycode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecountry.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecountry.java.svn-base new file mode 100644 index 0000000..54dd1c4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenecountry.java.svn-base @@ -0,0 +1,111 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECOUNTRY database table. + * + */ +@Entity +public class Tgenecountry implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String countrycode; + + private Long areacode; + + private String citizenship; + + private String description; + + private String initials; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgeneprovince + @OneToMany(mappedBy="tgenecountry") + private Set tgeneprovinces; + + public Tgenecountry() { + } + + public String getCountrycode() { + return this.countrycode; + } + + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public String getCitizenship() { + return this.citizenship; + } + + public void setCitizenship(String citizenship) { + this.citizenship = citizenship; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getInitials() { + return this.initials; + } + + public void setInitials(String initials) { + this.initials = initials; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTgeneprovinces() { + return this.tgeneprovinces; + } + + public void setTgeneprovinces(Set tgeneprovinces) { + this.tgeneprovinces = tgeneprovinces; + } + + public Tgeneprovince addTgeneprovince(Tgeneprovince tgeneprovince) { + getTgeneprovinces().add(tgeneprovince); + tgeneprovince.setTgenecountry(this); + + return tgeneprovince; + } + + public Tgeneprovince removeTgeneprovince(Tgeneprovince tgeneprovince) { + getTgeneprovinces().remove(tgeneprovince); + tgeneprovince.setTgenecountry(null); + + return tgeneprovince; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefile.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefile.java.svn-base new file mode 100644 index 0000000..132661b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefile.java.svn-base @@ -0,0 +1,109 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.util.Set; + + +/** + * The persistent class for the TGENEFILES database table. + * + */ +@Entity +@Table(name="TGENEFILES") +public class Tgenefile implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private long code; + + //bi-directional many-to-one association to Tcustcompany + @OneToMany(mappedBy="tgenefile") + private Set tcustcompanies; + + //bi-directional many-to-one association to Tgenefilesdetail + @OneToMany(mappedBy="tgenefile1") + private Set tgenefilesdetails1; + + //bi-directional many-to-one association to Tgenefilesdetail + @OneToMany(mappedBy="tgenefile2") + private Set tgenefilesdetails2; + + public Tgenefile() { + } + + public long getCode() { + return this.code; + } + + public void setCode(long code) { + this.code = code; + } + + public Set getTcustcompanies() { + return this.tcustcompanies; + } + + public void setTcustcompanies(Set tcustcompanies) { + this.tcustcompanies = tcustcompanies; + } + + public Tcustcompany addTcustcompany(Tcustcompany tcustcompany) { + getTcustcompanies().add(tcustcompany); + tcustcompany.setTgenefile(this); + + return tcustcompany; + } + + public Tcustcompany removeTcustcompany(Tcustcompany tcustcompany) { + getTcustcompanies().remove(tcustcompany); + tcustcompany.setTgenefile(null); + + return tcustcompany; + } + + public Set getTgenefilesdetails1() { + return this.tgenefilesdetails1; + } + + public void setTgenefilesdetails1(Set tgenefilesdetails1) { + this.tgenefilesdetails1 = tgenefilesdetails1; + } + + public Tgenefilesdetail addTgenefilesdetails1(Tgenefilesdetail tgenefilesdetails1) { + getTgenefilesdetails1().add(tgenefilesdetails1); + tgenefilesdetails1.setTgenefile1(this); + + return tgenefilesdetails1; + } + + public Tgenefilesdetail removeTgenefilesdetails1(Tgenefilesdetail tgenefilesdetails1) { + getTgenefilesdetails1().remove(tgenefilesdetails1); + tgenefilesdetails1.setTgenefile1(null); + + return tgenefilesdetails1; + } + + public Set getTgenefilesdetails2() { + return this.tgenefilesdetails2; + } + + public void setTgenefilesdetails2(Set tgenefilesdetails2) { + this.tgenefilesdetails2 = tgenefilesdetails2; + } + + public Tgenefilesdetail addTgenefilesdetails2(Tgenefilesdetail tgenefilesdetails2) { + getTgenefilesdetails2().add(tgenefilesdetails2); + tgenefilesdetails2.setTgenefile2(this); + + return tgenefilesdetails2; + } + + public Tgenefilesdetail removeTgenefilesdetails2(Tgenefilesdetail tgenefilesdetails2) { + getTgenefilesdetails2().remove(tgenefilesdetails2); + tgenefilesdetails2.setTgenefile2(null); + + return tgenefilesdetails2; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefilesdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefilesdetail.java.svn-base new file mode 100644 index 0000000..db0d28d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenefilesdetail.java.svn-base @@ -0,0 +1,177 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + + +/** + * The persistent class for the TGENEFILESDETAIL database table. + * + */ +@Entity +public class Tgenefilesdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenefilesdetailPK id; + + @Temporal(TemporalType.DATE) + private Date capturedate; + + private String contenttype; + + private Timestamp datefrom; + + private String description; + + private String extension; + + @Lob + private byte[] image; + + private Long imagesize; + + private String ingressuser; + + private String modifyuser; + + private String name; + + private Integer origincode; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="CODE", insertable=false, updatable=false) + private Tgenefile tgenefile1; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="ORIGINCODE", insertable=false, updatable=false) + private Tgenefile tgenefile2; + + public Tgenefilesdetail() { + } + + public TgenefilesdetailPK getId() { + return this.id; + } + + public void setId(TgenefilesdetailPK id) { + this.id = id; + } + + public Date getCapturedate() { + return this.capturedate; + } + + public void setCapturedate(Date capturedate) { + this.capturedate = capturedate; + } + + public String getContenttype() { + return this.contenttype; + } + + public void setContenttype(String contenttype) { + this.contenttype = contenttype; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExtension() { + return this.extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public byte[] getImage() { + return this.image; + } + + public void setImage(byte[] image) { + this.image = image; + } + + public Long getImagesize() { + return this.imagesize; + } + + public void setImagesize(Long imagesize) { + this.imagesize = imagesize; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public Tgenefile getTgenefile1() { + return this.tgenefile1; + } + + public void setTgenefile1(Tgenefile tgenefile1) { + this.tgenefile1 = tgenefile1; + } + + public Tgenefile getTgenefile2() { + return this.tgenefile2; + } + + public void setTgenefile2(Tgenefile tgenefile2) { + this.tgenefile2 = tgenefile2; + } + + public Integer getOrigincode() { + return origincode; + } + + public void setOrigincode(Integer origincode) { + this.origincode = origincode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenefilesdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenefilesdetailPK.java.svn-base new file mode 100644 index 0000000..6504ee7 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgenefilesdetailPK.java.svn-base @@ -0,0 +1,66 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TGENEFILESDETAIL database table. + * + */ +@Embeddable +public class TgenefilesdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long code; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TgenefilesdetailPK() { + } + + public TgenefilesdetailPK(long code, Date dateto) { + super(); + this.code = code; + this.dateto = dateto; + } + + public long getCode() { + return this.code; + } + public void setCode(long code) { + this.code = code; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenefilesdetailPK)) { + return false; + } + TgenefilesdetailPK castOther = (TgenefilesdetailPK)other; + return + (this.code == castOther.code) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.code ^ (this.code >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneparroquia.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneparroquia.java.svn-base new file mode 100644 index 0000000..d2ca502 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneparroquia.java.svn-base @@ -0,0 +1,102 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENEPARROQUIA database table. + * + */ +@Entity +public class Tgeneparroquia implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgeneparroquiaPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tgeneparroquia") + private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tgenecanton + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE"), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgenecanton tgenecanton; + + public Tgeneparroquia() { + } + + public TgeneparroquiaPK getId() { + return this.id; + } + + public void setId(TgeneparroquiaPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTcustpersonaddresses() { + return this.tcustpersonaddresses; + } + + public void setTcustpersonaddresses(Set tcustpersonaddresses) { + this.tcustpersonaddresses = tcustpersonaddresses; + } + + public Tcustpersonaddress addTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().add(tcustpersonaddress); + tcustpersonaddress.setTgeneparroquia(this); + + return tcustpersonaddress; + } + + public Tcustpersonaddress removeTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().remove(tcustpersonaddress); + tcustpersonaddress.setTgeneparroquia(null); + + return tcustpersonaddress; + } + + public Tgenecanton getTgenecanton() { + return this.tgenecanton; + } + + public void setTgenecanton(Tgenecanton tgenecanton) { + this.tgenecanton = tgenecanton; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneparroquiaPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneparroquiaPK.java.svn-base new file mode 100644 index 0000000..7c46244 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneparroquiaPK.java.svn-base @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENEPARROQUIA database table. + * + */ +@Embeddable +public class TgeneparroquiaPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + @Column(insertable=false, updatable=false) + private String cantoncode; + + private String parroquiacode; + + public TgeneparroquiaPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + public String getParroquiacode() { + return this.parroquiacode; + } + public void setParroquiacode(String parroquiacode) { + this.parroquiacode = parroquiacode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgeneparroquiaPK)) { + return false; + } + TgeneparroquiaPK castOther = (TgeneparroquiaPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode) + && this.parroquiacode.equals(castOther.parroquiacode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + hash = hash * prime + this.parroquiacode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneprovince.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneprovince.java.svn-base new file mode 100644 index 0000000..fe296d2 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgeneprovince.java.svn-base @@ -0,0 +1,97 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENEPROVINCE database table. + * + */ +@Entity +public class Tgeneprovince implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgeneprovincePK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgenecanton + @OneToMany(mappedBy="tgeneprovince") + private Set tgenecantons; + + //bi-directional many-to-one association to Tgenecountry + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="COUNTRYCODE") + private Tgenecountry tgenecountry; + + public Tgeneprovince() { + } + + public TgeneprovincePK getId() { + return this.id; + } + + public void setId(TgeneprovincePK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTgenecantons() { + return this.tgenecantons; + } + + public void setTgenecantons(Set tgenecantons) { + this.tgenecantons = tgenecantons; + } + + public Tgenecanton addTgenecanton(Tgenecanton tgenecanton) { + getTgenecantons().add(tgenecanton); + tgenecanton.setTgeneprovince(this); + + return tgenecanton; + } + + public Tgenecanton removeTgenecanton(Tgenecanton tgenecanton) { + getTgenecantons().remove(tgenecanton); + tgenecanton.setTgeneprovince(null); + + return tgenecanton; + } + + public Tgenecountry getTgenecountry() { + return this.tgenecountry; + } + + public void setTgenecountry(Tgenecountry tgenecountry) { + this.tgenecountry = tgenecountry; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneprovincePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneprovincePK.java.svn-base new file mode 100644 index 0000000..5df7d95 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TgeneprovincePK.java.svn-base @@ -0,0 +1,56 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENEPROVINCE database table. + * + */ +@Embeddable +public class TgeneprovincePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + private String provincecode; + + public TgeneprovincePK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgeneprovincePK)) { + return false; + } + TgeneprovincePK castOther = (TgeneprovincePK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenesequence.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenesequence.java.svn-base new file mode 100644 index 0000000..02660ab --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tgenesequence.java.svn-base @@ -0,0 +1,85 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + + +/** + * The persistent class for the TGENESEQUENCES database table. + * + */ +@Entity +@Table(name="TGENESEQUENCES") +@NamedQuery(name="Tgenesequence.findAll", query="SELECT t FROM Tgenesequence t") +public class Tgenesequence implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String code; + + private Long currentvalue; + + private String cyclic; + + private Long increase; + + private Long initialvalue; + + private Long lastvalue; + + public Tgenesequence() { + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public Long getCurrentvalue() { + return this.currentvalue; + } + + public void setCurrentvalue(Long currentvalue) { + this.currentvalue = currentvalue; + } + + public String getCyclic() { + return this.cyclic; + } + + public void setCyclic(String cyclic) { + this.cyclic = cyclic; + } + + public Long getIncrease() { + return this.increase; + } + + public void setIncrease(Long increase) { + this.increase = increase; + } + + public Long getInitialvalue() { + return this.initialvalue; + } + + public void setInitialvalue(Long initialvalue) { + this.initialvalue = initialvalue; + } + + public Long getLastvalue() { + return this.lastvalue; + } + + public void setLastvalue(Long lastvalue) { + this.lastvalue = lastvalue; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuser.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuser.java.svn-base new file mode 100644 index 0000000..fcceb2a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuser.java.svn-base @@ -0,0 +1,287 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; + + +/** + * The persistent class for the TSAFEUSER database table. + * + */ +@Entity +public class Tsafeuser implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String usercode; + + private Long personCode; + + private Long companycode; + + private Long internalcode; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersonaddresses1; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersonaddresses2; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersondetails1; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersondetails2; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", insertable=false, updatable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuserdetail + @OneToMany(mappedBy="tsafeuser") + private Set tsafeuserdetails; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersonphones1; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersonphones2; + + //bi-directional many-to-one association to Tsafeuserprofile + @OneToMany(mappedBy="tsafeuser") + private Set tsafeuserprofiles; + + public Tsafeuser() { + } + + public String getUsercode() { + return this.usercode; + } + + public void setUsercode(String usercode) { + this.usercode = usercode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Long getInternalcode() { + return this.internalcode; + } + + public void setInternalcode(Long internalcode) { + this.internalcode = internalcode; + } + + public Set getTcustpersonaddresses1() { + return this.tcustpersonaddresses1; + } + + public void setTcustpersonaddresses1(Set tcustpersonaddresses1) { + this.tcustpersonaddresses1 = tcustpersonaddresses1; + } + + public Tcustpersonaddress addTcustpersonaddresses1(Tcustpersonaddress tcustpersonaddresses1) { + getTcustpersonaddresses1().add(tcustpersonaddresses1); + tcustpersonaddresses1.setTsafeuser1(this); + + return tcustpersonaddresses1; + } + + public Tcustpersonaddress removeTcustpersonaddresses1(Tcustpersonaddress tcustpersonaddresses1) { + getTcustpersonaddresses1().remove(tcustpersonaddresses1); + tcustpersonaddresses1.setTsafeuser1(null); + + return tcustpersonaddresses1; + } + + public Set getTcustpersonaddresses2() { + return this.tcustpersonaddresses2; + } + + public void setTcustpersonaddresses2(Set tcustpersonaddresses2) { + this.tcustpersonaddresses2 = tcustpersonaddresses2; + } + + public Tcustpersonaddress addTcustpersonaddresses2(Tcustpersonaddress tcustpersonaddresses2) { + getTcustpersonaddresses2().add(tcustpersonaddresses2); + tcustpersonaddresses2.setTsafeuser2(this); + + return tcustpersonaddresses2; + } + + public Tcustpersonaddress removeTcustpersonaddresses2(Tcustpersonaddress tcustpersonaddresses2) { + getTcustpersonaddresses2().remove(tcustpersonaddresses2); + tcustpersonaddresses2.setTsafeuser2(null); + + return tcustpersonaddresses2; + } + + public Set getTcustpersondetails1() { + return this.tcustpersondetails1; + } + + public void setTcustpersondetails1(Set tcustpersondetails1) { + this.tcustpersondetails1 = tcustpersondetails1; + } + + public Tcustpersondetail addTcustpersondetails1(Tcustpersondetail tcustpersondetails1) { + getTcustpersondetails1().add(tcustpersondetails1); + tcustpersondetails1.setTsafeuser1(this); + + return tcustpersondetails1; + } + + public Tcustpersondetail removeTcustpersondetails1(Tcustpersondetail tcustpersondetails1) { + getTcustpersondetails1().remove(tcustpersondetails1); + tcustpersondetails1.setTsafeuser1(null); + + return tcustpersondetails1; + } + + public Set getTcustpersondetails2() { + return this.tcustpersondetails2; + } + + public void setTcustpersondetails2(Set tcustpersondetails2) { + this.tcustpersondetails2 = tcustpersondetails2; + } + + public Tcustpersondetail addTcustpersondetails2(Tcustpersondetail tcustpersondetails2) { + getTcustpersondetails2().add(tcustpersondetails2); + tcustpersondetails2.setTsafeuser2(this); + + return tcustpersondetails2; + } + + public Tcustpersondetail removeTcustpersondetails2(Tcustpersondetail tcustpersondetails2) { + getTcustpersondetails2().remove(tcustpersondetails2); + tcustpersondetails2.setTsafeuser2(null); + + return tcustpersondetails2; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Set getTsafeuserdetails() { + return this.tsafeuserdetails; + } + + public void setTsafeuserdetails(Set tsafeuserdetails) { + this.tsafeuserdetails = tsafeuserdetails; + } + + public Tsafeuserdetail addTsafeuserdetail(Tsafeuserdetail tsafeuserdetail) { + getTsafeuserdetails().add(tsafeuserdetail); + tsafeuserdetail.setTsafeuser(this); + + return tsafeuserdetail; + } + + public Tsafeuserdetail removeTsafeuserdetail(Tsafeuserdetail tsafeuserdetail) { + getTsafeuserdetails().remove(tsafeuserdetail); + tsafeuserdetail.setTsafeuser(null); + + return tsafeuserdetail; + } + + public Set getTcustpersonphones1() { + return this.tcustpersonphones1; + } + + public void setTcustpersonphones1(Set tcustpersonphones1) { + this.tcustpersonphones1 = tcustpersonphones1; + } + + public Tcustpersonphone addTcustpersonphones1(Tcustpersonphone tcustpersonphones1) { + getTcustpersonphones1().add(tcustpersonphones1); + tcustpersonphones1.setTsafeuser1(this); + + return tcustpersonphones1; + } + + public Tcustpersonphone removeTcustpersonphones1(Tcustpersonphone tcustpersonphones1) { + getTcustpersonphones1().remove(tcustpersonphones1); + tcustpersonphones1.setTsafeuser1(null); + + return tcustpersonphones1; + } + + public Set getTcustpersonphones2() { + return this.tcustpersonphones2; + } + + public void setTcustpersonphones2(Set tcustpersonphones2) { + this.tcustpersonphones2 = tcustpersonphones2; + } + + public Tcustpersonphone addTcustpersonphones2(Tcustpersonphone tcustpersonphones2) { + getTcustpersonphones2().add(tcustpersonphones2); + tcustpersonphones2.setTsafeuser2(this); + + return tcustpersonphones2; + } + + public Tcustpersonphone removeTcustpersonphones2(Tcustpersonphone tcustpersonphones2) { + getTcustpersonphones2().remove(tcustpersonphones2); + tcustpersonphones2.setTsafeuser2(null); + + return tcustpersonphones2; + } + + public Set getTsafeuserprofiles() { + return this.tsafeuserprofiles; + } + + public void setTsafeuserprofiles(Set tsafeuserprofiles) { + this.tsafeuserprofiles = tsafeuserprofiles; + } + + public Tsafeuserprofile addTsafeuserprofile(Tsafeuserprofile tsafeuserprofile) { + getTsafeuserprofiles().add(tsafeuserprofile); + tsafeuserprofile.setTsafeuser(this); + + return tsafeuserprofile; + } + + public Tsafeuserprofile removeTsafeuserprofile(Tsafeuserprofile tsafeuserprofile) { + getTsafeuserprofiles().remove(tsafeuserprofile); + tsafeuserprofile.setTsafeuser(null); + + return tsafeuserprofile; + } + + public Long getPersonCode() { + return personCode; + } + + public void setPersonCode(Long personCode) { + this.personCode = personCode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserdetail.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserdetail.java.svn-base new file mode 100644 index 0000000..5917754 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserdetail.java.svn-base @@ -0,0 +1,240 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TSAFEUSERDETAIL database table. + * + */ +@Entity +public class Tsafeuserdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TsafeuserdetailPK id; + + private String activateuser; + + private Long areacode; + + private Long branchcode; + + private String branchfromterminal; + + private String changepassword; + + private String channelcode; + + private Long companycode; + + private Timestamp datefrom; + + private String ingressuser; + + private String isuserbpm; + + private String languagecode; + + private String modifyuser; + + private String nickname; + + private Long officecode; + + private String password; + + @Version + private Long recordversion; + + private String terminalcode; + + private String userstatuscatalog; + + private String userstatuscatalogcode; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="USERCODE", insertable=false, updatable=false) + private Tsafeuser tsafeuser; + + public Tsafeuserdetail() { + } + + public TsafeuserdetailPK getId() { + return this.id; + } + + public void setId(TsafeuserdetailPK id) { + this.id = id; + } + + public String getActivateuser() { + return this.activateuser; + } + + public void setActivateuser(String activateuser) { + this.activateuser = activateuser; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public Long getBranchcode() { + return this.branchcode; + } + + public void setBranchcode(Long branchcode) { + this.branchcode = branchcode; + } + + public String getBranchfromterminal() { + return this.branchfromterminal; + } + + public void setBranchfromterminal(String branchfromterminal) { + this.branchfromterminal = branchfromterminal; + } + + public String getChangepassword() { + return this.changepassword; + } + + public void setChangepassword(String changepassword) { + this.changepassword = changepassword; + } + + public String getChannelcode() { + return this.channelcode; + } + + public void setChannelcode(String channelcode) { + this.channelcode = channelcode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getIsuserbpm() { + return this.isuserbpm; + } + + public void setIsuserbpm(String isuserbpm) { + this.isuserbpm = isuserbpm; + } + + public String getLanguagecode() { + return this.languagecode; + } + + public void setLanguagecode(String languagecode) { + this.languagecode = languagecode; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getNickname() { + return this.nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Long getOfficecode() { + return this.officecode; + } + + public void setOfficecode(Long officecode) { + this.officecode = officecode; + } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public String getTerminalcode() { + return this.terminalcode; + } + + public void setTerminalcode(String terminalcode) { + this.terminalcode = terminalcode; + } + + public String getUserstatuscatalog() { + return this.userstatuscatalog; + } + + public void setUserstatuscatalog(String userstatuscatalog) { + this.userstatuscatalog = userstatuscatalog; + } + + public String getUserstatuscatalogcode() { + return this.userstatuscatalogcode; + } + + public void setUserstatuscatalogcode(String userstatuscatalogcode) { + this.userstatuscatalogcode = userstatuscatalogcode; + } + + public Tsafeuser getTsafeuser() { + return this.tsafeuser; + } + + public void setTsafeuser(Tsafeuser tsafeuser) { + this.tsafeuser = tsafeuser; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserdetailPK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserdetailPK.java.svn-base new file mode 100644 index 0000000..7ac428a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserdetailPK.java.svn-base @@ -0,0 +1,77 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TSAFEUSERDETAIL database table. + * + */ +@Embeddable +public class TsafeuserdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private String usercode; + + private Long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TsafeuserdetailPK() { + } + + public TsafeuserdetailPK(String usercode, Long personcode, Date dateto) { + super(); + this.usercode = usercode; + this.personcode = personcode; + this.dateto = dateto; + } + + public String getUsercode() { + return this.usercode; + } + public void setUsercode(String usercode) { + this.usercode = usercode; + } + public Long getPersoncode() { + return this.personcode; + } + public void setPersoncode(Long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TsafeuserdetailPK)) { + return false; + } + TsafeuserdetailPK castOther = (TsafeuserdetailPK)other; + return + this.usercode.equals(castOther.usercode) + && (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.usercode.hashCode(); + hash = hash * prime + this.personcode.hashCode(); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserprofile.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserprofile.java.svn-base new file mode 100644 index 0000000..c589524 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/Tsafeuserprofile.java.svn-base @@ -0,0 +1,73 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; + + +/** + * The persistent class for the TSAFEUSERPROFILE database table. + * + */ +@Entity +public class Tsafeuserprofile implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TsafeuserprofilePK id; + + private Timestamp datefrom; + + private String ingressuser; + + private String modifyuser; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="USERCODE", insertable=false, updatable=false) + private Tsafeuser tsafeuser; + + public Tsafeuserprofile() { + } + + public TsafeuserprofilePK getId() { + return this.id; + } + + public void setId(TsafeuserprofilePK id) { + this.id = id; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public Tsafeuser getTsafeuser() { + return this.tsafeuser; + } + + public void setTsafeuser(Tsafeuser tsafeuser) { + this.tsafeuser = tsafeuser; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserprofilePK.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserprofilePK.java.svn-base new file mode 100644 index 0000000..2ae8aa9 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/.svn/text-base/TsafeuserprofilePK.java.svn-base @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TSAFEUSERPROFILE database table. + * + */ +@Embeddable +public class TsafeuserprofilePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(updatable=false) + private String usercode; + + @Column(updatable=false) + private String profilecode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TsafeuserprofilePK() { + } + + public TsafeuserprofilePK(String usercode, String profilecode, Date dateto) { + super(); + this.usercode = usercode; + this.profilecode = profilecode; + this.dateto = dateto; + } + + public String getUsercode() { + return this.usercode; + } + public void setUsercode(String usercode) { + this.usercode = usercode; + } + public String getProfilecode() { + return this.profilecode; + } + public void setProfilecode(String profilecode) { + this.profilecode = profilecode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TsafeuserprofilePK)) { + return false; + } + TsafeuserprofilePK castOther = (TsafeuserprofilePK)other; + return + this.usercode.equals(castOther.usercode) + && this.profilecode.equals(castOther.profilecode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.usercode.hashCode(); + hash = hash * prime + this.profilecode.hashCode(); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustcompany.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustcompany.java new file mode 100644 index 0000000..bbbcb83 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustcompany.java @@ -0,0 +1,290 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; +import java.math.BigDecimal; +import java.util.Date; + + +/** + * The persistent class for the TCUSTCOMPANY database table. + * + */ +@Entity +public class Tcustcompany implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustcompanyPK id; + + private String businessclasscatalog; + + private String businessclasscatalogcode; + + private String businesstypecatalog; + + private String businesstypecatalogcode; + + private String commercialregister; + + @Temporal(TemporalType.DATE) + private Date constitutiondate; + + private BigDecimal contributedcapital; + + private String corporatepurpose; + + private Timestamp datefrom; + + private Integer employeenumber; + + private String employercode; + + @Temporal(TemporalType.DATE) + private Date expirationdate; + + private String ingressuser; + + private String institutiontypecatalog; + + private String institutiontypecatalogcode; + + private Integer membersnumber; + + private String modifyuser; + + private Integer nominalcapital; + + private String operativestatuscatalog; + + private String operativestatuscatalogcode; + + private Integer originalcapital; + + @Lob + private byte[] picture; + + @Column(name="LOGO") + private Integer logo; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="LOGO", insertable=false, updatable=false) + private Tgenefile tgenefile; + + public Tcustcompany() { + } + + public TcustcompanyPK getId() { + return this.id; + } + + public void setId(TcustcompanyPK id) { + this.id = id; + } + + public String getBusinessclasscatalog() { + return this.businessclasscatalog; + } + + public void setBusinessclasscatalog(String businessclasscatalog) { + this.businessclasscatalog = businessclasscatalog; + } + + public String getBusinessclasscatalogcode() { + return this.businessclasscatalogcode; + } + + public void setBusinessclasscatalogcode(String businessclasscatalogcode) { + this.businessclasscatalogcode = businessclasscatalogcode; + } + + public String getBusinesstypecatalog() { + return this.businesstypecatalog; + } + + public void setBusinesstypecatalog(String businesstypecatalog) { + this.businesstypecatalog = businesstypecatalog; + } + + public String getBusinesstypecatalogcode() { + return this.businesstypecatalogcode; + } + + public void setBusinesstypecatalogcode(String businesstypecatalogcode) { + this.businesstypecatalogcode = businesstypecatalogcode; + } + + public String getCommercialregister() { + return this.commercialregister; + } + + public void setCommercialregister(String commercialregister) { + this.commercialregister = commercialregister; + } + + public Date getConstitutiondate() { + return this.constitutiondate; + } + + public void setConstitutiondate(Date constitutiondate) { + this.constitutiondate = constitutiondate; + } + + public BigDecimal getContributedcapital() { + return this.contributedcapital; + } + + public void setContributedcapital(BigDecimal contributedcapital) { + this.contributedcapital = contributedcapital; + } + + public String getCorporatepurpose() { + return this.corporatepurpose; + } + + public void setCorporatepurpose(String corporatepurpose) { + this.corporatepurpose = corporatepurpose; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public Integer getEmployeenumber() { + return this.employeenumber; + } + + public void setEmployeenumber(Integer employeenumber) { + this.employeenumber = employeenumber; + } + + public String getEmployercode() { + return this.employercode; + } + + public void setEmployercode(String employercode) { + this.employercode = employercode; + } + + public Date getExpirationdate() { + return this.expirationdate; + } + + public void setExpirationdate(Date expirationdate) { + this.expirationdate = expirationdate; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getInstitutiontypecatalog() { + return this.institutiontypecatalog; + } + + public void setInstitutiontypecatalog(String institutiontypecatalog) { + this.institutiontypecatalog = institutiontypecatalog; + } + + public String getInstitutiontypecatalogcode() { + return this.institutiontypecatalogcode; + } + + public void setInstitutiontypecatalogcode(String institutiontypecatalogcode) { + this.institutiontypecatalogcode = institutiontypecatalogcode; + } + + public Integer getMembersnumber() { + return this.membersnumber; + } + + public void setMembersnumber(Integer membersnumber) { + this.membersnumber = membersnumber; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public Integer getNominalcapital() { + return this.nominalcapital; + } + + public void setNominalcapital(Integer nominalcapital) { + this.nominalcapital = nominalcapital; + } + + public String getOperativestatuscatalog() { + return this.operativestatuscatalog; + } + + public void setOperativestatuscatalog(String operativestatuscatalog) { + this.operativestatuscatalog = operativestatuscatalog; + } + + public String getOperativestatuscatalogcode() { + return this.operativestatuscatalogcode; + } + + public void setOperativestatuscatalogcode(String operativestatuscatalogcode) { + this.operativestatuscatalogcode = operativestatuscatalogcode; + } + + public Integer getOriginalcapital() { + return this.originalcapital; + } + + public void setOriginalcapital(Integer originalcapital) { + this.originalcapital = originalcapital; + } + + public byte[] getPicture() { + return this.picture; + } + + public void setPicture(byte[] picture) { + this.picture = picture; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tgenefile getTgenefile() { + return this.tgenefile; + } + + public void setTgenefile(Tgenefile tgenefile) { + this.tgenefile = tgenefile; + } + + public Integer getLogo() { + return logo; + } + + public void setLogo(Integer logo) { + this.logo = logo; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TcustcompanyPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TcustcompanyPK.java new file mode 100644 index 0000000..d4b4263 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TcustcompanyPK.java @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTCOMPANY database table. + * + */ +@Embeddable +public class TcustcompanyPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustcompanyPK() { + } + + public TcustcompanyPK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustcompanyPK)) { + return false; + } + TcustcompanyPK castOther = (TcustcompanyPK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustpeople.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpeople.java new file mode 100644 index 0000000..153cad4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpeople.java @@ -0,0 +1,341 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + + +/** + * The persistent class for the TCUSTPEOPLE database table. + * + */ +@Entity +public class Tcustpeople implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpeoplePK id; + + private String birthcantoncode; + + private String birthcitycode; + + private String birthcountrycode; + + @Temporal(TemporalType.DATE) + private Date birthdate; + + private String birthparroquiacode; + + private String birthprovincecode; + + private Long codigosib; + + private Timestamp datefrom; + + private String educationlevelcatalog; + + private String educationlevelcatalogcode; + + private String firstname; + + private String gender; + + private String ingressusercode; + + private String lastname; + + private String maritalname; + + private String maritalstatuscatalog; + + private String maritalstatuscatalogcode; + + private String middlename; + + private String modifyusercode; + + private String nacionality; + + private String notactivitycatalog; + + private String notactivitycatalogcode; + + private Long photocode; + + private String professioncatalog; + + private String professioncatalogcode; + + private Long recordversion; + + private Long signaturecode; + + private String surename; + + private Double height; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + public Tcustpeople() { + } + + public TcustpeoplePK getId() { + return this.id; + } + + public void setId(TcustpeoplePK id) { + this.id = id; + } + + public String getBirthcantoncode() { + return this.birthcantoncode; + } + + public void setBirthcantoncode(String birthcantoncode) { + this.birthcantoncode = birthcantoncode; + } + + public String getBirthcitycode() { + return this.birthcitycode; + } + + public void setBirthcitycode(String birthcitycode) { + this.birthcitycode = birthcitycode; + } + + public String getBirthcountrycode() { + return this.birthcountrycode; + } + + public void setBirthcountrycode(String birthcountrycode) { + this.birthcountrycode = birthcountrycode; + } + + public Date getBirthdate() { + return this.birthdate; + } + + public void setBirthdate(Date birthdate) { + this.birthdate = birthdate; + } + + public String getBirthparroquiacode() { + return this.birthparroquiacode; + } + + public void setBirthparroquiacode(String birthparroquiacode) { + this.birthparroquiacode = birthparroquiacode; + } + + public String getBirthprovincecode() { + return this.birthprovincecode; + } + + public void setBirthprovincecode(String birthprovincecode) { + this.birthprovincecode = birthprovincecode; + } + + public Long getCodigosib() { + return this.codigosib; + } + + public void setCodigosib(Long codigosib) { + this.codigosib = codigosib; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getEducationlevelcatalog() { + return this.educationlevelcatalog; + } + + public void setEducationlevelcatalog(String educationlevelcatalog) { + this.educationlevelcatalog = educationlevelcatalog; + } + + public String getEducationlevelcatalogcode() { + return this.educationlevelcatalogcode; + } + + public void setEducationlevelcatalogcode(String educationlevelcatalogcode) { + this.educationlevelcatalogcode = educationlevelcatalogcode; + } + + public String getFirstname() { + return this.firstname; + } + + public void setFirstname(String firstname) { + this.firstname = firstname; + } + + public String getGender() { + return this.gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getIngressusercode() { + return this.ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getLastname() { + return this.lastname; + } + + public void setLastname(String lastname) { + this.lastname = lastname; + } + + public String getMaritalname() { + return this.maritalname; + } + + public void setMaritalname(String maritalname) { + this.maritalname = maritalname; + } + + public String getMaritalstatuscatalog() { + return this.maritalstatuscatalog; + } + + public void setMaritalstatuscatalog(String maritalstatuscatalog) { + this.maritalstatuscatalog = maritalstatuscatalog; + } + + public String getMaritalstatuscatalogcode() { + return this.maritalstatuscatalogcode; + } + + public void setMaritalstatuscatalogcode(String maritalstatuscatalogcode) { + this.maritalstatuscatalogcode = maritalstatuscatalogcode; + } + + public String getMiddlename() { + return this.middlename; + } + + public void setMiddlename(String middlename) { + this.middlename = middlename; + } + + public String getModifyusercode() { + return this.modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + + public String getNacionality() { + return this.nacionality; + } + + public void setNacionality(String nacionality) { + this.nacionality = nacionality; + } + + public String getNotactivitycatalog() { + return this.notactivitycatalog; + } + + public void setNotactivitycatalog(String notactivitycatalog) { + this.notactivitycatalog = notactivitycatalog; + } + + public String getNotactivitycatalogcode() { + return this.notactivitycatalogcode; + } + + public void setNotactivitycatalogcode(String notactivitycatalogcode) { + this.notactivitycatalogcode = notactivitycatalogcode; + } + + public Long getPhotocode() { + return this.photocode; + } + + public void setPhotocode(Long photocode) { + this.photocode = photocode; + } + + public String getProfessioncatalog() { + return this.professioncatalog; + } + + public void setProfessioncatalog(String professioncatalog) { + this.professioncatalog = professioncatalog; + } + + public String getProfessioncatalogcode() { + return this.professioncatalogcode; + } + + public void setProfessioncatalogcode(String professioncatalogcode) { + this.professioncatalogcode = professioncatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Long getSignaturecode() { + return this.signaturecode; + } + + public void setSignaturecode(Long signaturecode) { + this.signaturecode = signaturecode; + } + + public String getSurename() { + return this.surename; + } + + public void setSurename(String surename) { + this.surename = surename; + } + + public Tcustperson getTcustperson() { + return tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Double getHeight() { + return height; + } + + public void setHeight(Double height) { + this.height = height; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TcustpeoplePK.java b/ejb/src/main/java/com/fp/armas/portal/model/TcustpeoplePK.java new file mode 100644 index 0000000..414449f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TcustpeoplePK.java @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPEOPLE database table. + * + */ +@Embeddable +public class TcustpeoplePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpeoplePK() { + } + + public TcustpeoplePK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpeoplePK)) { + return false; + } + TcustpeoplePK castOther = (TcustpeoplePK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustperson.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustperson.java new file mode 100644 index 0000000..203216f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustperson.java @@ -0,0 +1,135 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.util.Set; + + +/** + * The persistent class for the TCUSTPERSON database table. + * + */ +@Entity +@Table(name="TCUSTPERSON") +public class Tcustperson implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private long personcode; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tcustperson") + private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tcustperson") + private Set tcustpersondetails; + + //bi-directional many-to-one association to Tsafeuser + @OneToMany(mappedBy="tcustperson") + private Set tsafeusers; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tcustperson") + private Set tcustpersonphones; + + public Tcustperson() { + } + + public long getPersoncode() { + return this.personcode; + } + + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + + public Set getTcustpersonaddresses() { + return this.tcustpersonaddresses; + } + + public void setTcustpersonaddresses(Set tcustpersonaddresses) { + this.tcustpersonaddresses = tcustpersonaddresses; + } + + public Tcustpersonaddress addTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().add(tcustpersonaddress); + tcustpersonaddress.setTcustperson(this); + + return tcustpersonaddress; + } + + public Tcustpersonaddress removeTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().remove(tcustpersonaddress); + tcustpersonaddress.setTcustperson(null); + + return tcustpersonaddress; + } + + public Set getTcustpersondetails() { + return this.tcustpersondetails; + } + + public void setTcustpersondetails(Set tcustpersondetails) { + this.tcustpersondetails = tcustpersondetails; + } + + public Tcustpersondetail addTcustpersondetail(Tcustpersondetail tcustpersondetail) { + getTcustpersondetails().add(tcustpersondetail); + tcustpersondetail.setTcustperson(this); + + return tcustpersondetail; + } + + public Tcustpersondetail removeTcustpersondetail(Tcustpersondetail tcustpersondetail) { + getTcustpersondetails().remove(tcustpersondetail); + tcustpersondetail.setTcustperson(null); + + return tcustpersondetail; + } + + public Set getTsafeusers() { + return this.tsafeusers; + } + + public void setTsafeusers(Set tsafeusers) { + this.tsafeusers = tsafeusers; + } + + public Tsafeuser addTsafeuser(Tsafeuser tsafeuser) { + getTsafeusers().add(tsafeuser); + tsafeuser.setTcustperson(this); + + return tsafeuser; + } + + public Tsafeuser removeTsafeuser(Tsafeuser tsafeuser) { + getTsafeusers().remove(tsafeuser); + tsafeuser.setTcustperson(null); + + return tsafeuser; + } + + public Set getTcustpersonphones() { + return this.tcustpersonphones; + } + + public void setTcustpersonphones(Set tcustpersonphones) { + this.tcustpersonphones = tcustpersonphones; + } + + public Tcustpersonphone addTcustpersonphone(Tcustpersonphone tcustpersonphone) { + getTcustpersonphones().add(tcustpersonphone); + tcustpersonphone.setTcustperson(this); + + return tcustpersonphone; + } + + public Tcustpersonphone removeTcustpersonphone(Tcustpersonphone tcustpersonphone) { + getTcustpersonphones().remove(tcustpersonphone); + tcustpersonphone.setTcustperson(null); + + return tcustpersonphone; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonaddress.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonaddress.java new file mode 100644 index 0000000..3910088 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonaddress.java @@ -0,0 +1,309 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONADDRESS database table. + * + */ +@Entity +public class Tcustpersonaddress implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersonaddressPK id; + + private String address; + + private String addresstypecatalog; + + private String addresstypecatalogcode; + + private Timestamp datefrom; + + private String department; + + private String principal; + + @Version + private Long recordversion; + + private String remark; + + private String street; + + private String streetnumber; + + private String urbanization; + + @Column + private String ingressusercode; + + @Column + private String modifyusercode; + + @Column + private String cantonCode; + + @Column + private String countryCode; + + @Column + private String provinceCode; + + @Column + private String cityCode; + + @Column + private String parroquiaCode; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser2; + + //bi-directional many-to-one association to Tgenecity + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE", updatable=false, insertable=false), + @JoinColumn(name="CITYCODE", referencedColumnName="CITYCODE", updatable=false, insertable=false), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE", updatable=false, insertable=false), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE", updatable=false, insertable=false) + }) + private Tgenecity tgenecity; + + //bi-directional many-to-one association to Tgeneparroquia + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE", updatable=false, insertable=false), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE", updatable=false, insertable=false), + @JoinColumn(name="PARROQUIACODE", referencedColumnName="PARROQUIACODE", updatable=false, insertable=false), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE", updatable=false, insertable=false) + }) + private Tgeneparroquia tgeneparroquia; + + public Tcustpersonaddress() { + } + + public TcustpersonaddressPK getId() { + return this.id; + } + + public void setId(TcustpersonaddressPK id) { + this.id = id; + } + + public String getAddress() { + return this.address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getAddresstypecatalog() { + return this.addresstypecatalog; + } + + public void setAddresstypecatalog(String addresstypecatalog) { + this.addresstypecatalog = addresstypecatalog; + } + + public String getAddresstypecatalogcode() { + return this.addresstypecatalogcode; + } + + public void setAddresstypecatalogcode(String addresstypecatalogcode) { + this.addresstypecatalogcode = addresstypecatalogcode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getDepartment() { + return this.department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getPrincipal() { + return this.principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public String getRemark() { + return this.remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getStreet() { + return this.street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getStreetnumber() { + return this.streetnumber; + } + + public void setStreetnumber(String streetnumber) { + this.streetnumber = streetnumber; + } + + public String getUrbanization() { + return this.urbanization; + } + + public void setUrbanization(String urbanization) { + this.urbanization = urbanization; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + +// public Tgenecity getTgenecity() { +// return this.tgenecity; +// } +// +// public void setTgenecity(Tgenecity tgenecity) { +// this.tgenecity = tgenecity; +// } + + public Tgeneparroquia getTgeneparroquia() { + return this.tgeneparroquia; + } + + public void setTgeneparroquia(Tgeneparroquia tgeneparroquia) { + this.tgeneparroquia = tgeneparroquia; + } + + public String getIngressusercode() { + return ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getModifyusercode() { + return modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + + public String getCantonCode() { + return cantonCode; + } + + public void setCantonCode(String cantonCode) { + this.cantonCode = cantonCode; + } + + public String getCountryCode() { + return countryCode; + } + + public void setCountryCode(String countryCode) { + this.countryCode = countryCode; + } + + public String getProvinceCode() { + return provinceCode; + } + + public void setProvinceCode(String provinceCode) { + this.provinceCode = provinceCode; + } + + public String getCityCode() { + return cityCode; + } + + public void setCityCode(String cityCode) { + this.cityCode = cityCode; + } + + public String getParroquiaCode() { + return parroquiaCode; + } + + public void setParroquiaCode(String parroquiaCode) { + this.parroquiaCode = parroquiaCode; + } + + public Tgenecity getTgenecity() { + return tgenecity; + } + + public void setTgenecity(Tgenecity tgenecity) { + this.tgenecity = tgenecity; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonaddressPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonaddressPK.java new file mode 100644 index 0000000..86bdc7f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonaddressPK.java @@ -0,0 +1,79 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPERSONADDRESS database table. + * + */ +@Embeddable +public class TcustpersonaddressPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + private long addressnumber; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpersonaddressPK() { + } + + public TcustpersonaddressPK(long personcode, long addressnumber, Date dateto) { + super(); + this.personcode = personcode; + this.addressnumber = addressnumber; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public long getAddressnumber() { + return this.addressnumber; + } + public void setAddressnumber(long addressnumber) { + this.addressnumber = addressnumber; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersonaddressPK)) { + return false; + } + TcustpersonaddressPK castOther = (TcustpersonaddressPK)other; + return + (this.personcode == castOther.personcode) + && (this.addressnumber == castOther.addressnumber) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + ((int) (this.addressnumber ^ (this.addressnumber >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersondetail.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersondetail.java new file mode 100644 index 0000000..3b05bd2 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersondetail.java @@ -0,0 +1,408 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONDETAIL database table. + * + */ +@Entity +public class Tcustpersondetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersondetailPK id; + + @Column + private String activitycode; + + private Long branchcode; + + private String clienttypecatalog; + + private String clienttypecatalogcode; + + private Long companycode; + + @Temporal(TemporalType.DATE) + private Date dateexpidentification; + + private Timestamp datefrom; + + private String economicsectorcatalog; + + private String economicsectorcatalogcode; + + private String identification; + + private String identificationcatalog; + + private String identificationcatalogcode; + + private String innerscore; + + private String ismigrated; + + private String languagecode; + + private String name; + + private String nickname; + + private Long officecode; + + private String parthnernumber; + + private String persontypecatalog; + + private String persontypecatalogcode; + + @Version + private Long recordversion; + + private String ingressuser; + + private String modifyuser; + + @Temporal(TemporalType.DATE) + private Date registerdate; + + private String sbsemployee; + + private String sbsusercode; + + private String taxexempt; + + private String legalrepresent; + + private String legalrepresentidentification; + + @Column(name="ECONIMICACT", nullable=true) + + private String econimicact; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="ACTIVITYCODE", insertable=false, updatable=false) + private Tgeneactivity tgeneactivity; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSER", insertable=false, updatable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSER", insertable=false, updatable=false) + private Tsafeuser tsafeuser2; + + public Tcustpersondetail() { + } + + public TcustpersondetailPK getId() { + return this.id; + } + + public void setId(TcustpersondetailPK id) { + this.id = id; + } + + public Long getBranchcode() { + return this.branchcode; + } + + public void setBranchcode(Long branchcode) { + this.branchcode = branchcode; + } + + public String getClienttypecatalog() { + return this.clienttypecatalog; + } + + public void setClienttypecatalog(String clienttypecatalog) { + this.clienttypecatalog = clienttypecatalog; + } + + public String getClienttypecatalogcode() { + return this.clienttypecatalogcode; + } + + public void setClienttypecatalogcode(String clienttypecatalogcode) { + this.clienttypecatalogcode = clienttypecatalogcode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Date getDateexpidentification() { + return this.dateexpidentification; + } + + public void setDateexpidentification(Date dateexpidentification) { + this.dateexpidentification = dateexpidentification; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getEconomicsectorcatalog() { + return this.economicsectorcatalog; + } + + public void setEconomicsectorcatalog(String economicsectorcatalog) { + this.economicsectorcatalog = economicsectorcatalog; + } + + public String getEconomicsectorcatalogcode() { + return this.economicsectorcatalogcode; + } + + public void setEconomicsectorcatalogcode(String economicsectorcatalogcode) { + this.economicsectorcatalogcode = economicsectorcatalogcode; + } + + public String getIdentification() { + return this.identification; + } + + public void setIdentification(String identification) { + this.identification = identification; + } + + public String getIdentificationcatalog() { + return this.identificationcatalog; + } + + public void setIdentificationcatalog(String identificationcatalog) { + this.identificationcatalog = identificationcatalog; + } + + public String getIdentificationcatalogcode() { + return this.identificationcatalogcode; + } + + public void setIdentificationcatalogcode(String identificationcatalogcode) { + this.identificationcatalogcode = identificationcatalogcode; + } + + public String getInnerscore() { + return this.innerscore; + } + + public void setInnerscore(String innerscore) { + this.innerscore = innerscore; + } + + public String getIsmigrated() { + return this.ismigrated; + } + + public void setIsmigrated(String ismigrated) { + this.ismigrated = ismigrated; + } + + public String getLanguagecode() { + return this.languagecode; + } + + public void setLanguagecode(String languagecode) { + this.languagecode = languagecode; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNickname() { + return this.nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Long getOfficecode() { + return this.officecode; + } + + public void setOfficecode(Long officecode) { + this.officecode = officecode; + } + + public String getParthnernumber() { + return this.parthnernumber; + } + + public void setParthnernumber(String parthnernumber) { + this.parthnernumber = parthnernumber; + } + + public String getPersontypecatalog() { + return this.persontypecatalog; + } + + public void setPersontypecatalog(String persontypecatalog) { + this.persontypecatalog = persontypecatalog; + } + + public String getPersontypecatalogcode() { + return this.persontypecatalogcode; + } + + public void setPersontypecatalogcode(String persontypecatalogcode) { + this.persontypecatalogcode = persontypecatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Date getRegisterdate() { + return this.registerdate; + } + + public void setRegisterdate(Date registerdate) { + this.registerdate = registerdate; + } + + public String getSbsemployee() { + return this.sbsemployee; + } + + public void setSbsemployee(String sbsemployee) { + this.sbsemployee = sbsemployee; + } + + public String getSbsusercode() { + return this.sbsusercode; + } + + public void setSbsusercode(String sbsusercode) { + this.sbsusercode = sbsusercode; + } + + public String getTaxexempt() { + return this.taxexempt; + } + + public void setTaxexempt(String taxexempt) { + this.taxexempt = taxexempt; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + + public Tgeneactivity getTgeneactivity() { + return tgeneactivity; + } + + public void setTgeneactivity(Tgeneactivity tgeneactivity) { + this.tgeneactivity = tgeneactivity; + } + + public String getActivitycode() { + return activitycode; + } + + public void setActivitycode(String activitycode) { + this.activitycode = activitycode; + } + + public String getIngressuser() { + return ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getLegalrepresent() { + return legalrepresent; + } + + public void setLegalrepresent(String legalrepresent) { + this.legalrepresent = legalrepresent; + } + + public String getLegalrepresentidentification() { + return legalrepresentidentification; + } + + public void setLegalrepresentidentification(String legalrepresentidentification) { + this.legalrepresentidentification = legalrepresentidentification; + } + + public String getEconimicact() { + return econimicact; + } + + public void setEconimicact(String econimicact) { + this.econimicact = econimicact; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TcustpersondetailPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersondetailPK.java new file mode 100644 index 0000000..29afdd4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersondetailPK.java @@ -0,0 +1,68 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TCUSTPERSONDETAIL database table. + * + */ +@Embeddable +public class TcustpersondetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TcustpersondetailPK() { + } + + public TcustpersondetailPK(long personcode, Date dateto) { + super(); + this.personcode = personcode; + this.dateto = dateto; + } + + + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersondetailPK)) { + return false; + } + TcustpersondetailPK castOther = (TcustpersondetailPK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonphone.java b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonphone.java new file mode 100644 index 0000000..a031eab --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tcustpersonphone.java @@ -0,0 +1,176 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TCUSTPERSONPHONE database table. + * + */ +@Entity +public class Tcustpersonphone implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TcustpersonphonePK id; + + private Long addressnumber; + + private Long areacode; + + private Timestamp datefrom; + + private Long extension; + + private String phonenumber; + + private String phonetypecatalog; + + private String phonetypecatalogcode; + + private String ingressusercode; + + private String modifyusercode; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", updatable=false, insertable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODIFYUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser1; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="INGRESSUSERCODE", updatable=false, insertable=false) + private Tsafeuser tsafeuser2; + + public Tcustpersonphone() { + } + + public TcustpersonphonePK getId() { + return this.id; + } + + public void setId(TcustpersonphonePK id) { + this.id = id; + } + + public Long getAddressnumber() { + return this.addressnumber; + } + + public void setAddressnumber(Long addressnumber) { + this.addressnumber = addressnumber; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public Long getExtension() { + return this.extension; + } + + public void setExtension(Long extension) { + this.extension = extension; + } + + public String getPhonenumber() { + return this.phonenumber; + } + + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } + + public String getPhonetypecatalog() { + return this.phonetypecatalog; + } + + public void setPhonetypecatalog(String phonetypecatalog) { + this.phonetypecatalog = phonetypecatalog; + } + + public String getPhonetypecatalogcode() { + return this.phonetypecatalogcode; + } + + public void setPhonetypecatalogcode(String phonetypecatalogcode) { + this.phonetypecatalogcode = phonetypecatalogcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Tsafeuser getTsafeuser1() { + return this.tsafeuser1; + } + + public void setTsafeuser1(Tsafeuser tsafeuser1) { + this.tsafeuser1 = tsafeuser1; + } + + public Tsafeuser getTsafeuser2() { + return this.tsafeuser2; + } + + public void setTsafeuser2(Tsafeuser tsafeuser2) { + this.tsafeuser2 = tsafeuser2; + } + + public String getIngressusercode() { + return ingressusercode; + } + + public void setIngressusercode(String ingressusercode) { + this.ingressusercode = ingressusercode; + } + + public String getModifyusercode() { + return modifyusercode; + } + + public void setModifyusercode(String modifyusercode) { + this.modifyusercode = modifyusercode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonphonePK.java b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonphonePK.java new file mode 100644 index 0000000..e9080bf --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TcustpersonphonePK.java @@ -0,0 +1,80 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * The primary key class for the TCUSTPERSONPHONE database table. + * + */ +@Embeddable +public class TcustpersonphonePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + private long phonesequence; + + public TcustpersonphonePK() { + } + + public TcustpersonphonePK(long personcode, Date dateto, long phonesequence) { + super(); + this.personcode = personcode; + this.dateto = dateto; + this.phonesequence = phonesequence; + } + + public long getPersoncode() { + return this.personcode; + } + public void setPersoncode(long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + public long getPhonesequence() { + return this.phonesequence; + } + public void setPhonesequence(long phonesequence) { + this.phonesequence = phonesequence; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TcustpersonphonePK)) { + return false; + } + TcustpersonphonePK castOther = (TcustpersonphonePK)other; + return + (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto) + && (this.phonesequence == castOther.phonesequence); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.personcode ^ (this.personcode >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + hash = hash * prime + ((int) (this.phonesequence ^ (this.phonesequence >>> 32))); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgeneactivity.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneactivity.java new file mode 100644 index 0000000..597fbf3 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneactivity.java @@ -0,0 +1,91 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; + + +/** + * The persistent class for the TGENEACTIVITY database table. + * + */ +@Entity +@NamedQuery(name="Tgeneactivity.findAll", query="SELECT t FROM Tgeneactivity t") +public class Tgeneactivity implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String activitycode; + + private String ciiucode; + + private String description; + + private Timestamp modifydate; + + private String modifyuser; + + private String segmenttypecatalog; + + private String segmenttypecatalogcode; + + public Tgeneactivity() { + } + + public String getActivitycode() { + return this.activitycode; + } + + public void setActivitycode(String activitycode) { + this.activitycode = activitycode; + } + + public String getCiiucode() { + return this.ciiucode; + } + + public void setCiiucode(String ciiucode) { + this.ciiucode = ciiucode; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getModifydate() { + return this.modifydate; + } + + public void setModifydate(Timestamp modifydate) { + this.modifydate = modifydate; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getSegmenttypecatalog() { + return this.segmenttypecatalog; + } + + public void setSegmenttypecatalog(String segmenttypecatalog) { + this.segmenttypecatalog = segmenttypecatalog; + } + + public String getSegmenttypecatalogcode() { + return this.segmenttypecatalogcode; + } + + public void setSegmenttypecatalogcode(String segmenttypecatalogcode) { + this.segmenttypecatalogcode = segmenttypecatalogcode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenecanton.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecanton.java new file mode 100644 index 0000000..1eab2fd --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecanton.java @@ -0,0 +1,127 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECANTON database table. + * + */ +@Entity +public class Tgenecanton implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecantonPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgeneprovince + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgeneprovince tgeneprovince; + + //bi-directional many-to-one association to Tgenecity + @OneToMany(mappedBy="tgenecanton") + private Set tgenecities; + + //bi-directional many-to-one association to Tgeneparroquia + @OneToMany(mappedBy="tgenecanton") + private Set tgeneparroquias; + + public Tgenecanton() { + } + + public TgenecantonPK getId() { + return this.id; + } + + public void setId(TgenecantonPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Tgeneprovince getTgeneprovince() { + return this.tgeneprovince; + } + + public void setTgeneprovince(Tgeneprovince tgeneprovince) { + this.tgeneprovince = tgeneprovince; + } + + public Set getTgenecities() { + return this.tgenecities; + } + + public void setTgenecities(Set tgenecities) { + this.tgenecities = tgenecities; + } + + public Tgenecity addTgenecity(Tgenecity tgenecity) { + getTgenecities().add(tgenecity); + tgenecity.setTgenecanton(this); + + return tgenecity; + } + + public Tgenecity removeTgenecity(Tgenecity tgenecity) { + getTgenecities().remove(tgenecity); + tgenecity.setTgenecanton(null); + + return tgenecity; + } + + public Set getTgeneparroquias() { + return this.tgeneparroquias; + } + + public void setTgeneparroquias(Set tgeneparroquias) { + this.tgeneparroquias = tgeneparroquias; + } + + public Tgeneparroquia addTgeneparroquia(Tgeneparroquia tgeneparroquia) { + getTgeneparroquias().add(tgeneparroquia); + tgeneparroquia.setTgenecanton(this); + + return tgeneparroquia; + } + + public Tgeneparroquia removeTgeneparroquia(Tgeneparroquia tgeneparroquia) { + getTgeneparroquias().remove(tgeneparroquia); + tgeneparroquia.setTgenecanton(null); + + return tgeneparroquia; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgenecantonPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgenecantonPK.java new file mode 100644 index 0000000..fa16452 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgenecantonPK.java @@ -0,0 +1,67 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECANTON database table. + * + */ +@Embeddable +public class TgenecantonPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + private String cantoncode; + + public TgenecantonPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecantonPK)) { + return false; + } + TgenecantonPK castOther = (TgenecantonPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalog.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalog.java new file mode 100644 index 0000000..4da070b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalog.java @@ -0,0 +1,80 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; + + +/** + * The persistent class for the TGENECATALOG database table. + * + */ +@Entity +public class Tgenecatalog implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String catalogcode; + + private String description; + + private Long recordversion; + + //bi-directional many-to-one association to Tgenecatalogdetail + //@OneToMany(mappedBy="tgenecatalog") + //private Set tgenecatalogdetails; + + public Tgenecatalog() { + } + + public String getCatalogcode() { + return this.catalogcode; + } + + public void setCatalogcode(String catalogcode) { + this.catalogcode = catalogcode; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } +/** + public Set getTgenecatalogdetails() { + return this.tgenecatalogdetails; + } + + public void setTgenecatalogdetails(Set tgenecatalogdetails) { + this.tgenecatalogdetails = tgenecatalogdetails; + }*/ + + /**public Tgenecatalogdetail addTgenecatalogdetail(Tgenecatalogdetail tgenecatalogdetail) { + getTgenecatalogdetails().add(tgenecatalogdetail); + //tgenecatalogdetail.setTgenecatalog(this); + + + return tgenecatalogdetail; + } + + public Tgenecatalogdetail removeTgenecatalogdetail(Tgenecatalogdetail tgenecatalogdetail) { + getTgenecatalogdetails().remove(tgenecatalogdetail); + //tgenecatalogdetail.setTgenecatalog(null); + + return tgenecatalogdetail; + } +*/ +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalogdetail.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalogdetail.java new file mode 100644 index 0000000..b7d5643 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecatalogdetail.java @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + + +/** + * The persistent class for the TGENECATALOGDETAIL database table. + * + */ +@Entity +public class Tgenecatalogdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecatalogdetailPK id; + + private String description; + + private String legalcode; + + private Long recordversion; + + //bi-directional many-to-one association to Tgenecatalog + //@ManyToOne(fetch=FetchType.LAZY) + //@JoinColumn(name="catalogcode") + //private Tgenecatalog tgenecatalog; + + public Tgenecatalogdetail() { + } + + public TgenecatalogdetailPK getId() { + return this.id; + } + + public void setId(TgenecatalogdetailPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getLegalcode() { + return this.legalcode; + } + + public void setLegalcode(String legalcode) { + this.legalcode = legalcode; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + /** + public Tgenecatalog getTgenecatalog() { + return this.tgenecatalog; + } + + public void setTgenecatalog(Tgenecatalog tgenecatalog) { + this.tgenecatalog = tgenecatalog; + } + * */ + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgenecatalogdetailPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgenecatalogdetailPK.java new file mode 100644 index 0000000..266d8f3 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgenecatalogdetailPK.java @@ -0,0 +1,57 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECATALOGDETAIL database table. + * + */ +@Embeddable +public class TgenecatalogdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(name="CATALOG") + private String catalog; + + @Column(insertable=false, updatable=false) + private String catalogcode; + + public TgenecatalogdetailPK() { + } + public String getCatalog() { + return this.catalog; + } + public void setCatalog(String catalog) { + this.catalog = catalog; + } + public String getCatalogcode() { + return this.catalogcode; + } + public void setCatalogcode(String catalogcode) { + this.catalogcode = catalogcode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecatalogdetailPK)) { + return false; + } + TgenecatalogdetailPK castOther = (TgenecatalogdetailPK)other; + return + this.catalog.equals(castOther.catalog) + && this.catalogcode.equals(castOther.catalogcode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.catalog.hashCode(); + hash = hash * prime + this.catalogcode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenecity.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecity.java new file mode 100644 index 0000000..25d159b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecity.java @@ -0,0 +1,86 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECITY database table. + * + */ +@Entity +public class Tgenecity implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenecityPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustpersonaddress +// @OneToMany(mappedBy="tgenecity") +// private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tgenecanton + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE"), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgenecanton tgenecanton; + + public Tgenecity() { + } + + public TgenecityPK getId() { + return this.id; + } + + public void setId(TgenecityPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + +// public Set getTcustpersonaddresses() { +// return this.tcustpersonaddresses; +// } +// +// public void setTcustpersonaddresses(Set tcustpersonaddresses) { +// this.tcustpersonaddresses = tcustpersonaddresses; +// } + + public Tgenecanton getTgenecanton() { + return this.tgenecanton; + } + + public void setTgenecanton(Tgenecanton tgenecanton) { + this.tgenecanton = tgenecanton; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgenecityPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgenecityPK.java new file mode 100644 index 0000000..8835571 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgenecityPK.java @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENECITY database table. + * + */ +@Embeddable +public class TgenecityPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + @Column(insertable=false, updatable=false) + private String cantoncode; + + private String citycode; + + public TgenecityPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + public String getCitycode() { + return this.citycode; + } + public void setCitycode(String citycode) { + this.citycode = citycode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenecityPK)) { + return false; + } + TgenecityPK castOther = (TgenecityPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode) + && this.citycode.equals(castOther.citycode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + hash = hash * prime + this.citycode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenecountry.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecountry.java new file mode 100644 index 0000000..54dd1c4 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenecountry.java @@ -0,0 +1,111 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENECOUNTRY database table. + * + */ +@Entity +public class Tgenecountry implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String countrycode; + + private Long areacode; + + private String citizenship; + + private String description; + + private String initials; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgeneprovince + @OneToMany(mappedBy="tgenecountry") + private Set tgeneprovinces; + + public Tgenecountry() { + } + + public String getCountrycode() { + return this.countrycode; + } + + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public String getCitizenship() { + return this.citizenship; + } + + public void setCitizenship(String citizenship) { + this.citizenship = citizenship; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getInitials() { + return this.initials; + } + + public void setInitials(String initials) { + this.initials = initials; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTgeneprovinces() { + return this.tgeneprovinces; + } + + public void setTgeneprovinces(Set tgeneprovinces) { + this.tgeneprovinces = tgeneprovinces; + } + + public Tgeneprovince addTgeneprovince(Tgeneprovince tgeneprovince) { + getTgeneprovinces().add(tgeneprovince); + tgeneprovince.setTgenecountry(this); + + return tgeneprovince; + } + + public Tgeneprovince removeTgeneprovince(Tgeneprovince tgeneprovince) { + getTgeneprovinces().remove(tgeneprovince); + tgeneprovince.setTgenecountry(null); + + return tgeneprovince; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenefile.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenefile.java new file mode 100644 index 0000000..132661b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenefile.java @@ -0,0 +1,109 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.util.Set; + + +/** + * The persistent class for the TGENEFILES database table. + * + */ +@Entity +@Table(name="TGENEFILES") +public class Tgenefile implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private long code; + + //bi-directional many-to-one association to Tcustcompany + @OneToMany(mappedBy="tgenefile") + private Set tcustcompanies; + + //bi-directional many-to-one association to Tgenefilesdetail + @OneToMany(mappedBy="tgenefile1") + private Set tgenefilesdetails1; + + //bi-directional many-to-one association to Tgenefilesdetail + @OneToMany(mappedBy="tgenefile2") + private Set tgenefilesdetails2; + + public Tgenefile() { + } + + public long getCode() { + return this.code; + } + + public void setCode(long code) { + this.code = code; + } + + public Set getTcustcompanies() { + return this.tcustcompanies; + } + + public void setTcustcompanies(Set tcustcompanies) { + this.tcustcompanies = tcustcompanies; + } + + public Tcustcompany addTcustcompany(Tcustcompany tcustcompany) { + getTcustcompanies().add(tcustcompany); + tcustcompany.setTgenefile(this); + + return tcustcompany; + } + + public Tcustcompany removeTcustcompany(Tcustcompany tcustcompany) { + getTcustcompanies().remove(tcustcompany); + tcustcompany.setTgenefile(null); + + return tcustcompany; + } + + public Set getTgenefilesdetails1() { + return this.tgenefilesdetails1; + } + + public void setTgenefilesdetails1(Set tgenefilesdetails1) { + this.tgenefilesdetails1 = tgenefilesdetails1; + } + + public Tgenefilesdetail addTgenefilesdetails1(Tgenefilesdetail tgenefilesdetails1) { + getTgenefilesdetails1().add(tgenefilesdetails1); + tgenefilesdetails1.setTgenefile1(this); + + return tgenefilesdetails1; + } + + public Tgenefilesdetail removeTgenefilesdetails1(Tgenefilesdetail tgenefilesdetails1) { + getTgenefilesdetails1().remove(tgenefilesdetails1); + tgenefilesdetails1.setTgenefile1(null); + + return tgenefilesdetails1; + } + + public Set getTgenefilesdetails2() { + return this.tgenefilesdetails2; + } + + public void setTgenefilesdetails2(Set tgenefilesdetails2) { + this.tgenefilesdetails2 = tgenefilesdetails2; + } + + public Tgenefilesdetail addTgenefilesdetails2(Tgenefilesdetail tgenefilesdetails2) { + getTgenefilesdetails2().add(tgenefilesdetails2); + tgenefilesdetails2.setTgenefile2(this); + + return tgenefilesdetails2; + } + + public Tgenefilesdetail removeTgenefilesdetails2(Tgenefilesdetail tgenefilesdetails2) { + getTgenefilesdetails2().remove(tgenefilesdetails2); + tgenefilesdetails2.setTgenefile2(null); + + return tgenefilesdetails2; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenefilesdetail.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenefilesdetail.java new file mode 100644 index 0000000..db0d28d --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenefilesdetail.java @@ -0,0 +1,177 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.Lob; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + + +/** + * The persistent class for the TGENEFILESDETAIL database table. + * + */ +@Entity +public class Tgenefilesdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgenefilesdetailPK id; + + @Temporal(TemporalType.DATE) + private Date capturedate; + + private String contenttype; + + private Timestamp datefrom; + + private String description; + + private String extension; + + @Lob + private byte[] image; + + private Long imagesize; + + private String ingressuser; + + private String modifyuser; + + private String name; + + private Integer origincode; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="CODE", insertable=false, updatable=false) + private Tgenefile tgenefile1; + + //bi-directional many-to-one association to Tgenefile + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="ORIGINCODE", insertable=false, updatable=false) + private Tgenefile tgenefile2; + + public Tgenefilesdetail() { + } + + public TgenefilesdetailPK getId() { + return this.id; + } + + public void setId(TgenefilesdetailPK id) { + this.id = id; + } + + public Date getCapturedate() { + return this.capturedate; + } + + public void setCapturedate(Date capturedate) { + this.capturedate = capturedate; + } + + public String getContenttype() { + return this.contenttype; + } + + public void setContenttype(String contenttype) { + this.contenttype = contenttype; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExtension() { + return this.extension; + } + + public void setExtension(String extension) { + this.extension = extension; + } + + public byte[] getImage() { + return this.image; + } + + public void setImage(byte[] image) { + this.image = image; + } + + public Long getImagesize() { + return this.imagesize; + } + + public void setImagesize(Long imagesize) { + this.imagesize = imagesize; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public Tgenefile getTgenefile1() { + return this.tgenefile1; + } + + public void setTgenefile1(Tgenefile tgenefile1) { + this.tgenefile1 = tgenefile1; + } + + public Tgenefile getTgenefile2() { + return this.tgenefile2; + } + + public void setTgenefile2(Tgenefile tgenefile2) { + this.tgenefile2 = tgenefile2; + } + + public Integer getOrigincode() { + return origincode; + } + + public void setOrigincode(Integer origincode) { + this.origincode = origincode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgenefilesdetailPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgenefilesdetailPK.java new file mode 100644 index 0000000..6504ee7 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgenefilesdetailPK.java @@ -0,0 +1,66 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TGENEFILESDETAIL database table. + * + */ +@Embeddable +public class TgenefilesdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private long code; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TgenefilesdetailPK() { + } + + public TgenefilesdetailPK(long code, Date dateto) { + super(); + this.code = code; + this.dateto = dateto; + } + + public long getCode() { + return this.code; + } + public void setCode(long code) { + this.code = code; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgenefilesdetailPK)) { + return false; + } + TgenefilesdetailPK castOther = (TgenefilesdetailPK)other; + return + (this.code == castOther.code) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + ((int) (this.code ^ (this.code >>> 32))); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgeneparroquia.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneparroquia.java new file mode 100644 index 0000000..d2ca502 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneparroquia.java @@ -0,0 +1,102 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.JoinColumns; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENEPARROQUIA database table. + * + */ +@Entity +public class Tgeneparroquia implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgeneparroquiaPK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tgeneparroquia") + private Set tcustpersonaddresses; + + //bi-directional many-to-one association to Tgenecanton + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name="CANTONCODE", referencedColumnName="CANTONCODE"), + @JoinColumn(name="COUNTRYCODE", referencedColumnName="COUNTRYCODE"), + @JoinColumn(name="PROVINCECODE", referencedColumnName="PROVINCECODE") + }) + private Tgenecanton tgenecanton; + + public Tgeneparroquia() { + } + + public TgeneparroquiaPK getId() { + return this.id; + } + + public void setId(TgeneparroquiaPK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTcustpersonaddresses() { + return this.tcustpersonaddresses; + } + + public void setTcustpersonaddresses(Set tcustpersonaddresses) { + this.tcustpersonaddresses = tcustpersonaddresses; + } + + public Tcustpersonaddress addTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().add(tcustpersonaddress); + tcustpersonaddress.setTgeneparroquia(this); + + return tcustpersonaddress; + } + + public Tcustpersonaddress removeTcustpersonaddress(Tcustpersonaddress tcustpersonaddress) { + getTcustpersonaddresses().remove(tcustpersonaddress); + tcustpersonaddress.setTgeneparroquia(null); + + return tcustpersonaddress; + } + + public Tgenecanton getTgenecanton() { + return this.tgenecanton; + } + + public void setTgenecanton(Tgenecanton tgenecanton) { + this.tgenecanton = tgenecanton; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgeneparroquiaPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgeneparroquiaPK.java new file mode 100644 index 0000000..7c46244 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgeneparroquiaPK.java @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENEPARROQUIA database table. + * + */ +@Embeddable +public class TgeneparroquiaPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + @Column(insertable=false, updatable=false) + private String provincecode; + + @Column(insertable=false, updatable=false) + private String cantoncode; + + private String parroquiacode; + + public TgeneparroquiaPK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + public String getCantoncode() { + return this.cantoncode; + } + public void setCantoncode(String cantoncode) { + this.cantoncode = cantoncode; + } + public String getParroquiacode() { + return this.parroquiacode; + } + public void setParroquiacode(String parroquiacode) { + this.parroquiacode = parroquiacode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgeneparroquiaPK)) { + return false; + } + TgeneparroquiaPK castOther = (TgeneparroquiaPK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode) + && this.cantoncode.equals(castOther.cantoncode) + && this.parroquiacode.equals(castOther.parroquiacode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + hash = hash * prime + this.cantoncode.hashCode(); + hash = hash * prime + this.parroquiacode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgeneprovince.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneprovince.java new file mode 100644 index 0000000..fe296d2 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgeneprovince.java @@ -0,0 +1,97 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Version; + + +/** + * The persistent class for the TGENEPROVINCE database table. + * + */ +@Entity +public class Tgeneprovince implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TgeneprovincePK id; + + private String description; + + @Version + private Long recordversion; + + //bi-directional many-to-one association to Tgenecanton + @OneToMany(mappedBy="tgeneprovince") + private Set tgenecantons; + + //bi-directional many-to-one association to Tgenecountry + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="COUNTRYCODE") + private Tgenecountry tgenecountry; + + public Tgeneprovince() { + } + + public TgeneprovincePK getId() { + return this.id; + } + + public void setId(TgeneprovincePK id) { + this.id = id; + } + + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public Set getTgenecantons() { + return this.tgenecantons; + } + + public void setTgenecantons(Set tgenecantons) { + this.tgenecantons = tgenecantons; + } + + public Tgenecanton addTgenecanton(Tgenecanton tgenecanton) { + getTgenecantons().add(tgenecanton); + tgenecanton.setTgeneprovince(this); + + return tgenecanton; + } + + public Tgenecanton removeTgenecanton(Tgenecanton tgenecanton) { + getTgenecantons().remove(tgenecanton); + tgenecanton.setTgeneprovince(null); + + return tgenecanton; + } + + public Tgenecountry getTgenecountry() { + return this.tgenecountry; + } + + public void setTgenecountry(Tgenecountry tgenecountry) { + this.tgenecountry = tgenecountry; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TgeneprovincePK.java b/ejb/src/main/java/com/fp/armas/portal/model/TgeneprovincePK.java new file mode 100644 index 0000000..5df7d95 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TgeneprovincePK.java @@ -0,0 +1,56 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; + +/** + * The primary key class for the TGENEPROVINCE database table. + * + */ +@Embeddable +public class TgeneprovincePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(insertable=false, updatable=false) + private String countrycode; + + private String provincecode; + + public TgeneprovincePK() { + } + public String getCountrycode() { + return this.countrycode; + } + public void setCountrycode(String countrycode) { + this.countrycode = countrycode; + } + public String getProvincecode() { + return this.provincecode; + } + public void setProvincecode(String provincecode) { + this.provincecode = provincecode; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TgeneprovincePK)) { + return false; + } + TgeneprovincePK castOther = (TgeneprovincePK)other; + return + this.countrycode.equals(castOther.countrycode) + && this.provincecode.equals(castOther.provincecode); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.countrycode.hashCode(); + hash = hash * prime + this.provincecode.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tgenesequence.java b/ejb/src/main/java/com/fp/armas/portal/model/Tgenesequence.java new file mode 100644 index 0000000..02660ab --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tgenesequence.java @@ -0,0 +1,85 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.NamedQuery; +import javax.persistence.Table; + + +/** + * The persistent class for the TGENESEQUENCES database table. + * + */ +@Entity +@Table(name="TGENESEQUENCES") +@NamedQuery(name="Tgenesequence.findAll", query="SELECT t FROM Tgenesequence t") +public class Tgenesequence implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String code; + + private Long currentvalue; + + private String cyclic; + + private Long increase; + + private Long initialvalue; + + private Long lastvalue; + + public Tgenesequence() { + } + + public String getCode() { + return this.code; + } + + public void setCode(String code) { + this.code = code; + } + + public Long getCurrentvalue() { + return this.currentvalue; + } + + public void setCurrentvalue(Long currentvalue) { + this.currentvalue = currentvalue; + } + + public String getCyclic() { + return this.cyclic; + } + + public void setCyclic(String cyclic) { + this.cyclic = cyclic; + } + + public Long getIncrease() { + return this.increase; + } + + public void setIncrease(Long increase) { + this.increase = increase; + } + + public Long getInitialvalue() { + return this.initialvalue; + } + + public void setInitialvalue(Long initialvalue) { + this.initialvalue = initialvalue; + } + + public Long getLastvalue() { + return this.lastvalue; + } + + public void setLastvalue(Long lastvalue) { + this.lastvalue = lastvalue; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuser.java b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuser.java new file mode 100644 index 0000000..fcceb2a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuser.java @@ -0,0 +1,287 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Set; + +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; + + +/** + * The persistent class for the TSAFEUSER database table. + * + */ +@Entity +public class Tsafeuser implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + private String usercode; + + private Long personCode; + + private Long companycode; + + private Long internalcode; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersonaddresses1; + + //bi-directional many-to-one association to Tcustpersonaddress + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersonaddresses2; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersondetails1; + + //bi-directional many-to-one association to Tcustpersondetail + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersondetails2; + + //bi-directional many-to-one association to Tcustperson + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="PERSONCODE", insertable=false, updatable=false) + private Tcustperson tcustperson; + + //bi-directional many-to-one association to Tsafeuserdetail + @OneToMany(mappedBy="tsafeuser") + private Set tsafeuserdetails; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tsafeuser1") + private Set tcustpersonphones1; + + //bi-directional many-to-one association to Tcustpersonphone + @OneToMany(mappedBy="tsafeuser2") + private Set tcustpersonphones2; + + //bi-directional many-to-one association to Tsafeuserprofile + @OneToMany(mappedBy="tsafeuser") + private Set tsafeuserprofiles; + + public Tsafeuser() { + } + + public String getUsercode() { + return this.usercode; + } + + public void setUsercode(String usercode) { + this.usercode = usercode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Long getInternalcode() { + return this.internalcode; + } + + public void setInternalcode(Long internalcode) { + this.internalcode = internalcode; + } + + public Set getTcustpersonaddresses1() { + return this.tcustpersonaddresses1; + } + + public void setTcustpersonaddresses1(Set tcustpersonaddresses1) { + this.tcustpersonaddresses1 = tcustpersonaddresses1; + } + + public Tcustpersonaddress addTcustpersonaddresses1(Tcustpersonaddress tcustpersonaddresses1) { + getTcustpersonaddresses1().add(tcustpersonaddresses1); + tcustpersonaddresses1.setTsafeuser1(this); + + return tcustpersonaddresses1; + } + + public Tcustpersonaddress removeTcustpersonaddresses1(Tcustpersonaddress tcustpersonaddresses1) { + getTcustpersonaddresses1().remove(tcustpersonaddresses1); + tcustpersonaddresses1.setTsafeuser1(null); + + return tcustpersonaddresses1; + } + + public Set getTcustpersonaddresses2() { + return this.tcustpersonaddresses2; + } + + public void setTcustpersonaddresses2(Set tcustpersonaddresses2) { + this.tcustpersonaddresses2 = tcustpersonaddresses2; + } + + public Tcustpersonaddress addTcustpersonaddresses2(Tcustpersonaddress tcustpersonaddresses2) { + getTcustpersonaddresses2().add(tcustpersonaddresses2); + tcustpersonaddresses2.setTsafeuser2(this); + + return tcustpersonaddresses2; + } + + public Tcustpersonaddress removeTcustpersonaddresses2(Tcustpersonaddress tcustpersonaddresses2) { + getTcustpersonaddresses2().remove(tcustpersonaddresses2); + tcustpersonaddresses2.setTsafeuser2(null); + + return tcustpersonaddresses2; + } + + public Set getTcustpersondetails1() { + return this.tcustpersondetails1; + } + + public void setTcustpersondetails1(Set tcustpersondetails1) { + this.tcustpersondetails1 = tcustpersondetails1; + } + + public Tcustpersondetail addTcustpersondetails1(Tcustpersondetail tcustpersondetails1) { + getTcustpersondetails1().add(tcustpersondetails1); + tcustpersondetails1.setTsafeuser1(this); + + return tcustpersondetails1; + } + + public Tcustpersondetail removeTcustpersondetails1(Tcustpersondetail tcustpersondetails1) { + getTcustpersondetails1().remove(tcustpersondetails1); + tcustpersondetails1.setTsafeuser1(null); + + return tcustpersondetails1; + } + + public Set getTcustpersondetails2() { + return this.tcustpersondetails2; + } + + public void setTcustpersondetails2(Set tcustpersondetails2) { + this.tcustpersondetails2 = tcustpersondetails2; + } + + public Tcustpersondetail addTcustpersondetails2(Tcustpersondetail tcustpersondetails2) { + getTcustpersondetails2().add(tcustpersondetails2); + tcustpersondetails2.setTsafeuser2(this); + + return tcustpersondetails2; + } + + public Tcustpersondetail removeTcustpersondetails2(Tcustpersondetail tcustpersondetails2) { + getTcustpersondetails2().remove(tcustpersondetails2); + tcustpersondetails2.setTsafeuser2(null); + + return tcustpersondetails2; + } + + public Tcustperson getTcustperson() { + return this.tcustperson; + } + + public void setTcustperson(Tcustperson tcustperson) { + this.tcustperson = tcustperson; + } + + public Set getTsafeuserdetails() { + return this.tsafeuserdetails; + } + + public void setTsafeuserdetails(Set tsafeuserdetails) { + this.tsafeuserdetails = tsafeuserdetails; + } + + public Tsafeuserdetail addTsafeuserdetail(Tsafeuserdetail tsafeuserdetail) { + getTsafeuserdetails().add(tsafeuserdetail); + tsafeuserdetail.setTsafeuser(this); + + return tsafeuserdetail; + } + + public Tsafeuserdetail removeTsafeuserdetail(Tsafeuserdetail tsafeuserdetail) { + getTsafeuserdetails().remove(tsafeuserdetail); + tsafeuserdetail.setTsafeuser(null); + + return tsafeuserdetail; + } + + public Set getTcustpersonphones1() { + return this.tcustpersonphones1; + } + + public void setTcustpersonphones1(Set tcustpersonphones1) { + this.tcustpersonphones1 = tcustpersonphones1; + } + + public Tcustpersonphone addTcustpersonphones1(Tcustpersonphone tcustpersonphones1) { + getTcustpersonphones1().add(tcustpersonphones1); + tcustpersonphones1.setTsafeuser1(this); + + return tcustpersonphones1; + } + + public Tcustpersonphone removeTcustpersonphones1(Tcustpersonphone tcustpersonphones1) { + getTcustpersonphones1().remove(tcustpersonphones1); + tcustpersonphones1.setTsafeuser1(null); + + return tcustpersonphones1; + } + + public Set getTcustpersonphones2() { + return this.tcustpersonphones2; + } + + public void setTcustpersonphones2(Set tcustpersonphones2) { + this.tcustpersonphones2 = tcustpersonphones2; + } + + public Tcustpersonphone addTcustpersonphones2(Tcustpersonphone tcustpersonphones2) { + getTcustpersonphones2().add(tcustpersonphones2); + tcustpersonphones2.setTsafeuser2(this); + + return tcustpersonphones2; + } + + public Tcustpersonphone removeTcustpersonphones2(Tcustpersonphone tcustpersonphones2) { + getTcustpersonphones2().remove(tcustpersonphones2); + tcustpersonphones2.setTsafeuser2(null); + + return tcustpersonphones2; + } + + public Set getTsafeuserprofiles() { + return this.tsafeuserprofiles; + } + + public void setTsafeuserprofiles(Set tsafeuserprofiles) { + this.tsafeuserprofiles = tsafeuserprofiles; + } + + public Tsafeuserprofile addTsafeuserprofile(Tsafeuserprofile tsafeuserprofile) { + getTsafeuserprofiles().add(tsafeuserprofile); + tsafeuserprofile.setTsafeuser(this); + + return tsafeuserprofile; + } + + public Tsafeuserprofile removeTsafeuserprofile(Tsafeuserprofile tsafeuserprofile) { + getTsafeuserprofiles().remove(tsafeuserprofile); + tsafeuserprofile.setTsafeuser(null); + + return tsafeuserprofile; + } + + public Long getPersonCode() { + return personCode; + } + + public void setPersonCode(Long personCode) { + this.personCode = personCode; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserdetail.java b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserdetail.java new file mode 100644 index 0000000..5917754 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserdetail.java @@ -0,0 +1,240 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.sql.Timestamp; + +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Version; + + +/** + * The persistent class for the TSAFEUSERDETAIL database table. + * + */ +@Entity +public class Tsafeuserdetail implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TsafeuserdetailPK id; + + private String activateuser; + + private Long areacode; + + private Long branchcode; + + private String branchfromterminal; + + private String changepassword; + + private String channelcode; + + private Long companycode; + + private Timestamp datefrom; + + private String ingressuser; + + private String isuserbpm; + + private String languagecode; + + private String modifyuser; + + private String nickname; + + private Long officecode; + + private String password; + + @Version + private Long recordversion; + + private String terminalcode; + + private String userstatuscatalog; + + private String userstatuscatalogcode; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="USERCODE", insertable=false, updatable=false) + private Tsafeuser tsafeuser; + + public Tsafeuserdetail() { + } + + public TsafeuserdetailPK getId() { + return this.id; + } + + public void setId(TsafeuserdetailPK id) { + this.id = id; + } + + public String getActivateuser() { + return this.activateuser; + } + + public void setActivateuser(String activateuser) { + this.activateuser = activateuser; + } + + public Long getAreacode() { + return this.areacode; + } + + public void setAreacode(Long areacode) { + this.areacode = areacode; + } + + public Long getBranchcode() { + return this.branchcode; + } + + public void setBranchcode(Long branchcode) { + this.branchcode = branchcode; + } + + public String getBranchfromterminal() { + return this.branchfromterminal; + } + + public void setBranchfromterminal(String branchfromterminal) { + this.branchfromterminal = branchfromterminal; + } + + public String getChangepassword() { + return this.changepassword; + } + + public void setChangepassword(String changepassword) { + this.changepassword = changepassword; + } + + public String getChannelcode() { + return this.channelcode; + } + + public void setChannelcode(String channelcode) { + this.channelcode = channelcode; + } + + public Long getCompanycode() { + return this.companycode; + } + + public void setCompanycode(Long companycode) { + this.companycode = companycode; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getIsuserbpm() { + return this.isuserbpm; + } + + public void setIsuserbpm(String isuserbpm) { + this.isuserbpm = isuserbpm; + } + + public String getLanguagecode() { + return this.languagecode; + } + + public void setLanguagecode(String languagecode) { + this.languagecode = languagecode; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public String getNickname() { + return this.nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } + + public Long getOfficecode() { + return this.officecode; + } + + public void setOfficecode(Long officecode) { + this.officecode = officecode; + } + + public String getPassword() { + return this.password; + } + + public void setPassword(String password) { + this.password = password; + } + + public Long getRecordversion() { + return this.recordversion; + } + + public void setRecordversion(Long recordversion) { + this.recordversion = recordversion; + } + + public String getTerminalcode() { + return this.terminalcode; + } + + public void setTerminalcode(String terminalcode) { + this.terminalcode = terminalcode; + } + + public String getUserstatuscatalog() { + return this.userstatuscatalog; + } + + public void setUserstatuscatalog(String userstatuscatalog) { + this.userstatuscatalog = userstatuscatalog; + } + + public String getUserstatuscatalogcode() { + return this.userstatuscatalogcode; + } + + public void setUserstatuscatalogcode(String userstatuscatalogcode) { + this.userstatuscatalogcode = userstatuscatalogcode; + } + + public Tsafeuser getTsafeuser() { + return this.tsafeuser; + } + + public void setTsafeuser(Tsafeuser tsafeuser) { + this.tsafeuser = tsafeuser; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserdetailPK.java b/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserdetailPK.java new file mode 100644 index 0000000..7ac428a --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserdetailPK.java @@ -0,0 +1,77 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TSAFEUSERDETAIL database table. + * + */ +@Embeddable +public class TsafeuserdetailPK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column + private String usercode; + + private Long personcode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TsafeuserdetailPK() { + } + + public TsafeuserdetailPK(String usercode, Long personcode, Date dateto) { + super(); + this.usercode = usercode; + this.personcode = personcode; + this.dateto = dateto; + } + + public String getUsercode() { + return this.usercode; + } + public void setUsercode(String usercode) { + this.usercode = usercode; + } + public Long getPersoncode() { + return this.personcode; + } + public void setPersoncode(Long personcode) { + this.personcode = personcode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TsafeuserdetailPK)) { + return false; + } + TsafeuserdetailPK castOther = (TsafeuserdetailPK)other; + return + this.usercode.equals(castOther.usercode) + && (this.personcode == castOther.personcode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.usercode.hashCode(); + hash = hash * prime + this.personcode.hashCode(); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserprofile.java b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserprofile.java new file mode 100644 index 0000000..c589524 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/Tsafeuserprofile.java @@ -0,0 +1,73 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import javax.persistence.*; +import java.sql.Timestamp; + + +/** + * The persistent class for the TSAFEUSERPROFILE database table. + * + */ +@Entity +public class Tsafeuserprofile implements Serializable { + private static final long serialVersionUID = 1L; + + @EmbeddedId + private TsafeuserprofilePK id; + + private Timestamp datefrom; + + private String ingressuser; + + private String modifyuser; + + //bi-directional many-to-one association to Tsafeuser + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="USERCODE", insertable=false, updatable=false) + private Tsafeuser tsafeuser; + + public Tsafeuserprofile() { + } + + public TsafeuserprofilePK getId() { + return this.id; + } + + public void setId(TsafeuserprofilePK id) { + this.id = id; + } + + public Timestamp getDatefrom() { + return this.datefrom; + } + + public void setDatefrom(Timestamp datefrom) { + this.datefrom = datefrom; + } + + public String getIngressuser() { + return this.ingressuser; + } + + public void setIngressuser(String ingressuser) { + this.ingressuser = ingressuser; + } + + public String getModifyuser() { + return this.modifyuser; + } + + public void setModifyuser(String modifyuser) { + this.modifyuser = modifyuser; + } + + public Tsafeuser getTsafeuser() { + return this.tsafeuser; + } + + public void setTsafeuser(Tsafeuser tsafeuser) { + this.tsafeuser = tsafeuser; + } + +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserprofilePK.java b/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserprofilePK.java new file mode 100644 index 0000000..2ae8aa9 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/model/TsafeuserprofilePK.java @@ -0,0 +1,78 @@ +package com.fp.armas.portal.model; + +import java.io.Serializable; +import java.util.Date; + +import javax.persistence.*; + +/** + * The primary key class for the TSAFEUSERPROFILE database table. + * + */ +@Embeddable +public class TsafeuserprofilePK implements Serializable { + //default serial version id, required for serializable classes. + private static final long serialVersionUID = 1L; + + @Column(updatable=false) + private String usercode; + + @Column(updatable=false) + private String profilecode; + + @Temporal(TemporalType.TIMESTAMP) + private java.util.Date dateto; + + public TsafeuserprofilePK() { + } + + public TsafeuserprofilePK(String usercode, String profilecode, Date dateto) { + super(); + this.usercode = usercode; + this.profilecode = profilecode; + this.dateto = dateto; + } + + public String getUsercode() { + return this.usercode; + } + public void setUsercode(String usercode) { + this.usercode = usercode; + } + public String getProfilecode() { + return this.profilecode; + } + public void setProfilecode(String profilecode) { + this.profilecode = profilecode; + } + public java.util.Date getDateto() { + return this.dateto; + } + public void setDateto(java.util.Date dateto) { + this.dateto = dateto; + } + + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof TsafeuserprofilePK)) { + return false; + } + TsafeuserprofilePK castOther = (TsafeuserprofilePK)other; + return + this.usercode.equals(castOther.usercode) + && this.profilecode.equals(castOther.profilecode) + && this.dateto.equals(castOther.dateto); + } + + public int hashCode() { + final int prime = 31; + int hash = 17; + hash = hash * prime + this.usercode.hashCode(); + hash = hash * prime + this.profilecode.hashCode(); + hash = hash * prime + this.dateto.hashCode(); + + return hash; + } +} \ No newline at end of file diff --git a/ejb/src/main/java/com/fp/armas/portal/service/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/service/.svn/entries new file mode 100644 index 0000000..65e1781 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/service +svn://172.17.26.185/COMACO + + + +2016-03-18T19:28:02.833033Z +4511 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +RegistroBean.java +file + + + + +2022-07-28T03:45:35.058067Z +7db806e2d2a2b62330bbd1b6e6a82bd7 +2016-03-18T19:28:02.833033Z +4511 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +35986 + +SequenceBean.java +file + + + + +2022-07-28T03:45:35.058067Z +eb03b5a2047906eae5857311f52dacd6 +2015-01-23T13:46:47.553835Z +3805 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1947 + diff --git a/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/RegistroBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/RegistroBean.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/RegistroBean.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/SequenceBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/SequenceBean.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/.svn/prop-base/SequenceBean.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/RegistroBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/RegistroBean.java.svn-base new file mode 100644 index 0000000..3c6d0f5 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/RegistroBean.java.svn-base @@ -0,0 +1,913 @@ +package com.fp.armas.portal.service; + +import java.sql.Timestamp; +import java.text.MessageFormat; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +import javax.ejb.EJB; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; +import javax.persistence.Query; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.SerializationUtils; + +import com.fp.armas.portal.dao.registro.ActividadEconomicaDao; +import com.fp.armas.portal.dao.registro.ArchivoDao; +import com.fp.armas.portal.dao.registro.ArchivoDetalleDao; +import com.fp.armas.portal.dao.registro.CantonDao; +import com.fp.armas.portal.dao.registro.CatalogoDao; +import com.fp.armas.portal.dao.registro.CiudadDao; +import com.fp.armas.portal.dao.registro.CompaniaDao; +import com.fp.armas.portal.dao.registro.DireccionPersonaDao; +import com.fp.armas.portal.dao.registro.PaisDao; +import com.fp.armas.portal.dao.registro.ParroquiaDao; +import com.fp.armas.portal.dao.registro.PersonaDao; +import com.fp.armas.portal.dao.registro.PersonaDetalleDao; +import com.fp.armas.portal.dao.registro.PersonaNaturalDao; +import com.fp.armas.portal.dao.registro.ProvinciaDao; +import com.fp.armas.portal.dao.registro.TelefonoPersonaDao; +import com.fp.armas.portal.dao.registro.UsuarioDao; +import com.fp.armas.portal.dao.registro.UsuarioDetalleDao; +import com.fp.armas.portal.dao.registro.UsuarioPerfilDao; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.TcustcompanyPK; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.TcustpeoplePK; +import com.fp.armas.portal.model.Tcustperson; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.TcustpersonaddressPK; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.TcustpersondetailPK; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.TcustpersonphonePK; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefile; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.TgenefilesdetailPK; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.model.Tsafeuser; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.model.TsafeuserdetailPK; +import com.fp.armas.portal.model.Tsafeuserprofile; +import com.fp.armas.portal.model.TsafeuserprofilePK; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; +import com.fp.general.mail.EnvioMail; +import com.fp.general.mail.dto.EnvioCorreoDTO; +import com.fp.general.mail.exception.EnvioMailException; +import com.fp.general.mail.factory.EnvioMailFactory; + +/** + * Servicio que maneja la lógica del registro de usuarios + * @author dcruz + * + */ +@Stateless +@TransactionAttribute(TransactionAttributeType.MANDATORY) +public class RegistroBean { + + /** + * Bean que maneja las secuencias + */ + @EJB + private SequenceBean sequenceBean; + + /** + * Referencia al {@link CatalogoDao} + */ + @Inject + private CatalogoDao catalogoDao; + + /** + * Referencia al {@link ActividadEconomicaDao} + */ + @Inject + private ActividadEconomicaDao actividadEconomicaDao; + + /** + * Referencia al {@link PaisDao} + */ + @Inject + private PaisDao paisDao; + + /** + * Referencia al DAO {@link ProvinciaDao} + */ + @Inject + private ProvinciaDao provinciaDao; + + /** + * Referencia al {@link CantonDao} + */ + @Inject + private CantonDao cantonDao; + + /** + * Referencia al DAO {@link ParroquiaDao} + */ + @Inject + private ParroquiaDao parroquiaDao; + + /** + * Referencia al DAO {@link CiudadDao} + */ + @Inject + private CiudadDao ciudadDao; + + /** + * Referencia al DAO {@link PersonaDao} + */ + @Inject + private PersonaDao personaDao; + + /** + * Referencia al DAO {@link PersonaDetalleDao} + */ + @Inject + private PersonaDetalleDao personaDetalleDao; + + /** + * Referencia al DAO {@link DireccionPersonaDao} + */ + @Inject + private DireccionPersonaDao direccionPersonaDao; + + /** + * Referencia al DAO {@link TelefonoPersonaDao} + */ + @Inject + private TelefonoPersonaDao telefonoPersonaDao; + + /** + * Referencia al DAO {@link PersonaNaturalDao} + */ + @Inject + private PersonaNaturalDao personaNaturalDao; + + /** + * Referencia al DAO {@link CompaniaDao} + */ + @Inject + private CompaniaDao companiaDao; + + /** + * Referencia al DAO {@link UsuarioDao} + */ + @Inject + private UsuarioDao usuarioDao; + + /** + * Referencia al DAO {@link UsuarioDetalleDao} + */ + @Inject + private UsuarioDetalleDao usuarioDetalleDao; + + /** + * Referencia al DAO {@link UsuarioPerfilDao} + */ + @Inject + private UsuarioPerfilDao usuarioPerfilDao; + + /** + * Referencia al DAO {@link ArchivoDao} + */ + @Inject + private ArchivoDao archivoDao; + + /** + * Referencia al DAO {@link ArchivoDetalleDao} + */ + @Inject + private ArchivoDetalleDao archivoDetalleDao; + + /** + * Retorna una colección de catálogos en base al codigo de catálogo ingresado + * @param codigoTipo + * @return + * @throws RegistroException + */ + public Collection obtenerCatalogo(String codigoTipo) throws RegistroException{ + try{ + return catalogoDao.buscarCatalogo(codigoTipo); + }catch (Throwable e){ + throw new RegistroException(e); + } + } + + /** + * Retorna las actividades económicas disponibles + * @return + * @throws RegistroException + */ + public Collection obtenerActividades() throws RegistroException{ + try { + return actividadEconomicaDao.buscarActividadEconomicas(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna un catálogo por código y legalcode + * @param codigoTipo + * @param legalCode + * @return + */ + public Collection obtenerCalogo(String codigoTipo, String legalCode) { + try { + return catalogoDao.buscarCatalogo(codigoTipo, legalCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna los países disponibles en el sistema + * @return + */ + public Collection obtenerPaises() { + try { + return paisDao.buscarPaises(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las provincias de un país + * @param countryCode + * @return + */ + public Collection obtenerProvincias(String countryCode) { + try { + return provinciaDao.buscarProvinciasxPais(countryCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna los cantones de una provincia + * @param countryCode + * @param provinceCode + * @return + */ + public Collection obtenerCantones(String countryCode, String provinceCode) { + try { + return cantonDao.buscarCantonesxPaisyProvincia(countryCode, provinceCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las parroquias de un cantón + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection obtenerParroquias(String countryCode, String provinceCode, String cantonCode) { + try { + return parroquiaDao.buscarParroquias(countryCode, provinceCode, cantonCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las ciudades de un cantón + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection obtenerCiudades(String countryCode, String provinceCode, String cantonCode) { + try { + return ciudadDao.buscarCiudad(countryCode, provinceCode, cantonCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Genera un nuevo usuario con todas sus características + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @throws RegistroException + */ + public void guardarUsuario(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException { + try { + Tcustperson personaExistente = null; + if(persona.getId() != null && persona.getId().getPersoncode() != 0){ + personaExistente = personaDao.buscarPorId(persona.getId().getPersoncode()); + } + if(personaExistente == null){ + Future personCode = sequenceBean.retornaSecuencia("PERSONCODE"); //busco la secuencia en otro hilo de ejecucion + Tcustperson personaRaiz = new Tcustperson(); + Long codigoPersona = personCode.get(); + personaRaiz.setPersoncode(codigoPersona); + personaDao.create(personaRaiz);//creo persona y preparo datos para generar personadetail + persona.setId(new TcustpersondetailPK()); + persona.getId().setPersoncode(personaRaiz.getPersoncode()); + } + switch(persona.getIdentificationcatalog()){ + case "CED": case "PAS":{//firstname + StringBuilder nombre = new StringBuilder(adicionalPersona.getFirstname() != null ? adicionalPersona.getFirstname():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getMiddlename() != null ? adicionalPersona.getMiddlename():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getLastname() != null ? adicionalPersona.getLastname():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getSurename() != null ? adicionalPersona.getSurename():""); + persona.setName(nombre.toString()); + persona.setPersontypecatalog("1"); + persona.setPersontypecatalogcode("PERSONTYPE"); + } + break; + default: { + persona.setPersontypecatalog("2"); + persona.setPersontypecatalogcode("PERSONTYPE"); + } + break; + } + this.guardaPersonaDetalle(persona); + this.guardarDireccionesPersona(persona, direccionPersona, correoPersona); + this.guardarTelefonosPersona(persona, direccionPersona, telefonoPersona, telefonoCelular); + this.guardaDetallesPersonaNatural(persona, adicionalPersona); + this.guardaCompania(persona, compania, foto); + this.guardarUsuario(persona, correoPersona); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Obtiene persona por identificación + * @param codigoIdentificacion + * @return + * @throws RegistroException + */ + public Tcustpersondetail obtenerPersonaPorIdentificacion(String codigoIdentificacion) throws RegistroException{ + try{ + return personaDetalleDao.buscarPorIdentificacion(codigoIdentificacion); + }catch(Throwable e){ + throw new RegistroException(e); + } + } + + /** + * Obtener companía en base al id + * @param personcode + * @return + * @throws RegistroException + */ + public Tcustcompany obtenerCompania(Integer personcode) throws RegistroException{ + try { + TcustcompanyPK pk = new TcustcompanyPK(); + pk.setPersoncode(personcode); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return companiaDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Obtener información de la persona natural en base al id + * @param personcode + * @return + */ + public Tcustpeople obtenerPersonaNaturalId(Integer personcode) { + try { + TcustpeoplePK pk = new TcustpeoplePK(); + pk.setPersoncode(personcode); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return personaNaturalDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve la dirección principal de la persona + * @param personcode + * @return + */ + public Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) { + try { + return direccionPersonaDao.buscaDireccionPrincipal(personcode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve la dirección de correo de la persona + * @param personcode + * @return + */ + public Tcustpersonaddress obtenerDireccionCorreo(Integer personcode) { + try { + return direccionPersonaDao.buscaDireccionPorTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.direccion.correo")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve el teléfono fijo de la persona + * @param personcode + * @return + */ + public Tcustpersonphone obtenerTelefonoFijo(Integer personcode) { + try { + return telefonoPersonaDao.obtenerTelefonoTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.telefono.fijo")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve el teléfono celular de la persona + * @param personcode + * @return + */ + public Tcustpersonphone obtenerTelefonoCelular(Integer personcode) { + try { + return telefonoPersonaDao.obtenerTelefonoTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.telefono.celular")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + /** + * Método en donde almaceno los detalles del usuario, datos adicionales + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + */ + private void guardaPersonaDetalle(Tcustpersondetail persona){ + try { + Tcustpersondetail personaAnterior = personaDetalleDao.buscarPorId(new TcustpersondetailPK(persona.getId().getPersoncode(), persona.getId().getDateto())); + if(personaAnterior == null){ + persona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + persona.setDatefrom(new Timestamp(System.currentTimeMillis())); + persona.setRecordversion(0L); + persona.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + persona.setLanguagecode(PortalMessages.getInstancia().getString("codigo.general.lenguaje")); + persona.setCompanycode(1L); + persona.setBranchcode(1L); + persona.setOfficecode(1L); + persona.setIdentificationcatalogcode("IDENTIFICATION"); + persona.setRegisterdate(Calendar.getInstance().getTime()); + personaDetalleDao.create(persona); + } else{//actualizacion + personaDetalleDao.detach(personaAnterior); + personaAnterior.getId().setDateto(new Date()); + personaAnterior.setIdentificationcatalogcode("IDENTIFICATION"); + personaDetalleDao.create(personaAnterior); + persona.setIdentificationcatalogcode("IDENTIFICATION"); + personaDetalleDao.update(persona); + } + + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno la información de las direcciones de las personas + * @param persona + * @param direccionPersona + * @param correoPersona + */ + private void guardarDireccionesPersona(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona){ + try { + // Limpiar las direcciones domicilio previas existentes en caso de existir + ListdireccionesDomPreviasLst = direccionPersonaDao.buscaDireccionesPorTipo(persona.getId().getPersoncode(), "2"); + if(direccionesDomPreviasLst!=null){ + for(Tcustpersonaddress direccionTmp:direccionesDomPreviasLst){ + direccionTmp.getId().setDateto(new Date()); + direccionPersonaDao.update(direccionTmp); + direccionPersonaDao.getEntityManager().flush(); + } + } + // Limpiar las direcciones correo previas existentes en caso de existir + ListdireccionesCorreoPreviasLst = direccionPersonaDao.buscaDireccionesPorTipo(persona.getId().getPersoncode(), "3"); + if(direccionesCorreoPreviasLst!=null){ + for(Tcustpersonaddress direccionTmp:direccionesCorreoPreviasLst){ + direccionTmp.getId().setDateto(new Date()); + direccionPersonaDao.update(direccionTmp); + direccionPersonaDao.getEntityManager().flush(); + } + } + if(direccionPersona.getId() == null || direccionPersona.getId().getPersoncode() == 0){ + //Ingreso la direccion de residencia de la persona + direccionPersona.setId(new TcustpersonaddressPK()); + direccionPersona.getId().setPersoncode(persona.getId().getPersoncode()); + direccionPersona.getId().setAddressnumber(1L); + direccionPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionPersona.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionPersona.setRecordversion(0L); + direccionPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + Tcustpersonaddress direccionAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(direccionPersona.getId().getPersoncode(), direccionPersona.getId().getAddressnumber(), direccionPersona.getId().getDateto())); + if(direccionAnterior==null){ + direccionPersonaDao.create(direccionPersona); + } + else{ + direccionAnterior.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionAnterior.setAddress(direccionPersona.getAddress()); + direccionAnterior.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionAnterior.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersonaDao.update(direccionAnterior); + } + } + else{ +// Tcustpersonaddress direccionAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(direccionPersona.getId().getPersoncode(), direccionPersona.getId().getAddressnumber(), direccionPersona.getId().getDateto())); +// if(direccionAnterior != null){ +// direccionPersonaDao.detach(direccionAnterior); +// direccionAnterior.getId().setDateto(new Date()); +// direccionPersonaDao.create(direccionAnterior); +// } + direccionPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionPersona.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionPersonaDao.update(direccionPersona); + } + if(correoPersona.getId() == null || correoPersona.getId().getPersoncode() == 0){ + //Ingreso la direccion de correo de la persona + correoPersona.setId(new TcustpersonaddressPK()); + correoPersona.getId().setPersoncode(persona.getId().getPersoncode()); + correoPersona.getId().setAddressnumber(2L); + correoPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + correoPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + correoPersona.setRecordversion(0L); + correoPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + Tcustpersonaddress correoAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(correoPersona.getId().getPersoncode(), correoPersona.getId().getAddressnumber(), correoPersona.getId().getDateto())); + if(correoAnterior==null){ + direccionPersonaDao.create(correoPersona); + } + else{ + correoAnterior.getId().setAddressnumber(2L); + correoAnterior.setAddress(correoPersona.getAddress()); + correoAnterior.setAddresstypecatalog("3"); + correoAnterior.setCountryCode(null); + correoAnterior.setProvinceCode(null); + correoAnterior.setCantonCode(null); + correoAnterior.setCityCode(null); + correoAnterior.setParroquiaCode(null); + correoAnterior.setPrincipal(null); + correoAnterior.setDatefrom(new Timestamp(System.currentTimeMillis())); + correoAnterior.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersonaDao.update(correoAnterior); + } + } + else{ +// Tcustpersonaddress correoAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(correoPersona.getId().getPersoncode(), correoPersona.getId().getAddressnumber(), correoPersona.getId().getDateto())); +// if(correoAnterior != null){ +// direccionPersonaDao.detach(correoAnterior); +// correoAnterior.getId().setDateto(new Date()); +// direccionPersonaDao.create(correoAnterior); +// } + direccionPersonaDao.update(correoPersona); + } + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno la información correspondientes a los teléfonos de la persona + * @param persona + * @param telefonoPersona + * @param telefonoCelular + */ + private void guardarTelefonosPersona(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular){ + try { + // Limpiar los telefonos previos convencionales existentes en caso de existir + ListtelefonoConvPreviosLst = telefonoPersonaDao.obtenerTelefonosPorTipo(persona.getId().getPersoncode(), "1"); + if(telefonoConvPreviosLst!=null){ + for(Tcustpersonphone telefonoTmp:telefonoConvPreviosLst){ + telefonoTmp.getId().setDateto(new Date()); + telefonoPersonaDao.update(telefonoTmp); + } + } + // Limpiar los telefonos previos celulares existentes en caso de existir + ListtelefonoCelularPreviosLst = telefonoPersonaDao.obtenerTelefonosPorTipo(persona.getId().getPersoncode(), "2"); + if(telefonoCelularPreviosLst!=null){ + for(Tcustpersonphone telefonoTmp:telefonoCelularPreviosLst){ + telefonoTmp.getId().setDateto(new Date()); + telefonoPersonaDao.update(telefonoTmp); + } + } + + if(telefonoPersona.getId() == null || telefonoPersona.getId().getPersoncode() == 0){ + Long sec=telefonoPersonaDao.maxSecuencia(persona.getId().getPersoncode()); + //El telefono corresponde a la direccion de la persona + telefonoPersona.setId(new TcustpersonphonePK()); + telefonoPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + if(sec==null || sec==0){ + telefonoPersona.getId().setPhonesequence(1L); + }else{ + telefonoPersona.getId().setPhonesequence(sec+1L); + } + telefonoPersona.getId().setPersoncode(persona.getId().getPersoncode()); + telefonoPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + telefonoPersona.setAddressnumber(direccionPersona.getId().getAddressnumber()); + telefonoPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + telefonoPersonaDao.create(telefonoPersona); + } + else{ +// Tcustpersonphone telefonoPersonaAnterior = telefonoPersonaDao.buscarPorId(new TcustpersonphonePK(telefonoPersona.getId().getPersoncode(), telefonoPersona.getId().getDateto(),telefonoPersona.getId().getPhonesequence())); +// if(telefonoPersonaAnterior != null){ +// telefonoPersonaDao.detach(telefonoPersonaAnterior); +// telefonoPersonaAnterior.getId().setDateto(new Date()); +// telefonoPersonaDao.update(telefonoPersonaAnterior); +// } + telefonoPersonaDao.update(telefonoPersona); + } + if(telefonoCelular.getId() == null || telefonoCelular.getId().getPersoncode() == 0){ + //Almaceno el telefono celular + telefonoCelular.setId(new TcustpersonphonePK()); + telefonoCelular.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + Long sec=telefonoPersonaDao.maxSecuencia(persona.getId().getPersoncode()); + if(sec==null || sec==0){ + telefonoCelular.getId().setPhonesequence(1L); + }else{ + telefonoCelular.getId().setPhonesequence(sec+1L); + } + //telefonoCelular.getId().setPhonesequence(2L); + telefonoCelular.getId().setPersoncode(persona.getId().getPersoncode()); + telefonoCelular.setDatefrom(new Timestamp(System.currentTimeMillis())); + telefonoCelular.setAddressnumber(direccionPersona.getId().getAddressnumber()); + telefonoCelular.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + telefonoPersonaDao.create(telefonoCelular); + } + else{ +// Tcustpersonphone telefonoCelularAnterior = telefonoPersonaDao.buscarPorId(new TcustpersonphonePK(telefonoCelular.getId().getPersoncode(), telefonoCelular.getId().getDateto(), telefonoCelular.getId().getPhonesequence())); +// if(telefonoCelularAnterior != null){ +// telefonoPersonaDao.detach(telefonoCelularAnterior); +// telefonoCelularAnterior.getId().setDateto(new Date()); +// telefonoPersonaDao.update(telefonoCelularAnterior); +// } + telefonoPersonaDao.update(telefonoCelular); + } + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno información adicional siempre y cuando la persona sea de tipo natural + * @param persona + */ + private void guardaDetallesPersonaNatural(Tcustpersondetail persona, Tcustpeople adicionalPersona){ + // Actualizar dateto de registros previos vigentes + ListpersonasNaturalesPreviasLst = personaNaturalDao.buscaPersonaNatural(persona.getId().getPersoncode()); + if(personasNaturalesPreviasLst!=null){ + for(Tcustpeople peopleTmp:personasNaturalesPreviasLst){ + peopleTmp.getId().setDateto(new Date()); + personaNaturalDao.update(peopleTmp); + } + } + + //Si no es natural no se debe anadir detalles + if(!persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.cedula")) && !persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.pas"))){ + return; + } + if(adicionalPersona.getId() == null || adicionalPersona.getId().getPersoncode() == 0){ + adicionalPersona.setId(new TcustpeoplePK()); + adicionalPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + adicionalPersona.getId().setPersoncode(persona.getId().getPersoncode()); + adicionalPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + adicionalPersona.setRecordversion(0L); + adicionalPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + personaNaturalDao.create(adicionalPersona); + } + else{ +// Tcustpeople adicionalAnterior = personaNaturalDao.buscarPorId(new TcustpeoplePK(adicionalPersona.getId().getPersoncode(), adicionalPersona.getId().getDateto())); +// if(adicionalAnterior != null){ +// personaNaturalDao.detach(adicionalAnterior); +// adicionalAnterior.getId().setDateto(new Date()); +// personaNaturalDao.update(adicionalAnterior); +// } + personaNaturalDao.update(adicionalPersona); + } + } + + /** + * Guarda la companía si es que es persona jurídica + * @param persona + * @param compania + * @param foto + * @throws InterruptedException + * @throws ExecutionException + */ + private void guardaCompania(Tcustpersondetail persona, Tcustcompany compania, Tgenefilesdetail foto) throws InterruptedException, ExecutionException { + if(!persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.ruc"))){ + return; + } + if(compania.getId() == null || compania.getId().getPersoncode() == 0){ + compania.setId(new TcustcompanyPK()); + compania.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + compania.getId().setPersoncode(persona.getId().getPersoncode()); + compania.setDatefrom(new Timestamp(System.currentTimeMillis())); + compania.setLogo(guardaFoto(foto)); + compania.setRecordversion(0L); + compania.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + companiaDao.create(compania); + } else{ + Tcustcompany companiaAnterior = companiaDao.buscarPorId(new TcustcompanyPK(compania.getId().getPersoncode(), compania.getId().getDateto())); + if(companiaAnterior != null){ + companiaDao.detach(companiaAnterior); + companiaAnterior.getId().setDateto(new Date()); + companiaDao.create(companiaAnterior); + } + Tgenefilesdetail fotoBase = archivoDetalleDao.buscarPorId(new TgenefilesdetailPK(compania.getLogo() != null ? compania.getLogo() : -1, FechaUtil.obtenerFecha(2999, 11, 31))); + if(fotoBase != null){ + fotoBase.setImage(foto.getImage()); + archivoDetalleDao.update(fotoBase); + } else{ + compania.setLogo(guardaFoto(foto)); + } + companiaDao.update(compania); + } + } + + /** + * Almacena la foto o logo de la persona natural o jurídica + * @param fotoDetalle + * @return + * @throws InterruptedException + * @throws ExecutionException + */ + private Integer guardaFoto(Tgenefilesdetail fotoDetalle) throws InterruptedException, ExecutionException{ + Long idFoto = null; + if(fotoDetalle != null && fotoDetalle.getImage() != null){ + Future code = sequenceBean.retornaSecuencia("CODE"); + Tgenefile foto = new Tgenefile(); + fotoDetalle.setId(new TgenefilesdetailPK()); + fotoDetalle.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + fotoDetalle.setDatefrom(new Timestamp(System.currentTimeMillis())); + fotoDetalle.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + idFoto = code.get(); + foto.setCode(idFoto); + fotoDetalle.getId().setCode(foto.getCode()); + archivoDao.create(foto); + archivoDetalleDao.create(fotoDetalle); + } + return idFoto != null ? idFoto.intValue() : null; + } + + /** + * Guardo el usuario y el detalles de dicho usuario asociado a una persona y perfil default + * @throws ExecutionException + * @throws InterruptedException + */ + @SuppressWarnings("unchecked") + private void guardarUsuario(Tcustpersondetail persona, Tcustpersonaddress correoPersona) throws InterruptedException, ExecutionException{ + String claveAleatoria = generarClaveAleatoria(); + Tsafeuserdetail usuarioDetalle = new Tsafeuserdetail(); + List userDetailList = usuarioDetalleDao.buscaUserDetail(persona.getId().getPersoncode()); +// if(persona.getId() == null || persona.getId().getPersoncode() == 0){ + if(userDetailList==null){ + crearUsuario(usuarioDetalle, persona, claveAleatoria); + crearUsuarioPerfil(usuarioDetalle); + } else{ + Query query = usuarioDetalleDao.getEntityManager().createQuery("SELECT o FROM Tsafeuserdetail o WHERE o.id.personcode=:personcode and o.id.dateto=:dateto"); + query.setParameter("personcode", persona.getId().getPersoncode()); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List lusers = query.getResultList(); + if(lusers != null && !lusers.isEmpty()){//existe actualizamos + usuarioDetalle = lusers.iterator().next(); + Tsafeuserdetail usuarioAnterior = SerializationUtils.clone(usuarioDetalle); + usuarioDetalleDao.detach(usuarioAnterior); + usuarioAnterior.getId().setDateto(new Date()); + usuarioDetalleDao.create(usuarioAnterior); + usuarioDetalle.setPassword(SerializationUtils.clone(DigestUtils.sha1Hex(claveAleatoria))); + usuarioDetalleDao.update(usuarioDetalle); + } else{//no existe creamos con todo y perfil + crearUsuario(usuarioDetalle, persona, claveAleatoria); + crearUsuarioPerfil(usuarioDetalle); + } + } + this.enviarMailAcceso(persona, usuarioDetalle, correoPersona, claveAleatoria); + } + + private void crearUsuario(Tsafeuserdetail usuarioDetalle, Tcustpersondetail persona, String claveAleatoria) throws InterruptedException, ExecutionException{ + Tsafeuser usuario = new Tsafeuser(); + Future internalCode = sequenceBean.retornaSecuencia("INTERNALCODE"); + usuario.setCompanycode(Long.parseLong(PortalMessages.getInstancia().getString("compania.general"))); + usuario.setTcustperson(persona.getTcustperson()); + usuario.setUsercode(persona.getIdentification()); + usuario.setPersonCode(persona.getId().getPersoncode()); + usuario.setInternalcode(internalCode.get()); + List usuariosList= usuarioDao.buscaUsers(persona.getIdentification()); + if(usuariosList==null){ + usuarioDao.create(usuario); + } + usuarioDetalle.setId(new TsafeuserdetailPK()); + usuarioDetalle.getId().setUsercode(usuario.getUsercode()); + usuarioDetalle.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + usuarioDetalle.getId().setPersoncode(persona.getId().getPersoncode()); + usuarioDetalle.setDatefrom(new Timestamp(System.currentTimeMillis())); + usuarioDetalle.setLanguagecode(PortalMessages.getInstancia().getString("codigo.general.lenguaje")); + usuarioDetalle.setCompanycode(Long.parseLong(PortalMessages.getInstancia().getString("compania.general"))); + usuarioDetalle.setChannelcode(PortalMessages.getInstancia().getString("codigo.canal.validacion.usuario")); + usuarioDetalle.setAreacode(Long.parseLong(PortalMessages.getInstancia().getString("area.general"))); + usuarioDetalle.setBranchcode(Long.parseLong(PortalMessages.getInstancia().getString("codigo.sucursal.usuario"))); + usuarioDetalle.setOfficecode(Long.parseLong(PortalMessages.getInstancia().getString("codigo.oficina.usuario"))); + usuarioDetalle.setUserstatuscatalogcode(PortalMessages.getInstancia().getString("catalogo.codigo.estado.usuario")); + usuarioDetalle.setUserstatuscatalog(PortalMessages.getInstancia().getString("valor.general.activo")); + usuarioDetalle.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioDetalle.setIsuserbpm(PortalMessages.getInstancia().getString("valor.general.si")); + usuarioDetalle.setChangepassword(PortalMessages.getInstancia().getString("valor.general.si")); + usuarioDetalle.setActivateuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioDetalle.setPassword(DigestUtils.sha1Hex(SerializationUtils.clone(claveAleatoria))); + usuarioDetalle.setNickname(persona.getIdentification()); + usuarioDetalle.setRecordversion(0L); + usuarioDetalleDao.create(usuarioDetalle); + } + + private void crearUsuarioPerfil(Tsafeuserdetail usuarioDetalle){ + Tsafeuserprofile perfilUsuario = new Tsafeuserprofile(); + perfilUsuario.setId(new TsafeuserprofilePK()); + perfilUsuario.getId().setProfilecode(PortalMessages.getInstancia().getString("codigo.perfil.usuario.registro")); + perfilUsuario.getId().setUsercode(usuarioDetalle.getId().getUsercode()); + perfilUsuario.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + perfilUsuario.setDatefrom(new Timestamp(System.currentTimeMillis())); + perfilUsuario.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioPerfilDao.create(perfilUsuario); + } + + /** + * Método que genera el cuerpo del mensaje a enviar a los nuevos usuarios registrados y activación del mismos + */ + private void enviarMailAcceso(Tcustpersondetail detallePersona, Tsafeuserdetail detalleUsuario, Tcustpersonaddress correoPersona, String digest){ + try { + String asunto = PortalMessages.getInstancia().getString("asunto.mensaje.envio.correo"); + String cuerpo = MessageFormat.format(PortalMessages.getInstancia().getString("cuerpo.mensaje.envio.correo"), detallePersona.getName(), detalleUsuario.getId().getUsercode(), digest); + EnvioCorreoDTO envioCorreo = new EnvioCorreoDTO(); + envioCorreo.setCorreoDesde(PortalMessages.getInstancia().getString("correo.envio.default.notificiacion")); + envioCorreo.setCorreoPara(new String[]{correoPersona.getAddress()}); + envioCorreo.setAsunto(asunto); + envioCorreo.setMensajeHTML(cuerpo); + EnvioMail envioMail = EnvioMailFactory.getInstancia(); + envioMail.envioMail(envioCorreo); + } catch(EnvioMailException e){ + throw new RegistroException("Se produjo un error al enviar el correo"); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + private String generarClaveAleatoria(){ + return UUID.randomUUID().toString().substring(0, 8); + } + + /** + * Obtener información de las imagenes + * @param personcode + * @return + */ + public Tgenefilesdetail obtenerImagen(long code) { + try { + + TgenefilesdetailPK pk = new TgenefilesdetailPK(); + pk.setCode(code); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return archivoDetalleDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/SequenceBean.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/SequenceBean.java.svn-base new file mode 100644 index 0000000..8bb0d81 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/.svn/text-base/SequenceBean.java.svn-base @@ -0,0 +1,64 @@ +package com.fp.armas.portal.service; + +import java.math.BigDecimal; +import java.util.concurrent.Future; + +import javax.ejb.AsyncResult; +import javax.ejb.Asynchronous; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.dao.registro.SecuenciaDao; +import com.fp.armas.portal.model.Tgenesequence; +import com.fp.armas.portal.util.RegistroException; + +/** + * EJB que se encarga de obtener indices de las bases de datos, lo ejecutamos en una diferente transacción + * @author dcruz + * + */ +@Stateless +@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) +public class SequenceBean { + + /** + * DAO Genérico + */ + @Inject + private GenericDaoImpl genericDao; + + /** + * Referencia al DAO {@link SecuenciaDao} + */ + @Inject + private SecuenciaDao secuenciaDao; + + /** + * Retorna una secuencia específica + * @param codigoSecuencia + * @return + */ + @Asynchronous + public Future retornaSecuencia(String codigoSecuencia) { + Thread.currentThread().setName("SEQUENCEBEAN"); + Query query = genericDao.getEntityManager().createNativeQuery("SELECT CURRENTVALUE FROM TGENESEQUENCES WHERE CODE=:code"); + query.setParameter("code", codigoSecuencia); + Long valorSecuencia = ((BigDecimal) query.getSingleResult()).longValue(); + this.guardarSecuencia(codigoSecuencia, valorSecuencia + 1); + return new AsyncResult(valorSecuencia + 1); + } + + /** + * En este método almaceno el valor actual de secuencia y evitar duplicados + * @param codigoSecuencia + */ + public void guardarSecuencia(String codigoSecuencia, Long valorActual) throws RegistroException{ + Tgenesequence sequence = secuenciaDao.obtenerSecuencia(codigoSecuencia); + sequence.setCurrentvalue(valorActual); + secuenciaDao.update(sequence); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/service/RegistroBean.java b/ejb/src/main/java/com/fp/armas/portal/service/RegistroBean.java new file mode 100644 index 0000000..21e4a9c --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/RegistroBean.java @@ -0,0 +1,914 @@ +package com.fp.armas.portal.service; + +import java.sql.Timestamp; +import java.text.MessageFormat; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +import javax.ejb.EJB; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; +import javax.persistence.Query; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.SerializationUtils; + +import com.fp.armas.portal.dao.registro.ActividadEconomicaDao; +import com.fp.armas.portal.dao.registro.ArchivoDao; +import com.fp.armas.portal.dao.registro.ArchivoDetalleDao; +import com.fp.armas.portal.dao.registro.CantonDao; +import com.fp.armas.portal.dao.registro.CatalogoDao; +import com.fp.armas.portal.dao.registro.CiudadDao; +import com.fp.armas.portal.dao.registro.CompaniaDao; +import com.fp.armas.portal.dao.registro.DireccionPersonaDao; +import com.fp.armas.portal.dao.registro.PaisDao; +import com.fp.armas.portal.dao.registro.ParroquiaDao; +import com.fp.armas.portal.dao.registro.PersonaDao; +import com.fp.armas.portal.dao.registro.PersonaDetalleDao; +import com.fp.armas.portal.dao.registro.PersonaNaturalDao; +import com.fp.armas.portal.dao.registro.ProvinciaDao; +import com.fp.armas.portal.dao.registro.TelefonoPersonaDao; +import com.fp.armas.portal.dao.registro.UsuarioDao; +import com.fp.armas.portal.dao.registro.UsuarioDetalleDao; +import com.fp.armas.portal.dao.registro.UsuarioPerfilDao; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.TcustcompanyPK; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.TcustpeoplePK; +import com.fp.armas.portal.model.Tcustperson; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.TcustpersonaddressPK; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.TcustpersondetailPK; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.TcustpersonphonePK; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefile; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.TgenefilesdetailPK; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.model.Tsafeuser; +import com.fp.armas.portal.model.Tsafeuserdetail; +import com.fp.armas.portal.model.TsafeuserdetailPK; +import com.fp.armas.portal.model.Tsafeuserprofile; +import com.fp.armas.portal.model.TsafeuserprofilePK; +import com.fp.armas.portal.util.FechaUtil; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.util.RegistroException; +import com.fp.general.mail.EnvioMail; +import com.fp.general.mail.dto.EnvioCorreoDTO; +import com.fp.general.mail.exception.EnvioMailException; +import com.fp.general.mail.factory.EnvioMailFactory; + +/** + * Servicio que maneja la lógica del registro de usuarios + * @author dcruz + * + */ +@Stateless +@TransactionAttribute(TransactionAttributeType.MANDATORY) +public class RegistroBean { + + /** + * Bean que maneja las secuencias + */ + @EJB + private SequenceBean sequenceBean; + + /** + * Referencia al {@link CatalogoDao} + */ + @Inject + private CatalogoDao catalogoDao; + + /** + * Referencia al {@link ActividadEconomicaDao} + */ + @Inject + private ActividadEconomicaDao actividadEconomicaDao; + + /** + * Referencia al {@link PaisDao} + */ + @Inject + private PaisDao paisDao; + + /** + * Referencia al DAO {@link ProvinciaDao} + */ + @Inject + private ProvinciaDao provinciaDao; + + /** + * Referencia al {@link CantonDao} + */ + @Inject + private CantonDao cantonDao; + + /** + * Referencia al DAO {@link ParroquiaDao} + */ + @Inject + private ParroquiaDao parroquiaDao; + + /** + * Referencia al DAO {@link CiudadDao} + */ + @Inject + private CiudadDao ciudadDao; + + /** + * Referencia al DAO {@link PersonaDao} + */ + @Inject + private PersonaDao personaDao; + + /** + * Referencia al DAO {@link PersonaDetalleDao} + */ + @Inject + private PersonaDetalleDao personaDetalleDao; + + /** + * Referencia al DAO {@link DireccionPersonaDao} + */ + @Inject + private DireccionPersonaDao direccionPersonaDao; + + /** + * Referencia al DAO {@link TelefonoPersonaDao} + */ + @Inject + private TelefonoPersonaDao telefonoPersonaDao; + + /** + * Referencia al DAO {@link PersonaNaturalDao} + */ + @Inject + private PersonaNaturalDao personaNaturalDao; + + /** + * Referencia al DAO {@link CompaniaDao} + */ + @Inject + private CompaniaDao companiaDao; + + /** + * Referencia al DAO {@link UsuarioDao} + */ + @Inject + private UsuarioDao usuarioDao; + + /** + * Referencia al DAO {@link UsuarioDetalleDao} + */ + @Inject + private UsuarioDetalleDao usuarioDetalleDao; + + /** + * Referencia al DAO {@link UsuarioPerfilDao} + */ + @Inject + private UsuarioPerfilDao usuarioPerfilDao; + + /** + * Referencia al DAO {@link ArchivoDao} + */ + @Inject + private ArchivoDao archivoDao; + + /** + * Referencia al DAO {@link ArchivoDetalleDao} + */ + @Inject + private ArchivoDetalleDao archivoDetalleDao; + + /** + * Retorna una colección de catálogos en base al codigo de catálogo ingresado + * @param codigoTipo + * @return + * @throws RegistroException + */ + public Collection obtenerCatalogo(String codigoTipo) throws RegistroException{ + try{ + return catalogoDao.buscarCatalogo(codigoTipo); + }catch (Throwable e){ + throw new RegistroException(e); + } + } + + /** + * Retorna las actividades económicas disponibles + * @return + * @throws RegistroException + */ + public Collection obtenerActividades() throws RegistroException{ + try { + return actividadEconomicaDao.buscarActividadEconomicas(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna un catálogo por código y legalcode + * @param codigoTipo + * @param legalCode + * @return + */ + public Collection obtenerCalogo(String codigoTipo, String legalCode) { + try { + return catalogoDao.buscarCatalogo(codigoTipo, legalCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna los países disponibles en el sistema + * @return + */ + public Collection obtenerPaises() { + try { + return paisDao.buscarPaises(); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las provincias de un país + * @param countryCode + * @return + */ + public Collection obtenerProvincias(String countryCode) { + try { + return provinciaDao.buscarProvinciasxPais(countryCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna los cantones de una provincia + * @param countryCode + * @param provinceCode + * @return + */ + public Collection obtenerCantones(String countryCode, String provinceCode) { + try { + return cantonDao.buscarCantonesxPaisyProvincia(countryCode, provinceCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las parroquias de un cantón + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection obtenerParroquias(String countryCode, String provinceCode, String cantonCode) { + try { + return parroquiaDao.buscarParroquias(countryCode, provinceCode, cantonCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Retorna las ciudades de un cantón + * @param countryCode + * @param provinceCode + * @param cantonCode + * @return + */ + public Collection obtenerCiudades(String countryCode, String provinceCode, String cantonCode) { + try { + return ciudadDao.buscarCiudad(countryCode, provinceCode, cantonCode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Genera un nuevo usuario con todas sus características + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + * @param compania + * @param foto + * @throws RegistroException + */ + public void guardarUsuario(Tcustpersondetail persona, + Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular, Tcustpeople adicionalPersona, Tcustcompany compania, Tgenefilesdetail foto) throws RegistroException { + try { + Tcustperson personaExistente = null; + if(persona.getId() != null && persona.getId().getPersoncode() != 0){ + personaExistente = personaDao.buscarPorId(persona.getId().getPersoncode()); + } + if(personaExistente == null){ + Future personCode = sequenceBean.retornaSecuencia("PERSONCODE"); //busco la secuencia en otro hilo de ejecucion + Tcustperson personaRaiz = new Tcustperson(); + Long codigoPersona = personCode.get(); + personaRaiz.setPersoncode(codigoPersona); + personaDao.create(personaRaiz);//creo persona y preparo datos para generar personadetail + persona.setId(new TcustpersondetailPK()); + persona.getId().setPersoncode(personaRaiz.getPersoncode()); + } + switch(persona.getIdentificationcatalog()){ + case "CED": case "PAS":{//firstname + StringBuilder nombre = new StringBuilder(adicionalPersona.getFirstname() != null ? adicionalPersona.getFirstname():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getMiddlename() != null ? adicionalPersona.getMiddlename():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getLastname() != null ? adicionalPersona.getLastname():""); +// nombre.append(" "); +// nombre.append(adicionalPersona.getSurename() != null ? adicionalPersona.getSurename():""); + persona.setName(nombre.toString()); + persona.setPersontypecatalog("1"); + persona.setPersontypecatalogcode("PERSONTYPE"); + } + break; + default: { + persona.setPersontypecatalog("2"); + persona.setPersontypecatalogcode("PERSONTYPE"); + } + break; + } + this.guardaPersonaDetalle(persona); + this.guardarDireccionesPersona(persona, direccionPersona, correoPersona); + this.guardarTelefonosPersona(persona, direccionPersona, telefonoPersona, telefonoCelular); + this.guardaDetallesPersonaNatural(persona, adicionalPersona); + this.guardaCompania(persona, compania, foto); + this.guardarUsuario(persona, correoPersona); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Obtiene persona por identificación + * @param codigoIdentificacion + * @return + * @throws RegistroException + */ + public Tcustpersondetail obtenerPersonaPorIdentificacion(String codigoIdentificacion) throws RegistroException{ + try{ + return personaDetalleDao.buscarPorIdentificacion(codigoIdentificacion); + }catch(Throwable e){ + throw new RegistroException(e); + } + } + + /** + * Obtener companía en base al id + * @param personcode + * @return + * @throws RegistroException + */ + public Tcustcompany obtenerCompania(Integer personcode) throws RegistroException{ + try { + TcustcompanyPK pk = new TcustcompanyPK(); + pk.setPersoncode(personcode); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return companiaDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Obtener información de la persona natural en base al id + * @param personcode + * @return + */ + public Tcustpeople obtenerPersonaNaturalId(Integer personcode) { + try { + TcustpeoplePK pk = new TcustpeoplePK(); + pk.setPersoncode(personcode); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return personaNaturalDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve la dirección principal de la persona + * @param personcode + * @return + */ + public Tcustpersonaddress obtenerDireccionPrincipal(Integer personcode) { + try { + return direccionPersonaDao.buscaDireccionPrincipal(personcode); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve la dirección de correo de la persona + * @param personcode + * @return + */ + public Tcustpersonaddress obtenerDireccionCorreo(Integer personcode) { + try { + return direccionPersonaDao.buscaDireccionPorTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.direccion.correo")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve el teléfono fijo de la persona + * @param personcode + * @return + */ + public Tcustpersonphone obtenerTelefonoFijo(Integer personcode) { + try { + return telefonoPersonaDao.obtenerTelefonoTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.telefono.fijo")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Busca y devuelve el teléfono celular de la persona + * @param personcode + * @return + */ + public Tcustpersonphone obtenerTelefonoCelular(Integer personcode) { + try { + return telefonoPersonaDao.obtenerTelefonoTipo(personcode, PortalMessages.getInstancia().getString("catalogo.valor.telefono.celular")); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + /** + * Método en donde almaceno los detalles del usuario, datos adicionales + * @param persona + * @param direccionPersona + * @param correoPersona + * @param telefonoPersona + * @param telefonoCelular + * @param adicionalPersona + */ + private void guardaPersonaDetalle(Tcustpersondetail persona){ + try { + Tcustpersondetail personaAnterior = personaDetalleDao.buscarPorId(new TcustpersondetailPK(persona.getId().getPersoncode(), persona.getId().getDateto())); + if(personaAnterior == null){ + persona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + persona.setDatefrom(new Timestamp(System.currentTimeMillis())); + persona.setRecordversion(0L); + persona.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + persona.setLanguagecode(PortalMessages.getInstancia().getString("codigo.general.lenguaje")); + persona.setCompanycode(1L); + persona.setBranchcode(1L); + persona.setOfficecode(1L); + persona.setIdentificationcatalogcode("IDENTIFICATION"); + persona.setRegisterdate(Calendar.getInstance().getTime()); + personaDetalleDao.create(persona); + } else{//actualizacion + personaDetalleDao.detach(personaAnterior); + personaAnterior.getId().setDateto(new Date()); + personaAnterior.setIdentificationcatalogcode("IDENTIFICATION"); + personaDetalleDao.create(personaAnterior); + persona.setIdentificationcatalogcode("IDENTIFICATION"); + personaDetalleDao.update(persona); + } + + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno la información de las direcciones de las personas + * @param persona + * @param direccionPersona + * @param correoPersona + */ + private void guardarDireccionesPersona(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, + Tcustpersonaddress correoPersona){ + try { + // Limpiar las direcciones domicilio previas existentes en caso de existir + ListdireccionesDomPreviasLst = direccionPersonaDao.buscaDireccionesPorTipo(persona.getId().getPersoncode(), "2"); + if(direccionesDomPreviasLst!=null){ + for(Tcustpersonaddress direccionTmp:direccionesDomPreviasLst){ + direccionTmp.getId().setDateto(new Date()); + direccionPersonaDao.update(direccionTmp); + direccionPersonaDao.getEntityManager().flush(); + } + } + // Limpiar las direcciones correo previas existentes en caso de existir + ListdireccionesCorreoPreviasLst = direccionPersonaDao.buscaDireccionesPorTipo(persona.getId().getPersoncode(), "3"); + if(direccionesCorreoPreviasLst!=null){ + for(Tcustpersonaddress direccionTmp:direccionesCorreoPreviasLst){ + direccionTmp.getId().setDateto(new Date()); + direccionPersonaDao.update(direccionTmp); + direccionPersonaDao.getEntityManager().flush(); + } + } + if(direccionPersona.getId() == null || direccionPersona.getId().getPersoncode() == 0){ + //Ingreso la direccion de residencia de la persona + direccionPersona.setId(new TcustpersonaddressPK()); + direccionPersona.getId().setPersoncode(persona.getId().getPersoncode()); + direccionPersona.getId().setAddressnumber(1L); + direccionPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionPersona.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionPersona.setRecordversion(0L); + direccionPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + Tcustpersonaddress direccionAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(direccionPersona.getId().getPersoncode(), direccionPersona.getId().getAddressnumber(), direccionPersona.getId().getDateto())); + if(direccionAnterior==null){ + direccionPersonaDao.create(direccionPersona); + } + else{ + direccionAnterior.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionAnterior.setAddress(direccionPersona.getAddress()); + direccionAnterior.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionAnterior.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersonaDao.update(direccionAnterior); + } + } + else{ +// Tcustpersonaddress direccionAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(direccionPersona.getId().getPersoncode(), direccionPersona.getId().getAddressnumber(), direccionPersona.getId().getDateto())); +// if(direccionAnterior != null){ +// direccionPersonaDao.detach(direccionAnterior); +// direccionAnterior.getId().setDateto(new Date()); +// direccionPersonaDao.create(direccionAnterior); +// } + direccionPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + direccionPersona.setPrincipal(PortalMessages.getInstancia().getString("valor.general.si")); + direccionPersonaDao.update(direccionPersona); + } + if(correoPersona.getId() == null || correoPersona.getId().getPersoncode() == 0){ + //Ingreso la direccion de correo de la persona + correoPersona.setId(new TcustpersonaddressPK()); + correoPersona.getId().setPersoncode(persona.getId().getPersoncode()); + correoPersona.getId().setAddressnumber(2L); + correoPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + correoPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + correoPersona.setRecordversion(0L); + correoPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + Tcustpersonaddress correoAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(correoPersona.getId().getPersoncode(), correoPersona.getId().getAddressnumber(), correoPersona.getId().getDateto())); + if(correoAnterior==null){ + direccionPersonaDao.create(correoPersona); + } + else{ + correoAnterior.getId().setAddressnumber(2L); + correoAnterior.setAddress(correoPersona.getAddress()); + correoAnterior.setAddresstypecatalog("3"); + correoAnterior.setCountryCode(null); + correoAnterior.setProvinceCode(null); + correoAnterior.setCantonCode(null); + correoAnterior.setCityCode(null); + correoAnterior.setParroquiaCode(null); + correoAnterior.setPrincipal(null); + correoAnterior.setDatefrom(new Timestamp(System.currentTimeMillis())); + correoAnterior.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + direccionPersonaDao.update(correoAnterior); + } + } + else{ +// Tcustpersonaddress correoAnterior = direccionPersonaDao.buscarPorId(new TcustpersonaddressPK(correoPersona.getId().getPersoncode(), correoPersona.getId().getAddressnumber(), correoPersona.getId().getDateto())); +// if(correoAnterior != null){ +// direccionPersonaDao.detach(correoAnterior); +// correoAnterior.getId().setDateto(new Date()); +// direccionPersonaDao.create(correoAnterior); +// } + direccionPersonaDao.update(correoPersona); + } + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno la información correspondientes a los teléfonos de la persona + * @param persona + * @param telefonoPersona + * @param telefonoCelular + */ + private void guardarTelefonosPersona(Tcustpersondetail persona, Tcustpersonaddress direccionPersona, Tcustpersonphone telefonoPersona, + Tcustpersonphone telefonoCelular){ + try { + // Limpiar los telefonos previos convencionales existentes en caso de existir + ListtelefonoConvPreviosLst = telefonoPersonaDao.obtenerTelefonosPorTipo(persona.getId().getPersoncode(), "1"); + if(telefonoConvPreviosLst!=null){ + for(Tcustpersonphone telefonoTmp:telefonoConvPreviosLst){ + telefonoTmp.getId().setDateto(new Date()); + telefonoPersonaDao.update(telefonoTmp); + } + } + // Limpiar los telefonos previos celulares existentes en caso de existir + ListtelefonoCelularPreviosLst = telefonoPersonaDao.obtenerTelefonosPorTipo(persona.getId().getPersoncode(), "2"); + if(telefonoCelularPreviosLst!=null){ + for(Tcustpersonphone telefonoTmp:telefonoCelularPreviosLst){ + telefonoTmp.getId().setDateto(new Date()); + telefonoPersonaDao.update(telefonoTmp); + } + } + + if(telefonoPersona.getId() == null || telefonoPersona.getId().getPersoncode() == 0){ + Long sec=telefonoPersonaDao.maxSecuencia(persona.getId().getPersoncode()); + //El telefono corresponde a la direccion de la persona + telefonoPersona.setId(new TcustpersonphonePK()); + telefonoPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + if(sec==null || sec==0){ + telefonoPersona.getId().setPhonesequence(1L); + }else{ + telefonoPersona.getId().setPhonesequence(sec+1L); + } + telefonoPersona.getId().setPersoncode(persona.getId().getPersoncode()); + telefonoPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + telefonoPersona.setAddressnumber(direccionPersona.getId().getAddressnumber()); + telefonoPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + telefonoPersonaDao.create(telefonoPersona); + } + else{ +// Tcustpersonphone telefonoPersonaAnterior = telefonoPersonaDao.buscarPorId(new TcustpersonphonePK(telefonoPersona.getId().getPersoncode(), telefonoPersona.getId().getDateto(),telefonoPersona.getId().getPhonesequence())); +// if(telefonoPersonaAnterior != null){ +// telefonoPersonaDao.detach(telefonoPersonaAnterior); +// telefonoPersonaAnterior.getId().setDateto(new Date()); +// telefonoPersonaDao.update(telefonoPersonaAnterior); +// } + telefonoPersonaDao.update(telefonoPersona); + } + if(telefonoCelular.getId() == null || telefonoCelular.getId().getPersoncode() == 0){ + //Almaceno el telefono celular + telefonoCelular.setId(new TcustpersonphonePK()); + telefonoCelular.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + Long sec=telefonoPersonaDao.maxSecuencia(persona.getId().getPersoncode()); + if(sec==null || sec==0){ + telefonoCelular.getId().setPhonesequence(1L); + }else{ + telefonoCelular.getId().setPhonesequence(sec+1L); + } + //telefonoCelular.getId().setPhonesequence(2L); + telefonoCelular.getId().setPersoncode(persona.getId().getPersoncode()); + telefonoCelular.setDatefrom(new Timestamp(System.currentTimeMillis())); + telefonoCelular.setAddressnumber(direccionPersona.getId().getAddressnumber()); + telefonoCelular.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + telefonoPersonaDao.create(telefonoCelular); + } + else{ +// Tcustpersonphone telefonoCelularAnterior = telefonoPersonaDao.buscarPorId(new TcustpersonphonePK(telefonoCelular.getId().getPersoncode(), telefonoCelular.getId().getDateto(), telefonoCelular.getId().getPhonesequence())); +// if(telefonoCelularAnterior != null){ +// telefonoPersonaDao.detach(telefonoCelularAnterior); +// telefonoCelularAnterior.getId().setDateto(new Date()); +// telefonoPersonaDao.update(telefonoCelularAnterior); +// } + telefonoPersonaDao.update(telefonoCelular); + } + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + /** + * Almaceno información adicional siempre y cuando la persona sea de tipo natural + * @param persona + */ + private void guardaDetallesPersonaNatural(Tcustpersondetail persona, Tcustpeople adicionalPersona){ + // Actualizar dateto de registros previos vigentes + ListpersonasNaturalesPreviasLst = personaNaturalDao.buscaPersonaNatural(persona.getId().getPersoncode()); + if(personasNaturalesPreviasLst!=null){ + for(Tcustpeople peopleTmp:personasNaturalesPreviasLst){ + peopleTmp.getId().setDateto(new Date()); + personaNaturalDao.update(peopleTmp); + } + } + + //Si no es natural no se debe anadir detalles + if(!persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.cedula")) && !persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.pas"))){ + return; + } + if(adicionalPersona.getId() == null || adicionalPersona.getId().getPersoncode() == 0){ + adicionalPersona.setId(new TcustpeoplePK()); + adicionalPersona.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + adicionalPersona.getId().setPersoncode(persona.getId().getPersoncode()); + adicionalPersona.setDatefrom(new Timestamp(System.currentTimeMillis())); + adicionalPersona.setRecordversion(0L); + adicionalPersona.setIngressusercode(PortalMessages.getInstancia().getString("usuario.registro")); + personaNaturalDao.create(adicionalPersona); + } + else{ +// Tcustpeople adicionalAnterior = personaNaturalDao.buscarPorId(new TcustpeoplePK(adicionalPersona.getId().getPersoncode(), adicionalPersona.getId().getDateto())); +// if(adicionalAnterior != null){ +// personaNaturalDao.detach(adicionalAnterior); +// adicionalAnterior.getId().setDateto(new Date()); +// personaNaturalDao.update(adicionalAnterior); +// } + personaNaturalDao.update(adicionalPersona); + } + } + + /** + * Guarda la companía si es que es persona jurídica + * @param persona + * @param compania + * @param foto + * @throws InterruptedException + * @throws ExecutionException + */ + private void guardaCompania(Tcustpersondetail persona, Tcustcompany compania, Tgenefilesdetail foto) throws InterruptedException, ExecutionException { + if(!persona.getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.ruc"))){ + return; + } + if(compania.getId() == null || compania.getId().getPersoncode() == 0){ + compania.setId(new TcustcompanyPK()); + compania.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + compania.getId().setPersoncode(persona.getId().getPersoncode()); + compania.setDatefrom(new Timestamp(System.currentTimeMillis())); + compania.setLogo(guardaFoto(foto)); + compania.setRecordversion(0L); + compania.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + companiaDao.create(compania); + } else{ + Tcustcompany companiaAnterior = companiaDao.buscarPorId(new TcustcompanyPK(compania.getId().getPersoncode(), compania.getId().getDateto())); + if(companiaAnterior != null){ + companiaDao.detach(companiaAnterior); + companiaAnterior.getId().setDateto(new Date()); + companiaDao.create(companiaAnterior); + } + Tgenefilesdetail fotoBase = archivoDetalleDao.buscarPorId(new TgenefilesdetailPK(compania.getLogo() != null ? compania.getLogo() : -1, FechaUtil.obtenerFecha(2999, 11, 31))); + if(fotoBase != null){ + fotoBase.setImage(foto.getImage()); + archivoDetalleDao.update(fotoBase); + } else{ + compania.setLogo(guardaFoto(foto)); + } + companiaDao.update(compania); + } + } + + /** + * Almacena la foto o logo de la persona natural o jurídica + * @param fotoDetalle + * @return + * @throws InterruptedException + * @throws ExecutionException + */ + private Integer guardaFoto(Tgenefilesdetail fotoDetalle) throws InterruptedException, ExecutionException{ + Long idFoto = null; + if(fotoDetalle != null && fotoDetalle.getImage() != null){ + Future code = sequenceBean.retornaSecuencia("CODE"); + Tgenefile foto = new Tgenefile(); + fotoDetalle.setId(new TgenefilesdetailPK()); + fotoDetalle.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + fotoDetalle.setDatefrom(new Timestamp(System.currentTimeMillis())); + fotoDetalle.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + idFoto = code.get(); + foto.setCode(idFoto); + fotoDetalle.getId().setCode(foto.getCode()); + archivoDao.create(foto); + archivoDetalleDao.create(fotoDetalle); + } + return idFoto != null ? idFoto.intValue() : null; + } + + /** + * Guardo el usuario y el detalles de dicho usuario asociado a una persona y perfil default + * @throws ExecutionException + * @throws InterruptedException + */ + @SuppressWarnings("unchecked") + private void guardarUsuario(Tcustpersondetail persona, Tcustpersonaddress correoPersona) throws InterruptedException, ExecutionException{ + String claveAleatoria = generarClaveAleatoria(); + Tsafeuserdetail usuarioDetalle = new Tsafeuserdetail(); + List userDetailList = usuarioDetalleDao.buscaUserDetail(persona.getId().getPersoncode()); +// if(persona.getId() == null || persona.getId().getPersoncode() == 0){ + if(userDetailList==null){ + crearUsuario(usuarioDetalle, persona, claveAleatoria); + crearUsuarioPerfil(usuarioDetalle); + } else{ + Query query = usuarioDetalleDao.getEntityManager().createQuery("SELECT o FROM Tsafeuserdetail o WHERE o.id.personcode=:personcode and o.id.dateto=:dateto"); + query.setParameter("personcode", persona.getId().getPersoncode()); + query.setParameter("dateto", FechaUtil.obtenerFecha(2999, 11, 31)); + List lusers = query.getResultList(); + if(lusers != null && !lusers.isEmpty()){//existe actualizamos + usuarioDetalle = lusers.iterator().next(); + Tsafeuserdetail usuarioAnterior = SerializationUtils.clone(usuarioDetalle); + usuarioDetalleDao.detach(usuarioAnterior); + usuarioAnterior.getId().setDateto(new Date()); + usuarioDetalleDao.create(usuarioAnterior); + usuarioDetalle.setPassword(SerializationUtils.clone(DigestUtils.sha1Hex(claveAleatoria))); + usuarioDetalleDao.update(usuarioDetalle); + } else{//no existe creamos con todo y perfil + crearUsuario(usuarioDetalle, persona, claveAleatoria); + crearUsuarioPerfil(usuarioDetalle); + } + } + + this.enviarMailAcceso(persona, usuarioDetalle, correoPersona, claveAleatoria); + } + + private void crearUsuario(Tsafeuserdetail usuarioDetalle, Tcustpersondetail persona, String claveAleatoria) throws InterruptedException, ExecutionException{ + Tsafeuser usuario = new Tsafeuser(); + Future internalCode = sequenceBean.retornaSecuencia("INTERNALCODE"); + usuario.setCompanycode(Long.parseLong(PortalMessages.getInstancia().getString("compania.general"))); + usuario.setTcustperson(persona.getTcustperson()); + usuario.setUsercode(persona.getIdentification()); + usuario.setPersonCode(persona.getId().getPersoncode()); + usuario.setInternalcode(internalCode.get()); + List usuariosList= usuarioDao.buscaUsers(persona.getIdentification()); + if(usuariosList==null){ + usuarioDao.create(usuario); + } + usuarioDetalle.setId(new TsafeuserdetailPK()); + usuarioDetalle.getId().setUsercode(usuario.getUsercode()); + usuarioDetalle.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + usuarioDetalle.getId().setPersoncode(persona.getId().getPersoncode()); + usuarioDetalle.setDatefrom(new Timestamp(System.currentTimeMillis())); + usuarioDetalle.setLanguagecode(PortalMessages.getInstancia().getString("codigo.general.lenguaje")); + usuarioDetalle.setCompanycode(Long.parseLong(PortalMessages.getInstancia().getString("compania.general"))); + usuarioDetalle.setChannelcode(PortalMessages.getInstancia().getString("codigo.canal.validacion.usuario")); + usuarioDetalle.setAreacode(Long.parseLong(PortalMessages.getInstancia().getString("area.general"))); + usuarioDetalle.setBranchcode(Long.parseLong(PortalMessages.getInstancia().getString("codigo.sucursal.usuario"))); + usuarioDetalle.setOfficecode(Long.parseLong(PortalMessages.getInstancia().getString("codigo.oficina.usuario"))); + usuarioDetalle.setUserstatuscatalogcode(PortalMessages.getInstancia().getString("catalogo.codigo.estado.usuario")); + usuarioDetalle.setUserstatuscatalog(PortalMessages.getInstancia().getString("valor.general.activo")); + usuarioDetalle.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioDetalle.setIsuserbpm(PortalMessages.getInstancia().getString("valor.general.si")); + usuarioDetalle.setChangepassword(PortalMessages.getInstancia().getString("valor.general.si")); + usuarioDetalle.setActivateuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioDetalle.setPassword(DigestUtils.sha1Hex(SerializationUtils.clone(claveAleatoria))); + usuarioDetalle.setNickname(persona.getIdentification()); + usuarioDetalle.setRecordversion(0L); + usuarioDetalleDao.create(usuarioDetalle); + } + + private void crearUsuarioPerfil(Tsafeuserdetail usuarioDetalle){ + Tsafeuserprofile perfilUsuario = new Tsafeuserprofile(); + perfilUsuario.setId(new TsafeuserprofilePK()); + perfilUsuario.getId().setProfilecode(PortalMessages.getInstancia().getString("codigo.perfil.usuario.registro")); + perfilUsuario.getId().setUsercode(usuarioDetalle.getId().getUsercode()); + perfilUsuario.getId().setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + perfilUsuario.setDatefrom(new Timestamp(System.currentTimeMillis())); + perfilUsuario.setIngressuser(PortalMessages.getInstancia().getString("usuario.registro")); + usuarioPerfilDao.create(perfilUsuario); + } + + /** + * Método que genera el cuerpo del mensaje a enviar a los nuevos usuarios registrados y activación del mismos + */ + private void enviarMailAcceso(Tcustpersondetail detallePersona, Tsafeuserdetail detalleUsuario, Tcustpersonaddress correoPersona, String digest){ + try { + String asunto = PortalMessages.getInstancia().getString("asunto.mensaje.envio.correo"); + String cuerpo = MessageFormat.format(PortalMessages.getInstancia().getString("cuerpo.mensaje.envio.correo"), detallePersona.getName(), detalleUsuario.getId().getUsercode(), digest); + EnvioCorreoDTO envioCorreo = new EnvioCorreoDTO(); + envioCorreo.setCorreoDesde(PortalMessages.getInstancia().getString("correo.envio.default.notificiacion")); + envioCorreo.setCorreoPara(new String[]{correoPersona.getAddress()}); + envioCorreo.setAsunto(asunto); + envioCorreo.setMensajeHTML(cuerpo); + EnvioMail envioMail = EnvioMailFactory.getInstancia(); + envioMail.envioMail(envioCorreo); + } catch(EnvioMailException e){ + throw new RegistroException("Se produjo un error al enviar el correo ".concat(e.getMessage())); + } catch (Throwable e) { + throw new RegistroException(e); + } + } + + private String generarClaveAleatoria(){ + return UUID.randomUUID().toString().substring(0, 8); + } + + /** + * Obtener información de las imagenes + * @param personcode + * @return + */ + public Tgenefilesdetail obtenerImagen(long code) { + try { + + TgenefilesdetailPK pk = new TgenefilesdetailPK(); + pk.setCode(code); + pk.setDateto(FechaUtil.obtenerFecha(2999, 11, 31)); + return archivoDetalleDao.buscarPorId(pk); + } catch (Throwable e) { + throw new RegistroException(e); + } + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/service/SequenceBean.java b/ejb/src/main/java/com/fp/armas/portal/service/SequenceBean.java new file mode 100644 index 0000000..8bb0d81 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/service/SequenceBean.java @@ -0,0 +1,64 @@ +package com.fp.armas.portal.service; + +import java.math.BigDecimal; +import java.util.concurrent.Future; + +import javax.ejb.AsyncResult; +import javax.ejb.Asynchronous; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; +import javax.persistence.Query; + +import com.fp.armas.portal.dao.general.GenericDaoImpl; +import com.fp.armas.portal.dao.registro.SecuenciaDao; +import com.fp.armas.portal.model.Tgenesequence; +import com.fp.armas.portal.util.RegistroException; + +/** + * EJB que se encarga de obtener indices de las bases de datos, lo ejecutamos en una diferente transacción + * @author dcruz + * + */ +@Stateless +@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) +public class SequenceBean { + + /** + * DAO Genérico + */ + @Inject + private GenericDaoImpl genericDao; + + /** + * Referencia al DAO {@link SecuenciaDao} + */ + @Inject + private SecuenciaDao secuenciaDao; + + /** + * Retorna una secuencia específica + * @param codigoSecuencia + * @return + */ + @Asynchronous + public Future retornaSecuencia(String codigoSecuencia) { + Thread.currentThread().setName("SEQUENCEBEAN"); + Query query = genericDao.getEntityManager().createNativeQuery("SELECT CURRENTVALUE FROM TGENESEQUENCES WHERE CODE=:code"); + query.setParameter("code", codigoSecuencia); + Long valorSecuencia = ((BigDecimal) query.getSingleResult()).longValue(); + this.guardarSecuencia(codigoSecuencia, valorSecuencia + 1); + return new AsyncResult(valorSecuencia + 1); + } + + /** + * En este método almaceno el valor actual de secuencia y evitar duplicados + * @param codigoSecuencia + */ + public void guardarSecuencia(String codigoSecuencia, Long valorActual) throws RegistroException{ + Tgenesequence sequence = secuenciaDao.obtenerSecuencia(codigoSecuencia); + sequence.setCurrentvalue(valorActual); + secuenciaDao.update(sequence); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/util/.svn/entries new file mode 100644 index 0000000..5f05a65 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/entries @@ -0,0 +1,170 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/util +svn://172.17.26.185/COMACO + + + +2015-08-04T06:48:29.530438Z +4251 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +qualifier +dir + +PortalLogger.java +file + + + + +2022-07-28T03:45:35.374069Z +53c54a5cc6b767f6a62b59e44418dcee +2014-11-13T10:33:03.254582Z +2730 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +223 + +FechaUtil.java +file + + + + +2022-07-28T03:45:35.375069Z +898863f1232ba6c2b8c549877b0d6fbb +2014-11-13T10:33:03.254582Z +2730 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1175 + +PortalMessages.java +file + + + + +2022-07-28T03:45:35.375069Z +c3e1b5d951d13fee2784a8e2d788e663 +2014-11-13T10:33:03.254582Z +2730 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +748 + +validadores +dir + +RegistroException.java +file + + + + +2022-07-28T03:45:35.376069Z +0dd973ce9cfc4470482e3b9049fc5b2e +2014-11-13T10:33:03.254582Z +2730 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +912 + diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/FechaUtil.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/FechaUtil.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/FechaUtil.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalLogger.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalLogger.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalLogger.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalMessages.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalMessages.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/PortalMessages.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/RegistroException.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/RegistroException.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/prop-base/RegistroException.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/FechaUtil.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/FechaUtil.java.svn-base new file mode 100644 index 0000000..dbfe07b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/FechaUtil.java.svn-base @@ -0,0 +1,54 @@ +package com.fp.armas.portal.util; + +import java.util.Calendar; +import java.util.Date; + +/** + * Clase que maneja fechas + * @author dcruz + * + */ +public class FechaUtil { + + /** + * Devuelve una fecha con los valores ingresados + * @param anio + * @param mes + * @param dia + * @return + */ + public static Date obtenerFecha(int anio, int mes, int dia) { + return obtenerFecha(anio, mes, dia, null, null, null, null); + } + + /** + * Retorna una fecha con los parámetros indicados + * @param anio + * @param mes + * @param dia + * @param hora + * @param minuto + * @param segundo + * @param milisegundo + * @return + */ + public static Date obtenerFecha(int anio, int mes, int dia, Integer hora, Integer minuto, Integer segundo, Long milisegundo) { + Calendar fecha = Calendar.getInstance(); + fecha.set(Calendar.YEAR, anio); + fecha.set(Calendar.MONTH, mes); + fecha.set(Calendar.DATE, dia); + if(hora == null){ + fecha.set(Calendar.HOUR_OF_DAY, 0); + } + if(minuto == null){ + fecha.set(Calendar.MINUTE, 0); + } + if(segundo == null){ + fecha.set(Calendar.SECOND, 0); + } + if(milisegundo == null){ + fecha.set(Calendar.MILLISECOND, 0); + } + return fecha.getTime(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalLogger.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalLogger.java.svn-base new file mode 100644 index 0000000..43617b1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalLogger.java.svn-base @@ -0,0 +1,14 @@ +package com.fp.armas.portal.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Log del portal + * @author dcruz + * + */ +public interface PortalLogger { + + Logger log = LoggerFactory.getLogger("PORTAL"); +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalMessages.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalMessages.java.svn-base new file mode 100644 index 0000000..6ff3d0f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/PortalMessages.java.svn-base @@ -0,0 +1,31 @@ +package com.fp.armas.portal.util; + +import java.util.ResourceBundle; + +/** + * Clase que maneja el mensaje de propiedades del proyecto + * @author dcruz + * + */ +public class PortalMessages { + + private static PortalMessages instancia = new PortalMessages(); + private static final String PORTAL_PROPERTIES="com.fp.armas.portal.resources.portal"; + private ResourceBundle resourceBundle = null; + + private PortalMessages(){ + resourceBundle = ResourceBundle.getBundle(PORTAL_PROPERTIES); + } + + public static PortalMessages getInstancia() { + return instancia; + } + + public String getString(String key) { + return resourceBundle.getString(key); + } + + public T getValue(String key, Class type) { + return type.cast(resourceBundle.getObject(key)); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/RegistroException.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/RegistroException.java.svn-base new file mode 100644 index 0000000..aabc879 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/.svn/text-base/RegistroException.java.svn-base @@ -0,0 +1,38 @@ +package com.fp.armas.portal.util; + +/** + * Excepción general para el módulo de Registro de usuarios + * @author dcruz + * + */ +public class RegistroException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public RegistroException() { + super(); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public RegistroException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/FechaUtil.java b/ejb/src/main/java/com/fp/armas/portal/util/FechaUtil.java new file mode 100644 index 0000000..dbfe07b --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/FechaUtil.java @@ -0,0 +1,54 @@ +package com.fp.armas.portal.util; + +import java.util.Calendar; +import java.util.Date; + +/** + * Clase que maneja fechas + * @author dcruz + * + */ +public class FechaUtil { + + /** + * Devuelve una fecha con los valores ingresados + * @param anio + * @param mes + * @param dia + * @return + */ + public static Date obtenerFecha(int anio, int mes, int dia) { + return obtenerFecha(anio, mes, dia, null, null, null, null); + } + + /** + * Retorna una fecha con los parámetros indicados + * @param anio + * @param mes + * @param dia + * @param hora + * @param minuto + * @param segundo + * @param milisegundo + * @return + */ + public static Date obtenerFecha(int anio, int mes, int dia, Integer hora, Integer minuto, Integer segundo, Long milisegundo) { + Calendar fecha = Calendar.getInstance(); + fecha.set(Calendar.YEAR, anio); + fecha.set(Calendar.MONTH, mes); + fecha.set(Calendar.DATE, dia); + if(hora == null){ + fecha.set(Calendar.HOUR_OF_DAY, 0); + } + if(minuto == null){ + fecha.set(Calendar.MINUTE, 0); + } + if(segundo == null){ + fecha.set(Calendar.SECOND, 0); + } + if(milisegundo == null){ + fecha.set(Calendar.MILLISECOND, 0); + } + return fecha.getTime(); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/PortalLogger.java b/ejb/src/main/java/com/fp/armas/portal/util/PortalLogger.java new file mode 100644 index 0000000..43617b1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/PortalLogger.java @@ -0,0 +1,14 @@ +package com.fp.armas.portal.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Log del portal + * @author dcruz + * + */ +public interface PortalLogger { + + Logger log = LoggerFactory.getLogger("PORTAL"); +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/PortalMessages.java b/ejb/src/main/java/com/fp/armas/portal/util/PortalMessages.java new file mode 100644 index 0000000..6ff3d0f --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/PortalMessages.java @@ -0,0 +1,31 @@ +package com.fp.armas.portal.util; + +import java.util.ResourceBundle; + +/** + * Clase que maneja el mensaje de propiedades del proyecto + * @author dcruz + * + */ +public class PortalMessages { + + private static PortalMessages instancia = new PortalMessages(); + private static final String PORTAL_PROPERTIES="com.fp.armas.portal.resources.portal"; + private ResourceBundle resourceBundle = null; + + private PortalMessages(){ + resourceBundle = ResourceBundle.getBundle(PORTAL_PROPERTIES); + } + + public static PortalMessages getInstancia() { + return instancia; + } + + public String getString(String key) { + return resourceBundle.getString(key); + } + + public T getValue(String key, Class type) { + return type.cast(resourceBundle.getObject(key)); + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/RegistroException.java b/ejb/src/main/java/com/fp/armas/portal/util/RegistroException.java new file mode 100644 index 0000000..aabc879 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/RegistroException.java @@ -0,0 +1,38 @@ +package com.fp.armas.portal.util; + +/** + * Excepción general para el módulo de Registro de usuarios + * @author dcruz + * + */ +public class RegistroException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public RegistroException() { + super(); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message, Throwable cause, + boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message, Throwable cause) { + super(message, cause); + // TODO Auto-generated constructor stub + } + + public RegistroException(String message) { + super(message); + // TODO Auto-generated constructor stub + } + + public RegistroException(Throwable cause) { + super(cause); + // TODO Auto-generated constructor stub + } + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/entries new file mode 100644 index 0000000..a96dff9 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/util/qualifier +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +DefaultDao.java +file + + + + +2022-07-28T03:45:35.319068Z +6436885e3e8355093ed5fdf027625361 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +716 + diff --git a/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/prop-base/DefaultDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/prop-base/DefaultDao.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/prop-base/DefaultDao.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/text-base/DefaultDao.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/text-base/DefaultDao.java.svn-base new file mode 100644 index 0000000..06f8291 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/.svn/text-base/DefaultDao.java.svn-base @@ -0,0 +1,29 @@ +/** + * + */ +package com.fp.armas.portal.util.qualifier; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import javax.inject.Qualifier; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Qualifier +@Target({ TYPE, METHOD, PARAMETER, FIELD }) +@Retention(RUNTIME) +@Documented +/** + * Especifica un DAO default en el momento de inyectar la dependencia y contexto + * @author dcruz + * + */ +public @interface DefaultDao { + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/qualifier/DefaultDao.java b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/DefaultDao.java new file mode 100644 index 0000000..06f8291 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/qualifier/DefaultDao.java @@ -0,0 +1,29 @@ +/** + * + */ +package com.fp.armas.portal.util.qualifier; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import javax.inject.Qualifier; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Qualifier +@Target({ TYPE, METHOD, PARAMETER, FIELD }) +@Retention(RUNTIME) +@Documented +/** + * Especifica un DAO default en el momento de inyectar la dependencia y contexto + * @author dcruz + * + */ +public @interface DefaultDao { + +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/entries b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/entries new file mode 100644 index 0000000..7a53dd1 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/com/fp/armas/portal/util/validadores +svn://172.17.26.185/COMACO + + + +2015-08-04T06:48:29.530438Z +4251 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ValidadorIdentificacion.java +file + + + + +2022-07-28T03:45:35.354069Z +61e593a468d3507e782e2d309f4d4767 +2015-08-04T06:48:29.530438Z +4251 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +3949 + diff --git a/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/prop-base/ValidadorIdentificacion.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/prop-base/ValidadorIdentificacion.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/prop-base/ValidadorIdentificacion.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/text-base/ValidadorIdentificacion.java.svn-base b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/text-base/ValidadorIdentificacion.java.svn-base new file mode 100644 index 0000000..ab37e14 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/validadores/.svn/text-base/ValidadorIdentificacion.java.svn-base @@ -0,0 +1,143 @@ +package com.fp.armas.portal.util.validadores; + +import java.math.BigDecimal; + +/** + * Clase para validar la cédula y el RUC de una persona + * @author BPTWPA + * @version 2.1 + */ +public class ValidadorIdentificacion { + /** + * Método para validar la cédula + * + * @param id Número de la cédula + * @return result Retorna V/F según la validez de la cédula + */ + public static boolean cedula(String id) { + + boolean result = true; + + int[] modulo9 = { 2, 1, 2, 1, 2, 1, 2, 1, 2 }; + + BigDecimal verif = BigDecimal.ZERO; + if (id.length() != 10) + result = false; + else { + for (int i = 0; i < 9; i++) { + BigDecimal temp = new BigDecimal(new BigDecimal(id.substring(i, (i + 1))).multiply(new BigDecimal(modulo9[i])).toString()); + if (temp.doubleValue() > 9){ + temp = temp.subtract(new BigDecimal("9")); + } + verif = verif.add(temp); + } + if (verif.doubleValue() % 10 == 0){ + if (Integer.parseInt(id.substring(9, 10)) == 0){ + result = true; + } else{ + result = false; + } + } else if ((10 - (verif.doubleValue() % 10)) == Integer.parseInt(id.substring(9, 10))){ + result = true; + } else { + result = false; + } + } + return result; + } + + /** + * Método para validar el Ruc + * + * @param ruc Número del Ruc + * @return Retorna V/F según la validez del Ruc + */ + public static boolean ruc(String ruc) { + + boolean result = true; + + int[] modulo11 = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + BigDecimal verif = BigDecimal.ZERO; + if (ruc.length() < 13) + result = false; + else if (Integer.parseInt(ruc.substring(0, 2)) < 1 || Integer.parseInt(ruc.substring(0, 2)) > 24) { + result = false; + } else { + if (Integer.parseInt(ruc.substring(2, 3)) < 0 + || (Integer.parseInt(ruc.substring(2, 3)) > 6 && Integer + .parseInt(ruc.substring(2, 3)) < 9)) { + result = false; + } else { + if (Integer.parseInt(ruc.substring(2, 3)) == 9) { // sociedad privada o extranjeros + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + modulo11[0] = 4; + modulo11[1] = 3; + modulo11[2] = 2; + modulo11[3] = 7; + modulo11[4] = 6; + modulo11[5] = 5; + modulo11[6] = 4; + modulo11[7] = 3; + modulo11[8] = 2; + for (int i = 0; i < 9; i++) { + verif = verif.add(new BigDecimal(ruc.substring(i, + (i + 1))).multiply(new BigDecimal( + modulo11[i]))); + } + if (verif.doubleValue() % 11 == 0) + if (Integer.parseInt(ruc.substring(9, 10)) == 0) + result = true; + else + result = false; + else if ((11 - (verif.doubleValue() % 11)) == Integer + .parseInt(ruc.substring(9, 10))) + result = true; + else + result = false; + } + } else if (Integer.parseInt(ruc.substring(2, 3)) == 6) { // sociedad p�blicas + + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + modulo11[0] = 3; + modulo11[1] = 2; + modulo11[2] = 7; + modulo11[3] = 6; + modulo11[4] = 5; + modulo11[5] = 4; + modulo11[6] = 3; + modulo11[7] = 2; + for (int i = 0; i < 8; i++) { + verif = verif.add(new BigDecimal(ruc.substring(i, + (i + 1))).multiply(new BigDecimal( + modulo11[i]))); + } + if (verif.doubleValue() % 11 == 0) + if (Integer.parseInt(ruc.substring(8, 9)) == 0) + result = true; + else + result = false; + else if ((11 - (verif.doubleValue() % 11)) == Integer + .parseInt(ruc.substring(8, 9))) + result = true; + else + result = false; + } + } else if (Integer.parseInt(ruc.substring(2, 3)) < 6 + && Integer.parseInt(ruc.substring(2, 3)) >= 0) { // personas naturales + + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + result = cedula(ruc.substring(0, 10)); + } + } + } + } + return result; + } +} diff --git a/ejb/src/main/java/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.java b/ejb/src/main/java/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.java new file mode 100644 index 0000000..ab37e14 --- /dev/null +++ b/ejb/src/main/java/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.java @@ -0,0 +1,143 @@ +package com.fp.armas.portal.util.validadores; + +import java.math.BigDecimal; + +/** + * Clase para validar la cédula y el RUC de una persona + * @author BPTWPA + * @version 2.1 + */ +public class ValidadorIdentificacion { + /** + * Método para validar la cédula + * + * @param id Número de la cédula + * @return result Retorna V/F según la validez de la cédula + */ + public static boolean cedula(String id) { + + boolean result = true; + + int[] modulo9 = { 2, 1, 2, 1, 2, 1, 2, 1, 2 }; + + BigDecimal verif = BigDecimal.ZERO; + if (id.length() != 10) + result = false; + else { + for (int i = 0; i < 9; i++) { + BigDecimal temp = new BigDecimal(new BigDecimal(id.substring(i, (i + 1))).multiply(new BigDecimal(modulo9[i])).toString()); + if (temp.doubleValue() > 9){ + temp = temp.subtract(new BigDecimal("9")); + } + verif = verif.add(temp); + } + if (verif.doubleValue() % 10 == 0){ + if (Integer.parseInt(id.substring(9, 10)) == 0){ + result = true; + } else{ + result = false; + } + } else if ((10 - (verif.doubleValue() % 10)) == Integer.parseInt(id.substring(9, 10))){ + result = true; + } else { + result = false; + } + } + return result; + } + + /** + * Método para validar el Ruc + * + * @param ruc Número del Ruc + * @return Retorna V/F según la validez del Ruc + */ + public static boolean ruc(String ruc) { + + boolean result = true; + + int[] modulo11 = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + BigDecimal verif = BigDecimal.ZERO; + if (ruc.length() < 13) + result = false; + else if (Integer.parseInt(ruc.substring(0, 2)) < 1 || Integer.parseInt(ruc.substring(0, 2)) > 24) { + result = false; + } else { + if (Integer.parseInt(ruc.substring(2, 3)) < 0 + || (Integer.parseInt(ruc.substring(2, 3)) > 6 && Integer + .parseInt(ruc.substring(2, 3)) < 9)) { + result = false; + } else { + if (Integer.parseInt(ruc.substring(2, 3)) == 9) { // sociedad privada o extranjeros + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + modulo11[0] = 4; + modulo11[1] = 3; + modulo11[2] = 2; + modulo11[3] = 7; + modulo11[4] = 6; + modulo11[5] = 5; + modulo11[6] = 4; + modulo11[7] = 3; + modulo11[8] = 2; + for (int i = 0; i < 9; i++) { + verif = verif.add(new BigDecimal(ruc.substring(i, + (i + 1))).multiply(new BigDecimal( + modulo11[i]))); + } + if (verif.doubleValue() % 11 == 0) + if (Integer.parseInt(ruc.substring(9, 10)) == 0) + result = true; + else + result = false; + else if ((11 - (verif.doubleValue() % 11)) == Integer + .parseInt(ruc.substring(9, 10))) + result = true; + else + result = false; + } + } else if (Integer.parseInt(ruc.substring(2, 3)) == 6) { // sociedad p�blicas + + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + modulo11[0] = 3; + modulo11[1] = 2; + modulo11[2] = 7; + modulo11[3] = 6; + modulo11[4] = 5; + modulo11[5] = 4; + modulo11[6] = 3; + modulo11[7] = 2; + for (int i = 0; i < 8; i++) { + verif = verif.add(new BigDecimal(ruc.substring(i, + (i + 1))).multiply(new BigDecimal( + modulo11[i]))); + } + if (verif.doubleValue() % 11 == 0) + if (Integer.parseInt(ruc.substring(8, 9)) == 0) + result = true; + else + result = false; + else if ((11 - (verif.doubleValue() % 11)) == Integer + .parseInt(ruc.substring(8, 9))) + result = true; + else + result = false; + } + } else if (Integer.parseInt(ruc.substring(2, 3)) < 6 + && Integer.parseInt(ruc.substring(2, 3)) >= 0) { // personas naturales + + if (!ruc.substring(10, 13).equals("001")) + result = false; + else { + result = cedula(ruc.substring(0, 10)); + } + } + } + } + return result; + } +} diff --git a/ejb/src/main/java/ec/.svn/entries b/ejb/src/main/java/ec/.svn/entries new file mode 100644 index 0000000..4863125 --- /dev/null +++ b/ejb/src/main/java/ec/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec +svn://172.17.26.185/COMACO + + + +2015-02-20T11:05:53.397766Z +3834 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +gob +dir + +gov +dir + diff --git a/ejb/src/main/java/ec/gob/.svn/entries b/ejb/src/main/java/ec/gob/.svn/entries new file mode 100644 index 0000000..a2ab9b3 --- /dev/null +++ b/ejb/src/main/java/ec/gob/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gob +svn://172.17.26.185/COMACO + + + +2015-02-20T11:05:53.397766Z +3834 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +registrocivil +dir + diff --git a/ejb/src/main/java/ec/gob/registrocivil/.svn/entries b/ejb/src/main/java/ec/gob/registrocivil/.svn/entries new file mode 100644 index 0000000..c499b99 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gob/registrocivil +svn://172.17.26.185/COMACO + + + +2015-02-20T11:05:53.397766Z +3834 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +consultacedula +dir + diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/entries b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/entries new file mode 100644 index 0000000..2c54e4f --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/entries @@ -0,0 +1,266 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gob/registrocivil/consultacedula +svn://172.17.26.185/COMACO + + + +2015-02-20T11:05:53.397766Z +3834 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +package-info.java +file + + + + +2022-07-28T03:45:34.376064Z +358d0bad413660fe94fc06448a8ba1eb +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +144 + +BusquedaPorCedulaResponse.java +file + + + + +2022-07-28T03:45:34.376064Z +b4499e1e87ec716b25877c9ba4b2e00f +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1505 + +BusquedaPorCedula.java +file + + + + +2022-07-28T03:45:34.376064Z +620530878f6a71e6a5375cb2536b858f +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2779 + +Cedula.java +file + + + + +2022-07-28T03:45:34.377064Z +4d4bf793e251c198760641b3d0439ce3 +2015-02-20T11:05:53.397766Z +3834 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +15201 + +WsUpResponse.java +file + + + + +2022-07-28T03:45:34.377064Z +1a7fc84bf52d081f12776830c7b201ca +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1453 + +ObjectFactory.java +file + + + + +2022-07-28T03:45:34.377064Z +6a643f1bcbddfc963d3495e847faf937 +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4119 + +WsUp.java +file + + + + +2022-07-28T03:45:34.378064Z +f5984861c7f36a1fb5b3ae53e913ce27 +2015-01-22T10:29:56.984155Z +3789 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +710 + diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedula.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedula.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedula.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedulaResponse.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedulaResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/BusquedaPorCedulaResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/Cedula.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/Cedula.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/Cedula.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/ObjectFactory.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/ObjectFactory.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUp.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUp.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUp.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUpResponse.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUpResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/WsUpResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/package-info.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/package-info.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/prop-base/package-info.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedula.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedula.java.svn-base new file mode 100644 index 0000000..fd3396f --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedula.java.svn-base @@ -0,0 +1,118 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para BusquedaPorCedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="BusquedaPorCedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Usuario" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Contrasenia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BusquedaPorCedula", propOrder = { + "cedula", + "usuario", + "contrasenia" +}) +public class BusquedaPorCedula { + + @XmlElement(name = "Cedula") + protected String cedula; + @XmlElement(name = "Usuario") + protected String usuario; + @XmlElement(name = "Contrasenia") + protected String contrasenia; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad usuario. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUsuario() { + return usuario; + } + + /** + * Define el valor de la propiedad usuario. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUsuario(String value) { + this.usuario = value; + } + + /** + * Obtiene el valor de la propiedad contrasenia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getContrasenia() { + return contrasenia; + } + + /** + * Define el valor de la propiedad contrasenia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setContrasenia(String value) { + this.contrasenia = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedulaResponse.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedulaResponse.java.svn-base new file mode 100644 index 0000000..d621947 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/BusquedaPorCedulaResponse.java.svn-base @@ -0,0 +1,62 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para BusquedaPorCedulaResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="BusquedaPorCedulaResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BusquedaPorCedulaResponse", propOrder = { + "_return" +}) +public class BusquedaPorCedulaResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/Cedula.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/Cedula.java.svn-base new file mode 100644 index 0000000..85f5c0e --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/Cedula.java.svn-base @@ -0,0 +1,622 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para cedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="cedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CalleDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CodigoError" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CondicionCedulado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Conyuge" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Domicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Error" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="EstadoCivil" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FechaCedulacion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FechaNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FirmaElectronica" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Genero" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="IndividualDactilar" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Instruccion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="LugarNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Nacionalidad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NombreMadre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NombrePadre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NumeroDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Profesion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "cedula", propOrder = { + "calleDomicilio", + "cedula", + "codigoError", + "condicionCedulado", + "conyuge", + "domicilio", + "error", + "estadoCivil", + "fechaCedulacion", + "fechaNacimiento", + "firmaElectronica", + "genero", + "individualDactilar", + "instruccion", + "lugarNacimiento", + "nacionalidad", + "nombreMadre", + "nombrePadre", + "nombre", + "numeroDomicilio", + "profesion" +}) +public class Cedula { + + @XmlElement(name = "CalleDomicilio") + protected String calleDomicilio; + @XmlElement(name = "Cedula") + protected String cedula; + @XmlElement(name = "CodigoError") + protected String codigoError; + @XmlElement(name = "CondicionCedulado") + protected String condicionCedulado; + @XmlElement(name = "Conyuge") + protected String conyuge; + @XmlElement(name = "Domicilio") + protected String domicilio; + @XmlElement(name = "Error") + protected String error; + @XmlElement(name = "EstadoCivil") + protected String estadoCivil; + @XmlElement(name = "FechaCedulacion") + protected String fechaCedulacion; + @XmlElement(name = "FechaNacimiento") + protected String fechaNacimiento; + @XmlElement(name = "FirmaElectronica") + protected String firmaElectronica; + @XmlElement(name = "Genero") + protected String genero; + @XmlElement(name = "IndividualDactilar") + protected String individualDactilar; + @XmlElement(name = "Instruccion") + protected String instruccion; + @XmlElement(name = "LugarNacimiento") + protected String lugarNacimiento; + @XmlElement(name = "Nacionalidad") + protected String nacionalidad; + @XmlElement(name = "NombreMadre") + protected String nombreMadre; + @XmlElement(name = "NombrePadre") + protected String nombrePadre; + @XmlElement(name = "Nombre") + protected String nombre; + @XmlElement(name = "NumeroDomicilio") + protected String numeroDomicilio; + @XmlElement(name = "Profesion") + protected String profesion; + + /** + * Obtiene el valor de la propiedad calleDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCalleDomicilio() { + return calleDomicilio; + } + + /** + * Define el valor de la propiedad calleDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCalleDomicilio(String value) { + this.calleDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad codigoError. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoError() { + return codigoError; + } + + /** + * Define el valor de la propiedad codigoError. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoError(String value) { + this.codigoError = value; + } + + /** + * Obtiene el valor de la propiedad condicionCedulado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCondicionCedulado() { + return condicionCedulado; + } + + /** + * Define el valor de la propiedad condicionCedulado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCondicionCedulado(String value) { + this.condicionCedulado = value; + } + + /** + * Obtiene el valor de la propiedad conyuge. + * + * @return + * possible object is + * {@link String } + * + */ + public String getConyuge() { + return conyuge; + } + + /** + * Define el valor de la propiedad conyuge. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setConyuge(String value) { + this.conyuge = value; + } + + /** + * Obtiene el valor de la propiedad domicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDomicilio() { + return domicilio; + } + + /** + * Define el valor de la propiedad domicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDomicilio(String value) { + this.domicilio = value; + } + + /** + * Obtiene el valor de la propiedad error. + * + * @return + * possible object is + * {@link String } + * + */ + public String getError() { + return error; + } + + /** + * Define el valor de la propiedad error. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setError(String value) { + this.error = value; + } + + /** + * Obtiene el valor de la propiedad estadoCivil. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEstadoCivil() { + return estadoCivil; + } + + /** + * Define el valor de la propiedad estadoCivil. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEstadoCivil(String value) { + this.estadoCivil = value; + } + + /** + * Obtiene el valor de la propiedad fechaCedulacion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCedulacion() { + return fechaCedulacion; + } + + /** + * Define el valor de la propiedad fechaCedulacion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCedulacion(String value) { + this.fechaCedulacion = value; + } + + /** + * Obtiene el valor de la propiedad fechaNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNacimiento() { + return fechaNacimiento; + } + + /** + * Define el valor de la propiedad fechaNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNacimiento(String value) { + this.fechaNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad firmaElectronica. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFirmaElectronica() { + return firmaElectronica; + } + + /** + * Define el valor de la propiedad firmaElectronica. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFirmaElectronica(String value) { + this.firmaElectronica = value; + } + + /** + * Obtiene el valor de la propiedad genero. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGenero() { + return genero; + } + + /** + * Define el valor de la propiedad genero. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGenero(String value) { + this.genero = value; + } + + /** + * Obtiene el valor de la propiedad individualDactilar. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndividualDactilar() { + return individualDactilar; + } + + /** + * Define el valor de la propiedad individualDactilar. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndividualDactilar(String individualDactilar) { + this.individualDactilar = individualDactilar; + } + + /** + * Obtiene el valor de la propiedad instruccion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInstruccion() { + return instruccion; + } + + /** + * Define el valor de la propiedad instruccion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInstruccion(String value) { + this.instruccion = value; + } + + /** + * Obtiene el valor de la propiedad lugarNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLugarNacimiento() { + return lugarNacimiento; + } + + /** + * Define el valor de la propiedad lugarNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLugarNacimiento(String value) { + this.lugarNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad nacionalidad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNacionalidad() { + return nacionalidad; + } + + /** + * Define el valor de la propiedad nacionalidad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNacionalidad(String value) { + this.nacionalidad = value; + } + + /** + * Obtiene el valor de la propiedad nombreMadre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreMadre() { + return nombreMadre; + } + + /** + * Define el valor de la propiedad nombreMadre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreMadre(String value) { + this.nombreMadre = value; + } + + /** + * Obtiene el valor de la propiedad nombrePadre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombrePadre() { + return nombrePadre; + } + + /** + * Define el valor de la propiedad nombrePadre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombrePadre(String value) { + this.nombrePadre = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + + /** + * Obtiene el valor de la propiedad numeroDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroDomicilio() { + return numeroDomicilio; + } + + /** + * Define el valor de la propiedad numeroDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroDomicilio(String value) { + this.numeroDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad profesion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProfesion() { + return profesion; + } + + /** + * Define el valor de la propiedad profesion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProfesion(String value) { + this.profesion = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/ObjectFactory.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..1399799 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/ObjectFactory.java.svn-base @@ -0,0 +1,115 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the ec.gob.registrocivil.consultacedula package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _BusquedaPorCedula_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "BusquedaPorCedula"); + private final static QName _WsUpResponse_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "WsUpResponse"); + private final static QName _BusquedaPorCedulaResponse_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "BusquedaPorCedulaResponse"); + private final static QName _WsUp_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "WsUp"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ec.gob.registrocivil.consultacedula + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link BusquedaPorCedula } + * + */ + public BusquedaPorCedula createBusquedaPorCedula() { + return new BusquedaPorCedula(); + } + + /** + * Create an instance of {@link WsUp } + * + */ + public WsUp createWsUp() { + return new WsUp(); + } + + /** + * Create an instance of {@link BusquedaPorCedulaResponse } + * + */ + public BusquedaPorCedulaResponse createBusquedaPorCedulaResponse() { + return new BusquedaPorCedulaResponse(); + } + + /** + * Create an instance of {@link WsUpResponse } + * + */ + public WsUpResponse createWsUpResponse() { + return new WsUpResponse(); + } + + /** + * Create an instance of {@link Cedula } + * + */ + public Cedula createCedula() { + return new Cedula(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BusquedaPorCedula }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "BusquedaPorCedula") + public JAXBElement createBusquedaPorCedula(BusquedaPorCedula value) { + return new JAXBElement(_BusquedaPorCedula_QNAME, BusquedaPorCedula.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WsUpResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "WsUpResponse") + public JAXBElement createWsUpResponse(WsUpResponse value) { + return new JAXBElement(_WsUpResponse_QNAME, WsUpResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BusquedaPorCedulaResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "BusquedaPorCedulaResponse") + public JAXBElement createBusquedaPorCedulaResponse(BusquedaPorCedulaResponse value) { + return new JAXBElement(_BusquedaPorCedulaResponse_QNAME, BusquedaPorCedulaResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WsUp }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "WsUp") + public JAXBElement createWsUp(WsUp value) { + return new JAXBElement(_WsUp_QNAME, WsUp.class, null, value); + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUp.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUp.java.svn-base new file mode 100644 index 0000000..2809604 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUp.java.svn-base @@ -0,0 +1,32 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para WsUp complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="WsUp">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WsUp") +public class WsUp { + + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUpResponse.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUpResponse.java.svn-base new file mode 100644 index 0000000..e09995e --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/WsUpResponse.java.svn-base @@ -0,0 +1,62 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para WsUpResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="WsUpResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WsUpResponse", propOrder = { + "_return" +}) +public class WsUpResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/package-info.java.svn-base b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/package-info.java.svn-base new file mode 100644 index 0000000..e344919 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/.svn/text-base/package-info.java.svn-base @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula") +package ec.gob.registrocivil.consultacedula; diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.java new file mode 100644 index 0000000..fd3396f --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.java @@ -0,0 +1,118 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para BusquedaPorCedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="BusquedaPorCedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Usuario" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Contrasenia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BusquedaPorCedula", propOrder = { + "cedula", + "usuario", + "contrasenia" +}) +public class BusquedaPorCedula { + + @XmlElement(name = "Cedula") + protected String cedula; + @XmlElement(name = "Usuario") + protected String usuario; + @XmlElement(name = "Contrasenia") + protected String contrasenia; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad usuario. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUsuario() { + return usuario; + } + + /** + * Define el valor de la propiedad usuario. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUsuario(String value) { + this.usuario = value; + } + + /** + * Obtiene el valor de la propiedad contrasenia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getContrasenia() { + return contrasenia; + } + + /** + * Define el valor de la propiedad contrasenia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setContrasenia(String value) { + this.contrasenia = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.java new file mode 100644 index 0000000..d621947 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.java @@ -0,0 +1,62 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para BusquedaPorCedulaResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="BusquedaPorCedulaResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "BusquedaPorCedulaResponse", propOrder = { + "_return" +}) +public class BusquedaPorCedulaResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/Cedula.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/Cedula.java new file mode 100644 index 0000000..85f5c0e --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/Cedula.java @@ -0,0 +1,622 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para cedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="cedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CalleDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CodigoError" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="CondicionCedulado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Conyuge" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Domicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Error" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="EstadoCivil" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FechaCedulacion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FechaNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="FirmaElectronica" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Genero" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="IndividualDactilar" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Instruccion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="LugarNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Nacionalidad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NombreMadre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NombrePadre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="NumeroDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="Profesion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "cedula", propOrder = { + "calleDomicilio", + "cedula", + "codigoError", + "condicionCedulado", + "conyuge", + "domicilio", + "error", + "estadoCivil", + "fechaCedulacion", + "fechaNacimiento", + "firmaElectronica", + "genero", + "individualDactilar", + "instruccion", + "lugarNacimiento", + "nacionalidad", + "nombreMadre", + "nombrePadre", + "nombre", + "numeroDomicilio", + "profesion" +}) +public class Cedula { + + @XmlElement(name = "CalleDomicilio") + protected String calleDomicilio; + @XmlElement(name = "Cedula") + protected String cedula; + @XmlElement(name = "CodigoError") + protected String codigoError; + @XmlElement(name = "CondicionCedulado") + protected String condicionCedulado; + @XmlElement(name = "Conyuge") + protected String conyuge; + @XmlElement(name = "Domicilio") + protected String domicilio; + @XmlElement(name = "Error") + protected String error; + @XmlElement(name = "EstadoCivil") + protected String estadoCivil; + @XmlElement(name = "FechaCedulacion") + protected String fechaCedulacion; + @XmlElement(name = "FechaNacimiento") + protected String fechaNacimiento; + @XmlElement(name = "FirmaElectronica") + protected String firmaElectronica; + @XmlElement(name = "Genero") + protected String genero; + @XmlElement(name = "IndividualDactilar") + protected String individualDactilar; + @XmlElement(name = "Instruccion") + protected String instruccion; + @XmlElement(name = "LugarNacimiento") + protected String lugarNacimiento; + @XmlElement(name = "Nacionalidad") + protected String nacionalidad; + @XmlElement(name = "NombreMadre") + protected String nombreMadre; + @XmlElement(name = "NombrePadre") + protected String nombrePadre; + @XmlElement(name = "Nombre") + protected String nombre; + @XmlElement(name = "NumeroDomicilio") + protected String numeroDomicilio; + @XmlElement(name = "Profesion") + protected String profesion; + + /** + * Obtiene el valor de la propiedad calleDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCalleDomicilio() { + return calleDomicilio; + } + + /** + * Define el valor de la propiedad calleDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCalleDomicilio(String value) { + this.calleDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad codigoError. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoError() { + return codigoError; + } + + /** + * Define el valor de la propiedad codigoError. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoError(String value) { + this.codigoError = value; + } + + /** + * Obtiene el valor de la propiedad condicionCedulado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCondicionCedulado() { + return condicionCedulado; + } + + /** + * Define el valor de la propiedad condicionCedulado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCondicionCedulado(String value) { + this.condicionCedulado = value; + } + + /** + * Obtiene el valor de la propiedad conyuge. + * + * @return + * possible object is + * {@link String } + * + */ + public String getConyuge() { + return conyuge; + } + + /** + * Define el valor de la propiedad conyuge. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setConyuge(String value) { + this.conyuge = value; + } + + /** + * Obtiene el valor de la propiedad domicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDomicilio() { + return domicilio; + } + + /** + * Define el valor de la propiedad domicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDomicilio(String value) { + this.domicilio = value; + } + + /** + * Obtiene el valor de la propiedad error. + * + * @return + * possible object is + * {@link String } + * + */ + public String getError() { + return error; + } + + /** + * Define el valor de la propiedad error. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setError(String value) { + this.error = value; + } + + /** + * Obtiene el valor de la propiedad estadoCivil. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEstadoCivil() { + return estadoCivil; + } + + /** + * Define el valor de la propiedad estadoCivil. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEstadoCivil(String value) { + this.estadoCivil = value; + } + + /** + * Obtiene el valor de la propiedad fechaCedulacion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCedulacion() { + return fechaCedulacion; + } + + /** + * Define el valor de la propiedad fechaCedulacion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCedulacion(String value) { + this.fechaCedulacion = value; + } + + /** + * Obtiene el valor de la propiedad fechaNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNacimiento() { + return fechaNacimiento; + } + + /** + * Define el valor de la propiedad fechaNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNacimiento(String value) { + this.fechaNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad firmaElectronica. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFirmaElectronica() { + return firmaElectronica; + } + + /** + * Define el valor de la propiedad firmaElectronica. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFirmaElectronica(String value) { + this.firmaElectronica = value; + } + + /** + * Obtiene el valor de la propiedad genero. + * + * @return + * possible object is + * {@link String } + * + */ + public String getGenero() { + return genero; + } + + /** + * Define el valor de la propiedad genero. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setGenero(String value) { + this.genero = value; + } + + /** + * Obtiene el valor de la propiedad individualDactilar. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndividualDactilar() { + return individualDactilar; + } + + /** + * Define el valor de la propiedad individualDactilar. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndividualDactilar(String individualDactilar) { + this.individualDactilar = individualDactilar; + } + + /** + * Obtiene el valor de la propiedad instruccion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getInstruccion() { + return instruccion; + } + + /** + * Define el valor de la propiedad instruccion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setInstruccion(String value) { + this.instruccion = value; + } + + /** + * Obtiene el valor de la propiedad lugarNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getLugarNacimiento() { + return lugarNacimiento; + } + + /** + * Define el valor de la propiedad lugarNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setLugarNacimiento(String value) { + this.lugarNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad nacionalidad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNacionalidad() { + return nacionalidad; + } + + /** + * Define el valor de la propiedad nacionalidad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNacionalidad(String value) { + this.nacionalidad = value; + } + + /** + * Obtiene el valor de la propiedad nombreMadre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreMadre() { + return nombreMadre; + } + + /** + * Define el valor de la propiedad nombreMadre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreMadre(String value) { + this.nombreMadre = value; + } + + /** + * Obtiene el valor de la propiedad nombrePadre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombrePadre() { + return nombrePadre; + } + + /** + * Define el valor de la propiedad nombrePadre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombrePadre(String value) { + this.nombrePadre = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + + /** + * Obtiene el valor de la propiedad numeroDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroDomicilio() { + return numeroDomicilio; + } + + /** + * Define el valor de la propiedad numeroDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroDomicilio(String value) { + this.numeroDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad profesion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProfesion() { + return profesion; + } + + /** + * Define el valor de la propiedad profesion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProfesion(String value) { + this.profesion = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/ObjectFactory.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/ObjectFactory.java new file mode 100644 index 0000000..1399799 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/ObjectFactory.java @@ -0,0 +1,115 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the ec.gob.registrocivil.consultacedula package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _BusquedaPorCedula_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "BusquedaPorCedula"); + private final static QName _WsUpResponse_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "WsUpResponse"); + private final static QName _BusquedaPorCedulaResponse_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "BusquedaPorCedulaResponse"); + private final static QName _WsUp_QNAME = new QName("http://www.registrocivil.gob.ec/ConsultaCedula", "WsUp"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ec.gob.registrocivil.consultacedula + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link BusquedaPorCedula } + * + */ + public BusquedaPorCedula createBusquedaPorCedula() { + return new BusquedaPorCedula(); + } + + /** + * Create an instance of {@link WsUp } + * + */ + public WsUp createWsUp() { + return new WsUp(); + } + + /** + * Create an instance of {@link BusquedaPorCedulaResponse } + * + */ + public BusquedaPorCedulaResponse createBusquedaPorCedulaResponse() { + return new BusquedaPorCedulaResponse(); + } + + /** + * Create an instance of {@link WsUpResponse } + * + */ + public WsUpResponse createWsUpResponse() { + return new WsUpResponse(); + } + + /** + * Create an instance of {@link Cedula } + * + */ + public Cedula createCedula() { + return new Cedula(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BusquedaPorCedula }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "BusquedaPorCedula") + public JAXBElement createBusquedaPorCedula(BusquedaPorCedula value) { + return new JAXBElement(_BusquedaPorCedula_QNAME, BusquedaPorCedula.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WsUpResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "WsUpResponse") + public JAXBElement createWsUpResponse(WsUpResponse value) { + return new JAXBElement(_WsUpResponse_QNAME, WsUpResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link BusquedaPorCedulaResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "BusquedaPorCedulaResponse") + public JAXBElement createBusquedaPorCedulaResponse(BusquedaPorCedulaResponse value) { + return new JAXBElement(_BusquedaPorCedulaResponse_QNAME, BusquedaPorCedulaResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link WsUp }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula", name = "WsUp") + public JAXBElement createWsUp(WsUp value) { + return new JAXBElement(_WsUp_QNAME, WsUp.class, null, value); + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUp.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUp.java new file mode 100644 index 0000000..2809604 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUp.java @@ -0,0 +1,32 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para WsUp complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="WsUp">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WsUp") +public class WsUp { + + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUpResponse.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUpResponse.java new file mode 100644 index 0000000..e09995e --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/WsUpResponse.java @@ -0,0 +1,62 @@ + +package ec.gob.registrocivil.consultacedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para WsUpResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="WsUpResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "WsUpResponse", propOrder = { + "_return" +}) +public class WsUpResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gob/registrocivil/consultacedula/package-info.java b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/package-info.java new file mode 100644 index 0000000..e344919 --- /dev/null +++ b/ejb/src/main/java/ec/gob/registrocivil/consultacedula/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.registrocivil.gob.ec/ConsultaCedula") +package ec.gob.registrocivil.consultacedula; diff --git a/ejb/src/main/java/ec/gov/.svn/entries b/ejb/src/main/java/ec/gov/.svn/entries new file mode 100644 index 0000000..1643886 --- /dev/null +++ b/ejb/src/main/java/ec/gov/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gov +svn://172.17.26.185/COMACO + + + +2015-01-22T10:30:09.703574Z +3790 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +sri +dir + diff --git a/ejb/src/main/java/ec/gov/sri/.svn/entries b/ejb/src/main/java/ec/gov/sri/.svn/entries new file mode 100644 index 0000000..66b868f --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gov/sri +svn://172.17.26.185/COMACO + + + +2015-01-22T10:30:09.703574Z +3790 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +wsconsultacontribuyente +dir + diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/entries b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/entries new file mode 100644 index 0000000..3da4614 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/entries @@ -0,0 +1,674 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente +svn://172.17.26.185/COMACO + + + +2015-01-22T10:30:09.703574Z +3790 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ContribuyenteOnLine.java +file + + + + +2022-07-28T03:45:34.645066Z +c381f60cd2c1f461f0eddda6312622c4 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +8032 + +ObtenerCompleto.java +file + + + + +2022-07-28T03:45:34.645066Z +0571c28cb00b2cf2d13c75eb99f8ea58 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2039 + +UbicacionGeografica.java +file + + + + +2022-07-28T03:45:34.646066Z +621de317c251508845b4690059cfa5f3 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6982 + +ActividadEconomica.java +file + + + + +2022-07-28T03:45:34.646066Z +ea633b8001712b88b0bb455c18b5e23b +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +9144 + +ObtenerSimple.java +file + + + + +2022-07-28T03:45:34.647066Z +3ae6511eef4fd9a2d99a8a3996a9cf81 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2031 + +ObtenerDatosResponse.java +file + + + + +2022-07-28T03:45:34.647066Z +dadbb9256d602db6fe0c8aeca4dea56d +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1557 + +Contador.java +file + + + + +2022-07-28T03:45:34.648066Z +e19621ed87870c389e42539b7ce7e8f9 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2511 + +AgenteRetencion.java +file + + + + +2022-07-28T03:45:34.648066Z +bdde2d99c44487e9fe49d174c14a23e3 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1368 + +ListaBlanca.java +file + + + + +2022-07-28T03:45:34.649066Z +79bc2340c9ca531ffd36a6b17b2d0411 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1352 + +ObtenerCompletoResponse.java +file + + + + +2022-07-28T03:45:34.649066Z +23c5747bf01fd6b0e8d8401903a8667e +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1581 + +EstructuraOrganizacional.java +file + + + + +2022-07-28T03:45:34.650066Z +3b6f959f52c6b7f366d16243f21fad5c +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3876 + +RepresentanteLegal.java +file + + + + +2022-07-28T03:45:34.651066Z +b7273495d65feabc5f418dec47ef12e1 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2641 + +package-info.java +file + + + + +2022-07-28T03:45:34.650066Z +91f869035576c860aa6db60950ce64d8 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +138 + +TipoContribuyente.java +file + + + + +2022-07-28T03:45:34.651066Z +a8a5f36d600c7a88754ca520b4f31193 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4368 + +ObtenerSimpleResponse.java +file + + + + +2022-07-28T03:45:34.652066Z +7cdc4ea126d8fe032dff6edd1917c295 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1525 + +ObtenerDatos.java +file + + + + +2022-07-28T03:45:34.652066Z +5a757561b87c4e599486d53d993fd787 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1383 + +Contribuyente.java +file + + + + +2022-07-28T03:45:34.653066Z +0c7f76c6502fab6676af8b6e4b1c3438 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +10451 + +ContribuyenteCompleto.java +file + + + + +2022-07-28T03:45:34.653066Z +5a1b8832944c5d4372dd3857e195fa29 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +15570 + +ObjectFactory.java +file + + + + +2022-07-28T03:45:34.653066Z +8097383c1475af77c91a9ea62a0eb478 +2015-01-22T10:30:09.703574Z +3790 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +7628 + diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ActividadEconomica.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ActividadEconomica.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ActividadEconomica.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/AgenteRetencion.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/AgenteRetencion.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/AgenteRetencion.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contador.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contador.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contador.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contribuyente.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contribuyente.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/Contribuyente.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteCompleto.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteCompleto.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteCompleto.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteOnLine.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteOnLine.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ContribuyenteOnLine.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/EstructuraOrganizacional.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/EstructuraOrganizacional.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/EstructuraOrganizacional.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ListaBlanca.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ListaBlanca.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ListaBlanca.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObjectFactory.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObjectFactory.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompleto.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompleto.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompleto.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompletoResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompletoResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerCompletoResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatos.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatos.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatos.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatosResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatosResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerDatosResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimple.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimple.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimple.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimpleResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimpleResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/ObtenerSimpleResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/RepresentanteLegal.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/RepresentanteLegal.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/RepresentanteLegal.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/TipoContribuyente.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/TipoContribuyente.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/TipoContribuyente.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/UbicacionGeografica.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/UbicacionGeografica.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/UbicacionGeografica.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/package-info.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/package-info.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/prop-base/package-info.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ActividadEconomica.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ActividadEconomica.java.svn-base new file mode 100644 index 0000000..6b3197f --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ActividadEconomica.java.svn-base @@ -0,0 +1,384 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para actividadEconomica complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="actividadEconomica">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="actividadGeneral" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN1Familia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN2Grupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN3SubGrupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN4Clase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN5SubClase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN6Actividad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n1Familia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n2Grupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n3SubGrupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n4Clase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n5SubClase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n6Actividad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "actividadEconomica", propOrder = { + "actividadGeneral", + "codN1Familia", + "codN2Grupo", + "codN3SubGrupo", + "codN4Clase", + "codN5SubClase", + "codN6Actividad", + "n1Familia", + "n2Grupo", + "n3SubGrupo", + "n4Clase", + "n5SubClase", + "n6Actividad" +}) +public class ActividadEconomica { + + protected String actividadGeneral; + protected String codN1Familia; + protected String codN2Grupo; + protected String codN3SubGrupo; + protected String codN4Clase; + protected String codN5SubClase; + protected String codN6Actividad; + protected String n1Familia; + protected String n2Grupo; + protected String n3SubGrupo; + protected String n4Clase; + protected String n5SubClase; + protected String n6Actividad; + + /** + * Obtiene el valor de la propiedad actividadGeneral. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActividadGeneral() { + return actividadGeneral; + } + + /** + * Define el valor de la propiedad actividadGeneral. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActividadGeneral(String value) { + this.actividadGeneral = value; + } + + /** + * Obtiene el valor de la propiedad codN1Familia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN1Familia() { + return codN1Familia; + } + + /** + * Define el valor de la propiedad codN1Familia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN1Familia(String value) { + this.codN1Familia = value; + } + + /** + * Obtiene el valor de la propiedad codN2Grupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN2Grupo() { + return codN2Grupo; + } + + /** + * Define el valor de la propiedad codN2Grupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN2Grupo(String value) { + this.codN2Grupo = value; + } + + /** + * Obtiene el valor de la propiedad codN3SubGrupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN3SubGrupo() { + return codN3SubGrupo; + } + + /** + * Define el valor de la propiedad codN3SubGrupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN3SubGrupo(String value) { + this.codN3SubGrupo = value; + } + + /** + * Obtiene el valor de la propiedad codN4Clase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN4Clase() { + return codN4Clase; + } + + /** + * Define el valor de la propiedad codN4Clase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN4Clase(String value) { + this.codN4Clase = value; + } + + /** + * Obtiene el valor de la propiedad codN5SubClase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN5SubClase() { + return codN5SubClase; + } + + /** + * Define el valor de la propiedad codN5SubClase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN5SubClase(String value) { + this.codN5SubClase = value; + } + + /** + * Obtiene el valor de la propiedad codN6Actividad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN6Actividad() { + return codN6Actividad; + } + + /** + * Define el valor de la propiedad codN6Actividad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN6Actividad(String value) { + this.codN6Actividad = value; + } + + /** + * Obtiene el valor de la propiedad n1Familia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN1Familia() { + return n1Familia; + } + + /** + * Define el valor de la propiedad n1Familia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN1Familia(String value) { + this.n1Familia = value; + } + + /** + * Obtiene el valor de la propiedad n2Grupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN2Grupo() { + return n2Grupo; + } + + /** + * Define el valor de la propiedad n2Grupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN2Grupo(String value) { + this.n2Grupo = value; + } + + /** + * Obtiene el valor de la propiedad n3SubGrupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN3SubGrupo() { + return n3SubGrupo; + } + + /** + * Define el valor de la propiedad n3SubGrupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN3SubGrupo(String value) { + this.n3SubGrupo = value; + } + + /** + * Obtiene el valor de la propiedad n4Clase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN4Clase() { + return n4Clase; + } + + /** + * Define el valor de la propiedad n4Clase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN4Clase(String value) { + this.n4Clase = value; + } + + /** + * Obtiene el valor de la propiedad n5SubClase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN5SubClase() { + return n5SubClase; + } + + /** + * Define el valor de la propiedad n5SubClase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN5SubClase(String value) { + this.n5SubClase = value; + } + + /** + * Obtiene el valor de la propiedad n6Actividad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN6Actividad() { + return n6Actividad; + } + + /** + * Define el valor de la propiedad n6Actividad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN6Actividad(String value) { + this.n6Actividad = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/AgenteRetencion.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/AgenteRetencion.java.svn-base new file mode 100644 index 0000000..1378a8c --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/AgenteRetencion.java.svn-base @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para agenteRetencion complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="agenteRetencion">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "agenteRetencion", propOrder = { + "nombre" +}) +public class AgenteRetencion { + + protected String nombre; + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contador.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contador.java.svn-base new file mode 100644 index 0000000..8c4dfe4 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contador.java.svn-base @@ -0,0 +1,114 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contador complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contador">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ruc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contador", propOrder = { + "cedula", + "nombre", + "ruc" +}) +public class Contador { + + protected String cedula; + protected String nombre; + protected String ruc; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + + /** + * Obtiene el valor de la propiedad ruc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRuc() { + return ruc; + } + + /** + * Define el valor de la propiedad ruc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRuc(String value) { + this.ruc = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contribuyente.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contribuyente.java.svn-base new file mode 100644 index 0000000..a31f64c --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/Contribuyente.java.svn-base @@ -0,0 +1,416 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyente complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyente">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="actividadEconomica" type="{http://sri.gov.ec/wsConsultaContribuyente}actividadEconomica" minOccurs="0"/>
+ *         <element name="codClaseContrib" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codEstado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desClaseContrib" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desEstado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="direccionCorta" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreComercial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="razonSocial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonoDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonoTrabajo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoContribuyente" type="{http://sri.gov.ec/wsConsultaContribuyente}tipoContribuyente" minOccurs="0"/>
+ *         <element name="ubicacionGeografica" type="{http://sri.gov.ec/wsConsultaContribuyente}ubicacionGeografica" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyente", propOrder = { + "actividadEconomica", + "codClaseContrib", + "codEstado", + "desClaseContrib", + "desEstado", + "direccionCorta", + "email", + "nombreComercial", + "numeroRuc", + "razonSocial", + "telefonoDomicilio", + "telefonoTrabajo", + "tipoContribuyente", + "ubicacionGeografica" +}) +@XmlSeeAlso({ + ContribuyenteOnLine.class, + ContribuyenteCompleto.class +}) +public class Contribuyente { + + protected ActividadEconomica actividadEconomica; + protected String codClaseContrib; + protected String codEstado; + protected String desClaseContrib; + protected String desEstado; + protected String direccionCorta; + protected String email; + protected String nombreComercial; + protected String numeroRuc; + protected String razonSocial; + protected String telefonoDomicilio; + protected String telefonoTrabajo; + protected TipoContribuyente tipoContribuyente; + protected UbicacionGeografica ubicacionGeografica; + + /** + * Obtiene el valor de la propiedad actividadEconomica. + * + * @return + * possible object is + * {@link ActividadEconomica } + * + */ + public ActividadEconomica getActividadEconomica() { + return actividadEconomica; + } + + /** + * Define el valor de la propiedad actividadEconomica. + * + * @param value + * allowed object is + * {@link ActividadEconomica } + * + */ + public void setActividadEconomica(ActividadEconomica value) { + this.actividadEconomica = value; + } + + /** + * Obtiene el valor de la propiedad codClaseContrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodClaseContrib() { + return codClaseContrib; + } + + /** + * Define el valor de la propiedad codClaseContrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodClaseContrib(String value) { + this.codClaseContrib = value; + } + + /** + * Obtiene el valor de la propiedad codEstado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodEstado() { + return codEstado; + } + + /** + * Define el valor de la propiedad codEstado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodEstado(String value) { + this.codEstado = value; + } + + /** + * Obtiene el valor de la propiedad desClaseContrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesClaseContrib() { + return desClaseContrib; + } + + /** + * Define el valor de la propiedad desClaseContrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesClaseContrib(String value) { + this.desClaseContrib = value; + } + + /** + * Obtiene el valor de la propiedad desEstado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesEstado() { + return desEstado; + } + + /** + * Define el valor de la propiedad desEstado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesEstado(String value) { + this.desEstado = value; + } + + /** + * Obtiene el valor de la propiedad direccionCorta. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDireccionCorta() { + return direccionCorta; + } + + /** + * Define el valor de la propiedad direccionCorta. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDireccionCorta(String value) { + this.direccionCorta = value; + } + + /** + * Obtiene el valor de la propiedad email. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEmail() { + return email; + } + + /** + * Define el valor de la propiedad email. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEmail(String value) { + this.email = value; + } + + /** + * Obtiene el valor de la propiedad nombreComercial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreComercial() { + return nombreComercial; + } + + /** + * Define el valor de la propiedad nombreComercial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreComercial(String value) { + this.nombreComercial = value; + } + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad razonSocial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRazonSocial() { + return razonSocial; + } + + /** + * Define el valor de la propiedad razonSocial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRazonSocial(String value) { + this.razonSocial = value; + } + + /** + * Obtiene el valor de la propiedad telefonoDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonoDomicilio() { + return telefonoDomicilio; + } + + /** + * Define el valor de la propiedad telefonoDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonoDomicilio(String value) { + this.telefonoDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad telefonoTrabajo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonoTrabajo() { + return telefonoTrabajo; + } + + /** + * Define el valor de la propiedad telefonoTrabajo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonoTrabajo(String value) { + this.telefonoTrabajo = value; + } + + /** + * Obtiene el valor de la propiedad tipoContribuyente. + * + * @return + * possible object is + * {@link TipoContribuyente } + * + */ + public TipoContribuyente getTipoContribuyente() { + return tipoContribuyente; + } + + /** + * Define el valor de la propiedad tipoContribuyente. + * + * @param value + * allowed object is + * {@link TipoContribuyente } + * + */ + public void setTipoContribuyente(TipoContribuyente value) { + this.tipoContribuyente = value; + } + + /** + * Obtiene el valor de la propiedad ubicacionGeografica. + * + * @return + * possible object is + * {@link UbicacionGeografica } + * + */ + public UbicacionGeografica getUbicacionGeografica() { + return ubicacionGeografica; + } + + /** + * Define el valor de la propiedad ubicacionGeografica. + * + * @param value + * allowed object is + * {@link UbicacionGeografica } + * + */ + public void setUbicacionGeografica(UbicacionGeografica value) { + this.ubicacionGeografica = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteCompleto.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteCompleto.java.svn-base new file mode 100644 index 0000000..82a0b62 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteCompleto.java.svn-base @@ -0,0 +1,575 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyenteCompleto complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyenteCompleto">
+ *   <complexContent>
+ *     <extension base="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente">
+ *       <sequence>
+ *         <element name="agenteRetencion" type="{http://sri.gov.ec/wsConsultaContribuyente}agenteRetencion" minOccurs="0"/>
+ *         <element name="calificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="contador" type="{http://sri.gov.ec/wsConsultaContribuyente}contador" minOccurs="0"/>
+ *         <element name="direccionLarga" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="estructuraOrganizacional" type="{http://sri.gov.ec/wsConsultaContribuyente}estructuraOrganizacional" minOccurs="0"/>
+ *         <element name="fax" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaAltaParaEspecial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaCambioObligado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaInicioActividades" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaNotificacionEspeciales" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaUltimaDeclaracion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="listaBlanca" type="{http://sri.gov.ec/wsConsultaContribuyente}listaBlanca" minOccurs="0"/>
+ *         <element name="numeroCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="obligadoContabilidad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="representanteLegal" type="{http://sri.gov.ec/wsConsultaContribuyente}representanteLegal" minOccurs="0"/>
+ *         <element name="resolucionAltaParaEspecial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ultimoPeriodoFiscalCumplido" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyenteCompleto", propOrder = { + "agenteRetencion", + "calificacionArtesanal", + "contador", + "direccionLarga", + "estructuraOrganizacional", + "fax", + "fechaAltaParaEspecial", + "fechaCalificacionArtesanal", + "fechaCambioObligado", + "fechaInicioActividades", + "fechaNacimiento", + "fechaNotificacionEspeciales", + "fechaUltimaDeclaracion", + "listaBlanca", + "numeroCalificacionArtesanal", + "obligadoContabilidad", + "representanteLegal", + "resolucionAltaParaEspecial", + "tipoCalificacionArtesanal", + "ultimoPeriodoFiscalCumplido" +}) +public class ContribuyenteCompleto + extends Contribuyente +{ + + protected AgenteRetencion agenteRetencion; + protected String calificacionArtesanal; + protected Contador contador; + protected String direccionLarga; + protected EstructuraOrganizacional estructuraOrganizacional; + protected String fax; + protected String fechaAltaParaEspecial; + protected String fechaCalificacionArtesanal; + protected String fechaCambioObligado; + protected String fechaInicioActividades; + protected String fechaNacimiento; + protected String fechaNotificacionEspeciales; + protected String fechaUltimaDeclaracion; + protected ListaBlanca listaBlanca; + protected String numeroCalificacionArtesanal; + protected String obligadoContabilidad; + protected RepresentanteLegal representanteLegal; + protected String resolucionAltaParaEspecial; + protected String tipoCalificacionArtesanal; + protected String ultimoPeriodoFiscalCumplido; + + /** + * Obtiene el valor de la propiedad agenteRetencion. + * + * @return + * possible object is + * {@link AgenteRetencion } + * + */ + public AgenteRetencion getAgenteRetencion() { + return agenteRetencion; + } + + /** + * Define el valor de la propiedad agenteRetencion. + * + * @param value + * allowed object is + * {@link AgenteRetencion } + * + */ + public void setAgenteRetencion(AgenteRetencion value) { + this.agenteRetencion = value; + } + + /** + * Obtiene el valor de la propiedad calificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCalificacionArtesanal() { + return calificacionArtesanal; + } + + /** + * Define el valor de la propiedad calificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCalificacionArtesanal(String value) { + this.calificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad contador. + * + * @return + * possible object is + * {@link Contador } + * + */ + public Contador getContador() { + return contador; + } + + /** + * Define el valor de la propiedad contador. + * + * @param value + * allowed object is + * {@link Contador } + * + */ + public void setContador(Contador value) { + this.contador = value; + } + + /** + * Obtiene el valor de la propiedad direccionLarga. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDireccionLarga() { + return direccionLarga; + } + + /** + * Define el valor de la propiedad direccionLarga. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDireccionLarga(String value) { + this.direccionLarga = value; + } + + /** + * Obtiene el valor de la propiedad estructuraOrganizacional. + * + * @return + * possible object is + * {@link EstructuraOrganizacional } + * + */ + public EstructuraOrganizacional getEstructuraOrganizacional() { + return estructuraOrganizacional; + } + + /** + * Define el valor de la propiedad estructuraOrganizacional. + * + * @param value + * allowed object is + * {@link EstructuraOrganizacional } + * + */ + public void setEstructuraOrganizacional(EstructuraOrganizacional value) { + this.estructuraOrganizacional = value; + } + + /** + * Obtiene el valor de la propiedad fax. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFax() { + return fax; + } + + /** + * Define el valor de la propiedad fax. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFax(String value) { + this.fax = value; + } + + /** + * Obtiene el valor de la propiedad fechaAltaParaEspecial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaAltaParaEspecial() { + return fechaAltaParaEspecial; + } + + /** + * Define el valor de la propiedad fechaAltaParaEspecial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaAltaParaEspecial(String value) { + this.fechaAltaParaEspecial = value; + } + + /** + * Obtiene el valor de la propiedad fechaCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCalificacionArtesanal() { + return fechaCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad fechaCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCalificacionArtesanal(String value) { + this.fechaCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad fechaCambioObligado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCambioObligado() { + return fechaCambioObligado; + } + + /** + * Define el valor de la propiedad fechaCambioObligado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCambioObligado(String value) { + this.fechaCambioObligado = value; + } + + /** + * Obtiene el valor de la propiedad fechaInicioActividades. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaInicioActividades() { + return fechaInicioActividades; + } + + /** + * Define el valor de la propiedad fechaInicioActividades. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaInicioActividades(String value) { + this.fechaInicioActividades = value; + } + + /** + * Obtiene el valor de la propiedad fechaNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNacimiento() { + return fechaNacimiento; + } + + /** + * Define el valor de la propiedad fechaNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNacimiento(String value) { + this.fechaNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad fechaNotificacionEspeciales. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNotificacionEspeciales() { + return fechaNotificacionEspeciales; + } + + /** + * Define el valor de la propiedad fechaNotificacionEspeciales. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNotificacionEspeciales(String value) { + this.fechaNotificacionEspeciales = value; + } + + /** + * Obtiene el valor de la propiedad fechaUltimaDeclaracion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaUltimaDeclaracion() { + return fechaUltimaDeclaracion; + } + + /** + * Define el valor de la propiedad fechaUltimaDeclaracion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaUltimaDeclaracion(String value) { + this.fechaUltimaDeclaracion = value; + } + + /** + * Obtiene el valor de la propiedad listaBlanca. + * + * @return + * possible object is + * {@link ListaBlanca } + * + */ + public ListaBlanca getListaBlanca() { + return listaBlanca; + } + + /** + * Define el valor de la propiedad listaBlanca. + * + * @param value + * allowed object is + * {@link ListaBlanca } + * + */ + public void setListaBlanca(ListaBlanca value) { + this.listaBlanca = value; + } + + /** + * Obtiene el valor de la propiedad numeroCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroCalificacionArtesanal() { + return numeroCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad numeroCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroCalificacionArtesanal(String value) { + this.numeroCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad obligadoContabilidad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getObligadoContabilidad() { + return obligadoContabilidad; + } + + /** + * Define el valor de la propiedad obligadoContabilidad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setObligadoContabilidad(String value) { + this.obligadoContabilidad = value; + } + + /** + * Obtiene el valor de la propiedad representanteLegal. + * + * @return + * possible object is + * {@link RepresentanteLegal } + * + */ + public RepresentanteLegal getRepresentanteLegal() { + return representanteLegal; + } + + /** + * Define el valor de la propiedad representanteLegal. + * + * @param value + * allowed object is + * {@link RepresentanteLegal } + * + */ + public void setRepresentanteLegal(RepresentanteLegal value) { + this.representanteLegal = value; + } + + /** + * Obtiene el valor de la propiedad resolucionAltaParaEspecial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getResolucionAltaParaEspecial() { + return resolucionAltaParaEspecial; + } + + /** + * Define el valor de la propiedad resolucionAltaParaEspecial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setResolucionAltaParaEspecial(String value) { + this.resolucionAltaParaEspecial = value; + } + + /** + * Obtiene el valor de la propiedad tipoCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTipoCalificacionArtesanal() { + return tipoCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad tipoCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTipoCalificacionArtesanal(String value) { + this.tipoCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad ultimoPeriodoFiscalCumplido. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUltimoPeriodoFiscalCumplido() { + return ultimoPeriodoFiscalCumplido; + } + + /** + * Define el valor de la propiedad ultimoPeriodoFiscalCumplido. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUltimoPeriodoFiscalCumplido(String value) { + this.ultimoPeriodoFiscalCumplido = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteOnLine.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteOnLine.java.svn-base new file mode 100644 index 0000000..080ef38 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ContribuyenteOnLine.java.svn-base @@ -0,0 +1,332 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyenteOnLine complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyenteOnLine">
+ *   <complexContent>
+ *     <extension base="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente">
+ *       <sequence>
+ *         <element name="actEcoPrin" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="activEstablec" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codActEcoPrin" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desUbicaGeograf" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="descTipoContri" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaIniAct" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="idRepreLegal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreRepreLegal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoContri" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ubicaGeograf" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyenteOnLine", propOrder = { + "actEcoPrin", + "activEstablec", + "codActEcoPrin", + "desUbicaGeograf", + "descTipoContri", + "fechaIniAct", + "idRepreLegal", + "nombreRepreLegal", + "telefonos", + "tipoContri", + "ubicaGeograf" +}) +public class ContribuyenteOnLine + extends Contribuyente +{ + + protected String actEcoPrin; + protected String activEstablec; + protected String codActEcoPrin; + protected String desUbicaGeograf; + protected String descTipoContri; + protected String fechaIniAct; + protected String idRepreLegal; + protected String nombreRepreLegal; + protected String telefonos; + protected String tipoContri; + protected String ubicaGeograf; + + /** + * Obtiene el valor de la propiedad actEcoPrin. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActEcoPrin() { + return actEcoPrin; + } + + /** + * Define el valor de la propiedad actEcoPrin. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActEcoPrin(String value) { + this.actEcoPrin = value; + } + + /** + * Obtiene el valor de la propiedad activEstablec. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActivEstablec() { + return activEstablec; + } + + /** + * Define el valor de la propiedad activEstablec. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActivEstablec(String value) { + this.activEstablec = value; + } + + /** + * Obtiene el valor de la propiedad codActEcoPrin. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodActEcoPrin() { + return codActEcoPrin; + } + + /** + * Define el valor de la propiedad codActEcoPrin. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodActEcoPrin(String value) { + this.codActEcoPrin = value; + } + + /** + * Obtiene el valor de la propiedad desUbicaGeograf. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesUbicaGeograf() { + return desUbicaGeograf; + } + + /** + * Define el valor de la propiedad desUbicaGeograf. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesUbicaGeograf(String value) { + this.desUbicaGeograf = value; + } + + /** + * Obtiene el valor de la propiedad descTipoContri. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescTipoContri() { + return descTipoContri; + } + + /** + * Define el valor de la propiedad descTipoContri. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescTipoContri(String value) { + this.descTipoContri = value; + } + + /** + * Obtiene el valor de la propiedad fechaIniAct. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaIniAct() { + return fechaIniAct; + } + + /** + * Define el valor de la propiedad fechaIniAct. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaIniAct(String value) { + this.fechaIniAct = value; + } + + /** + * Obtiene el valor de la propiedad idRepreLegal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdRepreLegal() { + return idRepreLegal; + } + + /** + * Define el valor de la propiedad idRepreLegal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdRepreLegal(String value) { + this.idRepreLegal = value; + } + + /** + * Obtiene el valor de la propiedad nombreRepreLegal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreRepreLegal() { + return nombreRepreLegal; + } + + /** + * Define el valor de la propiedad nombreRepreLegal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreRepreLegal(String value) { + this.nombreRepreLegal = value; + } + + /** + * Obtiene el valor de la propiedad telefonos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonos() { + return telefonos; + } + + /** + * Define el valor de la propiedad telefonos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonos(String value) { + this.telefonos = value; + } + + /** + * Obtiene el valor de la propiedad tipoContri. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTipoContri() { + return tipoContri; + } + + /** + * Define el valor de la propiedad tipoContri. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTipoContri(String value) { + this.tipoContri = value; + } + + /** + * Obtiene el valor de la propiedad ubicaGeograf. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUbicaGeograf() { + return ubicaGeograf; + } + + /** + * Define el valor de la propiedad ubicaGeograf. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUbicaGeograf(String value) { + this.ubicaGeograf = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/EstructuraOrganizacional.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/EstructuraOrganizacional.java.svn-base new file mode 100644 index 0000000..c175fee --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/EstructuraOrganizacional.java.svn-base @@ -0,0 +1,160 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para estructuraOrganizacional complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="estructuraOrganizacional">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="codigoProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codigoRegional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}long"/>
+ *         <element name="nombreProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreRegional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "estructuraOrganizacional", propOrder = { + "codigoProvincia", + "codigoRegional", + "id", + "nombreProvincia", + "nombreRegional" +}) +public class EstructuraOrganizacional { + + protected String codigoProvincia; + protected String codigoRegional; + protected long id; + protected String nombreProvincia; + protected String nombreRegional; + + /** + * Obtiene el valor de la propiedad codigoProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoProvincia() { + return codigoProvincia; + } + + /** + * Define el valor de la propiedad codigoProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoProvincia(String value) { + this.codigoProvincia = value; + } + + /** + * Obtiene el valor de la propiedad codigoRegional. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoRegional() { + return codigoRegional; + } + + /** + * Define el valor de la propiedad codigoRegional. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoRegional(String value) { + this.codigoRegional = value; + } + + /** + * Obtiene el valor de la propiedad id. + * + */ + public long getId() { + return id; + } + + /** + * Define el valor de la propiedad id. + * + */ + public void setId(long value) { + this.id = value; + } + + /** + * Obtiene el valor de la propiedad nombreProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreProvincia() { + return nombreProvincia; + } + + /** + * Define el valor de la propiedad nombreProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreProvincia(String value) { + this.nombreProvincia = value; + } + + /** + * Obtiene el valor de la propiedad nombreRegional. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreRegional() { + return nombreRegional; + } + + /** + * Define el valor de la propiedad nombreRegional. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreRegional(String value) { + this.nombreRegional = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ListaBlanca.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ListaBlanca.java.svn-base new file mode 100644 index 0000000..91b3c90 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ListaBlanca.java.svn-base @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para listaBlanca complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="listaBlanca">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="estado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "listaBlanca", propOrder = { + "estado" +}) +public class ListaBlanca { + + protected String estado; + + /** + * Obtiene el valor de la propiedad estado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEstado() { + return estado; + } + + /** + * Define el valor de la propiedad estado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEstado(String value) { + this.estado = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObjectFactory.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..88df996 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObjectFactory.java.svn-base @@ -0,0 +1,231 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the ec.gov.sri.wsconsultacontribuyente package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ObtenerSimple_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerSimple"); + private final static QName _ObtenerCompletoResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerCompletoResponse"); + private final static QName _ObtenerCompleto_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerCompleto"); + private final static QName _ObtenerDatos_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerDatos"); + private final static QName _ObtenerSimpleResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerSimpleResponse"); + private final static QName _ObtenerDatosResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerDatosResponse"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ec.gov.sri.wsconsultacontribuyente + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ObtenerSimple } + * + */ + public ObtenerSimple createObtenerSimple() { + return new ObtenerSimple(); + } + + /** + * Create an instance of {@link ObtenerDatosResponse } + * + */ + public ObtenerDatosResponse createObtenerDatosResponse() { + return new ObtenerDatosResponse(); + } + + /** + * Create an instance of {@link ObtenerCompletoResponse } + * + */ + public ObtenerCompletoResponse createObtenerCompletoResponse() { + return new ObtenerCompletoResponse(); + } + + /** + * Create an instance of {@link ObtenerSimpleResponse } + * + */ + public ObtenerSimpleResponse createObtenerSimpleResponse() { + return new ObtenerSimpleResponse(); + } + + /** + * Create an instance of {@link ObtenerDatos } + * + */ + public ObtenerDatos createObtenerDatos() { + return new ObtenerDatos(); + } + + /** + * Create an instance of {@link ObtenerCompleto } + * + */ + public ObtenerCompleto createObtenerCompleto() { + return new ObtenerCompleto(); + } + + /** + * Create an instance of {@link ContribuyenteOnLine } + * + */ + public ContribuyenteOnLine createContribuyenteOnLine() { + return new ContribuyenteOnLine(); + } + + /** + * Create an instance of {@link AgenteRetencion } + * + */ + public AgenteRetencion createAgenteRetencion() { + return new AgenteRetencion(); + } + + /** + * Create an instance of {@link EstructuraOrganizacional } + * + */ + public EstructuraOrganizacional createEstructuraOrganizacional() { + return new EstructuraOrganizacional(); + } + + /** + * Create an instance of {@link ListaBlanca } + * + */ + public ListaBlanca createListaBlanca() { + return new ListaBlanca(); + } + + /** + * Create an instance of {@link RepresentanteLegal } + * + */ + public RepresentanteLegal createRepresentanteLegal() { + return new RepresentanteLegal(); + } + + /** + * Create an instance of {@link Contribuyente } + * + */ + public Contribuyente createContribuyente() { + return new Contribuyente(); + } + + /** + * Create an instance of {@link Contador } + * + */ + public Contador createContador() { + return new Contador(); + } + + /** + * Create an instance of {@link UbicacionGeografica } + * + */ + public UbicacionGeografica createUbicacionGeografica() { + return new UbicacionGeografica(); + } + + /** + * Create an instance of {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto createContribuyenteCompleto() { + return new ContribuyenteCompleto(); + } + + /** + * Create an instance of {@link ActividadEconomica } + * + */ + public ActividadEconomica createActividadEconomica() { + return new ActividadEconomica(); + } + + /** + * Create an instance of {@link TipoContribuyente } + * + */ + public TipoContribuyente createTipoContribuyente() { + return new TipoContribuyente(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerSimple }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerSimple") + public JAXBElement createObtenerSimple(ObtenerSimple value) { + return new JAXBElement(_ObtenerSimple_QNAME, ObtenerSimple.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerCompletoResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerCompletoResponse") + public JAXBElement createObtenerCompletoResponse(ObtenerCompletoResponse value) { + return new JAXBElement(_ObtenerCompletoResponse_QNAME, ObtenerCompletoResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerCompleto }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerCompleto") + public JAXBElement createObtenerCompleto(ObtenerCompleto value) { + return new JAXBElement(_ObtenerCompleto_QNAME, ObtenerCompleto.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerDatos }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerDatos") + public JAXBElement createObtenerDatos(ObtenerDatos value) { + return new JAXBElement(_ObtenerDatos_QNAME, ObtenerDatos.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerSimpleResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerSimpleResponse") + public JAXBElement createObtenerSimpleResponse(ObtenerSimpleResponse value) { + return new JAXBElement(_ObtenerSimpleResponse_QNAME, ObtenerSimpleResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerDatosResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerDatosResponse") + public JAXBElement createObtenerDatosResponse(ObtenerDatosResponse value) { + return new JAXBElement(_ObtenerDatosResponse_QNAME, ObtenerDatosResponse.class, null, value); + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompleto.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompleto.java.svn-base new file mode 100644 index 0000000..bfe75e8 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompleto.java.svn-base @@ -0,0 +1,87 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerCompleto complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerCompleto">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fuenteDatos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerCompleto", propOrder = { + "numeroRuc", + "fuenteDatos" +}) +public class ObtenerCompleto { + + protected String numeroRuc; + protected String fuenteDatos; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad fuenteDatos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuenteDatos() { + return fuenteDatos; + } + + /** + * Define el valor de la propiedad fuenteDatos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuenteDatos(String value) { + this.fuenteDatos = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompletoResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompletoResponse.java.svn-base new file mode 100644 index 0000000..581adf2 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerCompletoResponse.java.svn-base @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerCompletoResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerCompletoResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyenteCompleto" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerCompletoResponse", propOrder = { + "_return" +}) +public class ObtenerCompletoResponse { + + @XmlElement(name = "return") + protected ContribuyenteCompleto _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteCompleto } + * + */ + public void setReturn(ContribuyenteCompleto value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatos.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatos.java.svn-base new file mode 100644 index 0000000..ba64c14 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatos.java.svn-base @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerDatos complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerDatos">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerDatos", propOrder = { + "numeroRuc" +}) +public class ObtenerDatos { + + protected String numeroRuc; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatosResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatosResponse.java.svn-base new file mode 100644 index 0000000..d111281 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerDatosResponse.java.svn-base @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerDatosResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerDatosResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyenteOnLine" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerDatosResponse", propOrder = { + "_return" +}) +public class ObtenerDatosResponse { + + @XmlElement(name = "return") + protected ContribuyenteOnLine _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteOnLine } + * + */ + public ContribuyenteOnLine getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteOnLine } + * + */ + public void setReturn(ContribuyenteOnLine value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimple.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimple.java.svn-base new file mode 100644 index 0000000..0b08a57 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimple.java.svn-base @@ -0,0 +1,87 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerSimple complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerSimple">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fuenteDatos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerSimple", propOrder = { + "numeroRuc", + "fuenteDatos" +}) +public class ObtenerSimple { + + protected String numeroRuc; + protected String fuenteDatos; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad fuenteDatos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuenteDatos() { + return fuenteDatos; + } + + /** + * Define el valor de la propiedad fuenteDatos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuenteDatos(String value) { + this.fuenteDatos = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimpleResponse.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimpleResponse.java.svn-base new file mode 100644 index 0000000..3d2a334 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/ObtenerSimpleResponse.java.svn-base @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerSimpleResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerSimpleResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerSimpleResponse", propOrder = { + "_return" +}) +public class ObtenerSimpleResponse { + + @XmlElement(name = "return") + protected Contribuyente _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Contribuyente } + * + */ + public Contribuyente getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Contribuyente } + * + */ + public void setReturn(Contribuyente value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/RepresentanteLegal.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/RepresentanteLegal.java.svn-base new file mode 100644 index 0000000..16e3747 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/RepresentanteLegal.java.svn-base @@ -0,0 +1,114 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para representanteLegal complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="representanteLegal">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cargo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="identificacion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "representanteLegal", propOrder = { + "cargo", + "identificacion", + "nombre" +}) +public class RepresentanteLegal { + + protected String cargo; + protected String identificacion; + protected String nombre; + + /** + * Obtiene el valor de la propiedad cargo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCargo() { + return cargo; + } + + /** + * Define el valor de la propiedad cargo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCargo(String value) { + this.cargo = value; + } + + /** + * Obtiene el valor de la propiedad identificacion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentificacion() { + return identificacion; + } + + /** + * Define el valor de la propiedad identificacion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentificacion(String value) { + this.identificacion = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/TipoContribuyente.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/TipoContribuyente.java.svn-base new file mode 100644 index 0000000..6e99e41 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/TipoContribuyente.java.svn-base @@ -0,0 +1,195 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para tipoContribuyente complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="tipoContribuyente">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="nivel1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel4" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ultimoNivel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tipoContribuyente", propOrder = { + "id", + "nivel1", + "nivel2", + "nivel3", + "nivel4", + "ultimoNivel" +}) +public class TipoContribuyente { + + protected Long id; + protected String nivel1; + protected String nivel2; + protected String nivel3; + protected String nivel4; + protected String ultimoNivel; + + /** + * Obtiene el valor de la propiedad id. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getId() { + return id; + } + + /** + * Define el valor de la propiedad id. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setId(Long value) { + this.id = value; + } + + /** + * Obtiene el valor de la propiedad nivel1. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel1() { + return nivel1; + } + + /** + * Define el valor de la propiedad nivel1. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel1(String value) { + this.nivel1 = value; + } + + /** + * Obtiene el valor de la propiedad nivel2. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel2() { + return nivel2; + } + + /** + * Define el valor de la propiedad nivel2. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel2(String value) { + this.nivel2 = value; + } + + /** + * Obtiene el valor de la propiedad nivel3. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel3() { + return nivel3; + } + + /** + * Define el valor de la propiedad nivel3. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel3(String value) { + this.nivel3 = value; + } + + /** + * Obtiene el valor de la propiedad nivel4. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel4() { + return nivel4; + } + + /** + * Define el valor de la propiedad nivel4. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel4(String value) { + this.nivel4 = value; + } + + /** + * Obtiene el valor de la propiedad ultimoNivel. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUltimoNivel() { + return ultimoNivel; + } + + /** + * Define el valor de la propiedad ultimoNivel. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUltimoNivel(String value) { + this.ultimoNivel = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/UbicacionGeografica.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/UbicacionGeografica.java.svn-base new file mode 100644 index 0000000..a8d4e56 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/UbicacionGeografica.java.svn-base @@ -0,0 +1,303 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para ubicacionGeografica complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="ubicacionGeografica">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="canton" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codCanton" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codPais" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codParroquia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codRegion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="pais" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="parroquia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="provincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="region" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ubicacionGeografica", propOrder = { + "canton", + "codCanton", + "codPais", + "codParroquia", + "codProvincia", + "codRegion", + "pais", + "parroquia", + "provincia", + "region" +}) +public class UbicacionGeografica { + + protected String canton; + protected String codCanton; + protected String codPais; + protected String codParroquia; + protected String codProvincia; + protected String codRegion; + protected String pais; + protected String parroquia; + protected String provincia; + protected String region; + + /** + * Obtiene el valor de la propiedad canton. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCanton() { + return canton; + } + + /** + * Define el valor de la propiedad canton. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCanton(String value) { + this.canton = value; + } + + /** + * Obtiene el valor de la propiedad codCanton. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodCanton() { + return codCanton; + } + + /** + * Define el valor de la propiedad codCanton. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodCanton(String value) { + this.codCanton = value; + } + + /** + * Obtiene el valor de la propiedad codPais. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodPais() { + return codPais; + } + + /** + * Define el valor de la propiedad codPais. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodPais(String value) { + this.codPais = value; + } + + /** + * Obtiene el valor de la propiedad codParroquia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodParroquia() { + return codParroquia; + } + + /** + * Define el valor de la propiedad codParroquia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodParroquia(String value) { + this.codParroquia = value; + } + + /** + * Obtiene el valor de la propiedad codProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodProvincia() { + return codProvincia; + } + + /** + * Define el valor de la propiedad codProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodProvincia(String value) { + this.codProvincia = value; + } + + /** + * Obtiene el valor de la propiedad codRegion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodRegion() { + return codRegion; + } + + /** + * Define el valor de la propiedad codRegion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodRegion(String value) { + this.codRegion = value; + } + + /** + * Obtiene el valor de la propiedad pais. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPais() { + return pais; + } + + /** + * Define el valor de la propiedad pais. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPais(String value) { + this.pais = value; + } + + /** + * Obtiene el valor de la propiedad parroquia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getParroquia() { + return parroquia; + } + + /** + * Define el valor de la propiedad parroquia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setParroquia(String value) { + this.parroquia = value; + } + + /** + * Obtiene el valor de la propiedad provincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProvincia() { + return provincia; + } + + /** + * Define el valor de la propiedad provincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProvincia(String value) { + this.provincia = value; + } + + /** + * Obtiene el valor de la propiedad region. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRegion() { + return region; + } + + /** + * Define el valor de la propiedad region. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRegion(String value) { + this.region = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/package-info.java.svn-base b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/package-info.java.svn-base new file mode 100644 index 0000000..1a4786d --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/.svn/text-base/package-info.java.svn-base @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://sri.gov.ec/wsConsultaContribuyente") +package ec.gov.sri.wsconsultacontribuyente; diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.java new file mode 100644 index 0000000..6b3197f --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.java @@ -0,0 +1,384 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para actividadEconomica complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="actividadEconomica">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="actividadGeneral" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN1Familia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN2Grupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN3SubGrupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN4Clase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN5SubClase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codN6Actividad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n1Familia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n2Grupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n3SubGrupo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n4Clase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n5SubClase" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="n6Actividad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "actividadEconomica", propOrder = { + "actividadGeneral", + "codN1Familia", + "codN2Grupo", + "codN3SubGrupo", + "codN4Clase", + "codN5SubClase", + "codN6Actividad", + "n1Familia", + "n2Grupo", + "n3SubGrupo", + "n4Clase", + "n5SubClase", + "n6Actividad" +}) +public class ActividadEconomica { + + protected String actividadGeneral; + protected String codN1Familia; + protected String codN2Grupo; + protected String codN3SubGrupo; + protected String codN4Clase; + protected String codN5SubClase; + protected String codN6Actividad; + protected String n1Familia; + protected String n2Grupo; + protected String n3SubGrupo; + protected String n4Clase; + protected String n5SubClase; + protected String n6Actividad; + + /** + * Obtiene el valor de la propiedad actividadGeneral. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActividadGeneral() { + return actividadGeneral; + } + + /** + * Define el valor de la propiedad actividadGeneral. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActividadGeneral(String value) { + this.actividadGeneral = value; + } + + /** + * Obtiene el valor de la propiedad codN1Familia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN1Familia() { + return codN1Familia; + } + + /** + * Define el valor de la propiedad codN1Familia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN1Familia(String value) { + this.codN1Familia = value; + } + + /** + * Obtiene el valor de la propiedad codN2Grupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN2Grupo() { + return codN2Grupo; + } + + /** + * Define el valor de la propiedad codN2Grupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN2Grupo(String value) { + this.codN2Grupo = value; + } + + /** + * Obtiene el valor de la propiedad codN3SubGrupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN3SubGrupo() { + return codN3SubGrupo; + } + + /** + * Define el valor de la propiedad codN3SubGrupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN3SubGrupo(String value) { + this.codN3SubGrupo = value; + } + + /** + * Obtiene el valor de la propiedad codN4Clase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN4Clase() { + return codN4Clase; + } + + /** + * Define el valor de la propiedad codN4Clase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN4Clase(String value) { + this.codN4Clase = value; + } + + /** + * Obtiene el valor de la propiedad codN5SubClase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN5SubClase() { + return codN5SubClase; + } + + /** + * Define el valor de la propiedad codN5SubClase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN5SubClase(String value) { + this.codN5SubClase = value; + } + + /** + * Obtiene el valor de la propiedad codN6Actividad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodN6Actividad() { + return codN6Actividad; + } + + /** + * Define el valor de la propiedad codN6Actividad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodN6Actividad(String value) { + this.codN6Actividad = value; + } + + /** + * Obtiene el valor de la propiedad n1Familia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN1Familia() { + return n1Familia; + } + + /** + * Define el valor de la propiedad n1Familia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN1Familia(String value) { + this.n1Familia = value; + } + + /** + * Obtiene el valor de la propiedad n2Grupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN2Grupo() { + return n2Grupo; + } + + /** + * Define el valor de la propiedad n2Grupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN2Grupo(String value) { + this.n2Grupo = value; + } + + /** + * Obtiene el valor de la propiedad n3SubGrupo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN3SubGrupo() { + return n3SubGrupo; + } + + /** + * Define el valor de la propiedad n3SubGrupo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN3SubGrupo(String value) { + this.n3SubGrupo = value; + } + + /** + * Obtiene el valor de la propiedad n4Clase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN4Clase() { + return n4Clase; + } + + /** + * Define el valor de la propiedad n4Clase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN4Clase(String value) { + this.n4Clase = value; + } + + /** + * Obtiene el valor de la propiedad n5SubClase. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN5SubClase() { + return n5SubClase; + } + + /** + * Define el valor de la propiedad n5SubClase. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN5SubClase(String value) { + this.n5SubClase = value; + } + + /** + * Obtiene el valor de la propiedad n6Actividad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getN6Actividad() { + return n6Actividad; + } + + /** + * Define el valor de la propiedad n6Actividad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setN6Actividad(String value) { + this.n6Actividad = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.java new file mode 100644 index 0000000..1378a8c --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.java @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para agenteRetencion complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="agenteRetencion">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "agenteRetencion", propOrder = { + "nombre" +}) +public class AgenteRetencion { + + protected String nombre; + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contador.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contador.java new file mode 100644 index 0000000..8c4dfe4 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contador.java @@ -0,0 +1,114 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contador complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contador">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ruc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contador", propOrder = { + "cedula", + "nombre", + "ruc" +}) +public class Contador { + + protected String cedula; + protected String nombre; + protected String ruc; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + + /** + * Obtiene el valor de la propiedad ruc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRuc() { + return ruc; + } + + /** + * Define el valor de la propiedad ruc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRuc(String value) { + this.ruc = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contribuyente.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contribuyente.java new file mode 100644 index 0000000..a31f64c --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/Contribuyente.java @@ -0,0 +1,416 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyente complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyente">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="actividadEconomica" type="{http://sri.gov.ec/wsConsultaContribuyente}actividadEconomica" minOccurs="0"/>
+ *         <element name="codClaseContrib" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codEstado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desClaseContrib" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desEstado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="direccionCorta" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreComercial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="razonSocial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonoDomicilio" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonoTrabajo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoContribuyente" type="{http://sri.gov.ec/wsConsultaContribuyente}tipoContribuyente" minOccurs="0"/>
+ *         <element name="ubicacionGeografica" type="{http://sri.gov.ec/wsConsultaContribuyente}ubicacionGeografica" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyente", propOrder = { + "actividadEconomica", + "codClaseContrib", + "codEstado", + "desClaseContrib", + "desEstado", + "direccionCorta", + "email", + "nombreComercial", + "numeroRuc", + "razonSocial", + "telefonoDomicilio", + "telefonoTrabajo", + "tipoContribuyente", + "ubicacionGeografica" +}) +@XmlSeeAlso({ + ContribuyenteOnLine.class, + ContribuyenteCompleto.class +}) +public class Contribuyente { + + protected ActividadEconomica actividadEconomica; + protected String codClaseContrib; + protected String codEstado; + protected String desClaseContrib; + protected String desEstado; + protected String direccionCorta; + protected String email; + protected String nombreComercial; + protected String numeroRuc; + protected String razonSocial; + protected String telefonoDomicilio; + protected String telefonoTrabajo; + protected TipoContribuyente tipoContribuyente; + protected UbicacionGeografica ubicacionGeografica; + + /** + * Obtiene el valor de la propiedad actividadEconomica. + * + * @return + * possible object is + * {@link ActividadEconomica } + * + */ + public ActividadEconomica getActividadEconomica() { + return actividadEconomica; + } + + /** + * Define el valor de la propiedad actividadEconomica. + * + * @param value + * allowed object is + * {@link ActividadEconomica } + * + */ + public void setActividadEconomica(ActividadEconomica value) { + this.actividadEconomica = value; + } + + /** + * Obtiene el valor de la propiedad codClaseContrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodClaseContrib() { + return codClaseContrib; + } + + /** + * Define el valor de la propiedad codClaseContrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodClaseContrib(String value) { + this.codClaseContrib = value; + } + + /** + * Obtiene el valor de la propiedad codEstado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodEstado() { + return codEstado; + } + + /** + * Define el valor de la propiedad codEstado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodEstado(String value) { + this.codEstado = value; + } + + /** + * Obtiene el valor de la propiedad desClaseContrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesClaseContrib() { + return desClaseContrib; + } + + /** + * Define el valor de la propiedad desClaseContrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesClaseContrib(String value) { + this.desClaseContrib = value; + } + + /** + * Obtiene el valor de la propiedad desEstado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesEstado() { + return desEstado; + } + + /** + * Define el valor de la propiedad desEstado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesEstado(String value) { + this.desEstado = value; + } + + /** + * Obtiene el valor de la propiedad direccionCorta. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDireccionCorta() { + return direccionCorta; + } + + /** + * Define el valor de la propiedad direccionCorta. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDireccionCorta(String value) { + this.direccionCorta = value; + } + + /** + * Obtiene el valor de la propiedad email. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEmail() { + return email; + } + + /** + * Define el valor de la propiedad email. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEmail(String value) { + this.email = value; + } + + /** + * Obtiene el valor de la propiedad nombreComercial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreComercial() { + return nombreComercial; + } + + /** + * Define el valor de la propiedad nombreComercial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreComercial(String value) { + this.nombreComercial = value; + } + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad razonSocial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRazonSocial() { + return razonSocial; + } + + /** + * Define el valor de la propiedad razonSocial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRazonSocial(String value) { + this.razonSocial = value; + } + + /** + * Obtiene el valor de la propiedad telefonoDomicilio. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonoDomicilio() { + return telefonoDomicilio; + } + + /** + * Define el valor de la propiedad telefonoDomicilio. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonoDomicilio(String value) { + this.telefonoDomicilio = value; + } + + /** + * Obtiene el valor de la propiedad telefonoTrabajo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonoTrabajo() { + return telefonoTrabajo; + } + + /** + * Define el valor de la propiedad telefonoTrabajo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonoTrabajo(String value) { + this.telefonoTrabajo = value; + } + + /** + * Obtiene el valor de la propiedad tipoContribuyente. + * + * @return + * possible object is + * {@link TipoContribuyente } + * + */ + public TipoContribuyente getTipoContribuyente() { + return tipoContribuyente; + } + + /** + * Define el valor de la propiedad tipoContribuyente. + * + * @param value + * allowed object is + * {@link TipoContribuyente } + * + */ + public void setTipoContribuyente(TipoContribuyente value) { + this.tipoContribuyente = value; + } + + /** + * Obtiene el valor de la propiedad ubicacionGeografica. + * + * @return + * possible object is + * {@link UbicacionGeografica } + * + */ + public UbicacionGeografica getUbicacionGeografica() { + return ubicacionGeografica; + } + + /** + * Define el valor de la propiedad ubicacionGeografica. + * + * @param value + * allowed object is + * {@link UbicacionGeografica } + * + */ + public void setUbicacionGeografica(UbicacionGeografica value) { + this.ubicacionGeografica = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.java new file mode 100644 index 0000000..82a0b62 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.java @@ -0,0 +1,575 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyenteCompleto complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyenteCompleto">
+ *   <complexContent>
+ *     <extension base="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente">
+ *       <sequence>
+ *         <element name="agenteRetencion" type="{http://sri.gov.ec/wsConsultaContribuyente}agenteRetencion" minOccurs="0"/>
+ *         <element name="calificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="contador" type="{http://sri.gov.ec/wsConsultaContribuyente}contador" minOccurs="0"/>
+ *         <element name="direccionLarga" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="estructuraOrganizacional" type="{http://sri.gov.ec/wsConsultaContribuyente}estructuraOrganizacional" minOccurs="0"/>
+ *         <element name="fax" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaAltaParaEspecial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaCambioObligado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaInicioActividades" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaNacimiento" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaNotificacionEspeciales" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaUltimaDeclaracion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="listaBlanca" type="{http://sri.gov.ec/wsConsultaContribuyente}listaBlanca" minOccurs="0"/>
+ *         <element name="numeroCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="obligadoContabilidad" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="representanteLegal" type="{http://sri.gov.ec/wsConsultaContribuyente}representanteLegal" minOccurs="0"/>
+ *         <element name="resolucionAltaParaEspecial" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoCalificacionArtesanal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ultimoPeriodoFiscalCumplido" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyenteCompleto", propOrder = { + "agenteRetencion", + "calificacionArtesanal", + "contador", + "direccionLarga", + "estructuraOrganizacional", + "fax", + "fechaAltaParaEspecial", + "fechaCalificacionArtesanal", + "fechaCambioObligado", + "fechaInicioActividades", + "fechaNacimiento", + "fechaNotificacionEspeciales", + "fechaUltimaDeclaracion", + "listaBlanca", + "numeroCalificacionArtesanal", + "obligadoContabilidad", + "representanteLegal", + "resolucionAltaParaEspecial", + "tipoCalificacionArtesanal", + "ultimoPeriodoFiscalCumplido" +}) +public class ContribuyenteCompleto + extends Contribuyente +{ + + protected AgenteRetencion agenteRetencion; + protected String calificacionArtesanal; + protected Contador contador; + protected String direccionLarga; + protected EstructuraOrganizacional estructuraOrganizacional; + protected String fax; + protected String fechaAltaParaEspecial; + protected String fechaCalificacionArtesanal; + protected String fechaCambioObligado; + protected String fechaInicioActividades; + protected String fechaNacimiento; + protected String fechaNotificacionEspeciales; + protected String fechaUltimaDeclaracion; + protected ListaBlanca listaBlanca; + protected String numeroCalificacionArtesanal; + protected String obligadoContabilidad; + protected RepresentanteLegal representanteLegal; + protected String resolucionAltaParaEspecial; + protected String tipoCalificacionArtesanal; + protected String ultimoPeriodoFiscalCumplido; + + /** + * Obtiene el valor de la propiedad agenteRetencion. + * + * @return + * possible object is + * {@link AgenteRetencion } + * + */ + public AgenteRetencion getAgenteRetencion() { + return agenteRetencion; + } + + /** + * Define el valor de la propiedad agenteRetencion. + * + * @param value + * allowed object is + * {@link AgenteRetencion } + * + */ + public void setAgenteRetencion(AgenteRetencion value) { + this.agenteRetencion = value; + } + + /** + * Obtiene el valor de la propiedad calificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCalificacionArtesanal() { + return calificacionArtesanal; + } + + /** + * Define el valor de la propiedad calificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCalificacionArtesanal(String value) { + this.calificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad contador. + * + * @return + * possible object is + * {@link Contador } + * + */ + public Contador getContador() { + return contador; + } + + /** + * Define el valor de la propiedad contador. + * + * @param value + * allowed object is + * {@link Contador } + * + */ + public void setContador(Contador value) { + this.contador = value; + } + + /** + * Obtiene el valor de la propiedad direccionLarga. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDireccionLarga() { + return direccionLarga; + } + + /** + * Define el valor de la propiedad direccionLarga. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDireccionLarga(String value) { + this.direccionLarga = value; + } + + /** + * Obtiene el valor de la propiedad estructuraOrganizacional. + * + * @return + * possible object is + * {@link EstructuraOrganizacional } + * + */ + public EstructuraOrganizacional getEstructuraOrganizacional() { + return estructuraOrganizacional; + } + + /** + * Define el valor de la propiedad estructuraOrganizacional. + * + * @param value + * allowed object is + * {@link EstructuraOrganizacional } + * + */ + public void setEstructuraOrganizacional(EstructuraOrganizacional value) { + this.estructuraOrganizacional = value; + } + + /** + * Obtiene el valor de la propiedad fax. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFax() { + return fax; + } + + /** + * Define el valor de la propiedad fax. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFax(String value) { + this.fax = value; + } + + /** + * Obtiene el valor de la propiedad fechaAltaParaEspecial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaAltaParaEspecial() { + return fechaAltaParaEspecial; + } + + /** + * Define el valor de la propiedad fechaAltaParaEspecial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaAltaParaEspecial(String value) { + this.fechaAltaParaEspecial = value; + } + + /** + * Obtiene el valor de la propiedad fechaCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCalificacionArtesanal() { + return fechaCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad fechaCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCalificacionArtesanal(String value) { + this.fechaCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad fechaCambioObligado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaCambioObligado() { + return fechaCambioObligado; + } + + /** + * Define el valor de la propiedad fechaCambioObligado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaCambioObligado(String value) { + this.fechaCambioObligado = value; + } + + /** + * Obtiene el valor de la propiedad fechaInicioActividades. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaInicioActividades() { + return fechaInicioActividades; + } + + /** + * Define el valor de la propiedad fechaInicioActividades. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaInicioActividades(String value) { + this.fechaInicioActividades = value; + } + + /** + * Obtiene el valor de la propiedad fechaNacimiento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNacimiento() { + return fechaNacimiento; + } + + /** + * Define el valor de la propiedad fechaNacimiento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNacimiento(String value) { + this.fechaNacimiento = value; + } + + /** + * Obtiene el valor de la propiedad fechaNotificacionEspeciales. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaNotificacionEspeciales() { + return fechaNotificacionEspeciales; + } + + /** + * Define el valor de la propiedad fechaNotificacionEspeciales. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaNotificacionEspeciales(String value) { + this.fechaNotificacionEspeciales = value; + } + + /** + * Obtiene el valor de la propiedad fechaUltimaDeclaracion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaUltimaDeclaracion() { + return fechaUltimaDeclaracion; + } + + /** + * Define el valor de la propiedad fechaUltimaDeclaracion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaUltimaDeclaracion(String value) { + this.fechaUltimaDeclaracion = value; + } + + /** + * Obtiene el valor de la propiedad listaBlanca. + * + * @return + * possible object is + * {@link ListaBlanca } + * + */ + public ListaBlanca getListaBlanca() { + return listaBlanca; + } + + /** + * Define el valor de la propiedad listaBlanca. + * + * @param value + * allowed object is + * {@link ListaBlanca } + * + */ + public void setListaBlanca(ListaBlanca value) { + this.listaBlanca = value; + } + + /** + * Obtiene el valor de la propiedad numeroCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroCalificacionArtesanal() { + return numeroCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad numeroCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroCalificacionArtesanal(String value) { + this.numeroCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad obligadoContabilidad. + * + * @return + * possible object is + * {@link String } + * + */ + public String getObligadoContabilidad() { + return obligadoContabilidad; + } + + /** + * Define el valor de la propiedad obligadoContabilidad. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setObligadoContabilidad(String value) { + this.obligadoContabilidad = value; + } + + /** + * Obtiene el valor de la propiedad representanteLegal. + * + * @return + * possible object is + * {@link RepresentanteLegal } + * + */ + public RepresentanteLegal getRepresentanteLegal() { + return representanteLegal; + } + + /** + * Define el valor de la propiedad representanteLegal. + * + * @param value + * allowed object is + * {@link RepresentanteLegal } + * + */ + public void setRepresentanteLegal(RepresentanteLegal value) { + this.representanteLegal = value; + } + + /** + * Obtiene el valor de la propiedad resolucionAltaParaEspecial. + * + * @return + * possible object is + * {@link String } + * + */ + public String getResolucionAltaParaEspecial() { + return resolucionAltaParaEspecial; + } + + /** + * Define el valor de la propiedad resolucionAltaParaEspecial. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setResolucionAltaParaEspecial(String value) { + this.resolucionAltaParaEspecial = value; + } + + /** + * Obtiene el valor de la propiedad tipoCalificacionArtesanal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTipoCalificacionArtesanal() { + return tipoCalificacionArtesanal; + } + + /** + * Define el valor de la propiedad tipoCalificacionArtesanal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTipoCalificacionArtesanal(String value) { + this.tipoCalificacionArtesanal = value; + } + + /** + * Obtiene el valor de la propiedad ultimoPeriodoFiscalCumplido. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUltimoPeriodoFiscalCumplido() { + return ultimoPeriodoFiscalCumplido; + } + + /** + * Define el valor de la propiedad ultimoPeriodoFiscalCumplido. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUltimoPeriodoFiscalCumplido(String value) { + this.ultimoPeriodoFiscalCumplido = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.java new file mode 100644 index 0000000..080ef38 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.java @@ -0,0 +1,332 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para contribuyenteOnLine complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="contribuyenteOnLine">
+ *   <complexContent>
+ *     <extension base="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente">
+ *       <sequence>
+ *         <element name="actEcoPrin" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="activEstablec" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codActEcoPrin" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="desUbicaGeograf" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="descTipoContri" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fechaIniAct" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="idRepreLegal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreRepreLegal" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="telefonos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="tipoContri" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ubicaGeograf" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </extension>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "contribuyenteOnLine", propOrder = { + "actEcoPrin", + "activEstablec", + "codActEcoPrin", + "desUbicaGeograf", + "descTipoContri", + "fechaIniAct", + "idRepreLegal", + "nombreRepreLegal", + "telefonos", + "tipoContri", + "ubicaGeograf" +}) +public class ContribuyenteOnLine + extends Contribuyente +{ + + protected String actEcoPrin; + protected String activEstablec; + protected String codActEcoPrin; + protected String desUbicaGeograf; + protected String descTipoContri; + protected String fechaIniAct; + protected String idRepreLegal; + protected String nombreRepreLegal; + protected String telefonos; + protected String tipoContri; + protected String ubicaGeograf; + + /** + * Obtiene el valor de la propiedad actEcoPrin. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActEcoPrin() { + return actEcoPrin; + } + + /** + * Define el valor de la propiedad actEcoPrin. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActEcoPrin(String value) { + this.actEcoPrin = value; + } + + /** + * Obtiene el valor de la propiedad activEstablec. + * + * @return + * possible object is + * {@link String } + * + */ + public String getActivEstablec() { + return activEstablec; + } + + /** + * Define el valor de la propiedad activEstablec. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setActivEstablec(String value) { + this.activEstablec = value; + } + + /** + * Obtiene el valor de la propiedad codActEcoPrin. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodActEcoPrin() { + return codActEcoPrin; + } + + /** + * Define el valor de la propiedad codActEcoPrin. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodActEcoPrin(String value) { + this.codActEcoPrin = value; + } + + /** + * Obtiene el valor de la propiedad desUbicaGeograf. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDesUbicaGeograf() { + return desUbicaGeograf; + } + + /** + * Define el valor de la propiedad desUbicaGeograf. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDesUbicaGeograf(String value) { + this.desUbicaGeograf = value; + } + + /** + * Obtiene el valor de la propiedad descTipoContri. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescTipoContri() { + return descTipoContri; + } + + /** + * Define el valor de la propiedad descTipoContri. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescTipoContri(String value) { + this.descTipoContri = value; + } + + /** + * Obtiene el valor de la propiedad fechaIniAct. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFechaIniAct() { + return fechaIniAct; + } + + /** + * Define el valor de la propiedad fechaIniAct. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFechaIniAct(String value) { + this.fechaIniAct = value; + } + + /** + * Obtiene el valor de la propiedad idRepreLegal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdRepreLegal() { + return idRepreLegal; + } + + /** + * Define el valor de la propiedad idRepreLegal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdRepreLegal(String value) { + this.idRepreLegal = value; + } + + /** + * Obtiene el valor de la propiedad nombreRepreLegal. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreRepreLegal() { + return nombreRepreLegal; + } + + /** + * Define el valor de la propiedad nombreRepreLegal. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreRepreLegal(String value) { + this.nombreRepreLegal = value; + } + + /** + * Obtiene el valor de la propiedad telefonos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTelefonos() { + return telefonos; + } + + /** + * Define el valor de la propiedad telefonos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTelefonos(String value) { + this.telefonos = value; + } + + /** + * Obtiene el valor de la propiedad tipoContri. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTipoContri() { + return tipoContri; + } + + /** + * Define el valor de la propiedad tipoContri. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTipoContri(String value) { + this.tipoContri = value; + } + + /** + * Obtiene el valor de la propiedad ubicaGeograf. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUbicaGeograf() { + return ubicaGeograf; + } + + /** + * Define el valor de la propiedad ubicaGeograf. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUbicaGeograf(String value) { + this.ubicaGeograf = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.java new file mode 100644 index 0000000..c175fee --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.java @@ -0,0 +1,160 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para estructuraOrganizacional complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="estructuraOrganizacional">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="codigoProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codigoRegional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}long"/>
+ *         <element name="nombreProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombreRegional" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "estructuraOrganizacional", propOrder = { + "codigoProvincia", + "codigoRegional", + "id", + "nombreProvincia", + "nombreRegional" +}) +public class EstructuraOrganizacional { + + protected String codigoProvincia; + protected String codigoRegional; + protected long id; + protected String nombreProvincia; + protected String nombreRegional; + + /** + * Obtiene el valor de la propiedad codigoProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoProvincia() { + return codigoProvincia; + } + + /** + * Define el valor de la propiedad codigoProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoProvincia(String value) { + this.codigoProvincia = value; + } + + /** + * Obtiene el valor de la propiedad codigoRegional. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodigoRegional() { + return codigoRegional; + } + + /** + * Define el valor de la propiedad codigoRegional. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodigoRegional(String value) { + this.codigoRegional = value; + } + + /** + * Obtiene el valor de la propiedad id. + * + */ + public long getId() { + return id; + } + + /** + * Define el valor de la propiedad id. + * + */ + public void setId(long value) { + this.id = value; + } + + /** + * Obtiene el valor de la propiedad nombreProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreProvincia() { + return nombreProvincia; + } + + /** + * Define el valor de la propiedad nombreProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreProvincia(String value) { + this.nombreProvincia = value; + } + + /** + * Obtiene el valor de la propiedad nombreRegional. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombreRegional() { + return nombreRegional; + } + + /** + * Define el valor de la propiedad nombreRegional. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombreRegional(String value) { + this.nombreRegional = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.java new file mode 100644 index 0000000..91b3c90 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.java @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para listaBlanca complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="listaBlanca">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="estado" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "listaBlanca", propOrder = { + "estado" +}) +public class ListaBlanca { + + protected String estado; + + /** + * Obtiene el valor de la propiedad estado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEstado() { + return estado; + } + + /** + * Define el valor de la propiedad estado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEstado(String value) { + this.estado = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.java new file mode 100644 index 0000000..88df996 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.java @@ -0,0 +1,231 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the ec.gov.sri.wsconsultacontribuyente package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ObtenerSimple_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerSimple"); + private final static QName _ObtenerCompletoResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerCompletoResponse"); + private final static QName _ObtenerCompleto_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerCompleto"); + private final static QName _ObtenerDatos_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerDatos"); + private final static QName _ObtenerSimpleResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerSimpleResponse"); + private final static QName _ObtenerDatosResponse_QNAME = new QName("http://sri.gov.ec/wsConsultaContribuyente", "obtenerDatosResponse"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: ec.gov.sri.wsconsultacontribuyente + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ObtenerSimple } + * + */ + public ObtenerSimple createObtenerSimple() { + return new ObtenerSimple(); + } + + /** + * Create an instance of {@link ObtenerDatosResponse } + * + */ + public ObtenerDatosResponse createObtenerDatosResponse() { + return new ObtenerDatosResponse(); + } + + /** + * Create an instance of {@link ObtenerCompletoResponse } + * + */ + public ObtenerCompletoResponse createObtenerCompletoResponse() { + return new ObtenerCompletoResponse(); + } + + /** + * Create an instance of {@link ObtenerSimpleResponse } + * + */ + public ObtenerSimpleResponse createObtenerSimpleResponse() { + return new ObtenerSimpleResponse(); + } + + /** + * Create an instance of {@link ObtenerDatos } + * + */ + public ObtenerDatos createObtenerDatos() { + return new ObtenerDatos(); + } + + /** + * Create an instance of {@link ObtenerCompleto } + * + */ + public ObtenerCompleto createObtenerCompleto() { + return new ObtenerCompleto(); + } + + /** + * Create an instance of {@link ContribuyenteOnLine } + * + */ + public ContribuyenteOnLine createContribuyenteOnLine() { + return new ContribuyenteOnLine(); + } + + /** + * Create an instance of {@link AgenteRetencion } + * + */ + public AgenteRetencion createAgenteRetencion() { + return new AgenteRetencion(); + } + + /** + * Create an instance of {@link EstructuraOrganizacional } + * + */ + public EstructuraOrganizacional createEstructuraOrganizacional() { + return new EstructuraOrganizacional(); + } + + /** + * Create an instance of {@link ListaBlanca } + * + */ + public ListaBlanca createListaBlanca() { + return new ListaBlanca(); + } + + /** + * Create an instance of {@link RepresentanteLegal } + * + */ + public RepresentanteLegal createRepresentanteLegal() { + return new RepresentanteLegal(); + } + + /** + * Create an instance of {@link Contribuyente } + * + */ + public Contribuyente createContribuyente() { + return new Contribuyente(); + } + + /** + * Create an instance of {@link Contador } + * + */ + public Contador createContador() { + return new Contador(); + } + + /** + * Create an instance of {@link UbicacionGeografica } + * + */ + public UbicacionGeografica createUbicacionGeografica() { + return new UbicacionGeografica(); + } + + /** + * Create an instance of {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto createContribuyenteCompleto() { + return new ContribuyenteCompleto(); + } + + /** + * Create an instance of {@link ActividadEconomica } + * + */ + public ActividadEconomica createActividadEconomica() { + return new ActividadEconomica(); + } + + /** + * Create an instance of {@link TipoContribuyente } + * + */ + public TipoContribuyente createTipoContribuyente() { + return new TipoContribuyente(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerSimple }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerSimple") + public JAXBElement createObtenerSimple(ObtenerSimple value) { + return new JAXBElement(_ObtenerSimple_QNAME, ObtenerSimple.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerCompletoResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerCompletoResponse") + public JAXBElement createObtenerCompletoResponse(ObtenerCompletoResponse value) { + return new JAXBElement(_ObtenerCompletoResponse_QNAME, ObtenerCompletoResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerCompleto }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerCompleto") + public JAXBElement createObtenerCompleto(ObtenerCompleto value) { + return new JAXBElement(_ObtenerCompleto_QNAME, ObtenerCompleto.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerDatos }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerDatos") + public JAXBElement createObtenerDatos(ObtenerDatos value) { + return new JAXBElement(_ObtenerDatos_QNAME, ObtenerDatos.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerSimpleResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerSimpleResponse") + public JAXBElement createObtenerSimpleResponse(ObtenerSimpleResponse value) { + return new JAXBElement(_ObtenerSimpleResponse_QNAME, ObtenerSimpleResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ObtenerDatosResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://sri.gov.ec/wsConsultaContribuyente", name = "obtenerDatosResponse") + public JAXBElement createObtenerDatosResponse(ObtenerDatosResponse value) { + return new JAXBElement(_ObtenerDatosResponse_QNAME, ObtenerDatosResponse.class, null, value); + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.java new file mode 100644 index 0000000..bfe75e8 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.java @@ -0,0 +1,87 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerCompleto complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerCompleto">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fuenteDatos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerCompleto", propOrder = { + "numeroRuc", + "fuenteDatos" +}) +public class ObtenerCompleto { + + protected String numeroRuc; + protected String fuenteDatos; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad fuenteDatos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuenteDatos() { + return fuenteDatos; + } + + /** + * Define el valor de la propiedad fuenteDatos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuenteDatos(String value) { + this.fuenteDatos = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.java new file mode 100644 index 0000000..581adf2 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.java @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerCompletoResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerCompletoResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyenteCompleto" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerCompletoResponse", propOrder = { + "_return" +}) +public class ObtenerCompletoResponse { + + @XmlElement(name = "return") + protected ContribuyenteCompleto _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteCompleto } + * + */ + public void setReturn(ContribuyenteCompleto value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.java new file mode 100644 index 0000000..ba64c14 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.java @@ -0,0 +1,60 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerDatos complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerDatos">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerDatos", propOrder = { + "numeroRuc" +}) +public class ObtenerDatos { + + protected String numeroRuc; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.java new file mode 100644 index 0000000..d111281 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.java @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerDatosResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerDatosResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyenteOnLine" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerDatosResponse", propOrder = { + "_return" +}) +public class ObtenerDatosResponse { + + @XmlElement(name = "return") + protected ContribuyenteOnLine _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteOnLine } + * + */ + public ContribuyenteOnLine getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteOnLine } + * + */ + public void setReturn(ContribuyenteOnLine value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.java new file mode 100644 index 0000000..0b08a57 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.java @@ -0,0 +1,87 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerSimple complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerSimple">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="numeroRuc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="fuenteDatos" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerSimple", propOrder = { + "numeroRuc", + "fuenteDatos" +}) +public class ObtenerSimple { + + protected String numeroRuc; + protected String fuenteDatos; + + /** + * Obtiene el valor de la propiedad numeroRuc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNumeroRuc() { + return numeroRuc; + } + + /** + * Define el valor de la propiedad numeroRuc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNumeroRuc(String value) { + this.numeroRuc = value; + } + + /** + * Obtiene el valor de la propiedad fuenteDatos. + * + * @return + * possible object is + * {@link String } + * + */ + public String getFuenteDatos() { + return fuenteDatos; + } + + /** + * Define el valor de la propiedad fuenteDatos. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setFuenteDatos(String value) { + this.fuenteDatos = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.java new file mode 100644 index 0000000..3d2a334 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.java @@ -0,0 +1,62 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para obtenerSimpleResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="obtenerSimpleResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "obtenerSimpleResponse", propOrder = { + "_return" +}) +public class ObtenerSimpleResponse { + + @XmlElement(name = "return") + protected Contribuyente _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Contribuyente } + * + */ + public Contribuyente getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Contribuyente } + * + */ + public void setReturn(Contribuyente value) { + this._return = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.java new file mode 100644 index 0000000..16e3747 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.java @@ -0,0 +1,114 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para representanteLegal complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="representanteLegal">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cargo" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="identificacion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nombre" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "representanteLegal", propOrder = { + "cargo", + "identificacion", + "nombre" +}) +public class RepresentanteLegal { + + protected String cargo; + protected String identificacion; + protected String nombre; + + /** + * Obtiene el valor de la propiedad cargo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCargo() { + return cargo; + } + + /** + * Define el valor de la propiedad cargo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCargo(String value) { + this.cargo = value; + } + + /** + * Obtiene el valor de la propiedad identificacion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdentificacion() { + return identificacion; + } + + /** + * Define el valor de la propiedad identificacion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdentificacion(String value) { + this.identificacion = value; + } + + /** + * Obtiene el valor de la propiedad nombre. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNombre() { + return nombre; + } + + /** + * Define el valor de la propiedad nombre. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNombre(String value) { + this.nombre = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.java new file mode 100644 index 0000000..6e99e41 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.java @@ -0,0 +1,195 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para tipoContribuyente complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="tipoContribuyente">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
+ *         <element name="nivel1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="nivel4" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ultimoNivel" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "tipoContribuyente", propOrder = { + "id", + "nivel1", + "nivel2", + "nivel3", + "nivel4", + "ultimoNivel" +}) +public class TipoContribuyente { + + protected Long id; + protected String nivel1; + protected String nivel2; + protected String nivel3; + protected String nivel4; + protected String ultimoNivel; + + /** + * Obtiene el valor de la propiedad id. + * + * @return + * possible object is + * {@link Long } + * + */ + public Long getId() { + return id; + } + + /** + * Define el valor de la propiedad id. + * + * @param value + * allowed object is + * {@link Long } + * + */ + public void setId(Long value) { + this.id = value; + } + + /** + * Obtiene el valor de la propiedad nivel1. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel1() { + return nivel1; + } + + /** + * Define el valor de la propiedad nivel1. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel1(String value) { + this.nivel1 = value; + } + + /** + * Obtiene el valor de la propiedad nivel2. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel2() { + return nivel2; + } + + /** + * Define el valor de la propiedad nivel2. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel2(String value) { + this.nivel2 = value; + } + + /** + * Obtiene el valor de la propiedad nivel3. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel3() { + return nivel3; + } + + /** + * Define el valor de la propiedad nivel3. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel3(String value) { + this.nivel3 = value; + } + + /** + * Obtiene el valor de la propiedad nivel4. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNivel4() { + return nivel4; + } + + /** + * Define el valor de la propiedad nivel4. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNivel4(String value) { + this.nivel4 = value; + } + + /** + * Obtiene el valor de la propiedad ultimoNivel. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUltimoNivel() { + return ultimoNivel; + } + + /** + * Define el valor de la propiedad ultimoNivel. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUltimoNivel(String value) { + this.ultimoNivel = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.java new file mode 100644 index 0000000..a8d4e56 --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.java @@ -0,0 +1,303 @@ + +package ec.gov.sri.wsconsultacontribuyente; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para ubicacionGeografica complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="ubicacionGeografica">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="canton" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codCanton" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codPais" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codParroquia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codProvincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="codRegion" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="pais" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="parroquia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="provincia" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="region" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ubicacionGeografica", propOrder = { + "canton", + "codCanton", + "codPais", + "codParroquia", + "codProvincia", + "codRegion", + "pais", + "parroquia", + "provincia", + "region" +}) +public class UbicacionGeografica { + + protected String canton; + protected String codCanton; + protected String codPais; + protected String codParroquia; + protected String codProvincia; + protected String codRegion; + protected String pais; + protected String parroquia; + protected String provincia; + protected String region; + + /** + * Obtiene el valor de la propiedad canton. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCanton() { + return canton; + } + + /** + * Define el valor de la propiedad canton. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCanton(String value) { + this.canton = value; + } + + /** + * Obtiene el valor de la propiedad codCanton. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodCanton() { + return codCanton; + } + + /** + * Define el valor de la propiedad codCanton. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodCanton(String value) { + this.codCanton = value; + } + + /** + * Obtiene el valor de la propiedad codPais. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodPais() { + return codPais; + } + + /** + * Define el valor de la propiedad codPais. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodPais(String value) { + this.codPais = value; + } + + /** + * Obtiene el valor de la propiedad codParroquia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodParroquia() { + return codParroquia; + } + + /** + * Define el valor de la propiedad codParroquia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodParroquia(String value) { + this.codParroquia = value; + } + + /** + * Obtiene el valor de la propiedad codProvincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodProvincia() { + return codProvincia; + } + + /** + * Define el valor de la propiedad codProvincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodProvincia(String value) { + this.codProvincia = value; + } + + /** + * Obtiene el valor de la propiedad codRegion. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCodRegion() { + return codRegion; + } + + /** + * Define el valor de la propiedad codRegion. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCodRegion(String value) { + this.codRegion = value; + } + + /** + * Obtiene el valor de la propiedad pais. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPais() { + return pais; + } + + /** + * Define el valor de la propiedad pais. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPais(String value) { + this.pais = value; + } + + /** + * Obtiene el valor de la propiedad parroquia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getParroquia() { + return parroquia; + } + + /** + * Define el valor de la propiedad parroquia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setParroquia(String value) { + this.parroquia = value; + } + + /** + * Obtiene el valor de la propiedad provincia. + * + * @return + * possible object is + * {@link String } + * + */ + public String getProvincia() { + return provincia; + } + + /** + * Define el valor de la propiedad provincia. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setProvincia(String value) { + this.provincia = value; + } + + /** + * Obtiene el valor de la propiedad region. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRegion() { + return region; + } + + /** + * Define el valor de la propiedad region. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRegion(String value) { + this.region = value; + } + +} diff --git a/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/package-info.java b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/package-info.java new file mode 100644 index 0000000..1a4786d --- /dev/null +++ b/ejb/src/main/java/ec/gov/sri/wsconsultacontribuyente/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://sri.gov.ec/wsConsultaContribuyente") +package ec.gov.sri.wsconsultacontribuyente; diff --git a/ejb/src/main/resources/.svn/entries b/ejb/src/main/resources/.svn/entries new file mode 100644 index 0000000..4e3d65e --- /dev/null +++ b/ejb/src/main/resources/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +META-INF +dir + +com +dir + diff --git a/ejb/src/main/resources/META-INF/.svn/entries b/ejb/src/main/resources/META-INF/.svn/entries new file mode 100644 index 0000000..1ec1edc --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/entries @@ -0,0 +1,130 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/META-INF +svn://172.17.26.185/COMACO + + + +2014-11-13T04:52:19.727517Z +2694 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +persistence.xml +file + + + + +2022-07-28T03:45:35.558070Z +ccac323e87d00531b9c2facd148443ef +2014-11-13T04:52:19.727517Z +2694 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2577 + +beans.xml +file + + + + +2022-07-28T03:45:35.558070Z +49957eab46e36079f71e1ac1d0d8eb8f +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1036 + +ormPortal.xml +file + + + + +2022-07-28T03:45:35.558070Z +73d24a750e10f73f9e3e6319093356a7 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +312 + diff --git a/ejb/src/main/resources/META-INF/.svn/prop-base/beans.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/prop-base/beans.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/prop-base/beans.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/resources/META-INF/.svn/prop-base/ormPortal.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/prop-base/ormPortal.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/prop-base/ormPortal.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/resources/META-INF/.svn/prop-base/persistence.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/prop-base/persistence.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/prop-base/persistence.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/resources/META-INF/.svn/text-base/beans.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/text-base/beans.xml.svn-base new file mode 100644 index 0000000..8a38e83 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/text-base/beans.xml.svn-base @@ -0,0 +1,19 @@ + + + diff --git a/ejb/src/main/resources/META-INF/.svn/text-base/ormPortal.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/text-base/ormPortal.xml.svn-base new file mode 100644 index 0000000..d58cbf3 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/text-base/ormPortal.xml.svn-base @@ -0,0 +1,4 @@ + + + + diff --git a/ejb/src/main/resources/META-INF/.svn/text-base/persistence.xml.svn-base b/ejb/src/main/resources/META-INF/.svn/text-base/persistence.xml.svn-base new file mode 100644 index 0000000..436ceb0 --- /dev/null +++ b/ejb/src/main/resources/META-INF/.svn/text-base/persistence.xml.svn-base @@ -0,0 +1,47 @@ + + + + + + + java:jboss/datasources/FLIPDS1 + com.fp.armas.portal.model.Tgenecatalog + com.fp.armas.portal.model.Tgenecatalogdetail + com.fp.armas.portal.model.TgenecatalogdetailPK + com.fp.armas.portal.model.Tgeneactivity + com.fp.armas.portal.model.Tcustpeople + com.fp.armas.portal.model.TcustpeoplePK + com.fp.armas.portal.model.Tgenesequence + com.fp.armas.portal.model.Tcustcompany + com.fp.armas.portal.model.TcustcompanyPK + com.fp.armas.portal.model.Tgenefile + com.fp.armas.portal.model.Tgenefilesdetail + com.fp.armas.portal.model.TgenefilesdetailPK + + + + + + + diff --git a/ejb/src/main/resources/META-INF/beans.xml b/ejb/src/main/resources/META-INF/beans.xml new file mode 100644 index 0000000..8a38e83 --- /dev/null +++ b/ejb/src/main/resources/META-INF/beans.xml @@ -0,0 +1,19 @@ + + + diff --git a/ejb/src/main/resources/META-INF/ormPortal.xml b/ejb/src/main/resources/META-INF/ormPortal.xml new file mode 100644 index 0000000..d58cbf3 --- /dev/null +++ b/ejb/src/main/resources/META-INF/ormPortal.xml @@ -0,0 +1,4 @@ + + + + diff --git a/ejb/src/main/resources/META-INF/persistence.xml b/ejb/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..5527766 --- /dev/null +++ b/ejb/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,31 @@ + + + + + + java:jboss/datasources/FLIPDS1 + com.fp.armas.portal.model.Tgenecatalog + com.fp.armas.portal.model.Tgenecatalogdetail + com.fp.armas.portal.model.TgenecatalogdetailPK + com.fp.armas.portal.model.Tgeneactivity + com.fp.armas.portal.model.Tcustpeople + com.fp.armas.portal.model.TcustpeoplePK + com.fp.armas.portal.model.Tgenesequence + com.fp.armas.portal.model.Tcustcompany + com.fp.armas.portal.model.TcustcompanyPK + com.fp.armas.portal.model.Tgenefile + com.fp.armas.portal.model.Tgenefilesdetail + com.fp.armas.portal.model.TgenefilesdetailPK + + + + + + + diff --git a/ejb/src/main/resources/com/.svn/entries b/ejb/src/main/resources/com/.svn/entries new file mode 100644 index 0000000..a1fc875 --- /dev/null +++ b/ejb/src/main/resources/com/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/com +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +fp +dir + diff --git a/ejb/src/main/resources/com/fp/.svn/entries b/ejb/src/main/resources/com/fp/.svn/entries new file mode 100644 index 0000000..1379ab1 --- /dev/null +++ b/ejb/src/main/resources/com/fp/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/com/fp +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +armas +dir + diff --git a/ejb/src/main/resources/com/fp/armas/.svn/entries b/ejb/src/main/resources/com/fp/armas/.svn/entries new file mode 100644 index 0000000..717fdfe --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/com/fp/armas +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + diff --git a/ejb/src/main/resources/com/fp/armas/portal/.svn/entries b/ejb/src/main/resources/com/fp/armas/portal/.svn/entries new file mode 100644 index 0000000..394e5c1 --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/portal/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/com/fp/armas/portal +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +resources +dir + diff --git a/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/entries b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/entries new file mode 100644 index 0000000..15d6f48 --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/main/resources/com/fp/armas/portal/resources +svn://172.17.26.185/COMACO + + + +2015-01-23T13:46:17.807977Z +3804 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal.properties +file + + + + +2022-07-28T03:45:35.605070Z +82573c027413e52fa528fcf392adc6b0 +2015-01-23T13:46:17.807977Z +3804 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +3108 + diff --git a/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/prop-base/portal.properties.svn-base b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/prop-base/portal.properties.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/prop-base/portal.properties.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/text-base/portal.properties.svn-base b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/text-base/portal.properties.svn-base new file mode 100644 index 0000000..7ffc1c2 --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/portal/resources/.svn/text-base/portal.properties.svn-base @@ -0,0 +1,63 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +#Usuario default que es el que registra los demas usuarios +usuario.registro=ADMIN +codigo.general.lenguaje=ES +compania.general=1 +area.general=1 +valor.general.si=Y +valor.general.no=N +valor.general.activo=ACT +catalogo.codigo.estado.usuario=USERSTATUS +catalogo.codigo.tipo.telefono=PHONETYPE +catalogo.codigo.tipo.direccion=ADDRESSTYPE +catalogo.codigo.tipo.identificacion=IDENTIFICATION +catalogo.codigo.tipo.estado.civil=MARITALSTATUS +catalogo.codigo.tipo.profesion=PROFESSION +catalogo.codigo.detalle.id.cedula=CED +catalogo.codigo.detalle.id.ruc=RUC +catalogo.codigo.detalle.id.pas=PAS +tipo.mascara.pint=pint +tipo.mascara.int=int +tipo.mascara.num=num +tipo.mascara.alpha=alpha +tipo.mascara.alphanum=alphanum + +#Codigos +codigo.perfil.usuario.registro=24 +codigo.sucursal.usuario=1 +codigo.oficina.usuario=1 +codigo.canal.validacion.usuario=BRC +catalogo.valor.direccion.correo=3 +catalogo.valor.telefono.fijo=1 +catalogo.valor.telefono.celular=2 + +##INFORMACION DE PARAMETRIZACION DE ENVIO DE MENSAJES DE CORREO +asunto.mensaje.envio.correo=COMANDO CONJUNTO DE LAS FF.AA. - Notificaci\u00F3n de clave de acceso al sistema +cuerpo.mensaje.envio.correo=DEPARTAMENTO DE CONTROL DE ARMAS

Estimado(a)
{0}
Presente.-

Se ha validado la información registrada y se generó las siguientes credenciales de acceso al Sistema de Control de Armas\:

USUARIO\:{1}
CLAVE\:{2}

Es responsabilidad del usuario el manejo y uso de clave entregada.

Atentamente,

USUARIO ADMINISTRADOR
CENTRO DE CONTROL ARMAS QUITO

NOTA\:
Este mensaje fue enviado automáticamente por el sistema, por favor no responda a esta cuenta de correo. +correo.envio.default.notificiacion=notificacion@controlarmas.ccffaa.mil.ec + +##ERRORES COMUNES +error.jpa.lock.timeout=Existi\u00F3 un error a causa de un bloqueo pesimista, causado por accesos concurrentes al mismo registro +error.jpa.entity.notfound=No se pudo recuperar una referencia del registro dado que no existe en la base de datos +error.jpa.entity.exists=Error al guardar, el registro ya existe en la base de datos +error.jpa.entity.nonuniqueresult=Error al buscar, la consulta devolvi\u00F3 mas de un registro +error.jpa.entity.noresult=Error al buscar, la consulta no devolvi\u00F3 datos +error.jpa.lock.optimisticlock=Otro usuario esta cambiando el mismo registro, intente nuevamente +error.jpa.entity.querytimeout=Error al buscar, la consulta ha excedido el tiempo de espera permitido en la base de datos +error.jpa.transaction.rollback=Error al procesar la transacci\u00F3n, no se pudo guardar el registro +error.jpa.transaction.requiredtransaction=Error al guardar, se requiere de una transacci\u00F3n activa para realizar esta operaci\u00F3n diff --git a/ejb/src/main/resources/com/fp/armas/portal/resources/portal.properties b/ejb/src/main/resources/com/fp/armas/portal/resources/portal.properties new file mode 100644 index 0000000..7ffc1c2 --- /dev/null +++ b/ejb/src/main/resources/com/fp/armas/portal/resources/portal.properties @@ -0,0 +1,63 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +#Usuario default que es el que registra los demas usuarios +usuario.registro=ADMIN +codigo.general.lenguaje=ES +compania.general=1 +area.general=1 +valor.general.si=Y +valor.general.no=N +valor.general.activo=ACT +catalogo.codigo.estado.usuario=USERSTATUS +catalogo.codigo.tipo.telefono=PHONETYPE +catalogo.codigo.tipo.direccion=ADDRESSTYPE +catalogo.codigo.tipo.identificacion=IDENTIFICATION +catalogo.codigo.tipo.estado.civil=MARITALSTATUS +catalogo.codigo.tipo.profesion=PROFESSION +catalogo.codigo.detalle.id.cedula=CED +catalogo.codigo.detalle.id.ruc=RUC +catalogo.codigo.detalle.id.pas=PAS +tipo.mascara.pint=pint +tipo.mascara.int=int +tipo.mascara.num=num +tipo.mascara.alpha=alpha +tipo.mascara.alphanum=alphanum + +#Codigos +codigo.perfil.usuario.registro=24 +codigo.sucursal.usuario=1 +codigo.oficina.usuario=1 +codigo.canal.validacion.usuario=BRC +catalogo.valor.direccion.correo=3 +catalogo.valor.telefono.fijo=1 +catalogo.valor.telefono.celular=2 + +##INFORMACION DE PARAMETRIZACION DE ENVIO DE MENSAJES DE CORREO +asunto.mensaje.envio.correo=COMANDO CONJUNTO DE LAS FF.AA. - Notificaci\u00F3n de clave de acceso al sistema +cuerpo.mensaje.envio.correo=DEPARTAMENTO DE CONTROL DE ARMAS

Estimado(a)
{0}
Presente.-

Se ha validado la información registrada y se generó las siguientes credenciales de acceso al Sistema de Control de Armas\:

USUARIO\:{1}
CLAVE\:{2}

Es responsabilidad del usuario el manejo y uso de clave entregada.

Atentamente,

USUARIO ADMINISTRADOR
CENTRO DE CONTROL ARMAS QUITO

NOTA\:
Este mensaje fue enviado automáticamente por el sistema, por favor no responda a esta cuenta de correo. +correo.envio.default.notificiacion=notificacion@controlarmas.ccffaa.mil.ec + +##ERRORES COMUNES +error.jpa.lock.timeout=Existi\u00F3 un error a causa de un bloqueo pesimista, causado por accesos concurrentes al mismo registro +error.jpa.entity.notfound=No se pudo recuperar una referencia del registro dado que no existe en la base de datos +error.jpa.entity.exists=Error al guardar, el registro ya existe en la base de datos +error.jpa.entity.nonuniqueresult=Error al buscar, la consulta devolvi\u00F3 mas de un registro +error.jpa.entity.noresult=Error al buscar, la consulta no devolvi\u00F3 datos +error.jpa.lock.optimisticlock=Otro usuario esta cambiando el mismo registro, intente nuevamente +error.jpa.entity.querytimeout=Error al buscar, la consulta ha excedido el tiempo de espera permitido en la base de datos +error.jpa.transaction.rollback=Error al procesar la transacci\u00F3n, no se pudo guardar el registro +error.jpa.transaction.requiredtransaction=Error al guardar, se requiere de una transacci\u00F3n activa para realizar esta operaci\u00F3n diff --git a/ejb/src/test/.svn/entries b/ejb/src/test/.svn/entries new file mode 100644 index 0000000..ccb42da --- /dev/null +++ b/ejb/src/test/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +java +dir + +resources +dir + diff --git a/ejb/src/test/java/.svn/entries b/ejb/src/test/java/.svn/entries new file mode 100644 index 0000000..cd36fde --- /dev/null +++ b/ejb/src/test/java/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/java +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +com +dir + diff --git a/ejb/src/test/java/com/.svn/entries b/ejb/src/test/java/com/.svn/entries new file mode 100644 index 0000000..d97736d --- /dev/null +++ b/ejb/src/test/java/com/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/java/com +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +fp +dir + diff --git a/ejb/src/test/java/com/fp/.svn/entries b/ejb/src/test/java/com/fp/.svn/entries new file mode 100644 index 0000000..9472e72 --- /dev/null +++ b/ejb/src/test/java/com/fp/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/java/com/fp +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + diff --git a/ejb/src/test/java/com/fp/portal/.svn/entries b/ejb/src/test/java/com/fp/portal/.svn/entries new file mode 100644 index 0000000..49ca6ab --- /dev/null +++ b/ejb/src/test/java/com/fp/portal/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/java/com/fp/portal +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +test +dir + diff --git a/ejb/src/test/java/com/fp/portal/test/.svn/entries b/ejb/src/test/java/com/fp/portal/test/.svn/entries new file mode 100644 index 0000000..b341010 --- /dev/null +++ b/ejb/src/test/java/com/fp/portal/test/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/java/com/fp/portal/test +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +TestEjemplos.java +file + + + + +2022-07-28T03:45:34.033063Z +e5fec4dcf09de44f31815aef1ea74982 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +427 + diff --git a/ejb/src/test/java/com/fp/portal/test/.svn/prop-base/TestEjemplos.java.svn-base b/ejb/src/test/java/com/fp/portal/test/.svn/prop-base/TestEjemplos.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/test/java/com/fp/portal/test/.svn/prop-base/TestEjemplos.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/test/java/com/fp/portal/test/.svn/text-base/TestEjemplos.java.svn-base b/ejb/src/test/java/com/fp/portal/test/.svn/text-base/TestEjemplos.java.svn-base new file mode 100644 index 0000000..0ca71ee --- /dev/null +++ b/ejb/src/test/java/com/fp/portal/test/.svn/text-base/TestEjemplos.java.svn-base @@ -0,0 +1,25 @@ +package com.fp.portal.test; + +import org.junit.Test; + +public class TestEjemplos { + + @Test + public void prueba() { + Person a = new Person("Juan"); + Person b = a; + Person c = new Person("Juan"); + System.out.println(a==b); + System.out.println(a.equals(b)); + System.out.println(a==c); + System.out.println(a.equals(c)); + } + + class Person{ + private String name; + + public Person(String name){ + this.name = name; + } + } +} diff --git a/ejb/src/test/java/com/fp/portal/test/TestEjemplos.java b/ejb/src/test/java/com/fp/portal/test/TestEjemplos.java new file mode 100644 index 0000000..0ca71ee --- /dev/null +++ b/ejb/src/test/java/com/fp/portal/test/TestEjemplos.java @@ -0,0 +1,25 @@ +package com.fp.portal.test; + +import org.junit.Test; + +public class TestEjemplos { + + @Test + public void prueba() { + Person a = new Person("Juan"); + Person b = a; + Person c = new Person("Juan"); + System.out.println(a==b); + System.out.println(a.equals(b)); + System.out.println(a==c); + System.out.println(a.equals(c)); + } + + class Person{ + private String name; + + public Person(String name){ + this.name = name; + } + } +} diff --git a/ejb/src/test/resources/.svn/entries b/ejb/src/test/resources/.svn/entries new file mode 100644 index 0000000..3669f4b --- /dev/null +++ b/ejb/src/test/resources/.svn/entries @@ -0,0 +1,99 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/resources +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +META-INF +dir + +arquillian.xml +file + + + + +2022-07-28T03:45:34.268064Z +76a308bcb3260d58adb48e8445c1afbc +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1899 + +test-ds.xml +file + + + + +2022-07-28T03:45:34.268064Z +8832076921f1b93a98d8e7090fc95f39 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1766 + diff --git a/ejb/src/test/resources/.svn/prop-base/arquillian.xml.svn-base b/ejb/src/test/resources/.svn/prop-base/arquillian.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/test/resources/.svn/prop-base/arquillian.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/test/resources/.svn/prop-base/test-ds.xml.svn-base b/ejb/src/test/resources/.svn/prop-base/test-ds.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/test/resources/.svn/prop-base/test-ds.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/test/resources/.svn/text-base/arquillian.xml.svn-base b/ejb/src/test/resources/.svn/text-base/arquillian.xml.svn-base new file mode 100644 index 0000000..c51f8d9 --- /dev/null +++ b/ejb/src/test/resources/.svn/text-base/arquillian.xml.svn-base @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ejb/src/test/resources/.svn/text-base/test-ds.xml.svn-base b/ejb/src/test/resources/.svn/text-base/test-ds.xml.svn-base new file mode 100644 index 0000000..48f5225 --- /dev/null +++ b/ejb/src/test/resources/.svn/text-base/test-ds.xml.svn-base @@ -0,0 +1,37 @@ + + + + + + + jdbc:h2:mem:portal-test;DB_CLOSE_DELAY=-1 + h2 + + sa + sa + + + + diff --git a/ejb/src/test/resources/META-INF/.svn/entries b/ejb/src/test/resources/META-INF/.svn/entries new file mode 100644 index 0000000..17fe2f0 --- /dev/null +++ b/ejb/src/test/resources/META-INF/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/ejb/src/test/resources/META-INF +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +test-persistence.xml +file + + + + +2022-07-28T03:45:34.226064Z +0c149dbfa7d5682e27dd5b41a7b2eb82 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1873 + diff --git a/ejb/src/test/resources/META-INF/.svn/prop-base/test-persistence.xml.svn-base b/ejb/src/test/resources/META-INF/.svn/prop-base/test-persistence.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/ejb/src/test/resources/META-INF/.svn/prop-base/test-persistence.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/ejb/src/test/resources/META-INF/.svn/text-base/test-persistence.xml.svn-base b/ejb/src/test/resources/META-INF/.svn/text-base/test-persistence.xml.svn-base new file mode 100644 index 0000000..61e7115 --- /dev/null +++ b/ejb/src/test/resources/META-INF/.svn/text-base/test-persistence.xml.svn-base @@ -0,0 +1,36 @@ + + + + + + + java:jboss/datasources/portalTestDS + + + + + + + diff --git a/ejb/src/test/resources/META-INF/test-persistence.xml b/ejb/src/test/resources/META-INF/test-persistence.xml new file mode 100644 index 0000000..61e7115 --- /dev/null +++ b/ejb/src/test/resources/META-INF/test-persistence.xml @@ -0,0 +1,36 @@ + + + + + + + java:jboss/datasources/portalTestDS + + + + + + + diff --git a/ejb/src/test/resources/arquillian.xml b/ejb/src/test/resources/arquillian.xml new file mode 100644 index 0000000..c51f8d9 --- /dev/null +++ b/ejb/src/test/resources/arquillian.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ejb/src/test/resources/test-ds.xml b/ejb/src/test/resources/test-ds.xml new file mode 100644 index 0000000..48f5225 --- /dev/null +++ b/ejb/src/test/resources/test-ds.xml @@ -0,0 +1,37 @@ + + + + + + + jdbc:h2:mem:portal-test;DB_CLOSE_DELAY=-1 + h2 + + sa + sa + + + + diff --git a/ejb/target/classes/META-INF/beans.xml b/ejb/target/classes/META-INF/beans.xml new file mode 100644 index 0000000..8a38e83 --- /dev/null +++ b/ejb/target/classes/META-INF/beans.xml @@ -0,0 +1,19 @@ + + + diff --git a/ejb/target/classes/META-INF/ormPortal.xml b/ejb/target/classes/META-INF/ormPortal.xml new file mode 100644 index 0000000..d58cbf3 --- /dev/null +++ b/ejb/target/classes/META-INF/ormPortal.xml @@ -0,0 +1,4 @@ + + + + diff --git a/ejb/target/classes/META-INF/persistence.xml b/ejb/target/classes/META-INF/persistence.xml new file mode 100644 index 0000000..5527766 --- /dev/null +++ b/ejb/target/classes/META-INF/persistence.xml @@ -0,0 +1,31 @@ + + + + + + java:jboss/datasources/FLIPDS1 + com.fp.armas.portal.model.Tgenecatalog + com.fp.armas.portal.model.Tgenecatalogdetail + com.fp.armas.portal.model.TgenecatalogdetailPK + com.fp.armas.portal.model.Tgeneactivity + com.fp.armas.portal.model.Tcustpeople + com.fp.armas.portal.model.TcustpeoplePK + com.fp.armas.portal.model.Tgenesequence + com.fp.armas.portal.model.Tcustcompany + com.fp.armas.portal.model.TcustcompanyPK + com.fp.armas.portal.model.Tgenefile + com.fp.armas.portal.model.Tgenefilesdetail + com.fp.armas.portal.model.TgenefilesdetailPK + + + + + + + diff --git a/ejb/target/classes/com/fp/armas/portal/dao/exceptions/DaoException.class b/ejb/target/classes/com/fp/armas/portal/dao/exceptions/DaoException.class new file mode 100644 index 0000000..6d1adc2 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/exceptions/DaoException.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDao.class b/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDao.class new file mode 100644 index 0000000..d4c37e6 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDaoImpl.class b/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDaoImpl.class new file mode 100644 index 0000000..ea263cc Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/general/GenericDaoImpl.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.class new file mode 100644 index 0000000..70c1824 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/ActividadEconomicaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDao.class new file mode 100644 index 0000000..f530e64 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.class new file mode 100644 index 0000000..eb06c4f Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/ArchivoDetalleDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/CantonDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/CantonDao.class new file mode 100644 index 0000000..679f6d8 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/CantonDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/CatalogoDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/CatalogoDao.class new file mode 100644 index 0000000..d1ebbd8 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/CatalogoDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/CiudadDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/CiudadDao.class new file mode 100644 index 0000000..9e6c68a Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/CiudadDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/CompaniaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/CompaniaDao.class new file mode 100644 index 0000000..33e7536 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/CompaniaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/DireccionPersonaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/DireccionPersonaDao.class new file mode 100644 index 0000000..f08ab22 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/DireccionPersonaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/PaisDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/PaisDao.class new file mode 100644 index 0000000..bcd9e7e Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/PaisDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/ParroquiaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/ParroquiaDao.class new file mode 100644 index 0000000..a2c12ea Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/ParroquiaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDao.class new file mode 100644 index 0000000..73ddbc7 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDetalleDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDetalleDao.class new file mode 100644 index 0000000..413fbbb Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaDetalleDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaNaturalDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaNaturalDao.class new file mode 100644 index 0000000..98c05b9 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/PersonaNaturalDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/ProvinciaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/ProvinciaDao.class new file mode 100644 index 0000000..d1f3e5f Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/ProvinciaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/SecuenciaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/SecuenciaDao.class new file mode 100644 index 0000000..21f4697 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/SecuenciaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.class new file mode 100644 index 0000000..4a65b3b Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/TelefonoPersonaDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDao.class new file mode 100644 index 0000000..bb1d499 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalle.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalle.class new file mode 100644 index 0000000..d22a764 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalle.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.class new file mode 100644 index 0000000..29a02bc Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioDetalleDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.class b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.class new file mode 100644 index 0000000..6406313 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/dao/registro/UsuarioPerfilDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/facade/PortalService.class b/ejb/target/classes/com/fp/armas/portal/facade/PortalService.class new file mode 100644 index 0000000..df990e9 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/facade/PortalService.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/facade/PortalServiceBean.class b/ejb/target/classes/com/fp/armas/portal/facade/PortalServiceBean.class new file mode 100644 index 0000000..3676799 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/facade/PortalServiceBean.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustcompany.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustcompany.class new file mode 100644 index 0000000..f38fdcc Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustcompany.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TcustcompanyPK.class b/ejb/target/classes/com/fp/armas/portal/model/TcustcompanyPK.class new file mode 100644 index 0000000..e226f54 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TcustcompanyPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustpeople.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustpeople.class new file mode 100644 index 0000000..842ee4e Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustpeople.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TcustpeoplePK.class b/ejb/target/classes/com/fp/armas/portal/model/TcustpeoplePK.class new file mode 100644 index 0000000..a00041d Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TcustpeoplePK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustperson.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustperson.class new file mode 100644 index 0000000..6adcd00 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustperson.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonaddress.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonaddress.class new file mode 100644 index 0000000..e93a01d Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonaddress.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TcustpersonaddressPK.class b/ejb/target/classes/com/fp/armas/portal/model/TcustpersonaddressPK.class new file mode 100644 index 0000000..02b0146 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TcustpersonaddressPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustpersondetail.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersondetail.class new file mode 100644 index 0000000..7c84182 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersondetail.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TcustpersondetailPK.class b/ejb/target/classes/com/fp/armas/portal/model/TcustpersondetailPK.class new file mode 100644 index 0000000..0270ad4 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TcustpersondetailPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonphone.class b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonphone.class new file mode 100644 index 0000000..72ecb2e Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tcustpersonphone.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TcustpersonphonePK.class b/ejb/target/classes/com/fp/armas/portal/model/TcustpersonphonePK.class new file mode 100644 index 0000000..aa210a4 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TcustpersonphonePK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgeneactivity.class b/ejb/target/classes/com/fp/armas/portal/model/Tgeneactivity.class new file mode 100644 index 0000000..2cf859c Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgeneactivity.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenecanton.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenecanton.class new file mode 100644 index 0000000..dc7c5d6 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenecanton.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgenecantonPK.class b/ejb/target/classes/com/fp/armas/portal/model/TgenecantonPK.class new file mode 100644 index 0000000..53ba5da Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgenecantonPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalog.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalog.class new file mode 100644 index 0000000..a717324 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalog.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalogdetail.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalogdetail.class new file mode 100644 index 0000000..8bdb8d3 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenecatalogdetail.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgenecatalogdetailPK.class b/ejb/target/classes/com/fp/armas/portal/model/TgenecatalogdetailPK.class new file mode 100644 index 0000000..fc6bb26 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgenecatalogdetailPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenecity.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenecity.class new file mode 100644 index 0000000..878affa Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenecity.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgenecityPK.class b/ejb/target/classes/com/fp/armas/portal/model/TgenecityPK.class new file mode 100644 index 0000000..46bf2b9 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgenecityPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenecountry.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenecountry.class new file mode 100644 index 0000000..6e661ef Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenecountry.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenefile.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenefile.class new file mode 100644 index 0000000..e885a73 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenefile.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenefilesdetail.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenefilesdetail.class new file mode 100644 index 0000000..cf5060e Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenefilesdetail.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgenefilesdetailPK.class b/ejb/target/classes/com/fp/armas/portal/model/TgenefilesdetailPK.class new file mode 100644 index 0000000..93510b1 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgenefilesdetailPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgeneparroquia.class b/ejb/target/classes/com/fp/armas/portal/model/Tgeneparroquia.class new file mode 100644 index 0000000..1284809 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgeneparroquia.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgeneparroquiaPK.class b/ejb/target/classes/com/fp/armas/portal/model/TgeneparroquiaPK.class new file mode 100644 index 0000000..c5da652 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgeneparroquiaPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgeneprovince.class b/ejb/target/classes/com/fp/armas/portal/model/Tgeneprovince.class new file mode 100644 index 0000000..0fc6386 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgeneprovince.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TgeneprovincePK.class b/ejb/target/classes/com/fp/armas/portal/model/TgeneprovincePK.class new file mode 100644 index 0000000..561fea9 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TgeneprovincePK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tgenesequence.class b/ejb/target/classes/com/fp/armas/portal/model/Tgenesequence.class new file mode 100644 index 0000000..e99f7bd Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tgenesequence.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tsafeuser.class b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuser.class new file mode 100644 index 0000000..3190a81 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuser.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserdetail.class b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserdetail.class new file mode 100644 index 0000000..21c1707 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserdetail.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TsafeuserdetailPK.class b/ejb/target/classes/com/fp/armas/portal/model/TsafeuserdetailPK.class new file mode 100644 index 0000000..d085a2b Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TsafeuserdetailPK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserprofile.class b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserprofile.class new file mode 100644 index 0000000..cbbc135 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/Tsafeuserprofile.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/model/TsafeuserprofilePK.class b/ejb/target/classes/com/fp/armas/portal/model/TsafeuserprofilePK.class new file mode 100644 index 0000000..f69e83c Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/model/TsafeuserprofilePK.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/resources/portal.properties b/ejb/target/classes/com/fp/armas/portal/resources/portal.properties new file mode 100644 index 0000000..7ffc1c2 --- /dev/null +++ b/ejb/target/classes/com/fp/armas/portal/resources/portal.properties @@ -0,0 +1,63 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +#Usuario default que es el que registra los demas usuarios +usuario.registro=ADMIN +codigo.general.lenguaje=ES +compania.general=1 +area.general=1 +valor.general.si=Y +valor.general.no=N +valor.general.activo=ACT +catalogo.codigo.estado.usuario=USERSTATUS +catalogo.codigo.tipo.telefono=PHONETYPE +catalogo.codigo.tipo.direccion=ADDRESSTYPE +catalogo.codigo.tipo.identificacion=IDENTIFICATION +catalogo.codigo.tipo.estado.civil=MARITALSTATUS +catalogo.codigo.tipo.profesion=PROFESSION +catalogo.codigo.detalle.id.cedula=CED +catalogo.codigo.detalle.id.ruc=RUC +catalogo.codigo.detalle.id.pas=PAS +tipo.mascara.pint=pint +tipo.mascara.int=int +tipo.mascara.num=num +tipo.mascara.alpha=alpha +tipo.mascara.alphanum=alphanum + +#Codigos +codigo.perfil.usuario.registro=24 +codigo.sucursal.usuario=1 +codigo.oficina.usuario=1 +codigo.canal.validacion.usuario=BRC +catalogo.valor.direccion.correo=3 +catalogo.valor.telefono.fijo=1 +catalogo.valor.telefono.celular=2 + +##INFORMACION DE PARAMETRIZACION DE ENVIO DE MENSAJES DE CORREO +asunto.mensaje.envio.correo=COMANDO CONJUNTO DE LAS FF.AA. - Notificaci\u00F3n de clave de acceso al sistema +cuerpo.mensaje.envio.correo=DEPARTAMENTO DE CONTROL DE ARMAS

Estimado(a)
{0}
Presente.-

Se ha validado la información registrada y se generó las siguientes credenciales de acceso al Sistema de Control de Armas\:

USUARIO\:{1}
CLAVE\:{2}

Es responsabilidad del usuario el manejo y uso de clave entregada.

Atentamente,

USUARIO ADMINISTRADOR
CENTRO DE CONTROL ARMAS QUITO

NOTA\:
Este mensaje fue enviado automáticamente por el sistema, por favor no responda a esta cuenta de correo. +correo.envio.default.notificiacion=notificacion@controlarmas.ccffaa.mil.ec + +##ERRORES COMUNES +error.jpa.lock.timeout=Existi\u00F3 un error a causa de un bloqueo pesimista, causado por accesos concurrentes al mismo registro +error.jpa.entity.notfound=No se pudo recuperar una referencia del registro dado que no existe en la base de datos +error.jpa.entity.exists=Error al guardar, el registro ya existe en la base de datos +error.jpa.entity.nonuniqueresult=Error al buscar, la consulta devolvi\u00F3 mas de un registro +error.jpa.entity.noresult=Error al buscar, la consulta no devolvi\u00F3 datos +error.jpa.lock.optimisticlock=Otro usuario esta cambiando el mismo registro, intente nuevamente +error.jpa.entity.querytimeout=Error al buscar, la consulta ha excedido el tiempo de espera permitido en la base de datos +error.jpa.transaction.rollback=Error al procesar la transacci\u00F3n, no se pudo guardar el registro +error.jpa.transaction.requiredtransaction=Error al guardar, se requiere de una transacci\u00F3n activa para realizar esta operaci\u00F3n diff --git a/ejb/target/classes/com/fp/armas/portal/service/RegistroBean.class b/ejb/target/classes/com/fp/armas/portal/service/RegistroBean.class new file mode 100644 index 0000000..5784656 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/service/RegistroBean.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/service/SequenceBean.class b/ejb/target/classes/com/fp/armas/portal/service/SequenceBean.class new file mode 100644 index 0000000..99832a4 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/service/SequenceBean.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/FechaUtil.class b/ejb/target/classes/com/fp/armas/portal/util/FechaUtil.class new file mode 100644 index 0000000..d7d6d6e Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/FechaUtil.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/PortalLogger.class b/ejb/target/classes/com/fp/armas/portal/util/PortalLogger.class new file mode 100644 index 0000000..5a2944b Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/PortalLogger.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/PortalMessages.class b/ejb/target/classes/com/fp/armas/portal/util/PortalMessages.class new file mode 100644 index 0000000..a6029ac Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/PortalMessages.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/RegistroException.class b/ejb/target/classes/com/fp/armas/portal/util/RegistroException.class new file mode 100644 index 0000000..ac28066 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/RegistroException.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/qualifier/DefaultDao.class b/ejb/target/classes/com/fp/armas/portal/util/qualifier/DefaultDao.class new file mode 100644 index 0000000..88957c7 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/qualifier/DefaultDao.class differ diff --git a/ejb/target/classes/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.class b/ejb/target/classes/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.class new file mode 100644 index 0000000..569c737 Binary files /dev/null and b/ejb/target/classes/com/fp/armas/portal/util/validadores/ValidadorIdentificacion.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.class new file mode 100644 index 0000000..c59f4bf Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedula.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.class new file mode 100644 index 0000000..d0d191a Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/BusquedaPorCedulaResponse.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/Cedula.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/Cedula.class new file mode 100644 index 0000000..48a580a Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/Cedula.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/ObjectFactory.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/ObjectFactory.class new file mode 100644 index 0000000..a7c771a Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/ObjectFactory.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUp.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUp.class new file mode 100644 index 0000000..916725c Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUp.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUpResponse.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUpResponse.class new file mode 100644 index 0000000..91a0a35 Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/WsUpResponse.class differ diff --git a/ejb/target/classes/ec/gob/registrocivil/consultacedula/package-info.class b/ejb/target/classes/ec/gob/registrocivil/consultacedula/package-info.class new file mode 100644 index 0000000..e6e8d8c Binary files /dev/null and b/ejb/target/classes/ec/gob/registrocivil/consultacedula/package-info.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.class new file mode 100644 index 0000000..6ae8910 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ActividadEconomica.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.class new file mode 100644 index 0000000..d90a65f Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/AgenteRetencion.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contador.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contador.class new file mode 100644 index 0000000..16d94a7 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contador.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contribuyente.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contribuyente.class new file mode 100644 index 0000000..4655aeb Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/Contribuyente.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.class new file mode 100644 index 0000000..89fb6f0 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteCompleto.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.class new file mode 100644 index 0000000..b51a294 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ContribuyenteOnLine.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.class new file mode 100644 index 0000000..6afa481 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/EstructuraOrganizacional.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.class new file mode 100644 index 0000000..ae7db4c Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ListaBlanca.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.class new file mode 100644 index 0000000..0bc7e9f Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObjectFactory.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.class new file mode 100644 index 0000000..d909b00 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompleto.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.class new file mode 100644 index 0000000..7c0678e Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerCompletoResponse.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.class new file mode 100644 index 0000000..131cb7f Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatos.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.class new file mode 100644 index 0000000..dbee726 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerDatosResponse.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.class new file mode 100644 index 0000000..68fb8e2 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimple.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.class new file mode 100644 index 0000000..036ac16 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/ObtenerSimpleResponse.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.class new file mode 100644 index 0000000..fed9f24 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/RepresentanteLegal.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.class new file mode 100644 index 0000000..7f86d91 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/TipoContribuyente.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.class new file mode 100644 index 0000000..3004186 Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/UbicacionGeografica.class differ diff --git a/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/package-info.class b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/package-info.class new file mode 100644 index 0000000..4b28b0a Binary files /dev/null and b/ejb/target/classes/ec/gov/sri/wsconsultacontribuyente/package-info.class differ diff --git a/ejb/target/maven-archiver/pom.properties b/ejb/target/maven-archiver/pom.properties new file mode 100644 index 0000000..af1fd01 --- /dev/null +++ b/ejb/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Nov 11 13:12:52 ECT 2022 +version=2.1 +groupId=com.fp.armas +artifactId=portal-ejb diff --git a/ejb/target/portal-ejb.jar b/ejb/target/portal-ejb.jar new file mode 100644 index 0000000..2a7a83c Binary files /dev/null and b/ejb/target/portal-ejb.jar differ diff --git a/ejb/target/test-classes/META-INF/test-persistence.xml b/ejb/target/test-classes/META-INF/test-persistence.xml new file mode 100644 index 0000000..61e7115 --- /dev/null +++ b/ejb/target/test-classes/META-INF/test-persistence.xml @@ -0,0 +1,36 @@ + + + + + + + java:jboss/datasources/portalTestDS + + + + + + + diff --git a/ejb/target/test-classes/arquillian.xml b/ejb/target/test-classes/arquillian.xml new file mode 100644 index 0000000..c51f8d9 --- /dev/null +++ b/ejb/target/test-classes/arquillian.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ejb/target/test-classes/com/fp/portal/test/TestEjemplos$Person.class b/ejb/target/test-classes/com/fp/portal/test/TestEjemplos$Person.class new file mode 100644 index 0000000..28485cf Binary files /dev/null and b/ejb/target/test-classes/com/fp/portal/test/TestEjemplos$Person.class differ diff --git a/ejb/target/test-classes/com/fp/portal/test/TestEjemplos.class b/ejb/target/test-classes/com/fp/portal/test/TestEjemplos.class new file mode 100644 index 0000000..4426417 Binary files /dev/null and b/ejb/target/test-classes/com/fp/portal/test/TestEjemplos.class differ diff --git a/ejb/target/test-classes/test-ds.xml b/ejb/target/test-classes/test-ds.xml new file mode 100644 index 0000000..48f5225 --- /dev/null +++ b/ejb/target/test-classes/test-ds.xml @@ -0,0 +1,37 @@ + + + + + + + jdbc:h2:mem:portal-test;DB_CLOSE_DELAY=-1 + h2 + + sa + sa + + + + diff --git a/nb-configuration.xml b/nb-configuration.xml new file mode 100644 index 0000000..c2decf1 --- /dev/null +++ b/nb-configuration.xml @@ -0,0 +1,18 @@ + + + + + + JDK_1.7 + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..759b5fc --- /dev/null +++ b/pom.xml @@ -0,0 +1,153 @@ + + + + portal + 4.0.0 + com.fp.armas + portal + 2.1 + pom + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + ejb + web + ear + + + + + + UTF-8 + + + + 7.4.Final + + + 1.0.7.Final + + + + 7.2.0.Final + + + + + 2.6 + 2.3 + 2.10 + 2.1.1 + + + 1.7 + 1.7 + + + + + + + + com.fp.armas + portal-ejb + ${project.version} + ejb + + + + + com.fp.armas + portal-web + ${project.version} + war + compile + + + + + org.jboss.bom + jboss-javaee-6.0-with-tools + ${version.jboss.bom} + pom + import + + + + org.jboss.bom + jboss-javaee-6.0-with-hibernate + ${version.jboss.bom} + pom + import + + + + javax.mail + mail + 1.4.7 + + + + + + + + + + + org.jboss.as.plugins + jboss-as-maven-plugin + ${version.jboss.maven.plugin} + true + + true + + + + + + + diff --git a/web/.svn/entries b/web/.svn/entries new file mode 100644 index 0000000..1903bae --- /dev/null +++ b/web/.svn/entries @@ -0,0 +1,65 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +src +dir + +pom.xml +file + + + + +2022-07-28T03:45:37.681079Z +73500d53035170e4bb129631c6bbe8c5 +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4808 + diff --git a/web/.svn/prop-base/pom.xml.svn-base b/web/.svn/prop-base/pom.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/.svn/prop-base/pom.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/.svn/text-base/pom.xml.svn-base b/web/.svn/text-base/pom.xml.svn-base new file mode 100644 index 0000000..a368dfc --- /dev/null +++ b/web/.svn/text-base/pom.xml.svn-base @@ -0,0 +1,131 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-web + war + + portal - web + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + com.fp.armas + portal-ejb + ejb + provided + + + + + org.jboss.spec.javax.ws.rs + jboss-jaxrs-api_1.1_spec + provided + + + + + javax.enterprise + cdi-api + provided + + + + + org.jboss.spec.javax.faces + jboss-jsf-api_2.1_spec + provided + + + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + provided + + + + + + + org.hibernate + hibernate-validator + provided + + + org.slf4j + slf4j-api + + + + + + org.primefaces + primefaces + 5.0 + + + org.primefaces.extensions + primefaces-extensions + 2.0.0 + + + commons-fileupload + commons-fileupload + 1.3 + + + + org.slf4j + slf4j-api + 1.6.1 + + + + + + ${project.artifactId} + + + maven-war-plugin + ${version.war.plugin} + + + false + + + + + + diff --git a/web/nb-configuration.xml b/web/nb-configuration.xml new file mode 100644 index 0000000..af10e92 --- /dev/null +++ b/web/nb-configuration.xml @@ -0,0 +1,18 @@ + + + + + + JSP + + diff --git a/web/pom.xml b/web/pom.xml new file mode 100644 index 0000000..ec074c0 --- /dev/null +++ b/web/pom.xml @@ -0,0 +1,131 @@ + + + 4.0.0 + + + portal + com.fp.armas + 2.1 + + + portal-web + war + + portal - web + + http://jboss.org/jbossas + + + Apache License, Version 2.0 + repo + http://www.apache.org/licenses/LICENSE-2.0.html + + + + + + + + com.fp.armas + portal-ejb + ejb + provided + + + + + org.jboss.spec.javax.ws.rs + jboss-jaxrs-api_1.1_spec + provided + + + + + javax.enterprise + cdi-api + provided + + + + + org.jboss.spec.javax.faces + jboss-jsf-api_2.1_spec + provided + + + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + provided + + + + + + + org.hibernate + hibernate-validator + provided + + + org.slf4j + slf4j-api + + + + + + org.primefaces + primefaces + 5.0 + + + org.primefaces.extensions + primefaces-extensions + 2.0.0 + + + commons-fileupload + commons-fileupload + 1.3 + + + + org.slf4j + slf4j-api + 1.6.1 + + + + + + ${project.artifactId} + + + maven-war-plugin + ${version.war.plugin} + + + false + + + + + + diff --git a/web/src/.svn/entries b/web/src/.svn/entries new file mode 100644 index 0000000..f9c791b --- /dev/null +++ b/web/src/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +test +dir + +main +dir + diff --git a/web/src/main/.svn/entries b/web/src/main/.svn/entries new file mode 100644 index 0000000..f76014c --- /dev/null +++ b/web/src/main/.svn/entries @@ -0,0 +1,37 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +java +dir + +resources +dir + +webapp +dir + diff --git a/web/src/main/java/.svn/entries b/web/src/main/java/.svn/entries new file mode 100644 index 0000000..cd60ac0 --- /dev/null +++ b/web/src/main/java/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +com +dir + diff --git a/web/src/main/java/com/.svn/entries b/web/src/main/java/com/.svn/entries new file mode 100644 index 0000000..e286e46 --- /dev/null +++ b/web/src/main/java/com/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +fp +dir + diff --git a/web/src/main/java/com/fp/.svn/entries b/web/src/main/java/com/fp/.svn/entries new file mode 100644 index 0000000..c868b50 --- /dev/null +++ b/web/src/main/java/com/fp/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + +armas +dir + diff --git a/web/src/main/java/com/fp/armas/.svn/entries b/web/src/main/java/com/fp/armas/.svn/entries new file mode 100644 index 0000000..453b764 --- /dev/null +++ b/web/src/main/java/com/fp/armas/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + diff --git a/web/src/main/java/com/fp/armas/portal/.svn/entries b/web/src/main/java/com/fp/armas/portal/.svn/entries new file mode 100644 index 0000000..9b4bf16 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/.svn/entries @@ -0,0 +1,46 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +faces +dir + +webservices +dir + +controller +dir + +datamanager +dir + +validator +dir + +web +dir + diff --git a/web/src/main/java/com/fp/armas/portal/controller/.svn/entries b/web/src/main/java/com/fp/armas/portal/controller/.svn/entries new file mode 100644 index 0000000..500c662 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/controller +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +base +dir + +registro +dir + diff --git a/web/src/main/java/com/fp/armas/portal/controller/base/.svn/entries b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/entries new file mode 100644 index 0000000..46b95a8 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/controller/base +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +BaseController.java +file + + + + +2022-07-28T03:45:36.510074Z +e74de0470f1c40e4d5be5910a00cc118 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1041 + diff --git a/web/src/main/java/com/fp/armas/portal/controller/base/.svn/prop-base/BaseController.java.svn-base b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/prop-base/BaseController.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/prop-base/BaseController.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/controller/base/.svn/text-base/BaseController.java.svn-base b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/text-base/BaseController.java.svn-base new file mode 100644 index 0000000..7833a19 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/base/.svn/text-base/BaseController.java.svn-base @@ -0,0 +1,48 @@ +package com.fp.armas.portal.controller.base; + +import javax.annotation.PostConstruct; +import javax.faces.component.html.HtmlForm; + +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.faces.FacesUtil; + +/** + * Clase padre que implementan todos los controladores + * @author dcruz + * + */ +public abstract class BaseController { + + private HtmlForm form; + + @PostConstruct + public void init(){ + try{ + if(!this.getDataManager().isInicializado()){ + inicializar(); + this.getDataManager().setInicializado(true); + } + }catch (Throwable e){ + FacesUtil.getInstancia().messageError(e.getMessage()); + } + } + + /** + * Método en el cual se debe retornar el DataManager gestionado + * @return + */ + public abstract BaseDataManager getDataManager() ; + + /** + * Método que se ejecuta al inicializar el controlador una sola vez por DataManager + */ + public abstract void inicializar(); + + public HtmlForm getForm() { + return form; + } + + public void setForm(HtmlForm form) { + this.form = form; + } +} diff --git a/web/src/main/java/com/fp/armas/portal/controller/base/BaseController.java b/web/src/main/java/com/fp/armas/portal/controller/base/BaseController.java new file mode 100644 index 0000000..7833a19 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/base/BaseController.java @@ -0,0 +1,48 @@ +package com.fp.armas.portal.controller.base; + +import javax.annotation.PostConstruct; +import javax.faces.component.html.HtmlForm; + +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.faces.FacesUtil; + +/** + * Clase padre que implementan todos los controladores + * @author dcruz + * + */ +public abstract class BaseController { + + private HtmlForm form; + + @PostConstruct + public void init(){ + try{ + if(!this.getDataManager().isInicializado()){ + inicializar(); + this.getDataManager().setInicializado(true); + } + }catch (Throwable e){ + FacesUtil.getInstancia().messageError(e.getMessage()); + } + } + + /** + * Método en el cual se debe retornar el DataManager gestionado + * @return + */ + public abstract BaseDataManager getDataManager() ; + + /** + * Método que se ejecuta al inicializar el controlador una sola vez por DataManager + */ + public abstract void inicializar(); + + public HtmlForm getForm() { + return form; + } + + public void setForm(HtmlForm form) { + this.form = form; + } +} diff --git a/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/entries b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/entries new file mode 100644 index 0000000..23bae7a --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/controller/registro +svn://172.17.26.185/COMACO + + + +2016-03-18T19:26:09.378273Z +4509 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +RegistroController.java +file + + + + +2022-07-28T03:45:36.551074Z +5329a1d081db636b3850f856c4259ee0 +2016-03-18T19:26:09.378273Z +4509 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +23125 + diff --git a/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/prop-base/RegistroController.java.svn-base b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/prop-base/RegistroController.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/prop-base/RegistroController.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/text-base/RegistroController.java.svn-base b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/text-base/RegistroController.java.svn-base new file mode 100644 index 0000000..23456a8 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/registro/.svn/text-base/RegistroController.java.svn-base @@ -0,0 +1,486 @@ +package com.fp.armas.portal.controller.registro; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.ViewScoped; +import javax.faces.context.FacesContext; +import javax.inject.Inject; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.DefaultStreamedContent; + +import com.fp.armas.portal.controller.base.BaseController; +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.datamanager.registro.RegistroDataManager; +import com.fp.armas.portal.facade.PortalService; +import com.fp.armas.portal.faces.FacesUtil; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.TgeneparroquiaPK; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.webservices.snap.cedula.ClienteCedula; +import com.fp.armas.portal.webservices.snap.ruc.ClienteRUC; + +import ec.gob.registrocivil.consultacedula.Cedula; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Bean que maneja el registro del usuario en el portal y por el cual se va a enviar dichos datos a MAIA + * @author dcruz + * + */ +@ManagedBean +@ViewScoped +public class RegistroController extends BaseController implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final String TIPO_TELEFONO=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono"); + private static final String TIPO_DIRECCION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion"); + private static final String TIPO_IDENTIFICACION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.identificacion"); + private static final String ESTADO_CIVIL=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.estado.civil"); + private static final String PROFESION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.profesion"); + + private Boolean isEnableSave=Boolean.TRUE; + + @ManagedProperty(value="#{registroDataManager}") + private RegistroDataManager registroDataManager; + + @Inject + private PortalService portalService; + + @Override + public BaseDataManager getDataManager() { + return registroDataManager; + } + + @Override + public void inicializar(){ + try{ + this.registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + this.registroDataManager.getDireccionPersona().setTgeneparroquia(new Tgeneparroquia()); + this.registroDataManager.getDireccionPersona().getTgeneparroquia().setId(new TgeneparroquiaPK()); + this.registroDataManager.setPersona(new Tcustpersondetail()); + this.registroDataManager.getPersona().setIdentificationcatalogcode(TIPO_IDENTIFICACION); + this.registroDataManager.setTipoDocumentoColl(portalService.obtenerCatalogo(TIPO_IDENTIFICACION)); + + this.registroDataManager.getDireccionPersona().setCountryCode("EC"); + this.registroDataManager.getDireccionPersona().setProvinceCode(null); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + this.registroDataManager.setPaisesColl(portalService.obtenerPais()); + + this.registroDataManager.setEstadoCivilColl(portalService.obtenerCatalogo(ESTADO_CIVIL)); + this.registroDataManager.setActividadEconomicaColl(portalService.obtenerActividadEconomica()); + this.registroDataManager.setProfesionColl(portalService.obtenerCatalogo(PROFESION)); + + this.registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + this.registroDataManager.getDireccionPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.setCorreoPersona(new Tcustpersonaddress()); + this.registroDataManager.getCorreoPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.getCorreoPersona().setAddresstypecatalog("3"); + this.registroDataManager.setTelefonoPersona(new Tcustpersonphone()); + this.registroDataManager.getTelefonoPersona().setAddressnumber(1L); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalog("1");//1 Fijo, 2 Celular + this.registroDataManager.setTelefonoCelular(new Tcustpersonphone()); + this.registroDataManager.getTelefonoCelular().setAddressnumber(2L); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalog("2");//1 Fijo, 2 Celular + this.registroDataManager.setAdicionalPersona(new Tcustpeople()); + this.registroDataManager.getDireccionPersona().setCountryCode("EC"); + this.registroDataManager.setCompania(new Tcustcompany()); + this.registroDataManager.setFoto(new Tgenefilesdetail()); + this.cambiaPais(); + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /* + * Eventos ajax + */ + /** + * Cambia pais y actualiza provincias + */ + public void cambiaPais() { + try{ + if(this.registroDataManager.getDireccionPersona().getCountryCode()!=null){ + Collection provinciaColl = portalService.obtenerProvincias(this.registroDataManager.getDireccionPersona().getCountryCode()); + registroDataManager.setProvinciasColl(provinciaColl); + cambiaProvincia(); + //cambiaCanton(); + }else{ + registroDataManager.setProvinciasColl(new ArrayList()); + registroDataManager.setCantonColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + this.registroDataManager.getDireccionPersona().setProvinceCode(null); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + } + +// if(provinciaColl != null && !provinciaColl.isEmpty()){ +// registroDataManager.getDireccionPersona().setProvinceCode(provinciaColl.iterator().next().getId().getProvincecode()); +// registroDataManager.setCantonColl(portalService.obtenerCantones(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode())); +// }else{ +// registroDataManager.setCantonColl(new HashSet()); +// } +// if(registroDataManager.getCantonColl() != null && !registroDataManager.getCantonColl().isEmpty()){ +// registroDataManager.getDireccionPersona().setCantonCode(registroDataManager.getCantonColl().iterator().next().getId().getCantoncode()); +// registroDataManager.setCiudadColl(portalService.obtenerCiudades(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// registroDataManager.setParroquiaColl(portalService.obtenerParroquias(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// }else{ +// registroDataManager.setParroquiaColl(new HashSet()); +// registroDataManager.setCiudadColl(new HashSet()); +// } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Cambia provincia y actualiza sus subniveles + */ + public void cambiaProvincia() { + try{ +// if(registroDataManager.getDireccionPersona().getProvinceCode() == null){ +// registroDataManager.getDireccionPersona().setProvinceCode(registroDataManager.getProvinciasColl() != null && !registroDataManager.getProvinciasColl().isEmpty() ? +// registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode():null); +// } + if( registroDataManager.getDireccionPersona().getProvinceCode()!=null && registroDataManager.getDireccionPersona().getCountryCode()!=null){ + Collection cantonColl = portalService.obtenerCantones(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode()); + registroDataManager.setCantonColl(cantonColl); + cambiaCanton(); + }else{ + registroDataManager.setCantonColl(new ArrayList()); + registroDataManager.setParroquiaColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + } + +// if(cantonColl != null && !cantonColl.isEmpty()){ +// registroDataManager.setCiudadColl(portalService.obtenerCiudades(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// registroDataManager.setParroquiaColl(portalService.obtenerParroquias(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// }else{ +// registroDataManager.setParroquiaColl(new HashSet()); +// registroDataManager.setCiudadColl(new HashSet()); +// } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Cambia cantón y actualiza subniveles + */ + public void cambiaCanton() { + try{ +// if(registroDataManager.getDireccionPersona().getCantonCode() == null){ +// registroDataManager.getDireccionPersona().setCantonCode(registroDataManager.getCantonColl() != null && !registroDataManager.getCantonColl().isEmpty() ? +// registroDataManager.getCantonColl().iterator().next().getId().getCantoncode():null); +// } + if(registroDataManager.getDireccionPersona().getCountryCode()!=null && registroDataManager.getDireccionPersona().getProvinceCode()!=null && + registroDataManager.getDireccionPersona().getCantonCode()!=null){ + Collection parroquiaColl = portalService.obtenerParroquias(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode(), registroDataManager.getDireccionPersona().getCantonCode()); + Collection cityColl = portalService.obtenerCiudades (registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode(), registroDataManager.getDireccionPersona().getCantonCode()); + registroDataManager.setParroquiaColl(parroquiaColl); + registroDataManager.setCiudadColl(cityColl); + }else{ + this.registroDataManager.getDireccionPersona().setCityCode(null); + registroDataManager.setParroquiaColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + } + + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Se verifica que debe + */ + public void changeTipoIdentificacion() { + try{ + switch (registroDataManager.getPersona().getIdentificationcatalog()) { + case "CED": + registroDataManager.setTamDocIndentificacion(10); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.pint")); + break; + case "RUC": + registroDataManager.setTamDocIndentificacion(13); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.pint")); + break; + case "PAS": + registroDataManager.setTamDocIndentificacion(15); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.alphanum")); + break; + default: + break; + } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Se verifica que si existe el usuario actualice toda la información + */ + public void changeIdentificacion() { + String id = registroDataManager.getPersona().getIdentification(); + String tipoId = registroDataManager.getPersona().getIdentificationcatalog(); + Tcustpersondetail personaDetalle = portalService.obtenerDetallePersonaPorIdentificacion(registroDataManager.getPersona().getIdentification()); + if(personaDetalle != null){ +// FacesUtil.getInstancia().messageWarn(PortalWebResources.getString("error.msg.persona.registrada")); + registroDataManager.setExisteCedula(true); + }else{ + registroDataManager.setExisteCedula(false); + this.inicializar(); + registroDataManager.getPersona().setIdentification(id); + registroDataManager.getPersona().setIdentificationcatalog(tipoId); + } + this.completaDatosPersona(personaDetalle); + + cambiaPais(); + } + + /** + * Completa los datos de la persona si esta existe + * @param identificacion + * @param tipoIdentificacion + */ + private void completaDatosPersona(Tcustpersondetail personaDetalle){ + if(personaDetalle != null){ + registroDataManager.setPersona(personaDetalle); + } + switch (registroDataManager.getPersona().getIdentification().length()) { + case 10:{ + Cedula cedula = ClienteCedula.obtenerCedula(registroDataManager.getPersona().getIdentification()); + completaDatosPersonaNatural(registroDataManager.getPersona()); + completaDatosSnap(cedula); + registroDataManager.setCedulaSnap(cedula); + registroDataManager.setRucSnap(null); + } + break; + case 13:{ + ContribuyenteCompleto contribuyente = ClienteRUC.obtenerRUC(registroDataManager.getPersona().getIdentification()); + if(!contribuyente.getCodEstado().equals("ACT")){ + FacesUtil.getInstancia().messageError("El RUC INGRESADO NO ESTA ACTIVO"); + FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(Boolean.TRUE); +// FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + isEnableSave=Boolean.FALSE; + return; + } + completaDatosCompania(registroDataManager.getPersona()); + completaDatosSnap(contribuyente); + registroDataManager.setRucSnap(contribuyente); + registroDataManager.setCedulaSnap(null); + } + break; + default: + break; + } + completaDatosGenerales(personaDetalle); + } + + /** + * Completa los datos de la companía + * @param personaDetalle + */ + private void completaDatosCompania(Tcustpersondetail personaDetalle) { + if(personaDetalle.getId()!=null && personaDetalle.getId().getPersoncode()>0){ + registroDataManager.setCompania(portalService.obtenerCompaniaPorId((int)personaDetalle.getId().getPersoncode())); + if(registroDataManager.getCompania()!=null && registroDataManager.getCompania().getId()!=null && registroDataManager.getCompania().getId().getPersoncode()>0 && registroDataManager.getCompania().getLogo()!=null){ + Tgenefilesdetail tgenefilesdetail= portalService.obtenerImagen(registroDataManager.getCompania().getLogo()); + if(tgenefilesdetail!=null && tgenefilesdetail.getImage()!=null){ + byte[] byt=tgenefilesdetail.getImage(); + InputStream is = new ByteArrayInputStream(byt); + //registroDataManager.getFoto().setImage(IOUtils.toByteArray(event.getFile().getInputstream())); + registroDataManager.setContenidoFoto(new DefaultStreamedContent(is)); + } + } + } + } + + /** + * Completa los datos si es persona natural + * @param personaDetalle + */ + private void completaDatosPersonaNatural(Tcustpersondetail personaDetalle){ + if(personaDetalle.getId() != null && personaDetalle.getId().getPersoncode() != 0){ + registroDataManager.setAdicionalPersona(portalService.obtenerPersonaNaturalPorId((int)personaDetalle.getId().getPersoncode())); + } + } + + private void completaDatosSnap(Object datosSnap){ + if(datosSnap instanceof Cedula){ + Cedula cedula = (Cedula) datosSnap; + if(registroDataManager.getAdicionalPersona() == null){ + registroDataManager.setAdicionalPersona(new Tcustpeople()); + } + if(cedula != null){ + registroDataManager.getAdicionalPersona().setFirstname(cedula.getNombre()); +// registroDataManager.getAdicionalPersona().setLastname(cedula.getNombrePadre()); +// registroDataManager.getAdicionalPersona().setSurename(cedula.getNombreMadre()); + } + } else if(datosSnap instanceof ContribuyenteCompleto){ + ContribuyenteCompleto contribuyente = (ContribuyenteCompleto) datosSnap; + if(registroDataManager.getCompania() == null){ + registroDataManager.setCompania(new Tcustcompany()); + } + if(contribuyente != null){ + registroDataManager.getPersona().setName(contribuyente.getRazonSocial()); + registroDataManager.getPersona().setLegalrepresent(contribuyente.getRepresentanteLegal().getNombre()); + registroDataManager.getPersona().setLegalrepresentidentification(contribuyente.getRepresentanteLegal().getIdentificacion()); + registroDataManager.getPersona().setEconimicact(contribuyente.getActividadEconomica().getActividadGeneral()); + } + + + } + } + + /** + * Completa los datos generales como dirección y teléfono y demás requeridas para su funcionamiento + * @param personaDetalle + */ + private void completaDatosGenerales(Tcustpersondetail personaDetalle){ + if(personaDetalle != null){ + Tcustpersonaddress direccionPrincipal = portalService.obtenerDireccionPrincipal((int)personaDetalle.getId().getPersoncode()); + if(direccionPrincipal == null){ + registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + registroDataManager.getDireccionPersona().setAddresstypecatalog(TIPO_DIRECCION); + } else{ + registroDataManager.setDireccionPersona(direccionPrincipal); + } + Tcustpersonaddress mail = portalService.obtenerCorreo((int)personaDetalle.getId().getPersoncode());; + if(mail == null){ + this.registroDataManager.getCorreoPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.getCorreoPersona().setAddresstypecatalog("3"); + } else{ + registroDataManager.setCorreoPersona(mail); + } + Tcustpersonphone telefonoFijo = portalService.obtenerTelefonoFijo((int)personaDetalle.getId().getPersoncode()); + if(telefonoFijo == null){ + this.registroDataManager.setTelefonoPersona(new Tcustpersonphone()); + this.registroDataManager.getTelefonoPersona().setAddressnumber(1L); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalog("1");//1 Fijo, 2 Celular + } else{ + registroDataManager.setTelefonoPersona(telefonoFijo); + } + Tcustpersonphone telefonoCelular = portalService.obtenerTelefonoCelular((int)personaDetalle.getId().getPersoncode()); + if(telefonoCelular == null){ + this.registroDataManager.setTelefonoCelular(new Tcustpersonphone()); + this.registroDataManager.getTelefonoCelular().setAddressnumber(2L); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalog("2");//1 Fijo, 2 Celular + } else{ + registroDataManager.setTelefonoCelular(telefonoCelular); + } + } + } + + + /** + * Listener que espera un archivo cargado + * @param event + */ + public void uploadFoto(FileUploadEvent event) { + try { + if(registroDataManager.getPersona().getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.ruc"))){ + registroDataManager.getFoto().setCapturedate(Calendar.getInstance().getTime()); + registroDataManager.getFoto().setContenttype(event.getFile().getContentType()); + registroDataManager.getFoto().setExtension(FilenameUtils.getExtension(event.getFile().getFileName())); + registroDataManager.getFoto().setImage(IOUtils.toByteArray(event.getFile().getInputstream())); + registroDataManager.getFoto().setImagesize(event.getFile().getSize()); + registroDataManager.getFoto().setName(FilenameUtils.getBaseName(event.getFile().getFileName())); + registroDataManager.setContenidoFoto(new DefaultStreamedContent(event.getFile().getInputstream())); + } + } catch (Throwable e) { + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Almacena el usuario en las tablas de maia + */ + public String guardarUsuario() { + try{ + switch (this.registroDataManager.getPersona().getIdentificationcatalog()) { + case "CED": case "PAS": + this.registroDataManager.getDireccionPersona().setAddresstypecatalog("2"); + break; + case "RUC": + this.registroDataManager.getDireccionPersona().setAddresstypecatalog("1"); + break; + default: + break; + } + + if(this.registroDataManager.getAdicionalPersona().getMaritalstatuscatalog() != null){ + this.registroDataManager.getAdicionalPersona().setMaritalstatuscatalogcode(ESTADO_CIVIL); + } + if(this.registroDataManager.getAdicionalPersona().getProfessioncatalog() != null){ + this.registroDataManager.getAdicionalPersona().setProfessioncatalogcode(PROFESION); + } + portalService.guardarUsuarioMaia( + registroDataManager.getPersona(), + registroDataManager.getDireccionPersona(), + registroDataManager.getCorreoPersona(), + registroDataManager.getTelefonoPersona(), + registroDataManager.getTelefonoCelular(), + registroDataManager.getAdicionalPersona(), + registroDataManager.getCompania(), + registroDataManager.getFoto()); + FacesUtil.getInstancia().messageInfo("El usuario fue guardado exitosamente"); + FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(Boolean.TRUE); + FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + return "/pages/notificacion/home?faces-redirect=true"; + }catch (Throwable e){ + FacesUtil.getInstancia().messageError("ERROR NO CONTROLADO CONTACTE AL PROVEEDOR"); + ExceptionUtils.getRootCauseMessage(e); + return null; + } + } + + public String cancelarOperacion() { + FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + return "/pages/registro/home?faces-redirect=true"; + } + + public RegistroDataManager getRegistroDataManager() { + return registroDataManager; + } + + public void setRegistroDataManager(RegistroDataManager registroDataManager) { + this.registroDataManager = registroDataManager; + } + + public Boolean getIsEnableSave() { + return isEnableSave; + } + + public void setIsEnableSave(Boolean isEnableSave) { + this.isEnableSave = isEnableSave; + } + + +} diff --git a/web/src/main/java/com/fp/armas/portal/controller/registro/RegistroController.java b/web/src/main/java/com/fp/armas/portal/controller/registro/RegistroController.java new file mode 100644 index 0000000..23456a8 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/controller/registro/RegistroController.java @@ -0,0 +1,486 @@ +package com.fp.armas.portal.controller.registro; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.ViewScoped; +import javax.faces.context.FacesContext; +import javax.inject.Inject; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.DefaultStreamedContent; + +import com.fp.armas.portal.controller.base.BaseController; +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.datamanager.registro.RegistroDataManager; +import com.fp.armas.portal.facade.PortalService; +import com.fp.armas.portal.faces.FacesUtil; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.TgeneparroquiaPK; +import com.fp.armas.portal.model.Tgeneprovince; +import com.fp.armas.portal.util.PortalMessages; +import com.fp.armas.portal.webservices.snap.cedula.ClienteCedula; +import com.fp.armas.portal.webservices.snap.ruc.ClienteRUC; + +import ec.gob.registrocivil.consultacedula.Cedula; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Bean que maneja el registro del usuario en el portal y por el cual se va a enviar dichos datos a MAIA + * @author dcruz + * + */ +@ManagedBean +@ViewScoped +public class RegistroController extends BaseController implements Serializable { + + private static final long serialVersionUID = 1L; + + private static final String TIPO_TELEFONO=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.telefono"); + private static final String TIPO_DIRECCION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.direccion"); + private static final String TIPO_IDENTIFICACION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.identificacion"); + private static final String ESTADO_CIVIL=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.estado.civil"); + private static final String PROFESION=PortalMessages.getInstancia().getString("catalogo.codigo.tipo.profesion"); + + private Boolean isEnableSave=Boolean.TRUE; + + @ManagedProperty(value="#{registroDataManager}") + private RegistroDataManager registroDataManager; + + @Inject + private PortalService portalService; + + @Override + public BaseDataManager getDataManager() { + return registroDataManager; + } + + @Override + public void inicializar(){ + try{ + this.registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + this.registroDataManager.getDireccionPersona().setTgeneparroquia(new Tgeneparroquia()); + this.registroDataManager.getDireccionPersona().getTgeneparroquia().setId(new TgeneparroquiaPK()); + this.registroDataManager.setPersona(new Tcustpersondetail()); + this.registroDataManager.getPersona().setIdentificationcatalogcode(TIPO_IDENTIFICACION); + this.registroDataManager.setTipoDocumentoColl(portalService.obtenerCatalogo(TIPO_IDENTIFICACION)); + + this.registroDataManager.getDireccionPersona().setCountryCode("EC"); + this.registroDataManager.getDireccionPersona().setProvinceCode(null); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + this.registroDataManager.setPaisesColl(portalService.obtenerPais()); + + this.registroDataManager.setEstadoCivilColl(portalService.obtenerCatalogo(ESTADO_CIVIL)); + this.registroDataManager.setActividadEconomicaColl(portalService.obtenerActividadEconomica()); + this.registroDataManager.setProfesionColl(portalService.obtenerCatalogo(PROFESION)); + + this.registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + this.registroDataManager.getDireccionPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.setCorreoPersona(new Tcustpersonaddress()); + this.registroDataManager.getCorreoPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.getCorreoPersona().setAddresstypecatalog("3"); + this.registroDataManager.setTelefonoPersona(new Tcustpersonphone()); + this.registroDataManager.getTelefonoPersona().setAddressnumber(1L); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalog("1");//1 Fijo, 2 Celular + this.registroDataManager.setTelefonoCelular(new Tcustpersonphone()); + this.registroDataManager.getTelefonoCelular().setAddressnumber(2L); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalog("2");//1 Fijo, 2 Celular + this.registroDataManager.setAdicionalPersona(new Tcustpeople()); + this.registroDataManager.getDireccionPersona().setCountryCode("EC"); + this.registroDataManager.setCompania(new Tcustcompany()); + this.registroDataManager.setFoto(new Tgenefilesdetail()); + this.cambiaPais(); + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /* + * Eventos ajax + */ + /** + * Cambia pais y actualiza provincias + */ + public void cambiaPais() { + try{ + if(this.registroDataManager.getDireccionPersona().getCountryCode()!=null){ + Collection provinciaColl = portalService.obtenerProvincias(this.registroDataManager.getDireccionPersona().getCountryCode()); + registroDataManager.setProvinciasColl(provinciaColl); + cambiaProvincia(); + //cambiaCanton(); + }else{ + registroDataManager.setProvinciasColl(new ArrayList()); + registroDataManager.setCantonColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + this.registroDataManager.getDireccionPersona().setProvinceCode(null); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + } + +// if(provinciaColl != null && !provinciaColl.isEmpty()){ +// registroDataManager.getDireccionPersona().setProvinceCode(provinciaColl.iterator().next().getId().getProvincecode()); +// registroDataManager.setCantonColl(portalService.obtenerCantones(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode())); +// }else{ +// registroDataManager.setCantonColl(new HashSet()); +// } +// if(registroDataManager.getCantonColl() != null && !registroDataManager.getCantonColl().isEmpty()){ +// registroDataManager.getDireccionPersona().setCantonCode(registroDataManager.getCantonColl().iterator().next().getId().getCantoncode()); +// registroDataManager.setCiudadColl(portalService.obtenerCiudades(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// registroDataManager.setParroquiaColl(portalService.obtenerParroquias(this.registroDataManager.getDireccionPersona().getCountryCode(), provinciaColl.iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// }else{ +// registroDataManager.setParroquiaColl(new HashSet()); +// registroDataManager.setCiudadColl(new HashSet()); +// } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Cambia provincia y actualiza sus subniveles + */ + public void cambiaProvincia() { + try{ +// if(registroDataManager.getDireccionPersona().getProvinceCode() == null){ +// registroDataManager.getDireccionPersona().setProvinceCode(registroDataManager.getProvinciasColl() != null && !registroDataManager.getProvinciasColl().isEmpty() ? +// registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode():null); +// } + if( registroDataManager.getDireccionPersona().getProvinceCode()!=null && registroDataManager.getDireccionPersona().getCountryCode()!=null){ + Collection cantonColl = portalService.obtenerCantones(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode()); + registroDataManager.setCantonColl(cantonColl); + cambiaCanton(); + }else{ + registroDataManager.setCantonColl(new ArrayList()); + registroDataManager.setParroquiaColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + this.registroDataManager.getDireccionPersona().setCantonCode(null); + this.registroDataManager.getDireccionPersona().setCityCode(null); + } + +// if(cantonColl != null && !cantonColl.isEmpty()){ +// registroDataManager.setCiudadColl(portalService.obtenerCiudades(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// registroDataManager.setParroquiaColl(portalService.obtenerParroquias(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getProvinciasColl().iterator().next().getId().getProvincecode(), registroDataManager.getCantonColl().iterator().next().getId().getCantoncode())); +// }else{ +// registroDataManager.setParroquiaColl(new HashSet()); +// registroDataManager.setCiudadColl(new HashSet()); +// } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Cambia cantón y actualiza subniveles + */ + public void cambiaCanton() { + try{ +// if(registroDataManager.getDireccionPersona().getCantonCode() == null){ +// registroDataManager.getDireccionPersona().setCantonCode(registroDataManager.getCantonColl() != null && !registroDataManager.getCantonColl().isEmpty() ? +// registroDataManager.getCantonColl().iterator().next().getId().getCantoncode():null); +// } + if(registroDataManager.getDireccionPersona().getCountryCode()!=null && registroDataManager.getDireccionPersona().getProvinceCode()!=null && + registroDataManager.getDireccionPersona().getCantonCode()!=null){ + Collection parroquiaColl = portalService.obtenerParroquias(registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode(), registroDataManager.getDireccionPersona().getCantonCode()); + Collection cityColl = portalService.obtenerCiudades (registroDataManager.getDireccionPersona().getCountryCode(), registroDataManager.getDireccionPersona().getProvinceCode(), registroDataManager.getDireccionPersona().getCantonCode()); + registroDataManager.setParroquiaColl(parroquiaColl); + registroDataManager.setCiudadColl(cityColl); + }else{ + this.registroDataManager.getDireccionPersona().setCityCode(null); + registroDataManager.setParroquiaColl(new ArrayList()); + registroDataManager.setCiudadColl(new ArrayList()); + } + + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Se verifica que debe + */ + public void changeTipoIdentificacion() { + try{ + switch (registroDataManager.getPersona().getIdentificationcatalog()) { + case "CED": + registroDataManager.setTamDocIndentificacion(10); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.pint")); + break; + case "RUC": + registroDataManager.setTamDocIndentificacion(13); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.pint")); + break; + case "PAS": + registroDataManager.setTamDocIndentificacion(15); + registroDataManager.setTipoMascaraIdentificacion(PortalMessages.getInstancia().getString("tipo.mascara.alphanum")); + break; + default: + break; + } + }catch(Throwable e){ + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Se verifica que si existe el usuario actualice toda la información + */ + public void changeIdentificacion() { + String id = registroDataManager.getPersona().getIdentification(); + String tipoId = registroDataManager.getPersona().getIdentificationcatalog(); + Tcustpersondetail personaDetalle = portalService.obtenerDetallePersonaPorIdentificacion(registroDataManager.getPersona().getIdentification()); + if(personaDetalle != null){ +// FacesUtil.getInstancia().messageWarn(PortalWebResources.getString("error.msg.persona.registrada")); + registroDataManager.setExisteCedula(true); + }else{ + registroDataManager.setExisteCedula(false); + this.inicializar(); + registroDataManager.getPersona().setIdentification(id); + registroDataManager.getPersona().setIdentificationcatalog(tipoId); + } + this.completaDatosPersona(personaDetalle); + + cambiaPais(); + } + + /** + * Completa los datos de la persona si esta existe + * @param identificacion + * @param tipoIdentificacion + */ + private void completaDatosPersona(Tcustpersondetail personaDetalle){ + if(personaDetalle != null){ + registroDataManager.setPersona(personaDetalle); + } + switch (registroDataManager.getPersona().getIdentification().length()) { + case 10:{ + Cedula cedula = ClienteCedula.obtenerCedula(registroDataManager.getPersona().getIdentification()); + completaDatosPersonaNatural(registroDataManager.getPersona()); + completaDatosSnap(cedula); + registroDataManager.setCedulaSnap(cedula); + registroDataManager.setRucSnap(null); + } + break; + case 13:{ + ContribuyenteCompleto contribuyente = ClienteRUC.obtenerRUC(registroDataManager.getPersona().getIdentification()); + if(!contribuyente.getCodEstado().equals("ACT")){ + FacesUtil.getInstancia().messageError("El RUC INGRESADO NO ESTA ACTIVO"); + FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(Boolean.TRUE); +// FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + isEnableSave=Boolean.FALSE; + return; + } + completaDatosCompania(registroDataManager.getPersona()); + completaDatosSnap(contribuyente); + registroDataManager.setRucSnap(contribuyente); + registroDataManager.setCedulaSnap(null); + } + break; + default: + break; + } + completaDatosGenerales(personaDetalle); + } + + /** + * Completa los datos de la companía + * @param personaDetalle + */ + private void completaDatosCompania(Tcustpersondetail personaDetalle) { + if(personaDetalle.getId()!=null && personaDetalle.getId().getPersoncode()>0){ + registroDataManager.setCompania(portalService.obtenerCompaniaPorId((int)personaDetalle.getId().getPersoncode())); + if(registroDataManager.getCompania()!=null && registroDataManager.getCompania().getId()!=null && registroDataManager.getCompania().getId().getPersoncode()>0 && registroDataManager.getCompania().getLogo()!=null){ + Tgenefilesdetail tgenefilesdetail= portalService.obtenerImagen(registroDataManager.getCompania().getLogo()); + if(tgenefilesdetail!=null && tgenefilesdetail.getImage()!=null){ + byte[] byt=tgenefilesdetail.getImage(); + InputStream is = new ByteArrayInputStream(byt); + //registroDataManager.getFoto().setImage(IOUtils.toByteArray(event.getFile().getInputstream())); + registroDataManager.setContenidoFoto(new DefaultStreamedContent(is)); + } + } + } + } + + /** + * Completa los datos si es persona natural + * @param personaDetalle + */ + private void completaDatosPersonaNatural(Tcustpersondetail personaDetalle){ + if(personaDetalle.getId() != null && personaDetalle.getId().getPersoncode() != 0){ + registroDataManager.setAdicionalPersona(portalService.obtenerPersonaNaturalPorId((int)personaDetalle.getId().getPersoncode())); + } + } + + private void completaDatosSnap(Object datosSnap){ + if(datosSnap instanceof Cedula){ + Cedula cedula = (Cedula) datosSnap; + if(registroDataManager.getAdicionalPersona() == null){ + registroDataManager.setAdicionalPersona(new Tcustpeople()); + } + if(cedula != null){ + registroDataManager.getAdicionalPersona().setFirstname(cedula.getNombre()); +// registroDataManager.getAdicionalPersona().setLastname(cedula.getNombrePadre()); +// registroDataManager.getAdicionalPersona().setSurename(cedula.getNombreMadre()); + } + } else if(datosSnap instanceof ContribuyenteCompleto){ + ContribuyenteCompleto contribuyente = (ContribuyenteCompleto) datosSnap; + if(registroDataManager.getCompania() == null){ + registroDataManager.setCompania(new Tcustcompany()); + } + if(contribuyente != null){ + registroDataManager.getPersona().setName(contribuyente.getRazonSocial()); + registroDataManager.getPersona().setLegalrepresent(contribuyente.getRepresentanteLegal().getNombre()); + registroDataManager.getPersona().setLegalrepresentidentification(contribuyente.getRepresentanteLegal().getIdentificacion()); + registroDataManager.getPersona().setEconimicact(contribuyente.getActividadEconomica().getActividadGeneral()); + } + + + } + } + + /** + * Completa los datos generales como dirección y teléfono y demás requeridas para su funcionamiento + * @param personaDetalle + */ + private void completaDatosGenerales(Tcustpersondetail personaDetalle){ + if(personaDetalle != null){ + Tcustpersonaddress direccionPrincipal = portalService.obtenerDireccionPrincipal((int)personaDetalle.getId().getPersoncode()); + if(direccionPrincipal == null){ + registroDataManager.setDireccionPersona(new Tcustpersonaddress()); + registroDataManager.getDireccionPersona().setAddresstypecatalog(TIPO_DIRECCION); + } else{ + registroDataManager.setDireccionPersona(direccionPrincipal); + } + Tcustpersonaddress mail = portalService.obtenerCorreo((int)personaDetalle.getId().getPersoncode());; + if(mail == null){ + this.registroDataManager.getCorreoPersona().setAddresstypecatalogcode(TIPO_DIRECCION); + this.registroDataManager.getCorreoPersona().setAddresstypecatalog("3"); + } else{ + registroDataManager.setCorreoPersona(mail); + } + Tcustpersonphone telefonoFijo = portalService.obtenerTelefonoFijo((int)personaDetalle.getId().getPersoncode()); + if(telefonoFijo == null){ + this.registroDataManager.setTelefonoPersona(new Tcustpersonphone()); + this.registroDataManager.getTelefonoPersona().setAddressnumber(1L); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoPersona().setPhonetypecatalog("1");//1 Fijo, 2 Celular + } else{ + registroDataManager.setTelefonoPersona(telefonoFijo); + } + Tcustpersonphone telefonoCelular = portalService.obtenerTelefonoCelular((int)personaDetalle.getId().getPersoncode()); + if(telefonoCelular == null){ + this.registroDataManager.setTelefonoCelular(new Tcustpersonphone()); + this.registroDataManager.getTelefonoCelular().setAddressnumber(2L); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalogcode(TIPO_TELEFONO); + this.registroDataManager.getTelefonoCelular().setPhonetypecatalog("2");//1 Fijo, 2 Celular + } else{ + registroDataManager.setTelefonoCelular(telefonoCelular); + } + } + } + + + /** + * Listener que espera un archivo cargado + * @param event + */ + public void uploadFoto(FileUploadEvent event) { + try { + if(registroDataManager.getPersona().getIdentificationcatalog().equals(PortalMessages.getInstancia().getString("catalogo.codigo.detalle.id.ruc"))){ + registroDataManager.getFoto().setCapturedate(Calendar.getInstance().getTime()); + registroDataManager.getFoto().setContenttype(event.getFile().getContentType()); + registroDataManager.getFoto().setExtension(FilenameUtils.getExtension(event.getFile().getFileName())); + registroDataManager.getFoto().setImage(IOUtils.toByteArray(event.getFile().getInputstream())); + registroDataManager.getFoto().setImagesize(event.getFile().getSize()); + registroDataManager.getFoto().setName(FilenameUtils.getBaseName(event.getFile().getFileName())); + registroDataManager.setContenidoFoto(new DefaultStreamedContent(event.getFile().getInputstream())); + } + } catch (Throwable e) { + FacesUtil.getInstancia().messageError(ExceptionUtils.getRootCauseMessage(e)); + } + } + + /** + * Almacena el usuario en las tablas de maia + */ + public String guardarUsuario() { + try{ + switch (this.registroDataManager.getPersona().getIdentificationcatalog()) { + case "CED": case "PAS": + this.registroDataManager.getDireccionPersona().setAddresstypecatalog("2"); + break; + case "RUC": + this.registroDataManager.getDireccionPersona().setAddresstypecatalog("1"); + break; + default: + break; + } + + if(this.registroDataManager.getAdicionalPersona().getMaritalstatuscatalog() != null){ + this.registroDataManager.getAdicionalPersona().setMaritalstatuscatalogcode(ESTADO_CIVIL); + } + if(this.registroDataManager.getAdicionalPersona().getProfessioncatalog() != null){ + this.registroDataManager.getAdicionalPersona().setProfessioncatalogcode(PROFESION); + } + portalService.guardarUsuarioMaia( + registroDataManager.getPersona(), + registroDataManager.getDireccionPersona(), + registroDataManager.getCorreoPersona(), + registroDataManager.getTelefonoPersona(), + registroDataManager.getTelefonoCelular(), + registroDataManager.getAdicionalPersona(), + registroDataManager.getCompania(), + registroDataManager.getFoto()); + FacesUtil.getInstancia().messageInfo("El usuario fue guardado exitosamente"); + FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(Boolean.TRUE); + FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + return "/pages/notificacion/home?faces-redirect=true"; + }catch (Throwable e){ + FacesUtil.getInstancia().messageError("ERROR NO CONTROLADO CONTACTE AL PROVEEDOR"); + ExceptionUtils.getRootCauseMessage(e); + return null; + } + } + + public String cancelarOperacion() { + FacesUtil.getInstancia().eliminaBeanSesion("registroDataManager"); + return "/pages/registro/home?faces-redirect=true"; + } + + public RegistroDataManager getRegistroDataManager() { + return registroDataManager; + } + + public void setRegistroDataManager(RegistroDataManager registroDataManager) { + this.registroDataManager = registroDataManager; + } + + public Boolean getIsEnableSave() { + return isEnableSave; + } + + public void setIsEnableSave(Boolean isEnableSave) { + this.isEnableSave = isEnableSave; + } + + +} diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/.svn/entries b/web/src/main/java/com/fp/armas/portal/datamanager/.svn/entries new file mode 100644 index 0000000..868ea9d --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/datamanager +svn://172.17.26.185/COMACO + + + +2015-01-23T13:50:43.778743Z +3810 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +base +dir + +registro +dir + diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/entries b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/entries new file mode 100644 index 0000000..335fa6b --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/datamanager/base +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +BaseDataManager.java +file + + + + +2022-07-28T03:45:36.620074Z +45eda8c8d0e2f26f8a4ab6af6941dc15 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +354 + diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/prop-base/BaseDataManager.java.svn-base b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/prop-base/BaseDataManager.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/prop-base/BaseDataManager.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/text-base/BaseDataManager.java.svn-base b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/text-base/BaseDataManager.java.svn-base new file mode 100644 index 0000000..553928c --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/base/.svn/text-base/BaseDataManager.java.svn-base @@ -0,0 +1,19 @@ +package com.fp.armas.portal.datamanager.base; + +/** + * Clase base que manejan todos los datamanagers + * @author dcruz + * + */ +public abstract class BaseDataManager { + + private boolean inicializado; + + public boolean isInicializado() { + return inicializado; + } + + public void setInicializado(boolean inicializado) { + this.inicializado = inicializado; + } +} diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/base/BaseDataManager.java b/web/src/main/java/com/fp/armas/portal/datamanager/base/BaseDataManager.java new file mode 100644 index 0000000..553928c --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/base/BaseDataManager.java @@ -0,0 +1,19 @@ +package com.fp.armas.portal.datamanager.base; + +/** + * Clase base que manejan todos los datamanagers + * @author dcruz + * + */ +public abstract class BaseDataManager { + + private boolean inicializado; + + public boolean isInicializado() { + return inicializado; + } + + public void setInicializado(boolean inicializado) { + this.inicializado = inicializado; + } +} diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/entries b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/entries new file mode 100644 index 0000000..3a70fb7 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/datamanager/registro +svn://172.17.26.185/COMACO + + + +2015-01-23T13:50:43.778743Z +3810 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +RegistroDataManager.java +file + + + + +2022-07-28T03:45:36.653074Z +3ccdc70e2c5c92e891e2bee7238ec6e7 +2015-01-23T13:50:43.778743Z +3810 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6909 + diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/prop-base/RegistroDataManager.java.svn-base b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/prop-base/RegistroDataManager.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/prop-base/RegistroDataManager.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/text-base/RegistroDataManager.java.svn-base b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/text-base/RegistroDataManager.java.svn-base new file mode 100644 index 0000000..db2453c --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/registro/.svn/text-base/RegistroDataManager.java.svn-base @@ -0,0 +1,282 @@ +package com.fp.armas.portal.datamanager.registro; + +import java.io.ByteArrayInputStream; +import java.io.Serializable; +import java.util.Collection; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; + +import ec.gob.registrocivil.consultacedula.Cedula; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Datmanager de Registro + * + * @author dcruz + * + */ +@ManagedBean +@SessionScoped +public class RegistroDataManager extends BaseDataManager implements Serializable { + + private static final long serialVersionUID = 6160075453173774293L; + + private Collection paisesColl; + + private Collection provinciasColl; + + private Collection cantonColl; + + private Collection parroquiaColl; + + private Collection ciudadColl; + + private Collection tipoDocumentoColl; + + private Collection profesionColl; + + private Collection estadoCivilColl; + + private Collection actividadEconomicaColl; + + private Tcustpersondetail persona; + + private Tcustpersonaddress direccionPersona; + + private Tcustpersonaddress correoPersona; + + private Tcustpersonphone telefonoPersona; + + private Tcustpersonphone telefonoCelular; + + private Tcustpeople adicionalPersona; + + private Tcustcompany compania; + + private Tgenefilesdetail foto; + + private StreamedContent contenidoFoto; + + private Cedula cedulaSnap; + + private ContribuyenteCompleto rucSnap; + + private Integer tamDocIndentificacion = 15; + + private String tipoMascaraIdentificacion = "alphanum"; + + private boolean existeCedula = false; + + public RegistroDataManager(){ + + } + + public Collection getPaisesColl() { + return paisesColl; + } + + public void setPaisesColl(Collection paisesColl) { + this.paisesColl = paisesColl; + } + + public Collection getCantonColl() { + return cantonColl; + } + + public void setCantonColl(Collection cantonColl) { + this.cantonColl = cantonColl; + } + + public Collection getParroquiaColl() { + return parroquiaColl; + } + + public void setParroquiaColl(Collection parroquiaColl) { + this.parroquiaColl = parroquiaColl; + } + + public Tcustpersondetail getPersona() { + return persona; + } + + public void setPersona(Tcustpersondetail persona) { + this.persona = persona; + } + + public Collection getCiudadColl() { + return ciudadColl; + } + + public void setCiudadColl(Collection ciudadColl) { + this.ciudadColl = ciudadColl; + } + + public Collection getTipoDocumentoColl() { + return tipoDocumentoColl; + } + + public void setTipoDocumentoColl( + Collection tipoDocumentoColl) { + this.tipoDocumentoColl = tipoDocumentoColl; + } + + public Collection getProfesionColl() { + return profesionColl; + } + + public void setProfesionColl(Collection profesionColl) { + this.profesionColl = profesionColl; + } + + public Tcustpersonaddress getDireccionPersona() { + return direccionPersona; + } + + public void setDireccionPersona(Tcustpersonaddress direccionPersona) { + this.direccionPersona = direccionPersona; + } + + public Collection getActividadEconomicaColl() { + return actividadEconomicaColl; + } + + public void setActividadEconomicaColl( + Collection actividadEconomicaColl) { + this.actividadEconomicaColl = actividadEconomicaColl; + } + + public Collection getProvinciasColl() { + return provinciasColl; + } + + public void setProvinciasColl(Collection provinciasColl) { + this.provinciasColl = provinciasColl; + } + + public Tcustpersonphone getTelefonoPersona() { + return telefonoPersona; + } + + public void setTelefonoPersona(Tcustpersonphone telefonoPersona) { + this.telefonoPersona = telefonoPersona; + } + + public Tcustpersonphone getTelefonoCelular() { + return telefonoCelular; + } + + public void setTelefonoCelular(Tcustpersonphone telefonoCelular) { + this.telefonoCelular = telefonoCelular; + } + + public Collection getEstadoCivilColl() { + return estadoCivilColl; + } + + public void setEstadoCivilColl(Collection estadoCivilColl) { + this.estadoCivilColl = estadoCivilColl; + } + + public Tcustpeople getAdicionalPersona() { + return adicionalPersona; + } + + public void setAdicionalPersona(Tcustpeople adicionalPersona) { + this.adicionalPersona = adicionalPersona; + } + + public Tcustpersonaddress getCorreoPersona() { + return correoPersona; + } + + public void setCorreoPersona(Tcustpersonaddress correoPersona) { + this.correoPersona = correoPersona; + } + + public Integer getTamDocIndentificacion() { + return tamDocIndentificacion; + } + + public void setTamDocIndentificacion(Integer tamDocIndentificacion) { + this.tamDocIndentificacion = tamDocIndentificacion; + } + + public String getTipoMascaraIdentificacion() { + return tipoMascaraIdentificacion; + } + + public void setTipoMascaraIdentificacion(String tipoMascaraIdentificacion) { + this.tipoMascaraIdentificacion = tipoMascaraIdentificacion; + } + + public boolean isExisteCedula() { + return existeCedula; + } + + public void setExisteCedula(boolean existeCedula) { + this.existeCedula = existeCedula; + } + + public Tcustcompany getCompania() { + return compania; + } + + public void setCompania(Tcustcompany compania) { + this.compania = compania; + } + + public Tgenefilesdetail getFoto() { + return foto; + } + + public void setFoto(Tgenefilesdetail foto) { + this.foto = foto; + } + + public StreamedContent getContenidoFoto() { + if(foto.getImage() != null){ + contenidoFoto = new DefaultStreamedContent(new ByteArrayInputStream(foto.getImage())); + } + return contenidoFoto; + } + + public void setContenidoFoto(StreamedContent contenidoFoto) { + this.contenidoFoto = contenidoFoto; + } + + public Cedula getCedulaSnap() { + return cedulaSnap; + } + + public void setCedulaSnap(Cedula cedulaSnap) { + this.cedulaSnap = cedulaSnap; + } + + public ContribuyenteCompleto getRucSnap() { + return rucSnap; + } + + public void setRucSnap(ContribuyenteCompleto rucSnap) { + this.rucSnap = rucSnap; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/datamanager/registro/RegistroDataManager.java b/web/src/main/java/com/fp/armas/portal/datamanager/registro/RegistroDataManager.java new file mode 100644 index 0000000..db2453c --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/datamanager/registro/RegistroDataManager.java @@ -0,0 +1,282 @@ +package com.fp.armas.portal.datamanager.registro; + +import java.io.ByteArrayInputStream; +import java.io.Serializable; +import java.util.Collection; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +import com.fp.armas.portal.datamanager.base.BaseDataManager; +import com.fp.armas.portal.model.Tcustcompany; +import com.fp.armas.portal.model.Tcustpeople; +import com.fp.armas.portal.model.Tcustpersonaddress; +import com.fp.armas.portal.model.Tcustpersondetail; +import com.fp.armas.portal.model.Tcustpersonphone; +import com.fp.armas.portal.model.Tgeneactivity; +import com.fp.armas.portal.model.Tgenecanton; +import com.fp.armas.portal.model.Tgenecatalogdetail; +import com.fp.armas.portal.model.Tgenecity; +import com.fp.armas.portal.model.Tgenecountry; +import com.fp.armas.portal.model.Tgenefilesdetail; +import com.fp.armas.portal.model.Tgeneparroquia; +import com.fp.armas.portal.model.Tgeneprovince; + +import ec.gob.registrocivil.consultacedula.Cedula; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Datmanager de Registro + * + * @author dcruz + * + */ +@ManagedBean +@SessionScoped +public class RegistroDataManager extends BaseDataManager implements Serializable { + + private static final long serialVersionUID = 6160075453173774293L; + + private Collection paisesColl; + + private Collection provinciasColl; + + private Collection cantonColl; + + private Collection parroquiaColl; + + private Collection ciudadColl; + + private Collection tipoDocumentoColl; + + private Collection profesionColl; + + private Collection estadoCivilColl; + + private Collection actividadEconomicaColl; + + private Tcustpersondetail persona; + + private Tcustpersonaddress direccionPersona; + + private Tcustpersonaddress correoPersona; + + private Tcustpersonphone telefonoPersona; + + private Tcustpersonphone telefonoCelular; + + private Tcustpeople adicionalPersona; + + private Tcustcompany compania; + + private Tgenefilesdetail foto; + + private StreamedContent contenidoFoto; + + private Cedula cedulaSnap; + + private ContribuyenteCompleto rucSnap; + + private Integer tamDocIndentificacion = 15; + + private String tipoMascaraIdentificacion = "alphanum"; + + private boolean existeCedula = false; + + public RegistroDataManager(){ + + } + + public Collection getPaisesColl() { + return paisesColl; + } + + public void setPaisesColl(Collection paisesColl) { + this.paisesColl = paisesColl; + } + + public Collection getCantonColl() { + return cantonColl; + } + + public void setCantonColl(Collection cantonColl) { + this.cantonColl = cantonColl; + } + + public Collection getParroquiaColl() { + return parroquiaColl; + } + + public void setParroquiaColl(Collection parroquiaColl) { + this.parroquiaColl = parroquiaColl; + } + + public Tcustpersondetail getPersona() { + return persona; + } + + public void setPersona(Tcustpersondetail persona) { + this.persona = persona; + } + + public Collection getCiudadColl() { + return ciudadColl; + } + + public void setCiudadColl(Collection ciudadColl) { + this.ciudadColl = ciudadColl; + } + + public Collection getTipoDocumentoColl() { + return tipoDocumentoColl; + } + + public void setTipoDocumentoColl( + Collection tipoDocumentoColl) { + this.tipoDocumentoColl = tipoDocumentoColl; + } + + public Collection getProfesionColl() { + return profesionColl; + } + + public void setProfesionColl(Collection profesionColl) { + this.profesionColl = profesionColl; + } + + public Tcustpersonaddress getDireccionPersona() { + return direccionPersona; + } + + public void setDireccionPersona(Tcustpersonaddress direccionPersona) { + this.direccionPersona = direccionPersona; + } + + public Collection getActividadEconomicaColl() { + return actividadEconomicaColl; + } + + public void setActividadEconomicaColl( + Collection actividadEconomicaColl) { + this.actividadEconomicaColl = actividadEconomicaColl; + } + + public Collection getProvinciasColl() { + return provinciasColl; + } + + public void setProvinciasColl(Collection provinciasColl) { + this.provinciasColl = provinciasColl; + } + + public Tcustpersonphone getTelefonoPersona() { + return telefonoPersona; + } + + public void setTelefonoPersona(Tcustpersonphone telefonoPersona) { + this.telefonoPersona = telefonoPersona; + } + + public Tcustpersonphone getTelefonoCelular() { + return telefonoCelular; + } + + public void setTelefonoCelular(Tcustpersonphone telefonoCelular) { + this.telefonoCelular = telefonoCelular; + } + + public Collection getEstadoCivilColl() { + return estadoCivilColl; + } + + public void setEstadoCivilColl(Collection estadoCivilColl) { + this.estadoCivilColl = estadoCivilColl; + } + + public Tcustpeople getAdicionalPersona() { + return adicionalPersona; + } + + public void setAdicionalPersona(Tcustpeople adicionalPersona) { + this.adicionalPersona = adicionalPersona; + } + + public Tcustpersonaddress getCorreoPersona() { + return correoPersona; + } + + public void setCorreoPersona(Tcustpersonaddress correoPersona) { + this.correoPersona = correoPersona; + } + + public Integer getTamDocIndentificacion() { + return tamDocIndentificacion; + } + + public void setTamDocIndentificacion(Integer tamDocIndentificacion) { + this.tamDocIndentificacion = tamDocIndentificacion; + } + + public String getTipoMascaraIdentificacion() { + return tipoMascaraIdentificacion; + } + + public void setTipoMascaraIdentificacion(String tipoMascaraIdentificacion) { + this.tipoMascaraIdentificacion = tipoMascaraIdentificacion; + } + + public boolean isExisteCedula() { + return existeCedula; + } + + public void setExisteCedula(boolean existeCedula) { + this.existeCedula = existeCedula; + } + + public Tcustcompany getCompania() { + return compania; + } + + public void setCompania(Tcustcompany compania) { + this.compania = compania; + } + + public Tgenefilesdetail getFoto() { + return foto; + } + + public void setFoto(Tgenefilesdetail foto) { + this.foto = foto; + } + + public StreamedContent getContenidoFoto() { + if(foto.getImage() != null){ + contenidoFoto = new DefaultStreamedContent(new ByteArrayInputStream(foto.getImage())); + } + return contenidoFoto; + } + + public void setContenidoFoto(StreamedContent contenidoFoto) { + this.contenidoFoto = contenidoFoto; + } + + public Cedula getCedulaSnap() { + return cedulaSnap; + } + + public void setCedulaSnap(Cedula cedulaSnap) { + this.cedulaSnap = cedulaSnap; + } + + public ContribuyenteCompleto getRucSnap() { + return rucSnap; + } + + public void setRucSnap(ContribuyenteCompleto rucSnap) { + this.rucSnap = rucSnap; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/faces/.svn/entries b/web/src/main/java/com/fp/armas/portal/faces/.svn/entries new file mode 100644 index 0000000..00c66b0 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/.svn/entries @@ -0,0 +1,65 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/faces +svn://172.17.26.185/COMACO + + + +2014-08-22T13:02:24.015247Z +299 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +FacesUtil.java +file + + + + +2022-07-28T03:45:36.312073Z +de8fa76ed1f18f82656c69df954149ac +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1908 + +listener +dir + diff --git a/web/src/main/java/com/fp/armas/portal/faces/.svn/prop-base/FacesUtil.java.svn-base b/web/src/main/java/com/fp/armas/portal/faces/.svn/prop-base/FacesUtil.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/.svn/prop-base/FacesUtil.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/faces/.svn/text-base/FacesUtil.java.svn-base b/web/src/main/java/com/fp/armas/portal/faces/.svn/text-base/FacesUtil.java.svn-base new file mode 100644 index 0000000..1317e2a --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/.svn/text-base/FacesUtil.java.svn-base @@ -0,0 +1,77 @@ +package com.fp.armas.portal.faces; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; + +/** + * Clase que contiene utilidades para el manejo de JSF + * @author dcruz + * @since 1.0 + */ +public class FacesUtil { + + private static FacesUtil instancia = null; + + private FacesUtil(){} + + public synchronized static FacesUtil getInstancia() { + if(instancia == null){ + instancia = new FacesUtil(); + } + return instancia; + } + + /** + * Retorna el hilo {@link FacesContext} + * @return + */ + public FacesContext getFacesContext() { + return FacesContext.getCurrentInstance(); + } + + /** + * Muestra un mensaje informativo + * @param message + */ + public void messageInfo(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, message)); + } + + /** + * Muestra un mensaje de advertencia + * @param message + */ + public void messageWarn(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); + } + + /** + * Muestra un mensaje de error + * @param message + */ + public void messageError(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); + } + + /** + * Muestra un mensaje de error fatal + * @param message + */ + public void messageFatal(String message) { + FacesContext facesContext = FacesContext.getCurrentInstance(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, message, message)); + } + + /** + * Elimina un bean de sesión por su nombre + * @param name + */ + public void eliminaBeanSesion(String name){ + FacesContext facesContext = getFacesContext(); + facesContext.getExternalContext().getSessionMap().remove(name); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/faces/FacesUtil.java b/web/src/main/java/com/fp/armas/portal/faces/FacesUtil.java new file mode 100644 index 0000000..1317e2a --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/FacesUtil.java @@ -0,0 +1,77 @@ +package com.fp.armas.portal.faces; + +import javax.faces.application.FacesMessage; +import javax.faces.context.FacesContext; + +/** + * Clase que contiene utilidades para el manejo de JSF + * @author dcruz + * @since 1.0 + */ +public class FacesUtil { + + private static FacesUtil instancia = null; + + private FacesUtil(){} + + public synchronized static FacesUtil getInstancia() { + if(instancia == null){ + instancia = new FacesUtil(); + } + return instancia; + } + + /** + * Retorna el hilo {@link FacesContext} + * @return + */ + public FacesContext getFacesContext() { + return FacesContext.getCurrentInstance(); + } + + /** + * Muestra un mensaje informativo + * @param message + */ + public void messageInfo(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, message, message)); + } + + /** + * Muestra un mensaje de advertencia + * @param message + */ + public void messageWarn(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, message, message)); + } + + /** + * Muestra un mensaje de error + * @param message + */ + public void messageError(String message) { + FacesContext facesContext = getFacesContext(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, message, message)); + } + + /** + * Muestra un mensaje de error fatal + * @param message + */ + public void messageFatal(String message) { + FacesContext facesContext = FacesContext.getCurrentInstance(); + facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, message, message)); + } + + /** + * Elimina un bean de sesión por su nombre + * @param name + */ + public void eliminaBeanSesion(String name){ + FacesContext facesContext = getFacesContext(); + facesContext.getExternalContext().getSessionMap().remove(name); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/entries b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/entries new file mode 100644 index 0000000..006373f --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/faces/listener +svn://172.17.26.185/COMACO + + + +2014-08-22T13:02:24.015247Z +299 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +PortalListener.java +file + + + + +2022-07-28T03:45:36.276073Z +d57f569b21395dcefbcd43bbc75e8de9 +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +727 + diff --git a/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/prop-base/PortalListener.java.svn-base b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/prop-base/PortalListener.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/prop-base/PortalListener.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/text-base/PortalListener.java.svn-base b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/text-base/PortalListener.java.svn-base new file mode 100644 index 0000000..5119152 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/listener/.svn/text-base/PortalListener.java.svn-base @@ -0,0 +1,33 @@ +package com.fp.armas.portal.faces.listener; + +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; + +import com.fp.armas.portal.util.PortalLogger; + +/** + * Listener informativo de las fases del ciclo de vida JSF + * @author dcruz + * + */ +public class PortalListener implements PhaseListener, PortalLogger{ + + private static final long serialVersionUID = 8303265902200435474L; + + @Override + public void afterPhase(PhaseEvent event) { + log.info("After PHASE: {}", event.getPhaseId()); + } + + @Override + public void beforePhase(PhaseEvent event) { + log.info("Before PHASE: {}", event.getPhaseId()); + } + + @Override + public PhaseId getPhaseId() { + return PhaseId.ANY_PHASE; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/faces/listener/PortalListener.java b/web/src/main/java/com/fp/armas/portal/faces/listener/PortalListener.java new file mode 100644 index 0000000..5119152 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/faces/listener/PortalListener.java @@ -0,0 +1,33 @@ +package com.fp.armas.portal.faces.listener; + +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; + +import com.fp.armas.portal.util.PortalLogger; + +/** + * Listener informativo de las fases del ciclo de vida JSF + * @author dcruz + * + */ +public class PortalListener implements PhaseListener, PortalLogger{ + + private static final long serialVersionUID = 8303265902200435474L; + + @Override + public void afterPhase(PhaseEvent event) { + log.info("After PHASE: {}", event.getPhaseId()); + } + + @Override + public void beforePhase(PhaseEvent event) { + log.info("Before PHASE: {}", event.getPhaseId()); + } + + @Override + public PhaseId getPhaseId() { + return PhaseId.ANY_PHASE; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/entries b/web/src/main/java/com/fp/armas/portal/validator/.svn/entries new file mode 100644 index 0000000..b73f2f3 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/entries @@ -0,0 +1,130 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/validator +svn://172.17.26.185/COMACO + + + +2014-08-25T13:45:42.279378Z +348 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +CelularValidator.java +file + + + + +2022-07-28T03:45:36.727075Z +50dd8d4a32dba29495272b1cd0cc7591 +2014-08-25T13:45:42.279378Z +348 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1009 + +EmailValidator.java +file + + + + +2022-07-28T03:45:36.728075Z +56d7cb5ea92ee6bec9457d9f2d394a92 +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1473 + +IdentificacionValidator.java +file + + + + +2022-07-28T03:45:36.728075Z +23103190949d7a7d4560fd23340d52fa +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1497 + diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/CelularValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/CelularValidator.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/CelularValidator.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/EmailValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/EmailValidator.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/EmailValidator.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/IdentificacionValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/IdentificacionValidator.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/prop-base/IdentificacionValidator.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/CelularValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/CelularValidator.java.svn-base new file mode 100644 index 0000000..c3155aa --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/CelularValidator.java.svn-base @@ -0,0 +1,29 @@ +package com.fp.armas.portal.validator; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.web.PortalWebResources; + +/** + * Valida que un número celular comience con 09 + * @author dcruz + * + */ +@FacesValidator(value="celularValidator") +public class CelularValidator implements Validator { + + @Override + public void validate(FacesContext context, UIComponent component, + Object value) throws ValidatorException { + String valueString = value != null ? value.toString() : null; + if(value != null && valueString.length() > 2 && !valueString.startsWith("09")){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.celular.incorrecto"), PortalWebResources.getString("error.celular.incorrecto"))); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/EmailValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/EmailValidator.java.svn-base new file mode 100644 index 0000000..1673414 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/EmailValidator.java.svn-base @@ -0,0 +1,38 @@ +package com.fp.armas.portal.validator; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.web.PortalWebResources; + +/** + * Validador que verifica que un mail este bien formado + * @author dcruz + * + */ +@FacesValidator(value="emailValidator") +public class EmailValidator implements Validator { + + private static final String REGEX_EMAIL = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; + private static final Pattern PATTERN_EMAIL = Pattern.compile(REGEX_EMAIL); + + @Override + public void validate(FacesContext facesContext, UIComponent component, Object value) + throws ValidatorException { + if(value == null || value.toString().equals("")){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.campo.vacio"), PortalWebResources.getString("error.campo.vacio"))); + } + Matcher emailMatcher = PATTERN_EMAIL.matcher(value.toString()); + if(!emailMatcher.matches()){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.mail.incorrecto"), PortalWebResources.getString("error.mail.incorrecto"))); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/IdentificacionValidator.java.svn-base b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/IdentificacionValidator.java.svn-base new file mode 100644 index 0000000..8168d8d --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/.svn/text-base/IdentificacionValidator.java.svn-base @@ -0,0 +1,41 @@ +package com.fp.armas.portal.validator; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.component.html.HtmlInputText; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.util.validadores.ValidadorIdentificacion; +import com.fp.armas.portal.web.PortalWebResources; + +@FacesValidator(value="identificacionValidator") +public class IdentificacionValidator implements Validator { + + @Override + public void validate(FacesContext context, UIComponent component, Object value) + throws ValidatorException { + try { + int maxLength = ((HtmlInputText)component).getMaxlength(); + switch (maxLength) { + case 10: + if(!ValidadorIdentificacion.cedula(value.toString())){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.msg.cedula"), PortalWebResources.getString("error.msg.cedula"))); + } + break; + case 13: + if(!ValidadorIdentificacion.ruc(value.toString())){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.msg.ruc"), PortalWebResources.getString("error.msg.ruc"))); + } + + default: + break; + } + } catch (Throwable e) { + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage())); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/CelularValidator.java b/web/src/main/java/com/fp/armas/portal/validator/CelularValidator.java new file mode 100644 index 0000000..c3155aa --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/CelularValidator.java @@ -0,0 +1,29 @@ +package com.fp.armas.portal.validator; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.web.PortalWebResources; + +/** + * Valida que un número celular comience con 09 + * @author dcruz + * + */ +@FacesValidator(value="celularValidator") +public class CelularValidator implements Validator { + + @Override + public void validate(FacesContext context, UIComponent component, + Object value) throws ValidatorException { + String valueString = value != null ? value.toString() : null; + if(value != null && valueString.length() > 2 && !valueString.startsWith("09")){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.celular.incorrecto"), PortalWebResources.getString("error.celular.incorrecto"))); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/EmailValidator.java b/web/src/main/java/com/fp/armas/portal/validator/EmailValidator.java new file mode 100644 index 0000000..1673414 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/EmailValidator.java @@ -0,0 +1,38 @@ +package com.fp.armas.portal.validator; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.web.PortalWebResources; + +/** + * Validador que verifica que un mail este bien formado + * @author dcruz + * + */ +@FacesValidator(value="emailValidator") +public class EmailValidator implements Validator { + + private static final String REGEX_EMAIL = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; + private static final Pattern PATTERN_EMAIL = Pattern.compile(REGEX_EMAIL); + + @Override + public void validate(FacesContext facesContext, UIComponent component, Object value) + throws ValidatorException { + if(value == null || value.toString().equals("")){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.campo.vacio"), PortalWebResources.getString("error.campo.vacio"))); + } + Matcher emailMatcher = PATTERN_EMAIL.matcher(value.toString()); + if(!emailMatcher.matches()){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.mail.incorrecto"), PortalWebResources.getString("error.mail.incorrecto"))); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/validator/IdentificacionValidator.java b/web/src/main/java/com/fp/armas/portal/validator/IdentificacionValidator.java new file mode 100644 index 0000000..8168d8d --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/validator/IdentificacionValidator.java @@ -0,0 +1,41 @@ +package com.fp.armas.portal.validator; + +import javax.faces.application.FacesMessage; +import javax.faces.component.UIComponent; +import javax.faces.component.html.HtmlInputText; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; + +import com.fp.armas.portal.util.validadores.ValidadorIdentificacion; +import com.fp.armas.portal.web.PortalWebResources; + +@FacesValidator(value="identificacionValidator") +public class IdentificacionValidator implements Validator { + + @Override + public void validate(FacesContext context, UIComponent component, Object value) + throws ValidatorException { + try { + int maxLength = ((HtmlInputText)component).getMaxlength(); + switch (maxLength) { + case 10: + if(!ValidadorIdentificacion.cedula(value.toString())){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.msg.cedula"), PortalWebResources.getString("error.msg.cedula"))); + } + break; + case 13: + if(!ValidadorIdentificacion.ruc(value.toString())){ + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, PortalWebResources.getString("error.msg.ruc"), PortalWebResources.getString("error.msg.ruc"))); + } + + default: + break; + } + } catch (Throwable e) { + throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage())); + } + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/web/.svn/entries b/web/src/main/java/com/fp/armas/portal/web/.svn/entries new file mode 100644 index 0000000..57e0c90 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/web/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/web +svn://172.17.26.185/COMACO + + + +2014-08-21T12:01:54.070442Z +264 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +PortalWebResources.java +file + + + + +2022-07-28T03:45:36.762075Z +ef7ec91d0c7b5fb42d860619e21afb63 +2014-08-21T12:01:54.070442Z +264 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +389 + diff --git a/web/src/main/java/com/fp/armas/portal/web/.svn/prop-base/PortalWebResources.java.svn-base b/web/src/main/java/com/fp/armas/portal/web/.svn/prop-base/PortalWebResources.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/web/.svn/prop-base/PortalWebResources.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/web/.svn/text-base/PortalWebResources.java.svn-base b/web/src/main/java/com/fp/armas/portal/web/.svn/text-base/PortalWebResources.java.svn-base new file mode 100644 index 0000000..4151c60 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/web/.svn/text-base/PortalWebResources.java.svn-base @@ -0,0 +1,17 @@ +package com.fp.armas.portal.web; + +import java.util.ResourceBundle; + +public class PortalWebResources { + + private static final String BUNDLE = "com.fp.armas.portal.web_portal"; + private static ResourceBundle resourceBundle = null; + + static{ + resourceBundle = ResourceBundle.getBundle(BUNDLE); + } + + public static String getString(String key) { + return resourceBundle.getString(key); + } +} diff --git a/web/src/main/java/com/fp/armas/portal/web/PortalWebResources.java b/web/src/main/java/com/fp/armas/portal/web/PortalWebResources.java new file mode 100644 index 0000000..4151c60 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/web/PortalWebResources.java @@ -0,0 +1,17 @@ +package com.fp.armas.portal.web; + +import java.util.ResourceBundle; + +public class PortalWebResources { + + private static final String BUNDLE = "com.fp.armas.portal.web_portal"; + private static ResourceBundle resourceBundle = null; + + static{ + resourceBundle = ResourceBundle.getBundle(BUNDLE); + } + + public static String getString(String key) { + return resourceBundle.getString(key); + } +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/.svn/entries b/web/src/main/java/com/fp/armas/portal/webservices/.svn/entries new file mode 100644 index 0000000..39ec239 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/webservices +svn://172.17.26.185/COMACO + + + +2015-04-01T05:40:17.373598Z +3983 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +snap +dir + diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/.svn/entries b/web/src/main/java/com/fp/armas/portal/webservices/snap/.svn/entries new file mode 100644 index 0000000..f219b72 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/webservices/snap +svn://172.17.26.185/COMACO + + + +2015-04-01T05:40:17.373598Z +3983 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ruc +dir + +cedula +dir + diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/entries b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/entries new file mode 100644 index 0000000..2ac772b --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/entries @@ -0,0 +1,266 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula +svn://172.17.26.185/COMACO + + + +2015-04-01T05:40:17.373598Z +3983 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +CedulaServicio.java +file + + + + +2022-07-28T03:45:36.435073Z +971380729517c080dd9951731e96ba1f +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1410 + +ClienteCedula.java +file + + + + +2022-07-28T03:45:36.435073Z +633fa0f733af3a46ba333aff05f77daf +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +861 + +CedulaServicioService.java +file + + + + +2022-07-28T03:45:36.436073Z +14eb6647e850dd24848869b0ae79eeba +2015-04-01T05:40:17.373598Z +3983 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +3298 + +package-info.java +file + + + + +2022-07-28T03:45:36.436073Z +6fe32348a9f69dbf4656983cf91980b5 +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +144 + +ConsultarCedulaResponse.java +file + + + + +2022-07-28T03:45:36.436073Z +b2fcd6c2f5f8f89243d52a0017a03756 +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1556 + +ConsultarCedula.java +file + + + + +2022-07-28T03:45:36.437073Z +e954368fb25b52eb29c964ace3b4ebd4 +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1377 + +ObjectFactory.java +file + + + + +2022-07-28T03:45:36.437073Z +1ead7996918567f092ef86553696ee79 +2015-01-22T10:29:29.703077Z +3787 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2605 + diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicio.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicio.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicio.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicioService.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicioService.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/CedulaServicioService.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ClienteCedula.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ClienteCedula.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ClienteCedula.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedula.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedula.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedula.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedulaResponse.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedulaResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ConsultarCedulaResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ObjectFactory.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/ObjectFactory.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/package-info.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/package-info.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/prop-base/package-info.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicio.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicio.java.svn-base new file mode 100644 index 0000000..fa834f3 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicio.java.svn-base @@ -0,0 +1,42 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; +import ec.gob.registrocivil.consultacedula.Cedula; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebService(name = "CedulaServicio", targetNamespace = "http://cedula.snap.webservices.fp.com/") +@XmlSeeAlso({ + com.fp.armas.portal.webservices.snap.cedula.ObjectFactory.class, + ec.gob.registrocivil.consultacedula.ObjectFactory.class +}) +public interface CedulaServicio { + + + /** + * + * @param cedula + * @return + * returns ec.gob.registrocivil.consultacedula.Cedula + */ + @WebMethod + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "consultarCedula", targetNamespace = "http://cedula.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.cedula.ConsultarCedula") + @ResponseWrapper(localName = "consultarCedulaResponse", targetNamespace = "http://cedula.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.cedula.ConsultarCedulaResponse") + public Cedula consultarCedula( + @WebParam(name = "cedula", targetNamespace = "") + String cedula); + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicioService.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicioService.java.svn-base new file mode 100644 index 0000000..a579040 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/CedulaServicioService.java.svn-base @@ -0,0 +1,97 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import java.net.MalformedURLException; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + +import com.fp.armas.portal.web.PortalWebResources; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "CedulaServicioService", targetNamespace = "http://cedula.snap.webservices.fp.com/", wsdlLocation = "https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl") +public class CedulaServicioService + extends Service +{ + + private final static URL CEDULASERVICIOSERVICE_WSDL_LOCATION; + private final static WebServiceException CEDULASERVICIOSERVICE_EXCEPTION; + private final static QName CEDULASERVICIOSERVICE_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL(PortalWebResources.getString("url_snap_servicio_cedula")); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + CEDULASERVICIOSERVICE_WSDL_LOCATION = url; + CEDULASERVICIOSERVICE_EXCEPTION = e; + } + + public CedulaServicioService() { + super(__getWsdlLocation(), CEDULASERVICIOSERVICE_QNAME); + } + + public CedulaServicioService(WebServiceFeature... features) { + super(__getWsdlLocation(), CEDULASERVICIOSERVICE_QNAME, features); + } + + public CedulaServicioService(URL wsdlLocation) { + super(wsdlLocation, CEDULASERVICIOSERVICE_QNAME); + } + + public CedulaServicioService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, CEDULASERVICIOSERVICE_QNAME, features); + } + + public CedulaServicioService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public CedulaServicioService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns CedulaServicio + */ + @WebEndpoint(name = "CedulaServicioPort") + public CedulaServicio getCedulaServicioPort() { + return super.getPort(new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioPort"), CedulaServicio.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns CedulaServicio + */ + @WebEndpoint(name = "CedulaServicioPort") + public CedulaServicio getCedulaServicioPort(WebServiceFeature... features) { + return super.getPort(new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioPort"), CedulaServicio.class, features); + } + + private static URL __getWsdlLocation() { + if (CEDULASERVICIOSERVICE_EXCEPTION!= null) { + throw CEDULASERVICIOSERVICE_EXCEPTION; + } + return CEDULASERVICIOSERVICE_WSDL_LOCATION; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ClienteCedula.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ClienteCedula.java.svn-base new file mode 100644 index 0000000..373a443 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ClienteCedula.java.svn-base @@ -0,0 +1,34 @@ +package com.fp.armas.portal.webservices.snap.cedula; + +import com.fp.armas.portal.util.PortalLogger; + +import ec.gob.registrocivil.consultacedula.Cedula; + +/** + * Clase que realiza consultas al WS de la SNAP del registro civil + * @author dcruz + * + */ +public class ClienteCedula implements PortalLogger{ + + /** + * Retorna los datos de la persona en base su numero de cédula + * @param cedula + * @return + */ + public static Cedula obtenerCedula(String cedula) { + Cedula cedulaResult = null; + try { + CedulaServicioService cedulaServicioService = new CedulaServicioService(); + cedulaResult = cedulaServicioService.getCedulaServicioPort().consultarCedula(cedula); + } catch (Throwable e) { + log.error(e.getMessage(), e); + } + return cedulaResult; + } + + public static void main(String[] args) { + System.out.println(obtenerCedula("1716776933")); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedula.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedula.java.svn-base new file mode 100644 index 0000000..b6e62d7 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedula.java.svn-base @@ -0,0 +1,60 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para consultarCedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarCedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarCedula", propOrder = { + "cedula" +}) +public class ConsultarCedula { + + protected String cedula; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedulaResponse.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedulaResponse.java.svn-base new file mode 100644 index 0000000..300497e --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ConsultarCedulaResponse.java.svn-base @@ -0,0 +1,63 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import ec.gob.registrocivil.consultacedula.Cedula; + + +/** + *

Clase Java para consultarCedulaResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarCedulaResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarCedulaResponse", propOrder = { + "_return" +}) +public class ConsultarCedulaResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ObjectFactory.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..401b3ae --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/ObjectFactory.java.svn-base @@ -0,0 +1,71 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the com.fp.webservices.snap.cedula package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ConsultarCedulaResponse_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "consultarCedulaResponse"); + private final static QName _ConsultarCedula_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "consultarCedula"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.fp.webservices.snap.cedula + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ConsultarCedulaResponse } + * + */ + public ConsultarCedulaResponse createConsultarCedulaResponse() { + return new ConsultarCedulaResponse(); + } + + /** + * Create an instance of {@link ConsultarCedula } + * + */ + public ConsultarCedula createConsultarCedula() { + return new ConsultarCedula(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarCedulaResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://cedula.snap.webservices.fp.com/", name = "consultarCedulaResponse") + public JAXBElement createConsultarCedulaResponse(ConsultarCedulaResponse value) { + return new JAXBElement(_ConsultarCedulaResponse_QNAME, ConsultarCedulaResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarCedula }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://cedula.snap.webservices.fp.com/", name = "consultarCedula") + public JAXBElement createConsultarCedula(ConsultarCedula value) { + return new JAXBElement(_ConsultarCedula_QNAME, ConsultarCedula.class, null, value); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/package-info.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/package-info.java.svn-base new file mode 100644 index 0000000..9cec3a9 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/.svn/text-base/package-info.java.svn-base @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://cedula.snap.webservices.fp.com/") +package com.fp.armas.portal.webservices.snap.cedula; diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.java new file mode 100644 index 0000000..fa834f3 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.java @@ -0,0 +1,42 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; +import ec.gob.registrocivil.consultacedula.Cedula; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebService(name = "CedulaServicio", targetNamespace = "http://cedula.snap.webservices.fp.com/") +@XmlSeeAlso({ + com.fp.armas.portal.webservices.snap.cedula.ObjectFactory.class, + ec.gob.registrocivil.consultacedula.ObjectFactory.class +}) +public interface CedulaServicio { + + + /** + * + * @param cedula + * @return + * returns ec.gob.registrocivil.consultacedula.Cedula + */ + @WebMethod + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "consultarCedula", targetNamespace = "http://cedula.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.cedula.ConsultarCedula") + @ResponseWrapper(localName = "consultarCedulaResponse", targetNamespace = "http://cedula.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.cedula.ConsultarCedulaResponse") + public Cedula consultarCedula( + @WebParam(name = "cedula", targetNamespace = "") + String cedula); + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.java new file mode 100644 index 0000000..a579040 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.java @@ -0,0 +1,97 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import java.net.MalformedURLException; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + +import com.fp.armas.portal.web.PortalWebResources; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "CedulaServicioService", targetNamespace = "http://cedula.snap.webservices.fp.com/", wsdlLocation = "https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl") +public class CedulaServicioService + extends Service +{ + + private final static URL CEDULASERVICIOSERVICE_WSDL_LOCATION; + private final static WebServiceException CEDULASERVICIOSERVICE_EXCEPTION; + private final static QName CEDULASERVICIOSERVICE_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL(PortalWebResources.getString("url_snap_servicio_cedula")); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + CEDULASERVICIOSERVICE_WSDL_LOCATION = url; + CEDULASERVICIOSERVICE_EXCEPTION = e; + } + + public CedulaServicioService() { + super(__getWsdlLocation(), CEDULASERVICIOSERVICE_QNAME); + } + + public CedulaServicioService(WebServiceFeature... features) { + super(__getWsdlLocation(), CEDULASERVICIOSERVICE_QNAME, features); + } + + public CedulaServicioService(URL wsdlLocation) { + super(wsdlLocation, CEDULASERVICIOSERVICE_QNAME); + } + + public CedulaServicioService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, CEDULASERVICIOSERVICE_QNAME, features); + } + + public CedulaServicioService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public CedulaServicioService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns CedulaServicio + */ + @WebEndpoint(name = "CedulaServicioPort") + public CedulaServicio getCedulaServicioPort() { + return super.getPort(new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioPort"), CedulaServicio.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns CedulaServicio + */ + @WebEndpoint(name = "CedulaServicioPort") + public CedulaServicio getCedulaServicioPort(WebServiceFeature... features) { + return super.getPort(new QName("http://cedula.snap.webservices.fp.com/", "CedulaServicioPort"), CedulaServicio.class, features); + } + + private static URL __getWsdlLocation() { + if (CEDULASERVICIOSERVICE_EXCEPTION!= null) { + throw CEDULASERVICIOSERVICE_EXCEPTION; + } + return CEDULASERVICIOSERVICE_WSDL_LOCATION; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.java new file mode 100644 index 0000000..373a443 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.java @@ -0,0 +1,34 @@ +package com.fp.armas.portal.webservices.snap.cedula; + +import com.fp.armas.portal.util.PortalLogger; + +import ec.gob.registrocivil.consultacedula.Cedula; + +/** + * Clase que realiza consultas al WS de la SNAP del registro civil + * @author dcruz + * + */ +public class ClienteCedula implements PortalLogger{ + + /** + * Retorna los datos de la persona en base su numero de cédula + * @param cedula + * @return + */ + public static Cedula obtenerCedula(String cedula) { + Cedula cedulaResult = null; + try { + CedulaServicioService cedulaServicioService = new CedulaServicioService(); + cedulaResult = cedulaServicioService.getCedulaServicioPort().consultarCedula(cedula); + } catch (Throwable e) { + log.error(e.getMessage(), e); + } + return cedulaResult; + } + + public static void main(String[] args) { + System.out.println(obtenerCedula("1716776933")); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.java new file mode 100644 index 0000000..b6e62d7 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.java @@ -0,0 +1,60 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para consultarCedula complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarCedula">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="cedula" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarCedula", propOrder = { + "cedula" +}) +public class ConsultarCedula { + + protected String cedula; + + /** + * Obtiene el valor de la propiedad cedula. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCedula() { + return cedula; + } + + /** + * Define el valor de la propiedad cedula. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCedula(String value) { + this.cedula = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.java new file mode 100644 index 0000000..300497e --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.java @@ -0,0 +1,63 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import ec.gob.registrocivil.consultacedula.Cedula; + + +/** + *

Clase Java para consultarCedulaResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarCedulaResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://www.registrocivil.gob.ec/ConsultaCedula}cedula" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarCedulaResponse", propOrder = { + "_return" +}) +public class ConsultarCedulaResponse { + + @XmlElement(name = "return") + protected Cedula _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link Cedula } + * + */ + public Cedula getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link Cedula } + * + */ + public void setReturn(Cedula value) { + this._return = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.java new file mode 100644 index 0000000..401b3ae --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.java @@ -0,0 +1,71 @@ + +package com.fp.armas.portal.webservices.snap.cedula; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the com.fp.webservices.snap.cedula package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ConsultarCedulaResponse_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "consultarCedulaResponse"); + private final static QName _ConsultarCedula_QNAME = new QName("http://cedula.snap.webservices.fp.com/", "consultarCedula"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.fp.webservices.snap.cedula + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ConsultarCedulaResponse } + * + */ + public ConsultarCedulaResponse createConsultarCedulaResponse() { + return new ConsultarCedulaResponse(); + } + + /** + * Create an instance of {@link ConsultarCedula } + * + */ + public ConsultarCedula createConsultarCedula() { + return new ConsultarCedula(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarCedulaResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://cedula.snap.webservices.fp.com/", name = "consultarCedulaResponse") + public JAXBElement createConsultarCedulaResponse(ConsultarCedulaResponse value) { + return new JAXBElement(_ConsultarCedulaResponse_QNAME, ConsultarCedulaResponse.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarCedula }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://cedula.snap.webservices.fp.com/", name = "consultarCedula") + public JAXBElement createConsultarCedula(ConsultarCedula value) { + return new JAXBElement(_ConsultarCedula_QNAME, ConsultarCedula.class, null, value); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/package-info.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/package-info.java new file mode 100644 index 0000000..9cec3a9 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/cedula/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://cedula.snap.webservices.fp.com/") +package com.fp.armas.portal.webservices.snap.cedula; diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/entries b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/entries new file mode 100644 index 0000000..9ad7e0f --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/entries @@ -0,0 +1,266 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc +svn://172.17.26.185/COMACO + + + +2015-04-01T05:40:17.373598Z +3983 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ConsultarRucResponse.java +file + + + + +2022-07-28T03:45:36.357073Z +b3986e9818fb50a713bba5ac7c4c67d8 +2015-01-23T13:49:37.165286Z +3808 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1690 + +ConsultarRuc.java +file + + + + +2022-07-28T03:45:36.357073Z +3ae72cca99c5fdff3b55268e3be3b2c5 +2015-01-22T10:29:39.224526Z +3788 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1335 + +package-info.java +file + + + + +2022-07-28T03:45:36.358073Z +1d94b3aad2f5e6b45aa056c3b49780c4 +2015-01-22T10:29:39.224526Z +3788 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +138 + +ClienteRUC.java +file + + + + +2022-07-28T03:45:36.358073Z +db372fe6950c4813caddd8a211267e2b +2015-01-23T13:49:12.450624Z +3807 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +773 + +RucServicio.java +file + + + + +2022-07-28T03:45:36.359073Z +809464a7ffcb123eeb379bc003f3d1a9 +2015-01-23T13:50:25.577942Z +3809 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1394 + +ObjectFactory.java +file + + + + +2022-07-28T03:45:36.359073Z +5d4e6c12acf6519f700e13f36d231fee +2015-01-22T10:29:39.224526Z +3788 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2500 + +RucServicioService.java +file + + + + +2022-07-28T03:45:36.359073Z +c287daeba967892c8fbcb637cd1b7389 +2015-04-01T05:40:17.373598Z +3983 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +3178 + diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ClienteRUC.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ClienteRUC.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ClienteRUC.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRuc.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRuc.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRuc.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRucResponse.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRucResponse.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ConsultarRucResponse.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ObjectFactory.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/ObjectFactory.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicio.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicio.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicio.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicioService.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicioService.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/RucServicioService.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/package-info.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/package-info.java.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/prop-base/package-info.java.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ClienteRUC.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ClienteRUC.java.svn-base new file mode 100644 index 0000000..1f1e2a0 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ClienteRUC.java.svn-base @@ -0,0 +1,30 @@ +package com.fp.armas.portal.webservices.snap.ruc; + +import com.fp.armas.portal.util.PortalLogger; + +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Clase que maneja el servicio del SRI en la SNAP + * @author dcruz + * + */ +public class ClienteRUC implements PortalLogger{ + + /** + * Obtiene los datos del contribuyente según el RUC enviado + * @param ruc + * @return + */ + public static ContribuyenteCompleto obtenerRUC(String ruc) { + ContribuyenteCompleto contribuyenteResult = null; + try { + RucServicioService rucServicioService = new RucServicioService(); + contribuyenteResult = rucServicioService.getRucServicioPort().consultarRuc(ruc); + } catch (Throwable e) { + log.error(e.getMessage(), e); + } + return contribuyenteResult; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRuc.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRuc.java.svn-base new file mode 100644 index 0000000..9fc2f4e --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRuc.java.svn-base @@ -0,0 +1,60 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para consultarRuc complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarRuc">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="ruc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarRuc", propOrder = { + "ruc" +}) +public class ConsultarRuc { + + protected String ruc; + + /** + * Obtiene el valor de la propiedad ruc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRuc() { + return ruc; + } + + /** + * Define el valor de la propiedad ruc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRuc(String value) { + this.ruc = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRucResponse.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRucResponse.java.svn-base new file mode 100644 index 0000000..27c516a --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ConsultarRucResponse.java.svn-base @@ -0,0 +1,65 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + +import ec.gov.sri.wsconsultacontribuyente.Contribuyente; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + + +/** + *

Clase Java para consultarRucResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarRucResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarRucResponse", propOrder = { + "_return" +}) +public class ConsultarRucResponse { + + @XmlElement(name = "return") + protected ContribuyenteCompleto _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteCompleto } + * + */ + public void setReturn(ContribuyenteCompleto value) { + this._return = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ObjectFactory.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ObjectFactory.java.svn-base new file mode 100644 index 0000000..35333ff --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/ObjectFactory.java.svn-base @@ -0,0 +1,71 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the com.fp.webservices.snap.ruc package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ConsultarRuc_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "consultarRuc"); + private final static QName _ConsultarRucResponse_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "consultarRucResponse"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.fp.webservices.snap.ruc + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ConsultarRucResponse } + * + */ + public ConsultarRucResponse createConsultarRucResponse() { + return new ConsultarRucResponse(); + } + + /** + * Create an instance of {@link ConsultarRuc } + * + */ + public ConsultarRuc createConsultarRuc() { + return new ConsultarRuc(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarRuc }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ruc.snap.webservices.fp.com/", name = "consultarRuc") + public JAXBElement createConsultarRuc(ConsultarRuc value) { + return new JAXBElement(_ConsultarRuc_QNAME, ConsultarRuc.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarRucResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ruc.snap.webservices.fp.com/", name = "consultarRucResponse") + public JAXBElement createConsultarRucResponse(ConsultarRucResponse value) { + return new JAXBElement(_ConsultarRucResponse_QNAME, ConsultarRucResponse.class, null, value); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicio.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicio.java.svn-base new file mode 100644 index 0000000..8cb439d --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicio.java.svn-base @@ -0,0 +1,43 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebService(name = "RucServicio", targetNamespace = "http://ruc.snap.webservices.fp.com/") +@XmlSeeAlso({ + com.fp.armas.portal.webservices.snap.ruc.ObjectFactory.class, + ec.gov.sri.wsconsultacontribuyente.ObjectFactory.class +}) +public interface RucServicio { + + + /** + * + * @param ruc + * @return + * returns ec.gov.sri.wsconsultacontribuyente.Contribuyente + */ + @WebMethod + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "consultarRuc", targetNamespace = "http://ruc.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.ruc.ConsultarRuc") + @ResponseWrapper(localName = "consultarRucResponse", targetNamespace = "http://ruc.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.ruc.ConsultarRucResponse") + public ContribuyenteCompleto consultarRuc( + @WebParam(name = "ruc", targetNamespace = "") + String ruc); + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicioService.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicioService.java.svn-base new file mode 100644 index 0000000..d16d792 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/RucServicioService.java.svn-base @@ -0,0 +1,97 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import java.net.MalformedURLException; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + +import com.fp.armas.portal.web.PortalWebResources; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "RucServicioService", targetNamespace = "http://ruc.snap.webservices.fp.com/", wsdlLocation = "https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl") +public class RucServicioService + extends Service +{ + + private final static URL RUCSERVICIOSERVICE_WSDL_LOCATION; + private final static WebServiceException RUCSERVICIOSERVICE_EXCEPTION; + private final static QName RUCSERVICIOSERVICE_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "RucServicioService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL(PortalWebResources.getString("url_snap_servicio_ruc")); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + RUCSERVICIOSERVICE_WSDL_LOCATION = url; + RUCSERVICIOSERVICE_EXCEPTION = e; + } + + public RucServicioService() { + super(__getWsdlLocation(), RUCSERVICIOSERVICE_QNAME); + } + + public RucServicioService(WebServiceFeature... features) { + super(__getWsdlLocation(), RUCSERVICIOSERVICE_QNAME, features); + } + + public RucServicioService(URL wsdlLocation) { + super(wsdlLocation, RUCSERVICIOSERVICE_QNAME); + } + + public RucServicioService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, RUCSERVICIOSERVICE_QNAME, features); + } + + public RucServicioService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public RucServicioService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns RucServicio + */ + @WebEndpoint(name = "RucServicioPort") + public RucServicio getRucServicioPort() { + return super.getPort(new QName("http://ruc.snap.webservices.fp.com/", "RucServicioPort"), RucServicio.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns RucServicio + */ + @WebEndpoint(name = "RucServicioPort") + public RucServicio getRucServicioPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ruc.snap.webservices.fp.com/", "RucServicioPort"), RucServicio.class, features); + } + + private static URL __getWsdlLocation() { + if (RUCSERVICIOSERVICE_EXCEPTION!= null) { + throw RUCSERVICIOSERVICE_EXCEPTION; + } + return RUCSERVICIOSERVICE_WSDL_LOCATION; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/package-info.java.svn-base b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/package-info.java.svn-base new file mode 100644 index 0000000..cd2b949 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/.svn/text-base/package-info.java.svn-base @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ruc.snap.webservices.fp.com/") +package com.fp.armas.portal.webservices.snap.ruc; diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.java new file mode 100644 index 0000000..1f1e2a0 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.java @@ -0,0 +1,30 @@ +package com.fp.armas.portal.webservices.snap.ruc; + +import com.fp.armas.portal.util.PortalLogger; + +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + +/** + * Clase que maneja el servicio del SRI en la SNAP + * @author dcruz + * + */ +public class ClienteRUC implements PortalLogger{ + + /** + * Obtiene los datos del contribuyente según el RUC enviado + * @param ruc + * @return + */ + public static ContribuyenteCompleto obtenerRUC(String ruc) { + ContribuyenteCompleto contribuyenteResult = null; + try { + RucServicioService rucServicioService = new RucServicioService(); + contribuyenteResult = rucServicioService.getRucServicioPort().consultarRuc(ruc); + } catch (Throwable e) { + log.error(e.getMessage(), e); + } + return contribuyenteResult; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.java new file mode 100644 index 0000000..9fc2f4e --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.java @@ -0,0 +1,60 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Clase Java para consultarRuc complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarRuc">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="ruc" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarRuc", propOrder = { + "ruc" +}) +public class ConsultarRuc { + + protected String ruc; + + /** + * Obtiene el valor de la propiedad ruc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getRuc() { + return ruc; + } + + /** + * Define el valor de la propiedad ruc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setRuc(String value) { + this.ruc = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.java new file mode 100644 index 0000000..27c516a --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.java @@ -0,0 +1,65 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + +import ec.gov.sri.wsconsultacontribuyente.Contribuyente; +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + + +/** + *

Clase Java para consultarRucResponse complex type. + * + *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. + * + *

+ * <complexType name="consultarRucResponse">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="return" type="{http://sri.gov.ec/wsConsultaContribuyente}contribuyente" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "consultarRucResponse", propOrder = { + "_return" +}) +public class ConsultarRucResponse { + + @XmlElement(name = "return") + protected ContribuyenteCompleto _return; + + /** + * Obtiene el valor de la propiedad return. + * + * @return + * possible object is + * {@link ContribuyenteCompleto } + * + */ + public ContribuyenteCompleto getReturn() { + return _return; + } + + /** + * Define el valor de la propiedad return. + * + * @param value + * allowed object is + * {@link ContribuyenteCompleto } + * + */ + public void setReturn(ContribuyenteCompleto value) { + this._return = value; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.java new file mode 100644 index 0000000..35333ff --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.java @@ -0,0 +1,71 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the com.fp.webservices.snap.ruc package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _ConsultarRuc_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "consultarRuc"); + private final static QName _ConsultarRucResponse_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "consultarRucResponse"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.fp.webservices.snap.ruc + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ConsultarRucResponse } + * + */ + public ConsultarRucResponse createConsultarRucResponse() { + return new ConsultarRucResponse(); + } + + /** + * Create an instance of {@link ConsultarRuc } + * + */ + public ConsultarRuc createConsultarRuc() { + return new ConsultarRuc(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarRuc }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ruc.snap.webservices.fp.com/", name = "consultarRuc") + public JAXBElement createConsultarRuc(ConsultarRuc value) { + return new JAXBElement(_ConsultarRuc_QNAME, ConsultarRuc.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link ConsultarRucResponse }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://ruc.snap.webservices.fp.com/", name = "consultarRucResponse") + public JAXBElement createConsultarRucResponse(ConsultarRucResponse value) { + return new JAXBElement(_ConsultarRucResponse_QNAME, ConsultarRucResponse.class, null, value); + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicio.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicio.java new file mode 100644 index 0000000..8cb439d --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicio.java @@ -0,0 +1,43 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + +import ec.gov.sri.wsconsultacontribuyente.ContribuyenteCompleto; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebService(name = "RucServicio", targetNamespace = "http://ruc.snap.webservices.fp.com/") +@XmlSeeAlso({ + com.fp.armas.portal.webservices.snap.ruc.ObjectFactory.class, + ec.gov.sri.wsconsultacontribuyente.ObjectFactory.class +}) +public interface RucServicio { + + + /** + * + * @param ruc + * @return + * returns ec.gov.sri.wsconsultacontribuyente.Contribuyente + */ + @WebMethod + @WebResult(targetNamespace = "") + @RequestWrapper(localName = "consultarRuc", targetNamespace = "http://ruc.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.ruc.ConsultarRuc") + @ResponseWrapper(localName = "consultarRucResponse", targetNamespace = "http://ruc.snap.webservices.fp.com/", className = "com.fp.armas.portal.webservices.snap.ruc.ConsultarRucResponse") + public ContribuyenteCompleto consultarRuc( + @WebParam(name = "ruc", targetNamespace = "") + String ruc); + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.java new file mode 100644 index 0000000..d16d792 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.java @@ -0,0 +1,97 @@ + +package com.fp.armas.portal.webservices.snap.ruc; + +import java.net.MalformedURLException; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import javax.xml.ws.WebEndpoint; +import javax.xml.ws.WebServiceClient; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.WebServiceFeature; + +import com.fp.armas.portal.web.PortalWebResources; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.2.6b21 + * Generated source version: 2.2 + * + */ +@WebServiceClient(name = "RucServicioService", targetNamespace = "http://ruc.snap.webservices.fp.com/", wsdlLocation = "https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl") +public class RucServicioService + extends Service +{ + + private final static URL RUCSERVICIOSERVICE_WSDL_LOCATION; + private final static WebServiceException RUCSERVICIOSERVICE_EXCEPTION; + private final static QName RUCSERVICIOSERVICE_QNAME = new QName("http://ruc.snap.webservices.fp.com/", "RucServicioService"); + + static { + URL url = null; + WebServiceException e = null; + try { + url = new URL(PortalWebResources.getString("url_snap_servicio_ruc")); + } catch (MalformedURLException ex) { + e = new WebServiceException(ex); + } + RUCSERVICIOSERVICE_WSDL_LOCATION = url; + RUCSERVICIOSERVICE_EXCEPTION = e; + } + + public RucServicioService() { + super(__getWsdlLocation(), RUCSERVICIOSERVICE_QNAME); + } + + public RucServicioService(WebServiceFeature... features) { + super(__getWsdlLocation(), RUCSERVICIOSERVICE_QNAME, features); + } + + public RucServicioService(URL wsdlLocation) { + super(wsdlLocation, RUCSERVICIOSERVICE_QNAME); + } + + public RucServicioService(URL wsdlLocation, WebServiceFeature... features) { + super(wsdlLocation, RUCSERVICIOSERVICE_QNAME, features); + } + + public RucServicioService(URL wsdlLocation, QName serviceName) { + super(wsdlLocation, serviceName); + } + + public RucServicioService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) { + super(wsdlLocation, serviceName, features); + } + + /** + * + * @return + * returns RucServicio + */ + @WebEndpoint(name = "RucServicioPort") + public RucServicio getRucServicioPort() { + return super.getPort(new QName("http://ruc.snap.webservices.fp.com/", "RucServicioPort"), RucServicio.class); + } + + /** + * + * @param features + * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the features parameter will have their default values. + * @return + * returns RucServicio + */ + @WebEndpoint(name = "RucServicioPort") + public RucServicio getRucServicioPort(WebServiceFeature... features) { + return super.getPort(new QName("http://ruc.snap.webservices.fp.com/", "RucServicioPort"), RucServicio.class, features); + } + + private static URL __getWsdlLocation() { + if (RUCSERVICIOSERVICE_EXCEPTION!= null) { + throw RUCSERVICIOSERVICE_EXCEPTION; + } + return RUCSERVICIOSERVICE_WSDL_LOCATION; + } + +} diff --git a/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/package-info.java b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/package-info.java new file mode 100644 index 0000000..cd2b949 --- /dev/null +++ b/web/src/main/java/com/fp/armas/portal/webservices/snap/ruc/package-info.java @@ -0,0 +1,2 @@ +@javax.xml.bind.annotation.XmlSchema(namespace = "http://ruc.snap.webservices.fp.com/") +package com.fp.armas.portal.webservices.snap.ruc; diff --git a/web/src/main/java/com/fp/portal/.svn/entries b/web/src/main/java/com/fp/portal/.svn/entries new file mode 100644 index 0000000..601d46d --- /dev/null +++ b/web/src/main/java/com/fp/portal/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/java/com/fp/portal +svn://172.17.26.185/COMACO + + + +2014-08-24T18:41:28.385000Z +302 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + diff --git a/web/src/main/resources/.svn/entries b/web/src/main/resources/.svn/entries new file mode 100644 index 0000000..ad59f7a --- /dev/null +++ b/web/src/main/resources/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/resources +svn://172.17.26.185/COMACO + + + +2015-04-11T04:38:23.562947Z +4027 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +com +dir + diff --git a/web/src/main/resources/com/.svn/entries b/web/src/main/resources/com/.svn/entries new file mode 100644 index 0000000..c95e3c5 --- /dev/null +++ b/web/src/main/resources/com/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/resources/com +svn://172.17.26.185/COMACO + + + +2015-04-11T04:38:23.562947Z +4027 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +fp +dir + diff --git a/web/src/main/resources/com/fp/.svn/entries b/web/src/main/resources/com/fp/.svn/entries new file mode 100644 index 0000000..75da4b1 --- /dev/null +++ b/web/src/main/resources/com/fp/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/resources/com/fp +svn://172.17.26.185/COMACO + + + +2015-04-11T04:38:23.562947Z +4027 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +armas +dir + diff --git a/web/src/main/resources/com/fp/armas/.svn/entries b/web/src/main/resources/com/fp/armas/.svn/entries new file mode 100644 index 0000000..076c551 --- /dev/null +++ b/web/src/main/resources/com/fp/armas/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/resources/com/fp/armas +svn://172.17.26.185/COMACO + + + +2015-04-11T04:38:23.562947Z +4027 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +portal +dir + diff --git a/web/src/main/resources/com/fp/armas/portal/.svn/entries b/web/src/main/resources/com/fp/armas/portal/.svn/entries new file mode 100644 index 0000000..b2706c5 --- /dev/null +++ b/web/src/main/resources/com/fp/armas/portal/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/resources/com/fp/armas/portal +svn://172.17.26.185/COMACO + + + +2015-04-11T04:38:23.562947Z +4027 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +web_portal.properties +file + + + + +2022-07-28T03:45:36.984076Z +bfa223594c95745674964b739b405ed7 +2015-04-11T04:38:23.562947Z +4027 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +6994 + diff --git a/web/src/main/resources/com/fp/armas/portal/.svn/prop-base/web_portal.properties.svn-base b/web/src/main/resources/com/fp/armas/portal/.svn/prop-base/web_portal.properties.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/resources/com/fp/armas/portal/.svn/prop-base/web_portal.properties.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/resources/com/fp/armas/portal/.svn/text-base/web_portal.properties.svn-base b/web/src/main/resources/com/fp/armas/portal/.svn/text-base/web_portal.properties.svn-base new file mode 100644 index 0000000..778efee --- /dev/null +++ b/web/src/main/resources/com/fp/armas/portal/.svn/text-base/web_portal.properties.svn-base @@ -0,0 +1,119 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +##MENSAJES GENERALES +lbl_requeridos=Los campos marcados con (*) son obligatorios +##------------------------------------ +lbl_cargando=Cargando + +lbl_registro_usuario=Registro de Usuario +lbl_tipo_documento=Tipo Documento +lbl_numero_documento=N\u00FAmero Documento +lbl_datos_generales=Datos Generales +lbl_nombre_razon=Nombre/Raz\u00F3n Social +lbl_nombres=Nombres +lbl_nombre_completo=Nombre Completo +lbl_apellido_paterno=Apellido Paterno +lbl_apellido_materno=Apellido Materno +lbl_actividad_economica=Actividad Econ\u00F3mica +lbl_representate_legal=Representante Legal +lbl_cedula_representante=C\u00E9dula Representante Legal +lbl_pais_origen=Pa\u00EDs Origen +lbl_provincia=Provincia +lbl_canton=Cant\u00F3n +lbl_ciudad=Ciudad +lbl_parroquia=Parroquia +lbl_direccion=Direcci\u00F3n +lbl_telf_convencional=Tel\u00E9fono Convencional +lbl_telf_celular=Celular +lbl_estado_civil=Estado Civil +lbl_genero=G\u00E9nero +lbl_estatura=Estatura +lbl_profesion=Profesi\u00F3n +lbl_email=Correo Electr\u00F3nico +lbl_aceptar=Aceptar +lbl_masculino=Masculino +lbl_femenino=Femenino +lbl_cancelar=Cancelar +lbl_logo=Cargar Logotipo de la Empresa + +lbl_vista_expirada=Debido a la inactividad en el portal y por su seguridad, hemos redirigido la petici\u00F3n a otra p\u00E1gina, si desea regresar al registro de usuarios puede hacerlo desde +lbl_aqui=aqu\u00ED + +##MENSAJES DE ERRORES## +error.msg.persona.registrada=La persona ya est\u00E1 registrada, ingrese con su usuario y password +error.msg.cedula=El campo ingresado no es una C\u00E9dula v\u00E1lida +error.msg.ruc=El campo ingresado no es un RUC v\u00E1lido +error.campo.vacio=El campo es obligatorio +error.mail.incorrecto=El campo no es un mail v\u00E1lido +error.celular.incorrecto=El n\u00FAmero celular debe empezar con '09' +error_captcha=Captcha requerido +error_valor_captcha=Ingrese los valores correctos del captcha + +##MENSAJES NOTIFICACION + +mensaje.informativo.correo.enviado=Correo enviado +url.servidor.maia=https://tramitesarmas.ccffaa.mil.ec/frontend +url.servidor.registro=https://tramitesarmas.ccffaa.mil.ec/portal-web + +#URL DE LOS SERVICIOS MANEJADOS DESDE LA SNAP +url_snap_servicio_cedula=https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl +url_snap_servicio_ruc=https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl + +#Validaciones JSF +javax.faces.component.UIInput.REQUIRED=Valor obligatorio. +javax.faces.component.UIInput.REQUIRED_detail=Valor obligatorio. + +javax.faces.converter.BigDecimalConverter.DECIMAL=''{0}'' Debe ser un número decimal. +javax.faces.converter.BigDecimalConverter.DECIMAL_detail= El campo solo acepta n\u00FAmeros decimales. Ejemplo\: {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=''{0}'' Entero de uno o mu00e1s d\u00EDgitos. +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=''{0}'' Entero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.BooleanConverter.BOOLEAN=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.BooleanConverter.BOOLEAN_detail=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.ByteConverter.BYTE=''{0}'' Debe se un n\u00FAmero entre 0 y 255. +javax.faces.converter.ByteConverter.BYTE_detail=''{0}'' Debe ser un n\u00FAmero entre 0 y 255. +javax.faces.converter.CharacterConverter.CHARACTER=''{0}'' Debe ser un car\u00E1cter v\u00E1lido. +javax.faces.converter.CharacterConverter.CHARACTER_detail=''{0}'' Debe ser un car\u00E1cter ASCII v\u00E1lido. +javax.faces.converter.DateTimeConverter.DATE=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATE_detail=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.TIME=''{0}'' Formato de hora incorrecto. +javax.faces.converter.DateTimeConverter.TIME_detail=''{0}'' Formato de hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATETIME=''{0}'' Formato de fecha u hora incorrecto. +javax.faces.converter.DateTimeConverter.DATETIME_detail=''{0}'' Formato de fecha u hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=Un 'modelo' o 'tipo' de atributo debe ser especificado para convertir el valor ''{0}''. +javax.faces.converter.DoubleConverter.DOUBLE=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.DoubleConverter.DOUBLE_detail=''{0}'' Debe ser un n\u00FAmero entre 4.9E-324 and 1.7976931348623157E308 Ejemplo\: {1} +javax.faces.converter.EnumConverter.ENUM=''{0}'' Debe ser convertible a una enumeración. +javax.faces.converter.EnumConverter.ENUM_detail=''{0}'' Convertible a una enumeración de la enumeración que contiene la constante ''{1}''. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.FloatConverter.FLOAT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.FloatConverter.FLOAT_detail=''{0}'' Debe ser un n\u00FAmero entre 1.4E-45 y 3.4028235E38 Ejemplo\: {1} +javax.faces.converter.IntegerConverter.INTEGER=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.IntegerConverter.INTEGER_detail=''{0}'' Debe ser un n\u00FAmero entre -2147483648 y 2147483647 Ejemplo\: {1} +javax.faces.converter.LongConverter.LONG=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.LongConverter.LONG_detail=''{0}'' Debe ser un n\u00FAmero entre -9223372036854775808 y 9223372036854775807 Ejemplo\: {1} +javax.faces.converter.NumberConverter.CURRENCY=''{0}'' Formato de moneda incorrecto. +javax.faces.converter.NumberConverter.CURRENCY_detail=''{0}'' Formato de moneda incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.PERCENT=''{0}'' Formato de porcentaje incorrecto. +javax.faces.converter.NumberConverter.PERCENT_detail=''{0}'' Formato de porcentaje incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.NUMBER=''{0}'' No es un n\u00FAmero. +javax.faces.converter.NumberConverter.NUMBER_detail=''{0}'' No es un n\u00FAmero. Ejemplo\: {1} +javax.faces.converter.NumberConverter.PATTERN=''{0}'' No es un n\u00FAmero modelo. +javax.faces.converter.NumberConverter.PATTERN_detail=''{0}'' No es un n\u00FAmero modelo. Ejemplo\: {1} +javax.faces.converter.ShortConverter.SHORT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.ShortConverter.SHORT_detail=''{0}'' Debe ser un n\u00FAmero entre -32768 y 32767. Ejemplo\: {1} +javax.faces.converter.STRING=No se puede convertir ''{0}'' a un string. \ No newline at end of file diff --git a/web/src/main/resources/com/fp/armas/portal/web_portal.properties b/web/src/main/resources/com/fp/armas/portal/web_portal.properties new file mode 100644 index 0000000..778efee --- /dev/null +++ b/web/src/main/resources/com/fp/armas/portal/web_portal.properties @@ -0,0 +1,119 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +##MENSAJES GENERALES +lbl_requeridos=Los campos marcados con (*) son obligatorios +##------------------------------------ +lbl_cargando=Cargando + +lbl_registro_usuario=Registro de Usuario +lbl_tipo_documento=Tipo Documento +lbl_numero_documento=N\u00FAmero Documento +lbl_datos_generales=Datos Generales +lbl_nombre_razon=Nombre/Raz\u00F3n Social +lbl_nombres=Nombres +lbl_nombre_completo=Nombre Completo +lbl_apellido_paterno=Apellido Paterno +lbl_apellido_materno=Apellido Materno +lbl_actividad_economica=Actividad Econ\u00F3mica +lbl_representate_legal=Representante Legal +lbl_cedula_representante=C\u00E9dula Representante Legal +lbl_pais_origen=Pa\u00EDs Origen +lbl_provincia=Provincia +lbl_canton=Cant\u00F3n +lbl_ciudad=Ciudad +lbl_parroquia=Parroquia +lbl_direccion=Direcci\u00F3n +lbl_telf_convencional=Tel\u00E9fono Convencional +lbl_telf_celular=Celular +lbl_estado_civil=Estado Civil +lbl_genero=G\u00E9nero +lbl_estatura=Estatura +lbl_profesion=Profesi\u00F3n +lbl_email=Correo Electr\u00F3nico +lbl_aceptar=Aceptar +lbl_masculino=Masculino +lbl_femenino=Femenino +lbl_cancelar=Cancelar +lbl_logo=Cargar Logotipo de la Empresa + +lbl_vista_expirada=Debido a la inactividad en el portal y por su seguridad, hemos redirigido la petici\u00F3n a otra p\u00E1gina, si desea regresar al registro de usuarios puede hacerlo desde +lbl_aqui=aqu\u00ED + +##MENSAJES DE ERRORES## +error.msg.persona.registrada=La persona ya est\u00E1 registrada, ingrese con su usuario y password +error.msg.cedula=El campo ingresado no es una C\u00E9dula v\u00E1lida +error.msg.ruc=El campo ingresado no es un RUC v\u00E1lido +error.campo.vacio=El campo es obligatorio +error.mail.incorrecto=El campo no es un mail v\u00E1lido +error.celular.incorrecto=El n\u00FAmero celular debe empezar con '09' +error_captcha=Captcha requerido +error_valor_captcha=Ingrese los valores correctos del captcha + +##MENSAJES NOTIFICACION + +mensaje.informativo.correo.enviado=Correo enviado +url.servidor.maia=https://tramitesarmas.ccffaa.mil.ec/frontend +url.servidor.registro=https://tramitesarmas.ccffaa.mil.ec/portal-web + +#URL DE LOS SERVICIOS MANEJADOS DESDE LA SNAP +url_snap_servicio_cedula=https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl +url_snap_servicio_ruc=https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl + +#Validaciones JSF +javax.faces.component.UIInput.REQUIRED=Valor obligatorio. +javax.faces.component.UIInput.REQUIRED_detail=Valor obligatorio. + +javax.faces.converter.BigDecimalConverter.DECIMAL=''{0}'' Debe ser un número decimal. +javax.faces.converter.BigDecimalConverter.DECIMAL_detail= El campo solo acepta n\u00FAmeros decimales. Ejemplo\: {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=''{0}'' Entero de uno o mu00e1s d\u00EDgitos. +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=''{0}'' Entero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.BooleanConverter.BOOLEAN=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.BooleanConverter.BOOLEAN_detail=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.ByteConverter.BYTE=''{0}'' Debe se un n\u00FAmero entre 0 y 255. +javax.faces.converter.ByteConverter.BYTE_detail=''{0}'' Debe ser un n\u00FAmero entre 0 y 255. +javax.faces.converter.CharacterConverter.CHARACTER=''{0}'' Debe ser un car\u00E1cter v\u00E1lido. +javax.faces.converter.CharacterConverter.CHARACTER_detail=''{0}'' Debe ser un car\u00E1cter ASCII v\u00E1lido. +javax.faces.converter.DateTimeConverter.DATE=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATE_detail=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.TIME=''{0}'' Formato de hora incorrecto. +javax.faces.converter.DateTimeConverter.TIME_detail=''{0}'' Formato de hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATETIME=''{0}'' Formato de fecha u hora incorrecto. +javax.faces.converter.DateTimeConverter.DATETIME_detail=''{0}'' Formato de fecha u hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=Un 'modelo' o 'tipo' de atributo debe ser especificado para convertir el valor ''{0}''. +javax.faces.converter.DoubleConverter.DOUBLE=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.DoubleConverter.DOUBLE_detail=''{0}'' Debe ser un n\u00FAmero entre 4.9E-324 and 1.7976931348623157E308 Ejemplo\: {1} +javax.faces.converter.EnumConverter.ENUM=''{0}'' Debe ser convertible a una enumeración. +javax.faces.converter.EnumConverter.ENUM_detail=''{0}'' Convertible a una enumeración de la enumeración que contiene la constante ''{1}''. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.FloatConverter.FLOAT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.FloatConverter.FLOAT_detail=''{0}'' Debe ser un n\u00FAmero entre 1.4E-45 y 3.4028235E38 Ejemplo\: {1} +javax.faces.converter.IntegerConverter.INTEGER=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.IntegerConverter.INTEGER_detail=''{0}'' Debe ser un n\u00FAmero entre -2147483648 y 2147483647 Ejemplo\: {1} +javax.faces.converter.LongConverter.LONG=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.LongConverter.LONG_detail=''{0}'' Debe ser un n\u00FAmero entre -9223372036854775808 y 9223372036854775807 Ejemplo\: {1} +javax.faces.converter.NumberConverter.CURRENCY=''{0}'' Formato de moneda incorrecto. +javax.faces.converter.NumberConverter.CURRENCY_detail=''{0}'' Formato de moneda incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.PERCENT=''{0}'' Formato de porcentaje incorrecto. +javax.faces.converter.NumberConverter.PERCENT_detail=''{0}'' Formato de porcentaje incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.NUMBER=''{0}'' No es un n\u00FAmero. +javax.faces.converter.NumberConverter.NUMBER_detail=''{0}'' No es un n\u00FAmero. Ejemplo\: {1} +javax.faces.converter.NumberConverter.PATTERN=''{0}'' No es un n\u00FAmero modelo. +javax.faces.converter.NumberConverter.PATTERN_detail=''{0}'' No es un n\u00FAmero modelo. Ejemplo\: {1} +javax.faces.converter.ShortConverter.SHORT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.ShortConverter.SHORT_detail=''{0}'' Debe ser un n\u00FAmero entre -32768 y 32767. Ejemplo\: {1} +javax.faces.converter.STRING=No se puede convertir ''{0}'' a un string. \ No newline at end of file diff --git a/web/src/main/webapp/.svn/entries b/web/src/main/webapp/.svn/entries new file mode 100644 index 0000000..9f46266 --- /dev/null +++ b/web/src/main/webapp/.svn/entries @@ -0,0 +1,71 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +pages +dir + +index.jsp +file + + + + +2022-07-28T03:45:37.618078Z +e3610fd1048b60217d42e0eabee99248 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +47 + +WEB-INF +dir + +resources +dir + diff --git a/web/src/main/webapp/.svn/prop-base/index.jsp.svn-base b/web/src/main/webapp/.svn/prop-base/index.jsp.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/.svn/prop-base/index.jsp.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/.svn/text-base/index.jsp.svn-base b/web/src/main/webapp/.svn/text-base/index.jsp.svn-base new file mode 100644 index 0000000..37ed513 --- /dev/null +++ b/web/src/main/webapp/.svn/text-base/index.jsp.svn-base @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia b/web/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,2 @@ + + diff --git a/web/src/main/webapp/WEB-INF/.svn/entries b/web/src/main/webapp/WEB-INF/.svn/entries new file mode 100644 index 0000000..45e2c84 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/entries @@ -0,0 +1,170 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/WEB-INF +svn://172.17.26.185/COMACO + + + +2015-01-23T11:17:58.235309Z +3800 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +.faces-config.xml.jsfdia +file + + + + +2022-07-28T03:45:37.391077Z +23d9b5bba0623f391e23bcd66df40025 +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + + + + + + + + +76 + +faces-config.xml +file + + + + +2022-07-28T03:45:37.392077Z +b7938ad74edfb3dd24a0937bf3659073 +2014-08-28T17:15:33.029077Z +406 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1715 + +lib +dir + +beans.xml +file + + + + +2022-07-28T03:45:37.392077Z +e7345fd9e9c0192ad0d050db1d3e28d4 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +1246 + +web.xml +file + + + + +2022-07-28T03:45:37.392077Z +7df1d256572178a4dc5ddf4c03dad796 +2015-01-23T11:17:58.235309Z +3800 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2085 + +templates +dir + diff --git a/web/src/main/webapp/WEB-INF/.svn/prop-base/beans.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/prop-base/beans.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/prop-base/beans.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/WEB-INF/.svn/prop-base/faces-config.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/prop-base/faces-config.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/prop-base/faces-config.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/WEB-INF/.svn/prop-base/web.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/prop-base/web.xml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/prop-base/web.xml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/WEB-INF/.svn/text-base/.faces-config.xml.jsfdia.svn-base b/web/src/main/webapp/WEB-INF/.svn/text-base/.faces-config.xml.jsfdia.svn-base new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/text-base/.faces-config.xml.jsfdia.svn-base @@ -0,0 +1,2 @@ + + diff --git a/web/src/main/webapp/WEB-INF/.svn/text-base/beans.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/text-base/beans.xml.svn-base new file mode 100644 index 0000000..e7488ad --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/text-base/beans.xml.svn-base @@ -0,0 +1,25 @@ + + + + + + diff --git a/web/src/main/webapp/WEB-INF/.svn/text-base/faces-config.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/text-base/faces-config.xml.svn-base new file mode 100644 index 0000000..9654471 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/text-base/faces-config.xml.svn-base @@ -0,0 +1,39 @@ + + + + + + + + + + + com.fp.armas.portal.web_portal + msg_portal + + com.fp.armas.portal.web_portal + + + com.fp.armas.portal.faces.listener.PortalListener + + diff --git a/web/src/main/webapp/WEB-INF/.svn/text-base/web.xml.svn-base b/web/src/main/webapp/WEB-INF/.svn/text-base/web.xml.svn-base new file mode 100644 index 0000000..cf5bdfc --- /dev/null +++ b/web/src/main/webapp/WEB-INF/.svn/text-base/web.xml.svn-base @@ -0,0 +1,60 @@ + + + Portal + portal-web + + + javax.faces.PROJECT_STAGE + Production + + + primefaces.THEME + comaco-theme + + + primefaces.PRIVATE_CAPTCHA_KEY + 6Lf-swATAAAAAOdJNdvFDEzQGRZBwGnZ_5q7qdI_ + + + primefaces.PUBLIC_CAPTCHA_KEY + 6Lf-swATAAAAAMT7_E5dQkjk8dmdblQVp4bBxUnW + + + javax.faces.FACELETS_SKIP_COMMENTS + true + + + + PrimeFaces FileUpload Filter + org.primefaces.webapp.filter.FileUploadFilter + + + PrimeFaces FileUpload Filter + Faces Servlet + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + Faces Servlet + *.faces + + + index.jsp + + + 500 + /pages/error/500.xhtml + + + 30 + + diff --git a/web/src/main/webapp/WEB-INF/beans.xml b/web/src/main/webapp/WEB-INF/beans.xml new file mode 100644 index 0000000..e7488ad --- /dev/null +++ b/web/src/main/webapp/WEB-INF/beans.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/web/src/main/webapp/WEB-INF/faces-config.xml b/web/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000..9654471 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + com.fp.armas.portal.web_portal + msg_portal + + com.fp.armas.portal.web_portal + + + com.fp.armas.portal.faces.listener.PortalListener + + diff --git a/web/src/main/webapp/WEB-INF/lib/.svn/entries b/web/src/main/webapp/WEB-INF/lib/.svn/entries new file mode 100644 index 0000000..c5d44bf --- /dev/null +++ b/web/src/main/webapp/WEB-INF/lib/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/WEB-INF/lib +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + diff --git a/web/src/main/webapp/WEB-INF/templates/.svn/entries b/web/src/main/webapp/WEB-INF/templates/.svn/entries new file mode 100644 index 0000000..2f315ae --- /dev/null +++ b/web/src/main/webapp/WEB-INF/templates/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/WEB-INF/templates +svn://172.17.26.185/COMACO + + + +2015-01-05T05:08:48.214851Z +3707 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +template.xhtml +file + + + + +2022-07-28T03:45:37.373077Z +03ddfc60f8971e8a4a8acd94843b97e2 +2015-01-05T05:08:48.214851Z +3707 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2318 + diff --git a/web/src/main/webapp/WEB-INF/templates/.svn/prop-base/template.xhtml.svn-base b/web/src/main/webapp/WEB-INF/templates/.svn/prop-base/template.xhtml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/templates/.svn/prop-base/template.xhtml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/WEB-INF/templates/.svn/text-base/template.xhtml.svn-base b/web/src/main/webapp/WEB-INF/templates/.svn/text-base/template.xhtml.svn-base new file mode 100644 index 0000000..6fc709f --- /dev/null +++ b/web/src/main/webapp/WEB-INF/templates/.svn/text-base/template.xhtml.svn-base @@ -0,0 +1,60 @@ + + + + + + + + + + Portal COMACO + + +

+ + +
+ + + + + Registro Usuarios + Portal Control de Armas + +
+
+ + +
+
+ +

Copyright 2014, Derechos reservados, Dirección + Nacional de Control de Armas

+

+ Desarrollado por: + +

+
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/web/src/main/webapp/WEB-INF/templates/template.xhtml b/web/src/main/webapp/WEB-INF/templates/template.xhtml new file mode 100644 index 0000000..6fc709f --- /dev/null +++ b/web/src/main/webapp/WEB-INF/templates/template.xhtml @@ -0,0 +1,60 @@ + + + + + + + + + + Portal COMACO + + +
+ + +
+ + + + + Registro Usuarios + Portal Control de Armas + +
+
+ + +
+
+ +

Copyright 2014, Derechos reservados, Dirección + Nacional de Control de Armas

+

+ Desarrollado por: + +

+
+
+
+
+ + + + + + + +
+
+ \ No newline at end of file diff --git a/web/src/main/webapp/WEB-INF/web.xml b/web/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..cf5bdfc --- /dev/null +++ b/web/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,60 @@ + + + Portal + portal-web + + + javax.faces.PROJECT_STAGE + Production + + + primefaces.THEME + comaco-theme + + + primefaces.PRIVATE_CAPTCHA_KEY + 6Lf-swATAAAAAOdJNdvFDEzQGRZBwGnZ_5q7qdI_ + + + primefaces.PUBLIC_CAPTCHA_KEY + 6Lf-swATAAAAAMT7_E5dQkjk8dmdblQVp4bBxUnW + + + javax.faces.FACELETS_SKIP_COMMENTS + true + + + + PrimeFaces FileUpload Filter + org.primefaces.webapp.filter.FileUploadFilter + + + PrimeFaces FileUpload Filter + Faces Servlet + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + Faces Servlet + *.faces + + + index.jsp + + + 500 + /pages/error/500.xhtml + + + 30 + + diff --git a/web/src/main/webapp/index.jsp b/web/src/main/webapp/index.jsp new file mode 100644 index 0000000..37ed513 --- /dev/null +++ b/web/src/main/webapp/index.jsp @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/src/main/webapp/pages/.svn/entries b/web/src/main/webapp/pages/.svn/entries new file mode 100644 index 0000000..a75ace7 --- /dev/null +++ b/web/src/main/webapp/pages/.svn/entries @@ -0,0 +1,37 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/pages +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +notificacion +dir + +error +dir + +registro +dir + diff --git a/web/src/main/webapp/pages/error/.svn/entries b/web/src/main/webapp/pages/error/.svn/entries new file mode 100644 index 0000000..3af8097 --- /dev/null +++ b/web/src/main/webapp/pages/error/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/pages/error +svn://172.17.26.185/COMACO + + + +2014-11-14T06:24:22.332705Z +2778 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +500.xhtml +file + + + + +2022-07-28T03:45:37.178077Z +bb10c5fcc02e6ce5242a167e07eb13fc +2014-11-14T06:24:22.332705Z +2778 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +650 + diff --git a/web/src/main/webapp/pages/error/.svn/prop-base/500.xhtml.svn-base b/web/src/main/webapp/pages/error/.svn/prop-base/500.xhtml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/pages/error/.svn/prop-base/500.xhtml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/pages/error/.svn/text-base/500.xhtml.svn-base b/web/src/main/webapp/pages/error/.svn/text-base/500.xhtml.svn-base new file mode 100644 index 0000000..e342a74 --- /dev/null +++ b/web/src/main/webapp/pages/error/.svn/text-base/500.xhtml.svn-base @@ -0,0 +1,14 @@ + + + + + +   + + + \ No newline at end of file diff --git a/web/src/main/webapp/pages/error/500.xhtml b/web/src/main/webapp/pages/error/500.xhtml new file mode 100644 index 0000000..e342a74 --- /dev/null +++ b/web/src/main/webapp/pages/error/500.xhtml @@ -0,0 +1,14 @@ + + + + + +   + + + \ No newline at end of file diff --git a/web/src/main/webapp/pages/notificacion/.svn/entries b/web/src/main/webapp/pages/notificacion/.svn/entries new file mode 100644 index 0000000..745ed70 --- /dev/null +++ b/web/src/main/webapp/pages/notificacion/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/pages/notificacion +svn://172.17.26.185/COMACO + + + +2015-02-25T12:26:11.258675Z +3857 +cpiedra + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +home.xhtml +file + + + + +2022-07-28T03:45:37.149076Z +86ead6b2bbd6c44424417cce9af61d09 +2015-02-25T12:26:11.258675Z +3857 +cpiedra +has-props + + + + + + + + + + + + + + + + + + + + +1011 + diff --git a/web/src/main/webapp/pages/notificacion/.svn/prop-base/home.xhtml.svn-base b/web/src/main/webapp/pages/notificacion/.svn/prop-base/home.xhtml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/pages/notificacion/.svn/prop-base/home.xhtml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/pages/notificacion/.svn/text-base/home.xhtml.svn-base b/web/src/main/webapp/pages/notificacion/.svn/text-base/home.xhtml.svn-base new file mode 100644 index 0000000..b6558fb --- /dev/null +++ b/web/src/main/webapp/pages/notificacion/.svn/text-base/home.xhtml.svn-base @@ -0,0 +1,17 @@ + + + + + + + +

Se ha enviado un correo a la dirección proporcionada, el usuario y clave para ingresar al Sistema de Control de Armas, para ingresar a la aplicación lo puede hacer desde

+
+
+
+
\ No newline at end of file diff --git a/web/src/main/webapp/pages/notificacion/home.xhtml b/web/src/main/webapp/pages/notificacion/home.xhtml new file mode 100644 index 0000000..b6558fb --- /dev/null +++ b/web/src/main/webapp/pages/notificacion/home.xhtml @@ -0,0 +1,17 @@ + + + + + + + +

Se ha enviado un correo a la dirección proporcionada, el usuario y clave para ingresar al Sistema de Control de Armas, para ingresar a la aplicación lo puede hacer desde

+
+
+
+
\ No newline at end of file diff --git a/web/src/main/webapp/pages/registro/.svn/entries b/web/src/main/webapp/pages/registro/.svn/entries new file mode 100644 index 0000000..e0f8b3c --- /dev/null +++ b/web/src/main/webapp/pages/registro/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/pages/registro +svn://172.17.26.185/COMACO + + + +2016-03-18T19:27:20.742530Z +4510 +fpazmino + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +home.xhtml +file + + + + +2022-07-28T03:45:37.195077Z +d8f2d4d63a56a0c410a74a8ee07cfb9e +2016-03-18T19:27:20.742530Z +4510 +fpazmino +has-props + + + + + + + + + + + + + + + + + + + + +16460 + diff --git a/web/src/main/webapp/pages/registro/.svn/prop-base/home.xhtml.svn-base b/web/src/main/webapp/pages/registro/.svn/prop-base/home.xhtml.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/pages/registro/.svn/prop-base/home.xhtml.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/pages/registro/.svn/text-base/home.xhtml.svn-base b/web/src/main/webapp/pages/registro/.svn/text-base/home.xhtml.svn-base new file mode 100644 index 0000000..c95395d --- /dev/null +++ b/web/src/main/webapp/pages/registro/.svn/text-base/home.xhtml.svn-base @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/main/webapp/pages/registro/home.xhtml b/web/src/main/webapp/pages/registro/home.xhtml new file mode 100644 index 0000000..c95395d --- /dev/null +++ b/web/src/main/webapp/pages/registro/home.xhtml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/main/webapp/resources/.svn/entries b/web/src/main/webapp/resources/.svn/entries new file mode 100644 index 0000000..7561293 --- /dev/null +++ b/web/src/main/webapp/resources/.svn/entries @@ -0,0 +1,40 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources +svn://172.17.26.185/COMACO + + + +2014-11-14T06:24:17.045082Z +2777 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +images +dir + +css +dir + +js +dir + +primefaces-comaco-theme +dir + diff --git a/web/src/main/webapp/resources/css/.svn/entries b/web/src/main/webapp/resources/css/.svn/entries new file mode 100644 index 0000000..4b876e0 --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/entries @@ -0,0 +1,130 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources/css +svn://172.17.26.185/COMACO + + + +2014-11-13T04:53:05.974113Z +2697 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +layout-default-latest.css +file + + + + +2022-07-28T03:45:37.468078Z +5881d63953350a9fff8afe763b6b5958 +2014-11-13T04:53:05.974113Z +2697 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6711 + +comaco.css +file + + + + +2022-07-28T03:45:37.468078Z +0ea0b262f93359f63d2aec310aeff005 +2014-11-13T04:53:05.974113Z +2697 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +401 + +maia.css +file + + + + +2022-07-28T03:45:37.469078Z +e8b7bdc180ac7da37e5317930180d674 +2014-11-13T04:53:05.974113Z +2697 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +13601 + diff --git a/web/src/main/webapp/resources/css/.svn/prop-base/comaco.css.svn-base b/web/src/main/webapp/resources/css/.svn/prop-base/comaco.css.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/prop-base/comaco.css.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/css/.svn/prop-base/layout-default-latest.css.svn-base b/web/src/main/webapp/resources/css/.svn/prop-base/layout-default-latest.css.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/prop-base/layout-default-latest.css.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/css/.svn/prop-base/maia.css.svn-base b/web/src/main/webapp/resources/css/.svn/prop-base/maia.css.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/prop-base/maia.css.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/css/.svn/text-base/comaco.css.svn-base b/web/src/main/webapp/resources/css/.svn/text-base/comaco.css.svn-base new file mode 100644 index 0000000..582ed75 --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/text-base/comaco.css.svn-base @@ -0,0 +1,26 @@ +@CHARSET "UTF-8"; +html, body { + background: #3c73bb; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + overflow: auto; /* when page gets too small */ +} + +/*body { + background-color: #3c73bb; +}*/ +#container{ + background-color: #FFFFFF; + height: 100%; + margin: 0 auto; + width: 100%; + max-width: 1000px; + min-width: 900px; + +} + +.pane { + display: none; /* will appear when layout inits */ +} diff --git a/web/src/main/webapp/resources/css/.svn/text-base/layout-default-latest.css.svn-base b/web/src/main/webapp/resources/css/.svn/text-base/layout-default-latest.css.svn-base new file mode 100644 index 0000000..14e507b --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/text-base/layout-default-latest.css.svn-base @@ -0,0 +1,224 @@ +/* + * Default Layout Theme + * + * Created for jquery.layout + * + * Copyright (c) 2010 + * Fabrizio Balliano (http://www.fabrizioballiano.net) + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * Last Updated: 2010-02-10 + * NOTE: For best code readability, view this with a fixed-space font and tabs equal to 4-chars + */ + +/* + * DEFAULT FONT + * Just to make demo-pages look better - not actually relevant to Layout! + */ +body { + font-family: Geneva, Arial, Helvetica, sans-serif; + font-size: 100%; + *font-size: 80%; +} + +/* + * PANES & CONTENT-DIVs + */ +.ui-layout-pane { /* all 'panes' */ + background: #FFF; + border: 1px solid #BBB; + padding: 10px; + overflow: auto; + /* DO NOT add scrolling (or padding) to 'panes' that have a content-div, + otherwise you may get double-scrollbars - on the pane AND on the content-div + - use ui-layout-wrapper class if pane has a content-div + - use ui-layout-container if pane has an inner-layout + */ + } + /* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */ + .ui-layout-content { + padding: 10px; + position: relative; /* contain floated or positioned elements */ + overflow: auto; /* add scrolling to content-div */ + } + +/* + * UTILITY CLASSES + * Must come AFTER pane-class above so will override + * These classes are NOT auto-generated and are NOT used by Layout + */ +.layout-child-container, +.layout-content-container { + padding: 0; + overflow: hidden; +} +.layout-child-container { + border: 0; /* remove border because inner-layout-panes probably have borders */ +} +.layout-scroll { + overflow: auto; +} +.layout-hide { + display: none; +} + +/* + * RESIZER-BARS + */ +.ui-layout-resizer { /* all 'resizer-bars' */ + background: #DDD; + border: 1px solid #BBB; + border-width: 0; + } + .ui-layout-resizer-drag { /* REAL resizer while resize in progress */ + } + .ui-layout-resizer-hover { /* affects both open and closed states */ + } + /* NOTE: It looks best when 'hover' and 'dragging' are set to the same color, + otherwise color shifts while dragging when bar can't keep up with mouse */ + .ui-layout-resizer-open-hover , /* hover-color to 'resize' */ + .ui-layout-resizer-dragging { /* resizer beging 'dragging' */ + background: #C4E1A4; + } + .ui-layout-resizer-dragging { /* CLONED resizer being dragged */ + border: 1px solid #BBB; + } + .ui-layout-resizer-north-dragging, + .ui-layout-resizer-south-dragging { + border-width: 1px 0; + } + .ui-layout-resizer-west-dragging, + .ui-layout-resizer-east-dragging { + border-width: 0 1px; + } + /* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */ + .ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */ + background: #E1A4A4; /* red */ + } + + .ui-layout-resizer-closed-hover { /* hover-color to 'slide open' */ + background: #EBD5AA; + } + .ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */ + opacity: .10; /* show only a slight shadow */ + filter: alpha(opacity=10); + } + .ui-layout-resizer-sliding-hover { /* sliding resizer - hover */ + opacity: 1.00; /* on-hover, show the resizer-bar normally */ + filter: alpha(opacity=100); + } + /* sliding resizer - add 'outside-border' to resizer on-hover + * this sample illustrates how to target specific panes and states */ + .ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; } + .ui-layout-resizer-south-sliding-hover { border-top-width: 1px; } + .ui-layout-resizer-west-sliding-hover { border-right-width: 1px; } + .ui-layout-resizer-east-sliding-hover { border-left-width: 1px; } + +/* + * TOGGLER-BUTTONS + */ +.ui-layout-toggler { + border: 1px solid #BBB; /* match pane-border */ + background-color: #BBB; + } + .ui-layout-resizer-hover .ui-layout-toggler { + opacity: .60; + filter: alpha(opacity=60); + } + .ui-layout-toggler-hover , /* need when NOT resizable */ + .ui-layout-resizer-hover .ui-layout-toggler-hover { /* need specificity when IS resizable */ + background-color: #FC6; + opacity: 1.00; + filter: alpha(opacity=100); + } + .ui-layout-toggler-north , + .ui-layout-toggler-south { + border-width: 0 1px; /* left/right borders */ + } + .ui-layout-toggler-west , + .ui-layout-toggler-east { + border-width: 1px 0; /* top/bottom borders */ + } + /* hide the toggler-button when the pane is 'slid open' */ + .ui-layout-resizer-sliding .ui-layout-toggler { + display: none; + } + /* + * style the text we put INSIDE the togglers + */ + .ui-layout-toggler .content { + color: #666; + font-size: 12px; + font-weight: bold; + width: 100%; + padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */ + } + +/* + * PANE-MASKS + * these styles are hard-coded on mask elems, but are also + * included here as !important to ensure will overrides any generic styles + */ +.ui-layout-mask { + border: none !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; + position: absolute !important; + opacity: 0 !important; + filter: Alpha(Opacity="0") !important; +} +.ui-layout-mask-inside-pane { /* masks always inside pane EXCEPT when pane is an iframe */ + top: 0 !important; + left: 0 !important; + width: 100% !important; + height: 100% !important; +} +div.ui-layout-mask {} /* standard mask for iframes */ +iframe.ui-layout-mask {} /* extra mask for objects/applets */ + +/* + * Default printing styles + */ +@media print { + /* + * Unless you want to print the layout as it appears onscreen, + * these html/body styles are needed to allow the content to 'flow' + */ + html { + height: auto !important; + overflow: visible !important; + } + body.ui-layout-container { + position: static !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + /* only IE6 has container width & height set by Layout */ + _width: auto !important; + _height: auto !important; + } + .ui-layout-resizer, .ui-layout-toggler { + display: none !important; + } + /* + * Default pane print styles disables positioning, borders and backgrounds. + * You can modify these styles however it suit your needs. + */ + .ui-layout-pane { + border: none !important; + background: transparent !important; + position: relative !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + width: auto !important; + height: auto !important; + overflow: visible !important; + } +} \ No newline at end of file diff --git a/web/src/main/webapp/resources/css/.svn/text-base/maia.css.svn-base b/web/src/main/webapp/resources/css/.svn/text-base/maia.css.svn-base new file mode 100644 index 0000000..348d06a --- /dev/null +++ b/web/src/main/webapp/resources/css/.svn/text-base/maia.css.svn-base @@ -0,0 +1,622 @@ +/*** Estilos generales ***/ +*{ + margin: 0px; + padding: 0px; + font-family: Geneva,Arial,Helvetica,sans-serif; + font-size: 8pt; +} +/*iframe{ + width: 100% !important; + height: 100% !important; + border:none; +}*/ +body { + font-family: Geneva,Arial,Helvetica,sans-serif; + overflow: auto; + height: 100%; +} + +/* Para que se autoajuste los panels cuando crezca la informacion en el tab */ +html{ + /*padding-bottom: 30px;*/ + overflow: auto; +} + + +/*** Estilos sobreescritos ***/ +body.ui-layout-container{ + background: url("#{resource['images/degrade.gif']}") !important; +} +body.ui-layout-container .ui-widget-content { + background: none; +} +.ui-tabs-nav{ + width: 100%; + padding-right: 0px; +} +.ui-selectonemenu label.ui-selectonemenu-label { + cursor: pointer; +} +.ui-tabs{ + height: 95%; + border: none; +} +.ui-tabs-panels{ + width: 99%; +} +#tabs .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.6em !important; + background: #ffffff url("#{resource['images/logoagua.gif']}") bottom no-repeat !important; + background-position: 50% 200px !important; +} +.ui-tabs-panel { + position: absolute; + width: 99%; + height: 99%; + min-height: 250px; +} +.centerLayout .ui-layout-unit-content{ + overflow: hidden !important; +} +.ui-button-text-icon-left .ui-button-text { + height: 14px !important; +} +.ui-inputNum .ui-widget { + text-align:right; +} +.ui-messages{ + min-height: 25px; + margin-top: 3px; + margin-bottom: 2px; + margin-right: 15px; +} +.ui-messages-info, .ui-messages-warn, .ui-messages-error, .ui-messages-fatal { + margin: 0px !important; + padding: 8px 5px 5px 5px !important; +} +.ui-messages-info-icon, .ui-messages-warn-icon, .ui-messages-error-icon, .ui-messages-fatal-icon { + margin-top: -7px !important; +} +.ui-panelgrid .ui-panelgrid-header { + text-align: left !important; +} +.ui-panelgrid .ui-panelgrid-cell { + border-width: 0px !important; +} + +input.ui-inputfield, .ui-selectonemenu{ + height: 20px !important; + padding: 0px 4px 0px 4px; +} +input.ui-state-disabled, input.ui-widget-content .ui-state-disabled, input.ui-widget-header .ui-state-disabled { + background: none !important; + opacity: .80 !important; + filter: Alpha(Opacity=80) !important; + background-color: #F5F5F5 !important; +} +label.ui-state-error, label.ui-widget-content .ui-state-error, label.ui-widget-header.ui-state-error { + border: none !important; + background: none !important; +} +input.ui-state-default, .ui-widget-content input.ui-state-default, .ui-widget-header input.ui-state-default, div.ui-selectonemenu{ + background: none; + background-color: #ffffff; + font-weight: normal !important; + color: #000000 !important; +} +div.ui-selectonemenu{ + background: none !important; + background-color: #FFFFFF !important; +} +ul.ui-widget-content{ + background-color: #ffffff !important; +} +.ui-selectonemenu label.ui-selectonemenu-label { + width: 100% !important; + padding-top: 1px !important; + height: 15px; +} +.ui-selectonemenu-panel .ui-selectonemenu-list-item { + padding: 2px 5px !important; + font-size: 95%; +} +.ui-datatable{ + margin-bottom: 10px; +} +.ui-dialog-content{ + background-color: #ffffff !important; + overflow-y: auto !important; + width: auto; + padding: .5em .5em !important; +} +.ui-menuitem-link{ + color: #ffffff; +} +.ui-panelmenu .ui-panelmenu-panel { + margin-bottom: 1px !important; +} +.ui-panelmenu .ui-panelmenu-header { + height: 20px; +} +.ui-panelmenu .ui-panelmenu-header a { + padding: .3em .5em .5em 2.2em !important; +} +.ui-widget-content a { + color: #ffffff; +} +h3.ui-state-active, h3.ui-widget-content h3.ui-state-active, h3.ui-widget-header h3.ui-state-active { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-default, h3.ui-widget-content h3.ui-state-default, h3.ui-widget-header h3.ui-state-default { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-hover a, h3.ui-state-hover a:hover, h3.ui-state-hover a:link, h3.ui-state-hover a:visited { + color: #C6DEE9; +} +.ui-panelmenu .ui-icon-triangle-1-e +{ + background-position: 0 -96px; +} +.ui-panelmenu .ui-icon-triangle-1-s +{ + background-position: -16px -96px; +} +.ui-panelmenu .ui-widget-content +{ + border: none !important; +} +.ui-panelmenu .ui-menuitem-link{ + padding: 0.3em 0.3em 0.3em 0.6em !important; +} +.ui-panelmenu .ui-menu-parent .ui-menu-list { + margin-left: 10px !important; +} +.ui-widget-overlay { + height: 100% !important; +} +.ui-selectonemenu-panel .ui-selectonemenu-table td { + border-color: white !important; + white-space: nowrap; +} + +.ui-selectonemenu-panel .ui-selectonemenu-items-wrapper { + overflow-y: auto !important; + overflow-x: hidden !important; +} +.ui-layout-unit .ui-layout-unit-content { + padding: 0.2em 0em !important; + border: 0px none !important; + overflow: hidden; +} + + +.ui-wizard-step-title { + font-size: 12px !important; +} + + + + + + + + + + + +/** Estilos propios **************************************************/ +tbody td{ + padding-top: 1px !important; + padding-bottom: 1px !important; +} +/** Propiedad para hacer referencia al tab activo y que se ubique al frente de todos **/ +div[aria-hidden="false"]{ + visibility: visible; + z-index: 20; +} +/** Propiedad para hacer referencia a los tabs inactivos y que se ubiquen al fondo **/ +div[aria-hidden="true"]{ + visibility: hidden; + z-index: 10; +} +.m-number-align { + text-align:right; +} +.m-form-login{ + width: 700px; + height: 370px; + position: relative; + top: 20%; + left: 0%; + margin: 0 auto; + background-image: url("#{resource['images/index.gif']}") !important; + background-repeat: no-repeat; +} +.m-panel-login{ + left: 20%; + position: relative; + top: 11%; + background-image: url("#{resource['images/fondo.png']}") !important; + background-repeat: no-repeat; + height: 190px; +} +.m-panel-login-content{ + position: relative; + top: 0%; + left: 20%; + min-width: 390px; +} +.m-panel-login-content input, .m-panel-login-content .ui-selectonemenu{ + width: 175px !important; +} +.m-panel-login-content label.ui-outputlabel{ + color: white !important; + background: none; +} +.m-icon-button{ + width: 26px; + height: 26px; + background-repeat: no-repeat !important; +} +.m-icon-close { + background-image: url("#{resource['images/icons/close.png']}") !important; +} +.m-icon-f2 { + background-image: url("#{resource['images/icons/f2.png']}") !important; +} +.m-icon-f4 { + background-image: url("#{resource['images/icons/f4.png']}") !important; +} +.m-icon-f5 { + background-image: url("#{resource['images/icons/f5.png']}") !important; +} +.m-icon-f10 { + background-image: url("#{resource['images/icons/f10.png']}") !important; +} +.m-icon-f1 { + background-image: url("#{resource['images/icons/f1.png']}") !important; +} + + +.m-filters, .ui-panelgrid{ + margin-bottom: 8px; + border: 1px solid #a6c9e2; + border-collapse: collapse; +} +.m-filters tr{ + /**border: none;**/ +} +.m-filters label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-filters input{ + margin-right: 10px; +} +.m-filters tbody td, .ui-panelgrid tbody td{ + padding-right: 2px !important; + padding-left: 2px !important; + border: none; +} +.m-filters tbody tr td:first-child, .ui-panelgrid tbody tr td:first-child{ + padding-left: 10px !important; +} +.m-data-content{ + min-width: 300px; + max-width: 99%; + width: auto; +} +.m-data-content .ui-datatable-tablewrapper td{ + white-space: normal !important; +} +.m-controls{ + margin-bottom: 2px; +} + +.m-dialog .ui-message-error { + background-color: transparent !important; + border-color: transparent !important; +} +.m-dialog .ui-messages { + min-height: 10px; + height: auto; +} +.m-dialog label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-action-column{ + width: 15px; +} +.m-action-button{ + width: 24px; + height: 18px; + margin-left: 4px; + border-radius: 0px !important; + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + -khtml-border-radius: 0px !important; +} +.m-action-button .ui-icon{ + top: 42% !important; +} +.m-lov-button{ + position: relative !important; +} +a.m-menuitem{ + min-width: 95%; + width: auto; +} +.m-profile{ + background: url("#{resource['images/logo-maia.png']}") no-repeat scroll 100% 0% transparent !important; + float: right; + position: fixed; + right: 0%; +} +.m-profile-controls{ + position: relative; + left: -230px; +} +.m-profile-controls label{ + color: #FFFFFF; + font-weight: bold; +} +.m-user-info{ + height: 100%; + float: right; +} +.m-user-info-button{ + margin-top: 2px; + width: 100%; + height: 23px; +} +.m-layout-top{ + background: url("#{resource['images/logoSBS.png']}") !important; + background-repeat: no-repeat !important; + border: none !important; + z-index: 30 !important; +} +.m-layout-top .ui-layout-unit-content{ + overflow: hidden !important; + height: 105% !important; +} +/* Usado en maia.js en el metodo upper para transformacion en mayuscula */ +.m-upper-case{ + text-transform: uppercase; +} +/* Alinea un campo a la derecha */ +.m-number{ + text-align:right; +} + +.m-dialog{ + min-width: 400px !important; + width: auto; + overflow: visible; +} +.m-dialog .ui-dialog-content form{ + width: 100%; + margin-top: 0px; +} +.m-location{ + background-color: #FCFCFC; + width: 250px; + height: 180px; + position: fixed; + top: 87px; + right: 3px; + border: 1px solid #79b7e7; + border-radius: 10px 0px 10px 10px; + -moz-border-radius: 10px 0px 10px 10px; + -webkit-border-radius: 10px 0px 10px 10px; + -khtml-border-radius: 10px 0px 10px 10px; + z-index: 2000 !important; +} +.m-location td{ + height: 23px; +} +.transaccion-display{ + display: flex; + width: 200px; + height: 30px; + background-color: #4A8FCE; + position: fixed; + bottom: 0px; + border: 1px solid #FFFFFF; +} +.transaccion-display input{ + margin-top: 0px; + margin-left: 3px; + height: 20px; +} + +.transaccion-display button{ + margin-top: 2px; + margin-left: 3px; + height: 20px; + width: 20px; +} + +.m-bpm-log-title{ + position: relative; + left: 50%; + font-weight: bold; + text-transform: uppercase; +} +.m-float-l{ + float: left; +} +.m-float-r{ + float: right; +} + +/* BPM */ +.m-flow-container{ + position: relative; + top: 2px; + left: 0px; + overflow: auto; + width: 100%; + height: 320px; + background-color: #FFFFFF; + border-width: 1px; + border-style: inset; +} +.m-image-flow{ + position: relative; + top: 0px; + left: 0px; +} +.done { + background-color: #00FF00; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.common { + opacity: 0.3; +} +.sub { + background-color: #55EEDD; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.act { + background-color: #FF0000; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} + +/* Estilos tabs side */ +.m-tabs-side{ + width: 98%; +} +.m-tabs-side .ui-tabs-panels .ui-tabs-panel { + background: none !important; + padding-left: 0em !important; + overflow: auto; +} + +.m-tabs-side .ui-tabs-panel { + width: 98% !important; +} + +/*Estilos tbas BPM*/ +.m-side-form{ + height: 100%; + width: 99%; +} +.m-bpm-data{ +} + +.m-bpm-data-old{ + position: absolute; + z-index: 100; + bottom: 70px; + width: 100%; +} +.m-bpm-data table{ + width: 100%; +} +.m-bpm-data textarea, .m-bpm-data select{ + width: 100%; +} +.m-bpm-data textarea{ + height: 50px; + +} +.m-tabs-side .ui-panelgrid tbody tr td:first-child{ + padding-left: 0px !important; +} +.m-tab-inner{ + height: auto !important; +} +.m-tab-inner .ui-tabs-nav{ + background: none; +} + +.m-tab-inner .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.2em !important; +} +.m-tabs-side .ui-accordion-header{ + background: #FFFFFF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + min-height: 11px; + height: auto; +} +.m-tabs-side .ui-accordion-header a{ + color: #707070 !important; + margin-top: -7px; +} +.m-tabs-side .ui-accordion{ + background-color: #E4E6E7; + border-radius: 8px; + -moz-border-radius: 8px; + -khtml-border-radius: 8px; + -webkit-border-radius: 8px; +} +.m-tabs-side .ui-accordion .ui-accordion-content{ + padding: 0.4em 1.8em 0.5em 2em !important; +} +.m-tabs-side table{ + border: none !important; + margin-bottom: 5px !important; +} +.m-tabs-side table tr{ + border: none !important; +} +.m-accordion-detail .ui-accordion-header{ + background: #CACBCF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + margin-top: 5px !important; +} + +/*CFLORES*/ +.m-accordion-detail .ui-accordion-header a{ + color: #4A4A4B !important; +} + + .ui-state-active a:link, .ui-state-active a:visited{ + color: #6fa925 !important; +} +.m-accordion-detail .ui-accordion-content{ + background-color: #FFFFFF !important; + border-radius: 0px 0px 8px 8px; + -moz-border-radius: 0px 0px 8px 8px; + -khtml-border-radius: 0px 0px 8px 8px; + -webkit-border-radius: 0px 0px 8px 8px; + margin-top: -3px !important; + border: solid 1px #CACBCF; +} + +.m-white-space-mormal{ + white-space: normal !important; +} + +textarea { + background : #F5F5F5 !important; + border: 1px solid #c5dbec !important; + font-family: Geneva,Arial,Helvetica,sans-serif !important; + color: #000 !important; + opacity: 0.8 !important; +} + +/*CFLORES*/ diff --git a/web/src/main/webapp/resources/css/comaco.css b/web/src/main/webapp/resources/css/comaco.css new file mode 100644 index 0000000..582ed75 --- /dev/null +++ b/web/src/main/webapp/resources/css/comaco.css @@ -0,0 +1,26 @@ +@CHARSET "UTF-8"; +html, body { + background: #3c73bb; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + overflow: auto; /* when page gets too small */ +} + +/*body { + background-color: #3c73bb; +}*/ +#container{ + background-color: #FFFFFF; + height: 100%; + margin: 0 auto; + width: 100%; + max-width: 1000px; + min-width: 900px; + +} + +.pane { + display: none; /* will appear when layout inits */ +} diff --git a/web/src/main/webapp/resources/css/layout-default-latest.css b/web/src/main/webapp/resources/css/layout-default-latest.css new file mode 100644 index 0000000..14e507b --- /dev/null +++ b/web/src/main/webapp/resources/css/layout-default-latest.css @@ -0,0 +1,224 @@ +/* + * Default Layout Theme + * + * Created for jquery.layout + * + * Copyright (c) 2010 + * Fabrizio Balliano (http://www.fabrizioballiano.net) + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * Last Updated: 2010-02-10 + * NOTE: For best code readability, view this with a fixed-space font and tabs equal to 4-chars + */ + +/* + * DEFAULT FONT + * Just to make demo-pages look better - not actually relevant to Layout! + */ +body { + font-family: Geneva, Arial, Helvetica, sans-serif; + font-size: 100%; + *font-size: 80%; +} + +/* + * PANES & CONTENT-DIVs + */ +.ui-layout-pane { /* all 'panes' */ + background: #FFF; + border: 1px solid #BBB; + padding: 10px; + overflow: auto; + /* DO NOT add scrolling (or padding) to 'panes' that have a content-div, + otherwise you may get double-scrollbars - on the pane AND on the content-div + - use ui-layout-wrapper class if pane has a content-div + - use ui-layout-container if pane has an inner-layout + */ + } + /* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */ + .ui-layout-content { + padding: 10px; + position: relative; /* contain floated or positioned elements */ + overflow: auto; /* add scrolling to content-div */ + } + +/* + * UTILITY CLASSES + * Must come AFTER pane-class above so will override + * These classes are NOT auto-generated and are NOT used by Layout + */ +.layout-child-container, +.layout-content-container { + padding: 0; + overflow: hidden; +} +.layout-child-container { + border: 0; /* remove border because inner-layout-panes probably have borders */ +} +.layout-scroll { + overflow: auto; +} +.layout-hide { + display: none; +} + +/* + * RESIZER-BARS + */ +.ui-layout-resizer { /* all 'resizer-bars' */ + background: #DDD; + border: 1px solid #BBB; + border-width: 0; + } + .ui-layout-resizer-drag { /* REAL resizer while resize in progress */ + } + .ui-layout-resizer-hover { /* affects both open and closed states */ + } + /* NOTE: It looks best when 'hover' and 'dragging' are set to the same color, + otherwise color shifts while dragging when bar can't keep up with mouse */ + .ui-layout-resizer-open-hover , /* hover-color to 'resize' */ + .ui-layout-resizer-dragging { /* resizer beging 'dragging' */ + background: #C4E1A4; + } + .ui-layout-resizer-dragging { /* CLONED resizer being dragged */ + border: 1px solid #BBB; + } + .ui-layout-resizer-north-dragging, + .ui-layout-resizer-south-dragging { + border-width: 1px 0; + } + .ui-layout-resizer-west-dragging, + .ui-layout-resizer-east-dragging { + border-width: 0 1px; + } + /* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */ + .ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */ + background: #E1A4A4; /* red */ + } + + .ui-layout-resizer-closed-hover { /* hover-color to 'slide open' */ + background: #EBD5AA; + } + .ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */ + opacity: .10; /* show only a slight shadow */ + filter: alpha(opacity=10); + } + .ui-layout-resizer-sliding-hover { /* sliding resizer - hover */ + opacity: 1.00; /* on-hover, show the resizer-bar normally */ + filter: alpha(opacity=100); + } + /* sliding resizer - add 'outside-border' to resizer on-hover + * this sample illustrates how to target specific panes and states */ + .ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; } + .ui-layout-resizer-south-sliding-hover { border-top-width: 1px; } + .ui-layout-resizer-west-sliding-hover { border-right-width: 1px; } + .ui-layout-resizer-east-sliding-hover { border-left-width: 1px; } + +/* + * TOGGLER-BUTTONS + */ +.ui-layout-toggler { + border: 1px solid #BBB; /* match pane-border */ + background-color: #BBB; + } + .ui-layout-resizer-hover .ui-layout-toggler { + opacity: .60; + filter: alpha(opacity=60); + } + .ui-layout-toggler-hover , /* need when NOT resizable */ + .ui-layout-resizer-hover .ui-layout-toggler-hover { /* need specificity when IS resizable */ + background-color: #FC6; + opacity: 1.00; + filter: alpha(opacity=100); + } + .ui-layout-toggler-north , + .ui-layout-toggler-south { + border-width: 0 1px; /* left/right borders */ + } + .ui-layout-toggler-west , + .ui-layout-toggler-east { + border-width: 1px 0; /* top/bottom borders */ + } + /* hide the toggler-button when the pane is 'slid open' */ + .ui-layout-resizer-sliding .ui-layout-toggler { + display: none; + } + /* + * style the text we put INSIDE the togglers + */ + .ui-layout-toggler .content { + color: #666; + font-size: 12px; + font-weight: bold; + width: 100%; + padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */ + } + +/* + * PANE-MASKS + * these styles are hard-coded on mask elems, but are also + * included here as !important to ensure will overrides any generic styles + */ +.ui-layout-mask { + border: none !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; + position: absolute !important; + opacity: 0 !important; + filter: Alpha(Opacity="0") !important; +} +.ui-layout-mask-inside-pane { /* masks always inside pane EXCEPT when pane is an iframe */ + top: 0 !important; + left: 0 !important; + width: 100% !important; + height: 100% !important; +} +div.ui-layout-mask {} /* standard mask for iframes */ +iframe.ui-layout-mask {} /* extra mask for objects/applets */ + +/* + * Default printing styles + */ +@media print { + /* + * Unless you want to print the layout as it appears onscreen, + * these html/body styles are needed to allow the content to 'flow' + */ + html { + height: auto !important; + overflow: visible !important; + } + body.ui-layout-container { + position: static !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + /* only IE6 has container width & height set by Layout */ + _width: auto !important; + _height: auto !important; + } + .ui-layout-resizer, .ui-layout-toggler { + display: none !important; + } + /* + * Default pane print styles disables positioning, borders and backgrounds. + * You can modify these styles however it suit your needs. + */ + .ui-layout-pane { + border: none !important; + background: transparent !important; + position: relative !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + width: auto !important; + height: auto !important; + overflow: visible !important; + } +} \ No newline at end of file diff --git a/web/src/main/webapp/resources/css/maia.css b/web/src/main/webapp/resources/css/maia.css new file mode 100644 index 0000000..348d06a --- /dev/null +++ b/web/src/main/webapp/resources/css/maia.css @@ -0,0 +1,622 @@ +/*** Estilos generales ***/ +*{ + margin: 0px; + padding: 0px; + font-family: Geneva,Arial,Helvetica,sans-serif; + font-size: 8pt; +} +/*iframe{ + width: 100% !important; + height: 100% !important; + border:none; +}*/ +body { + font-family: Geneva,Arial,Helvetica,sans-serif; + overflow: auto; + height: 100%; +} + +/* Para que se autoajuste los panels cuando crezca la informacion en el tab */ +html{ + /*padding-bottom: 30px;*/ + overflow: auto; +} + + +/*** Estilos sobreescritos ***/ +body.ui-layout-container{ + background: url("#{resource['images/degrade.gif']}") !important; +} +body.ui-layout-container .ui-widget-content { + background: none; +} +.ui-tabs-nav{ + width: 100%; + padding-right: 0px; +} +.ui-selectonemenu label.ui-selectonemenu-label { + cursor: pointer; +} +.ui-tabs{ + height: 95%; + border: none; +} +.ui-tabs-panels{ + width: 99%; +} +#tabs .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.6em !important; + background: #ffffff url("#{resource['images/logoagua.gif']}") bottom no-repeat !important; + background-position: 50% 200px !important; +} +.ui-tabs-panel { + position: absolute; + width: 99%; + height: 99%; + min-height: 250px; +} +.centerLayout .ui-layout-unit-content{ + overflow: hidden !important; +} +.ui-button-text-icon-left .ui-button-text { + height: 14px !important; +} +.ui-inputNum .ui-widget { + text-align:right; +} +.ui-messages{ + min-height: 25px; + margin-top: 3px; + margin-bottom: 2px; + margin-right: 15px; +} +.ui-messages-info, .ui-messages-warn, .ui-messages-error, .ui-messages-fatal { + margin: 0px !important; + padding: 8px 5px 5px 5px !important; +} +.ui-messages-info-icon, .ui-messages-warn-icon, .ui-messages-error-icon, .ui-messages-fatal-icon { + margin-top: -7px !important; +} +.ui-panelgrid .ui-panelgrid-header { + text-align: left !important; +} +.ui-panelgrid .ui-panelgrid-cell { + border-width: 0px !important; +} + +input.ui-inputfield, .ui-selectonemenu{ + height: 20px !important; + padding: 0px 4px 0px 4px; +} +input.ui-state-disabled, input.ui-widget-content .ui-state-disabled, input.ui-widget-header .ui-state-disabled { + background: none !important; + opacity: .80 !important; + filter: Alpha(Opacity=80) !important; + background-color: #F5F5F5 !important; +} +label.ui-state-error, label.ui-widget-content .ui-state-error, label.ui-widget-header.ui-state-error { + border: none !important; + background: none !important; +} +input.ui-state-default, .ui-widget-content input.ui-state-default, .ui-widget-header input.ui-state-default, div.ui-selectonemenu{ + background: none; + background-color: #ffffff; + font-weight: normal !important; + color: #000000 !important; +} +div.ui-selectonemenu{ + background: none !important; + background-color: #FFFFFF !important; +} +ul.ui-widget-content{ + background-color: #ffffff !important; +} +.ui-selectonemenu label.ui-selectonemenu-label { + width: 100% !important; + padding-top: 1px !important; + height: 15px; +} +.ui-selectonemenu-panel .ui-selectonemenu-list-item { + padding: 2px 5px !important; + font-size: 95%; +} +.ui-datatable{ + margin-bottom: 10px; +} +.ui-dialog-content{ + background-color: #ffffff !important; + overflow-y: auto !important; + width: auto; + padding: .5em .5em !important; +} +.ui-menuitem-link{ + color: #ffffff; +} +.ui-panelmenu .ui-panelmenu-panel { + margin-bottom: 1px !important; +} +.ui-panelmenu .ui-panelmenu-header { + height: 20px; +} +.ui-panelmenu .ui-panelmenu-header a { + padding: .3em .5em .5em 2.2em !important; +} +.ui-widget-content a { + color: #ffffff; +} +h3.ui-state-active, h3.ui-widget-content h3.ui-state-active, h3.ui-widget-header h3.ui-state-active { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-default, h3.ui-widget-content h3.ui-state-default, h3.ui-widget-header h3.ui-state-default { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-hover a, h3.ui-state-hover a:hover, h3.ui-state-hover a:link, h3.ui-state-hover a:visited { + color: #C6DEE9; +} +.ui-panelmenu .ui-icon-triangle-1-e +{ + background-position: 0 -96px; +} +.ui-panelmenu .ui-icon-triangle-1-s +{ + background-position: -16px -96px; +} +.ui-panelmenu .ui-widget-content +{ + border: none !important; +} +.ui-panelmenu .ui-menuitem-link{ + padding: 0.3em 0.3em 0.3em 0.6em !important; +} +.ui-panelmenu .ui-menu-parent .ui-menu-list { + margin-left: 10px !important; +} +.ui-widget-overlay { + height: 100% !important; +} +.ui-selectonemenu-panel .ui-selectonemenu-table td { + border-color: white !important; + white-space: nowrap; +} + +.ui-selectonemenu-panel .ui-selectonemenu-items-wrapper { + overflow-y: auto !important; + overflow-x: hidden !important; +} +.ui-layout-unit .ui-layout-unit-content { + padding: 0.2em 0em !important; + border: 0px none !important; + overflow: hidden; +} + + +.ui-wizard-step-title { + font-size: 12px !important; +} + + + + + + + + + + + +/** Estilos propios **************************************************/ +tbody td{ + padding-top: 1px !important; + padding-bottom: 1px !important; +} +/** Propiedad para hacer referencia al tab activo y que se ubique al frente de todos **/ +div[aria-hidden="false"]{ + visibility: visible; + z-index: 20; +} +/** Propiedad para hacer referencia a los tabs inactivos y que se ubiquen al fondo **/ +div[aria-hidden="true"]{ + visibility: hidden; + z-index: 10; +} +.m-number-align { + text-align:right; +} +.m-form-login{ + width: 700px; + height: 370px; + position: relative; + top: 20%; + left: 0%; + margin: 0 auto; + background-image: url("#{resource['images/index.gif']}") !important; + background-repeat: no-repeat; +} +.m-panel-login{ + left: 20%; + position: relative; + top: 11%; + background-image: url("#{resource['images/fondo.png']}") !important; + background-repeat: no-repeat; + height: 190px; +} +.m-panel-login-content{ + position: relative; + top: 0%; + left: 20%; + min-width: 390px; +} +.m-panel-login-content input, .m-panel-login-content .ui-selectonemenu{ + width: 175px !important; +} +.m-panel-login-content label.ui-outputlabel{ + color: white !important; + background: none; +} +.m-icon-button{ + width: 26px; + height: 26px; + background-repeat: no-repeat !important; +} +.m-icon-close { + background-image: url("#{resource['images/icons/close.png']}") !important; +} +.m-icon-f2 { + background-image: url("#{resource['images/icons/f2.png']}") !important; +} +.m-icon-f4 { + background-image: url("#{resource['images/icons/f4.png']}") !important; +} +.m-icon-f5 { + background-image: url("#{resource['images/icons/f5.png']}") !important; +} +.m-icon-f10 { + background-image: url("#{resource['images/icons/f10.png']}") !important; +} +.m-icon-f1 { + background-image: url("#{resource['images/icons/f1.png']}") !important; +} + + +.m-filters, .ui-panelgrid{ + margin-bottom: 8px; + border: 1px solid #a6c9e2; + border-collapse: collapse; +} +.m-filters tr{ + /**border: none;**/ +} +.m-filters label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-filters input{ + margin-right: 10px; +} +.m-filters tbody td, .ui-panelgrid tbody td{ + padding-right: 2px !important; + padding-left: 2px !important; + border: none; +} +.m-filters tbody tr td:first-child, .ui-panelgrid tbody tr td:first-child{ + padding-left: 10px !important; +} +.m-data-content{ + min-width: 300px; + max-width: 99%; + width: auto; +} +.m-data-content .ui-datatable-tablewrapper td{ + white-space: normal !important; +} +.m-controls{ + margin-bottom: 2px; +} + +.m-dialog .ui-message-error { + background-color: transparent !important; + border-color: transparent !important; +} +.m-dialog .ui-messages { + min-height: 10px; + height: auto; +} +.m-dialog label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-action-column{ + width: 15px; +} +.m-action-button{ + width: 24px; + height: 18px; + margin-left: 4px; + border-radius: 0px !important; + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + -khtml-border-radius: 0px !important; +} +.m-action-button .ui-icon{ + top: 42% !important; +} +.m-lov-button{ + position: relative !important; +} +a.m-menuitem{ + min-width: 95%; + width: auto; +} +.m-profile{ + background: url("#{resource['images/logo-maia.png']}") no-repeat scroll 100% 0% transparent !important; + float: right; + position: fixed; + right: 0%; +} +.m-profile-controls{ + position: relative; + left: -230px; +} +.m-profile-controls label{ + color: #FFFFFF; + font-weight: bold; +} +.m-user-info{ + height: 100%; + float: right; +} +.m-user-info-button{ + margin-top: 2px; + width: 100%; + height: 23px; +} +.m-layout-top{ + background: url("#{resource['images/logoSBS.png']}") !important; + background-repeat: no-repeat !important; + border: none !important; + z-index: 30 !important; +} +.m-layout-top .ui-layout-unit-content{ + overflow: hidden !important; + height: 105% !important; +} +/* Usado en maia.js en el metodo upper para transformacion en mayuscula */ +.m-upper-case{ + text-transform: uppercase; +} +/* Alinea un campo a la derecha */ +.m-number{ + text-align:right; +} + +.m-dialog{ + min-width: 400px !important; + width: auto; + overflow: visible; +} +.m-dialog .ui-dialog-content form{ + width: 100%; + margin-top: 0px; +} +.m-location{ + background-color: #FCFCFC; + width: 250px; + height: 180px; + position: fixed; + top: 87px; + right: 3px; + border: 1px solid #79b7e7; + border-radius: 10px 0px 10px 10px; + -moz-border-radius: 10px 0px 10px 10px; + -webkit-border-radius: 10px 0px 10px 10px; + -khtml-border-radius: 10px 0px 10px 10px; + z-index: 2000 !important; +} +.m-location td{ + height: 23px; +} +.transaccion-display{ + display: flex; + width: 200px; + height: 30px; + background-color: #4A8FCE; + position: fixed; + bottom: 0px; + border: 1px solid #FFFFFF; +} +.transaccion-display input{ + margin-top: 0px; + margin-left: 3px; + height: 20px; +} + +.transaccion-display button{ + margin-top: 2px; + margin-left: 3px; + height: 20px; + width: 20px; +} + +.m-bpm-log-title{ + position: relative; + left: 50%; + font-weight: bold; + text-transform: uppercase; +} +.m-float-l{ + float: left; +} +.m-float-r{ + float: right; +} + +/* BPM */ +.m-flow-container{ + position: relative; + top: 2px; + left: 0px; + overflow: auto; + width: 100%; + height: 320px; + background-color: #FFFFFF; + border-width: 1px; + border-style: inset; +} +.m-image-flow{ + position: relative; + top: 0px; + left: 0px; +} +.done { + background-color: #00FF00; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.common { + opacity: 0.3; +} +.sub { + background-color: #55EEDD; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.act { + background-color: #FF0000; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} + +/* Estilos tabs side */ +.m-tabs-side{ + width: 98%; +} +.m-tabs-side .ui-tabs-panels .ui-tabs-panel { + background: none !important; + padding-left: 0em !important; + overflow: auto; +} + +.m-tabs-side .ui-tabs-panel { + width: 98% !important; +} + +/*Estilos tbas BPM*/ +.m-side-form{ + height: 100%; + width: 99%; +} +.m-bpm-data{ +} + +.m-bpm-data-old{ + position: absolute; + z-index: 100; + bottom: 70px; + width: 100%; +} +.m-bpm-data table{ + width: 100%; +} +.m-bpm-data textarea, .m-bpm-data select{ + width: 100%; +} +.m-bpm-data textarea{ + height: 50px; + +} +.m-tabs-side .ui-panelgrid tbody tr td:first-child{ + padding-left: 0px !important; +} +.m-tab-inner{ + height: auto !important; +} +.m-tab-inner .ui-tabs-nav{ + background: none; +} + +.m-tab-inner .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.2em !important; +} +.m-tabs-side .ui-accordion-header{ + background: #FFFFFF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + min-height: 11px; + height: auto; +} +.m-tabs-side .ui-accordion-header a{ + color: #707070 !important; + margin-top: -7px; +} +.m-tabs-side .ui-accordion{ + background-color: #E4E6E7; + border-radius: 8px; + -moz-border-radius: 8px; + -khtml-border-radius: 8px; + -webkit-border-radius: 8px; +} +.m-tabs-side .ui-accordion .ui-accordion-content{ + padding: 0.4em 1.8em 0.5em 2em !important; +} +.m-tabs-side table{ + border: none !important; + margin-bottom: 5px !important; +} +.m-tabs-side table tr{ + border: none !important; +} +.m-accordion-detail .ui-accordion-header{ + background: #CACBCF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + margin-top: 5px !important; +} + +/*CFLORES*/ +.m-accordion-detail .ui-accordion-header a{ + color: #4A4A4B !important; +} + + .ui-state-active a:link, .ui-state-active a:visited{ + color: #6fa925 !important; +} +.m-accordion-detail .ui-accordion-content{ + background-color: #FFFFFF !important; + border-radius: 0px 0px 8px 8px; + -moz-border-radius: 0px 0px 8px 8px; + -khtml-border-radius: 0px 0px 8px 8px; + -webkit-border-radius: 0px 0px 8px 8px; + margin-top: -3px !important; + border: solid 1px #CACBCF; +} + +.m-white-space-mormal{ + white-space: normal !important; +} + +textarea { + background : #F5F5F5 !important; + border: 1px solid #c5dbec !important; + font-family: Geneva,Arial,Helvetica,sans-serif !important; + color: #000 !important; + opacity: 0.8 !important; +} + +/*CFLORES*/ diff --git a/web/src/main/webapp/resources/images/.svn/entries b/web/src/main/webapp/resources/images/.svn/entries new file mode 100644 index 0000000..3c7a4bd --- /dev/null +++ b/web/src/main/webapp/resources/images/.svn/entries @@ -0,0 +1,130 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources/images +svn://172.17.26.185/COMACO + + + +2014-08-22T13:02:24.015247Z +299 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +escudoarmas.png +file + + + + +2022-07-28T03:45:37.435078Z +f78ecd9f7fcbe18ff1652a64dc60502d +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +36907 + +ajaxloadingbar.gif +file + + + + +2022-07-28T03:45:37.435078Z +e67d85a8d2d4021514815d0ff4d65173 +2014-08-15T13:56:33.844127Z +203 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +10819 + +escudoarmas1.png +file + + + + +2022-07-28T03:45:37.435078Z +21a1ec7a5e816b8e04181e30af35a5f0 +2014-08-22T13:02:24.015247Z +299 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +14634 + diff --git a/web/src/main/webapp/resources/images/.svn/prop-base/ajaxloadingbar.gif.svn-base b/web/src/main/webapp/resources/images/.svn/prop-base/ajaxloadingbar.gif.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/images/.svn/prop-base/ajaxloadingbar.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas.png.svn-base b/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas1.png.svn-base b/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas1.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/images/.svn/prop-base/escudoarmas1.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/images/.svn/text-base/ajaxloadingbar.gif.svn-base b/web/src/main/webapp/resources/images/.svn/text-base/ajaxloadingbar.gif.svn-base new file mode 100644 index 0000000..47adbf0 Binary files /dev/null and b/web/src/main/webapp/resources/images/.svn/text-base/ajaxloadingbar.gif.svn-base differ diff --git a/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas.png.svn-base b/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas.png.svn-base new file mode 100644 index 0000000..bce5554 Binary files /dev/null and b/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas.png.svn-base differ diff --git a/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas1.png.svn-base b/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas1.png.svn-base new file mode 100644 index 0000000..a207edd Binary files /dev/null and b/web/src/main/webapp/resources/images/.svn/text-base/escudoarmas1.png.svn-base differ diff --git a/web/src/main/webapp/resources/images/ajaxloadingbar.gif b/web/src/main/webapp/resources/images/ajaxloadingbar.gif new file mode 100644 index 0000000..47adbf0 Binary files /dev/null and b/web/src/main/webapp/resources/images/ajaxloadingbar.gif differ diff --git a/web/src/main/webapp/resources/images/escudoarmas.png b/web/src/main/webapp/resources/images/escudoarmas.png new file mode 100644 index 0000000..bce5554 Binary files /dev/null and b/web/src/main/webapp/resources/images/escudoarmas.png differ diff --git a/web/src/main/webapp/resources/images/escudoarmas1.png b/web/src/main/webapp/resources/images/escudoarmas1.png new file mode 100644 index 0000000..a207edd Binary files /dev/null and b/web/src/main/webapp/resources/images/escudoarmas1.png differ diff --git a/web/src/main/webapp/resources/js/.svn/entries b/web/src/main/webapp/resources/js/.svn/entries new file mode 100644 index 0000000..c2951c6 --- /dev/null +++ b/web/src/main/webapp/resources/js/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources/js +svn://172.17.26.185/COMACO + + + +2014-11-14T06:24:17.045082Z +2777 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +jquery.layout-latest.js +file + + + + +2022-07-28T03:45:37.498078Z +7496c09dee721c372350529f8601cc24 +2014-11-13T04:53:05.974113Z +2697 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +213516 + +comaco.js +file + + + + +2022-07-28T03:45:37.498078Z +99e1fce9edaca7a41ca2262d5a410d6a +2014-11-14T06:24:17.045082Z +2777 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +2752 + diff --git a/web/src/main/webapp/resources/js/.svn/prop-base/comaco.js.svn-base b/web/src/main/webapp/resources/js/.svn/prop-base/comaco.js.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/js/.svn/prop-base/comaco.js.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/js/.svn/prop-base/jquery.layout-latest.js.svn-base b/web/src/main/webapp/resources/js/.svn/prop-base/jquery.layout-latest.js.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/js/.svn/prop-base/jquery.layout-latest.js.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/js/.svn/text-base/comaco.js.svn-base b/web/src/main/webapp/resources/js/.svn/text-base/comaco.js.svn-base new file mode 100644 index 0000000..163d0bd --- /dev/null +++ b/web/src/main/webapp/resources/js/.svn/text-base/comaco.js.svn-base @@ -0,0 +1,99 @@ +/** + * Mantener funciones en un solo formato + */ +var comaco = { + upperText:function(event, element){ + var e = event || window.event; + var k = null; + if(e.which) k = e.which; + else if(e.keyCode) k = e.keyCode; + + //Control para permitir ctrl+c, ctrl+v, ctrl+x + if(e.ctrlKey==true && k==99) + return true; + if(e.ctrlKey==true && k==118) + return true; + if(e.ctrlKey==true && k==120) + return true; + + if(k==8 || k==16 || k==39 || k==37 || e.shiftKey){ + return true; + } + + $(element).addClass("m-upper-case"); + var x = this.doGetCaretPosition(element); + element.value=element.value.toUpperCase(); + this.doSetCaretPosition(element,x); + }, + doGetCaretPosition: function(oField) { + var iCaretPos = 0; + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + // Move selection start to 0 position + oSel.moveStart ('character', -oField.value.length); + // The caret position is selection length + iCaretPos = oSel.text.length; + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + iCaretPos = oField.selectionStart; + return (iCaretPos); + }, + doSetCaretPosition: function (oField, iCaretPos) + { + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + oSel.moveStart('character', -oField.value.length); + oSel.moveStart('character', iCaretPos); + oSel.moveEnd('character', 0); + oSel.select(); + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + { + oField.selectionStart = iCaretPos; + oField.selectionEnd = iCaretPos; + oField.focus(); + } + }, + keyLocks: function (e) + { + var key; + if(window.event) + { + key = window.event.keyCode; + if(key == 116 || key == 122) + { + event.keyCode=0; + event.returnValue=false; + } + } + else + { + key = e.which; + if(key == 116||key == 122) + { + return true; + } + } + } +}; + +$(document).ready(function () { + $('#container').layout({ applyDemoStyles: true, + north: { + closable: false, + resizable: false + } + , south: { + closable: false, + resizable: false + } + }); + document.oncontextmenu = new Function("return false"); + window.history.forward(); +}); diff --git a/web/src/main/webapp/resources/js/.svn/text-base/jquery.layout-latest.js.svn-base b/web/src/main/webapp/resources/js/.svn/text-base/jquery.layout-latest.js.svn-base new file mode 100644 index 0000000..a16642b --- /dev/null +++ b/web/src/main/webapp/resources/js/.svn/text-base/jquery.layout-latest.js.svn-base @@ -0,0 +1,6083 @@ +/** + * @preserve + * jquery.layout 1.4.3 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * $Rev: 1.0403 $ + * + * Copyright (c) 2014 Kevin Dalman (http://jquery-dev.com) + * Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * SEE: http://layout.jquery-dev.com/LICENSE.txt + * + * Changelog: http://layout.jquery-dev.com/changelog.cfm + * + * Docs: http://layout.jquery-dev.com/documentation.html + * Tips: http://layout.jquery-dev.com/tips.html + * Help: http://groups.google.com/group/jquery-ui-layout + */ + +/* JavaDoc Info: http://code.google.com/closure/compiler/docs/js-for-compiler.html + * {!Object} non-nullable type (never NULL) + * {?string} nullable type (sometimes NULL) - default for {Object} + * {number=} optional parameter + * {*} ALL types + */ +/* TODO for jQ 2.0 + * change .andSelf() to .addBack() + * check $.fn.disableSelection - this is in jQuery UI 1.9.x + */ + +// NOTE: For best readability, view with a fixed-width font and tabs equal to 4-chars + +;(function ($) { + +// alias Math methods - used a lot! +var min = Math.min +, max = Math.max +, round = Math.floor + +, isStr = function (v) { return $.type(v) === "string"; } + + /** + * @param {!Object} Instance + * @param {Array.} a_fn + */ +, runPluginCallbacks = function (Instance, a_fn) { + if ($.isArray(a_fn)) + for (var i=0, c=a_fn.length; i').appendTo("body") + , d = { width: $c.outerWidth - $c[0].clientWidth, height: 100 - $c[0].clientHeight }; + $c.remove(); + window.scrollbarWidth = d.width; + window.scrollbarHeight = d.height; + return dim.match(/^(width|height)$/) ? d[dim] : d; + } + + +, disableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled' + , x = 'textSelectionInitialized' + ; + if ($.fn.disableSelection) { + if (!$d.data(x)) // document hasn't been initialized yet + $d.on('mouseup', $.layout.enableTextSelection ).data(x, true); + if (!$d.data(s)) + $d.disableSelection().data(s, true); + } + } +, enableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled'; + if ($.fn.enableSelection && $d.data(s)) + $d.enableSelection().data(s, false); + } + + + /** + * Returns hash container 'display' and 'visibility' + * + * @see $.swap() - swaps CSS, runs callback, resets CSS + * @param {!Object} $E jQuery element + * @param {boolean=} [force=false] Run even if display != none + * @return {!Object} Returns current style props, if applicable + */ +, showInvisibly: function ($E, force) { + if ($E && $E.length && (force || $E.css("display") === "none")) { // only if not *already hidden* + var s = $E[0].style + // save ONLY the 'style' props because that is what we must restore + , CSS = { display: s.display || '', visibility: s.visibility || '' }; + // show element 'invisibly' so can be measured + $E.css({ display: "block", visibility: "hidden" }); + return CSS; + } + return {}; + } + + /** + * Returns data for setting size of an element (container or a pane). + * + * @see _create(), onWindowResize() for container, plus others for pane + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc + */ +, getElementDimensions: function ($E, inset) { + var + // dimensions hash - start with current data IF passed + d = { css: {}, inset: {} } + , x = d.css // CSS hash + , i = { bottom: 0 } // TEMP insets (bottom = complier hack) + , N = $.layout.cssNum + , R = Math.round + , off = $E.offset() + , b, p, ei // TEMP border, padding + ; + d.offsetLeft = off.left; + d.offsetTop = off.top; + + if (!inset) inset = {}; // simplify logic below + + $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge + b = x["border" + e] = $.layout.borderWidth($E, e); + p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); + ei = e.toLowerCase(); + d.inset[ei] = inset[ei] >= 0 ? inset[ei] : p; // any missing insetX value = paddingX + i[ei] = d.inset[ei] + b; // total offset of content from outer side + }); + + x.width = R($E.width()); + x.height = R($E.height()); + x.top = N($E,"top",true); + x.bottom = N($E,"bottom",true); + x.left = N($E,"left",true); + x.right = N($E,"right",true); + + d.outerWidth = R($E.outerWidth()); + d.outerHeight = R($E.outerHeight()); + // calc the TRUE inner-dimensions, even in quirks-mode! + d.innerWidth = max(0, d.outerWidth - i.left - i.right); + d.innerHeight = max(0, d.outerHeight - i.top - i.bottom); + // layoutWidth/Height is used in calcs for manual resizing + // layoutW/H only differs from innerW/H when in quirks-mode - then is like outerW/H + d.layoutWidth = R($E.innerWidth()); + d.layoutHeight = R($E.innerHeight()); + + //if ($E.prop('tagName') === 'BODY') { debugData( d, $E.prop('tagName') ); } // DEBUG + + //d.visible = $E.is(":visible");// && x.width > 0 && x.height > 0; + + return d; + } + +, getElementStyles: function ($E, list) { + var + CSS = {} + , style = $E[0].style + , props = list.split(",") + , sides = "Top,Bottom,Left,Right".split(",") + , attrs = "Color,Style,Width".split(",") + , p, s, a, i, j, k + ; + for (i=0; i < props.length; i++) { + p = props[i]; + if (p.match(/(border|padding|margin)$/)) + for (j=0; j < 4; j++) { + s = sides[j]; + if (p === "border") + for (k=0; k < 3; k++) { + a = attrs[k]; + CSS[p+s+a] = style[p+s+a]; + } + else + CSS[p+s] = style[p+s]; + } + else + CSS[p] = style[p]; + }; + return CSS + } + + /** + * Return the innerWidth for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerWidth of the elem by subtracting padding and borders + */ +, cssWidth: function ($E, outerWidth) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerWidth <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , W = outerWidth + ; + // strip border and/or padding from outerWidth to get CSS Width + if (bs !== "border-box") + W -= (b($E, "Left") + b($E, "Right")); + if (bs === "content-box") + W -= (n($E, "paddingLeft") + n($E, "paddingRight")); + return max(0,W); + } + + /** + * Return the innerHeight for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerHeight of the elem by subtracting padding and borders + */ +, cssHeight: function ($E, outerHeight) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerHeight <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , H = outerHeight + ; + // strip border and/or padding from outerHeight to get CSS Height + if (bs !== "border-box") + H -= (b($E, "Top") + b($E, "Bottom")); + if (bs === "content-box") + H -= (n($E, "paddingTop") + n($E, "paddingBottom")); + return max(0,H); + } + + /** + * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist + * + * @see Called by many methods + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {string} prop The name of the CSS property, eg: top, width, etc. + * @param {boolean=} [allowAuto=false] true = return 'auto' if that is value; false = return 0 + * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) + */ +, cssNum: function ($E, prop, allowAuto) { + if (!$E.jquery) $E = $($E); + var CSS = $.layout.showInvisibly($E) + , p = $.css($E[0], prop, true) + , v = allowAuto && p=="auto" ? p : Math.round(parseFloat(p) || 0); + $E.css( CSS ); // RESET + return v; + } + +, borderWidth: function (el, side) { + if (el.jquery) el = el[0]; + var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left + return $.css(el, b+"Style", true) === "none" ? 0 : Math.round(parseFloat($.css(el, b+"Width", true)) || 0); + } + + /** + * Mouse-tracking utility - FUTURE REFERENCE + * + * init: if (!window.mouse) { + * window.mouse = { x: 0, y: 0 }; + * $(document).mousemove( $.layout.trackMouse ); + * } + * + * @param {Object} evt + * +, trackMouse: function (evt) { + window.mouse = { x: evt.clientX, y: evt.clientY }; + } + */ + + /** + * SUBROUTINE for preventPrematureSlideClose option + * + * @param {Object} evt + * @param {Object=} el + */ +, isMouseOverElem: function (evt, el) { + var + $E = $(el || this) + , d = $E.offset() + , T = d.top + , L = d.left + , R = L + $E.outerWidth() + , B = T + $E.outerHeight() + , x = evt.pageX // evt.clientX ? + , y = evt.pageY // evt.clientY ? + ; + // if X & Y are < 0, probably means is over an open SELECT + return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); + } + + /** + * Message/Logging Utility + * + * @example $.layout.msg("My message"); // log text + * @example $.layout.msg("My message", true); // alert text + * @example $.layout.msg({ foo: "bar" }, "Title"); // log hash-data, with custom title + * @example $.layout.msg({ foo: "bar" }, true, "Title", { sort: false }); -OR- + * @example $.layout.msg({ foo: "bar" }, "Title", { sort: false, display: true }); // alert hash-data + * + * @param {(Object|string)} info String message OR Hash/Array + * @param {(Boolean|string|Object)=} [popup=false] True means alert-box - can be skipped + * @param {(Object|string)=} [debugTitle=""] Title for Hash data - can be skipped + * @param {Object=} [debugOpts] Extra options for debug output + */ +, msg: function (info, popup, debugTitle, debugOpts) { + if ($.isPlainObject(info) && window.debugData) { + if (typeof popup === "string") { + debugOpts = debugTitle; + debugTitle = popup; + } + else if (typeof debugTitle === "object") { + debugOpts = debugTitle; + debugTitle = null; + } + var t = debugTitle || "log( )" + , o = $.extend({ sort: false, returnHTML: false, display: false }, debugOpts); + if (popup === true || o.display) + debugData( info, t, o ); + else if (window.console) + console.log(debugData( info, t, o )); + } + else if (popup) + alert(info); + else if (window.console) + console.log(info); + else { + var id = "#layoutLogger" + , $l = $(id); + if (!$l.length) + $l = createLog(); + $l.children("ul").append('
  • '+ info.replace(/\/g,">") +'
  • '); + } + + function createLog () { + var pos = $.support.fixedPosition ? 'fixed' : 'absolute' + , $e = $('
    ' + + '
    ' + + 'XLayout console.log
    ' + + '
      ' + + '
      ' + ).appendTo("body"); + $e.css('left', $(window).width() - $e.outerWidth() - 5) + if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); + return $e; + }; + } + +}; + + +/* + * $.layout.browser REPLACES removed $.browser, with extra data + * Parsing code here adapted from jQuery 1.8 $.browse + */ +(function(){ + var u = navigator.userAgent.toLowerCase() + , m = /(chrome)[ \/]([\w.]+)/.exec( u ) + || /(webkit)[ \/]([\w.]+)/.exec( u ) + || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( u ) + || /(msie) ([\w.]+)/.exec( u ) + || u.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( u ) + || [] + , b = m[1] || "" + , v = m[2] || 0 + , ie = b === "msie" + , cm = document.compatMode + , $s = $.support + , bs = $s.boxSizing !== undefined ? $s.boxSizing : $s.boxSizingReliable + , bm = !ie || !cm || cm === "CSS1Compat" || $s.boxModel || false + , lb = $.layout.browser = { + version: v + , safari: b === "webkit" // webkit (NOT chrome) = safari + , webkit: b === "chrome" // chrome = webkit + , msie: ie + , isIE6: ie && v == 6 + // ONLY IE reverts to old box-model - Note that compatMode was deprecated as of IE8 + , boxModel: bm + , boxSizing: !!(typeof bs === "function" ? bs() : bs) + }; + ; + if (b) lb[b] = true; // set CURRENT browser + /* OLD versions of jQuery only set $.support.boxModel after page is loaded + * so if this is IE, use support.boxModel to test for quirks-mode (ONLY IE changes boxModel) */ + if (!bm && !cm) $(function(){ lb.boxModel = $s.boxModel; }); +})(); + + +// DEFAULT OPTIONS +$.layout.defaults = { +/* + * LAYOUT & LAYOUT-CONTAINER OPTIONS + * - none of these options are applicable to individual panes + */ + name: "" // Not required, but useful for buttons and used for the state-cookie +, containerClass: "ui-layout-container" // layout-container element +, inset: null // custom container-inset values (override padding) +, scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) +, resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event +, resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky +, resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized +, maskPanesEarly: false // true = create pane-masks on resizer.mouseDown instead of waiting for resizer.dragstart +, onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific +, onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific +, onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements +, onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized +, onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload +, onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload +, initPanes: true // false = DO NOT initialize the panes onLoad - will init later +, showErrorMessages: true // enables fatal error messages to warn developers of common errors +, showDebugMessages: false // display console-and-alert debug msgs - IF this Layout version _has_ debugging code! +// Changing this zIndex value will cause other zIndex values to automatically change +, zIndex: null // the PANE zIndex - resizers and masks will be +1 +// DO NOT CHANGE the zIndex values below unless you clearly understand their relationships +, zIndexes: { // set _default_ z-index values here... + pane_normal: 0 // normal z-index for panes + , content_mask: 1 // applied to overlays used to mask content INSIDE panes during resizing + , resizer_normal: 2 // normal z-index for resizer-bars + , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' + , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer + , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' + } +, errors: { + pane: "pane" // description of "layout pane element" - used only in error messages + , selector: "selector" // description of "jQuery-selector" - used only in error messages + , addButtonError: "Error Adding Button\nInvalid " + , containerMissing: "UI Layout Initialization Error\nThe specified layout-container does not exist." + , centerPaneMissing: "UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element." + , noContainerHeight: "UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!" + , callbackError: "UI Layout Callback Error\nThe EVENT callback is not a valid function." + } +/* + * PANE DEFAULT SETTINGS + * - settings under the 'panes' key become the default settings for *all panes* + * - ALL pane-options can also be set specifically for each panes, which will override these 'default values' + */ +, panes: { // default options for 'all panes' - will be overridden by 'per-pane settings' + applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity + , closable: true // pane can open & close + , resizable: true // when open, pane can be resized + , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out + , initClosed: false // true = init pane as 'closed' + , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing + // SELECTORS + //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane + , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! + , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' + , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) + // GENERIC ROOT-CLASSES - for auto-generated classNames + , paneClass: "ui-layout-pane" // Layout Pane + , resizerClass: "ui-layout-resizer" // Resizer Bar + , togglerClass: "ui-layout-toggler" // Toggler Button + , buttonClass: "ui-layout-button" // CUSTOM Buttons - eg: '[ui-layout-button]-toggle/-open/-close/-pin' + // ELEMENT SIZE & SPACING + //, size: 100 // MUST be pane-specific -initial size of pane + , minSize: 0 // when manually resizing a pane + , maxSize: 0 // ditto, 0 = no limit + , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' + , spacing_closed: 6 // ditto - when pane is 'closed' + , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides + , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' + , togglerAlign_open: "center" // top/left, bottom/right, center, OR... + , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right + , togglerContent_open: "" // text or HTML to put INSIDE the toggler + , togglerContent_closed: "" // ditto + // RESIZING OPTIONS + , resizerDblClickToggle: true // + , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes + , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed + , resizerDragOpacity: 1 // option for ui.draggable + //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar + , maskContents: false // true = add DIV-mask over-or-inside this pane so can 'drag' over IFRAMES + , maskObjects: false // true = add IFRAME-mask over-or-inside this pane to cover objects/applets - content-mask will overlay this mask + , maskZindex: null // will override zIndexes.content_mask if specified - not applicable to iframe-panes + , resizingGrid: false // grid size that the resizers will snap-to during resizing, eg: [20,20] + , livePaneResizing: false // true = LIVE Resizing as resizer is dragged + , liveContentResizing: false // true = re-measure header/footer heights as resizer is dragged + , liveResizingTolerance: 1 // how many px change before pane resizes, to control performance + // SLIDING OPTIONS + , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' + , slideTrigger_open: "click" // click, dblclick, mouseenter + , slideTrigger_close: "mouseleave"// click, mouseleave + , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open + , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) + , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? + , preventQuickSlideClose: $.layout.browser.webkit // Chrome triggers slideClosed as it is opening + , preventPrematureSlideClose: false // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + // PANE-SPECIFIC TIPS & MESSAGES + , tips: { + Open: "Open" // eg: "Open Pane" + , Close: "Close" + , Resize: "Resize" + , Slide: "Slide Open" + , Pin: "Pin" + , Unpin: "Un-Pin" + , noRoomToOpen: "Not enough room to show this panel." // alert if user tries to open a pane that cannot + , minSizeWarning: "Panel has reached its minimum size" // displays in browser statusbar + , maxSizeWarning: "Panel has reached its maximum size" // ditto + } + // HOT-KEYS & MISC + , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver + , enableCursorHotkey: true // enabled 'cursor' hotkeys + //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character + , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' + // PANE ANIMATION + // NOTE: fxSss_open, fxSss_close & fxSss_size options (eg: fxName_open) are auto-generated if not passed + , fxName: "slide" // ('none' or blank), slide, drop, scale -- only relevant to 'open' & 'close', NOT 'size' + , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration + , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } + , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation + , animatePaneSizing: false // true = animate resizing after dragging resizer-bar OR sizePane() is called + /* NOTE: Action-specific FX options are auto-generated from the options above if not specifically set: + fxName_open: "slide" // 'Open' pane animation + fnName_close: "slide" // 'Close' pane animation + fxName_size: "slide" // 'Size' pane animation - when animatePaneSizing = true + fxSpeed_open: null + fxSpeed_close: null + fxSpeed_size: null + fxSettings_open: {} + fxSettings_close: {} + fxSettings_size: {} + */ + // CHILD/NESTED LAYOUTS + , children: null // Layout-options for nested/child layout - even {} is valid as options + , containerSelector: '' // if child is NOT 'directly nested', a selector to find it/them (can have more than one child layout!) + , initChildren: true // true = child layout will be created as soon as _this_ layout completes initialization + , destroyChildren: true // true = destroy child-layout if this pane is destroyed + , resizeChildren: true // true = trigger child-layout.resizeAll() when this pane is resized + // EVENT TRIGGERING + , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes + , triggerEventsDuringLiveResize: true // true = trigger onresize callback REPEATEDLY if livePaneResizing==true + // PANE CALLBACKS + , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start + , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end + , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start + , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end + , onopen_start: null // CALLBACK when pane STARTS to Open + , onopen_end: null // CALLBACK when pane ENDS being Opened + , onclose_start: null // CALLBACK when pane STARTS to Close + , onclose_end: null // CALLBACK when pane ENDS being Closed + , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** + , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** + , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS + , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS + , onswap_start: null // CALLBACK when pane STARTS to Swap + , onswap_end: null // CALLBACK when pane ENDS being Swapped + , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized + , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized + } +/* + * PANE-SPECIFIC SETTINGS + * - options listed below MUST be specified per-pane - they CANNOT be set under 'panes' + * - all options under the 'panes' key can also be set specifically for any pane + * - most options under the 'panes' key apply only to 'border-panes' - NOT the the center-pane + */ +, north: { + paneSelector: ".ui-layout-north" + , size: "auto" // eg: "auto", "30%", .30, 200 + , resizerCursor: "n-resize" // custom = url(myCursor.cur) + , customHotkey: "" // EITHER a charCode (43) OR a character ("o") + } +, south: { + paneSelector: ".ui-layout-south" + , size: "auto" + , resizerCursor: "s-resize" + , customHotkey: "" + } +, east: { + paneSelector: ".ui-layout-east" + , size: 200 + , resizerCursor: "e-resize" + , customHotkey: "" + } +, west: { + paneSelector: ".ui-layout-west" + , size: 200 + , resizerCursor: "w-resize" + , customHotkey: "" + } +, center: { + paneSelector: ".ui-layout-center" + , minWidth: 0 + , minHeight: 0 + } +}; + +$.layout.optionsMap = { + // layout/global options - NOT pane-options + layout: ("name,instanceKey,stateManagement,effects,inset,zIndexes,errors," + + "zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly," + + "outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay," + + "onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end").split(",") +// borderPanes: [ ALL options that are NOT specified as 'layout' ] + // default.panes options that apply to the center-pane (most options apply _only_ to border-panes) +, center: ("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad," + + "showOverflowOnHover,maskContents,maskObjects,liveContentResizing," + + "containerSelector,children,initChildren,resizeChildren,destroyChildren," + + "onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(",") + // options that MUST be specifically set 'per-pane' - CANNOT set in the panes (defaults) key +, noDefault: ("paneSelector,resizerCursor,customHotkey").split(",") +}; + +/** + * Processes options passed in converts flat-format data into subkey (JSON) format + * In flat-format, subkeys are _currently_ separated with 2 underscores, like north__optName + * Plugins may also call this method so they can transform their own data + * + * @param {!Object} hash Data/options passed by user - may be a single level or nested levels + * @param {boolean=} [addKeys=false] Should the primary layout.options keys be added if they do not exist? + * @return {Object} Returns hash of minWidth & minHeight + */ +$.layout.transformData = function (hash, addKeys) { + var json = addKeys ? { panes: {}, center: {} } : {} // init return object + , branch, optKey, keys, key, val, i, c; + + if (typeof hash !== "object") return json; // no options passed + + // convert all 'flat-keys' to 'sub-key' format + for (optKey in hash) { + branch = json; + val = hash[ optKey ]; + keys = optKey.split("__"); // eg: west__size or north__fxSettings__duration + c = keys.length - 1; + // convert underscore-delimited to subkeys + for (i=0; i <= c; i++) { + key = keys[i]; + if (i === c) { // last key = value + if ($.isPlainObject( val )) + branch[key] = $.layout.transformData( val ); // RECURSE + else + branch[key] = val; + } + else { + if (!branch[key]) + branch[key] = {}; // create the subkey + // recurse to sub-key for next loop - if not done + branch = branch[key]; + } + } + } + return json; +}; + +// INTERNAL CONFIG DATA - DO NOT CHANGE THIS! +$.layout.backwardCompatibility = { + // data used by renameOldOptions() + map: { + // OLD Option Name: NEW Option Name + applyDefaultStyles: "applyDemoStyles" + // CHILD/NESTED LAYOUTS + , childOptions: "children" + , initChildLayout: "initChildren" + , destroyChildLayout: "destroyChildren" + , resizeChildLayout: "resizeChildren" + , resizeNestedLayout: "resizeChildren" + // MISC Options + , resizeWhileDragging: "livePaneResizing" + , resizeContentWhileDragging: "liveContentResizing" + , triggerEventsWhileDragging: "triggerEventsDuringLiveResize" + , maskIframesOnResize: "maskContents" + // STATE MANAGEMENT + , useStateCookie: "stateManagement.enabled" + , "cookie.autoLoad": "stateManagement.autoLoad" + , "cookie.autoSave": "stateManagement.autoSave" + , "cookie.keys": "stateManagement.stateKeys" + , "cookie.name": "stateManagement.cookie.name" + , "cookie.domain": "stateManagement.cookie.domain" + , "cookie.path": "stateManagement.cookie.path" + , "cookie.expires": "stateManagement.cookie.expires" + , "cookie.secure": "stateManagement.cookie.secure" + // OLD Language options + , noRoomToOpenTip: "tips.noRoomToOpen" + , togglerTip_open: "tips.Close" // open = Close + , togglerTip_closed: "tips.Open" // closed = Open + , resizerTip: "tips.Resize" + , sliderTip: "tips.Slide" + } + +/** +* @param {Object} opts +*/ +, renameOptions: function (opts) { + var map = $.layout.backwardCompatibility.map + , oldData, newData, value + ; + for (var itemPath in map) { + oldData = getBranch( itemPath ); + value = oldData.branch[ oldData.key ]; + if (value !== undefined) { + newData = getBranch( map[itemPath], true ); + newData.branch[ newData.key ] = value; + delete oldData.branch[ oldData.key ]; + } + } + + /** + * @param {string} path + * @param {boolean=} [create=false] Create path if does not exist + */ + function getBranch (path, create) { + var a = path.split(".") // split keys into array + , c = a.length - 1 + , D = { branch: opts, key: a[c] } // init branch at top & set key (last item) + , i = 0, k, undef; + for (; i 0) { + if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + // make hidden, then visible to 'refresh' display after animation + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerHeight + * @param {boolean=} [autoHide=false] + */ +, setOuterHeight = function (el, outerHeight, autoHide) { + var $E = el, h; + if (isStr(el)) $E = $Ps[el]; // west + else if (!el.jquery) $E = $(el); + h = cssH($E, outerHeight); + $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent + if (h > 0 && $E.innerWidth() > 0) { + if (autoHide && $E.data('autoHidden')) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + + /** + * Converts any 'size' params to a pixel/integer size, if not already + * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated + * + /** + * @param {string} pane + * @param {(string|number)=} size + * @param {string=} [dir] + * @return {number} + */ +, _parseSize = function (pane, size, dir) { + if (!dir) dir = _c[pane].dir; + + if (isStr(size) && size.match(/%/)) + size = (size === '100%') ? -1 : parseInt(size, 10) / 100; // convert % to decimal + + if (size === 0) + return 0; + else if (size >= 1) + return parseInt(size, 10); + + var o = options, avail = 0; + if (dir=="horz") // north or south or center.minHeight + avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); + else if (dir=="vert") // east or west or center.minWidth + avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); + + if (size === -1) // -1 == 100% + return avail; + else if (size > 0) // percentage, eg: .25 + return round(avail * size); + else if (pane=="center") + return 0; + else { // size < 0 || size=='auto' || size==Missing || size==Invalid + // auto-size the pane + var dim = (dir === "horz" ? "height" : "width") + , $P = $Ps[pane] + , $C = dim === 'height' ? $Cs[pane] : false + , vis = $.layout.showInvisibly($P) // show pane invisibly if hidden + , szP = $P.css(dim) // SAVE current pane size + , szC = $C ? $C.css(dim) : 0 // SAVE current content size + ; + $P.css(dim, "auto"); + if ($C) $C.css(dim, "auto"); + size = (dim === "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE + $P.css(dim, szP).css(vis); // RESET size & visibility + if ($C) $C.css(dim, szC); + return size; + } + } + + /** + * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added + * + * @param {(string|!Object)} pane + * @param {boolean=} [inclSpace=false] + * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes + */ +, getPaneSize = function (pane, inclSpace) { + var + $P = $Ps[pane] + , o = options[pane] + , s = state[pane] + , oSp = (inclSpace ? o.spacing_open : 0) + , cSp = (inclSpace ? o.spacing_closed : 0) + ; + if (!$P || s.isHidden) + return 0; + else if (s.isClosed || (s.isSliding && inclSpace)) + return cSp; + else if (_c[pane].dir === "horz") + return $P.outerHeight() + oSp; + else // dir === "vert" + return $P.outerWidth() + oSp; + } + + /** + * Calculate min/max pane dimensions and limits for resizing + * + * @param {string} pane + * @param {boolean=} [slide=false] + */ +, setSizeLimits = function (pane, slide) { + if (!isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , type = c.sizeType.toLowerCase() + , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param + , $P = $Ps[pane] + , paneSpacing = o.spacing_open + // measure the pane on the *opposite side* from this pane + , altPane = _c.oppositeEdge[pane] + , altS = state[altPane] + , $altP = $Ps[altPane] + , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) + , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) + // limitSize prevents this pane from 'overlapping' opposite pane + , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) + , minCenterDims = cssMinDims("center") + , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) + // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them + , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) + , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) + , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) + , r = s.resizerPosition = {} // used to set resizing limits + , top = sC.inset.top + , left = sC.inset.left + , W = sC.innerWidth + , H = sC.innerHeight + , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east + ; + switch (pane) { + case "north": r.min = top + minSize; + r.max = top + maxSize; + break; + case "west": r.min = left + minSize; + r.max = left + maxSize; + break; + case "south": r.min = top + H - maxSize - rW; + r.max = top + H - minSize - rW; + break; + case "east": r.min = left + W - maxSize - rW; + r.max = left + W - minSize - rW; + break; + }; + } + + /** + * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes + * + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height + */ +, calcNewCenterPaneDims = function () { + var d = { + top: getPaneSize("north", true) // true = include 'spacing' value for pane + , bottom: getPaneSize("south", true) + , left: getPaneSize("west", true) + , right: getPaneSize("east", true) + , width: 0 + , height: 0 + }; + + // NOTE: sC = state.container + // calc center-pane outer dimensions + d.width = sC.innerWidth - d.left - d.right; // outerWidth + d.height = sC.innerHeight - d.bottom - d.top; // outerHeight + // add the 'container border/padding' to get final positions relative to the container + d.top += sC.inset.top; + d.bottom += sC.inset.bottom; + d.left += sC.inset.left; + d.right += sC.inset.right; + + return d; + } + + + /** + * @param {!Object} el + * @param {boolean=} [allStates=false] + */ +, getHoverClasses = function (el, allStates) { + var + $El = $(el) + , type = $El.data("layoutRole") + , pane = $El.data("layoutEdge") + , o = options[pane] + , root = o[type +"Class"] + , _pane = "-"+ pane // eg: "-west" + , _open = "-open" + , _closed = "-closed" + , _slide = "-sliding" + , _hover = "-hover " // NOTE the trailing space + , _state = $El.hasClass(root+_closed) ? _closed : _open + , _alt = _state === _closed ? _open : _closed + , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) + ; + if (allStates) // when 'removing' classes, also remove alternate-state classes + classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); + + if (type=="resizer" && $El.hasClass(root+_slide)) + classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); + + return $.trim(classes); + } +, addHover = function (evt, el) { + var $E = $(el || this); + if (evt && $E.data("layoutRole") === "toggler") + evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar + $E.addClass( getHoverClasses($E) ); + } +, removeHover = function (evt, el) { + var $E = $(el || this); + $E.removeClass( getHoverClasses($E, true) ); + } + +, onResizerEnter = function (evt) { // ALSO called by toggler.mouseenter + var pane = $(this).data("layoutEdge") + , s = state[pane] + , $d = $(document) + ; + // ignore closed-panes and mouse moving back & forth over resizer! + // also ignore if ANY pane is currently resizing + if ( s.isResizing || state.paneResizing ) return; + + if (options.maskPanesEarly) + showMasks( pane, { resizing: true }); + } +, onResizerLeave = function (evt, el) { + var e = el || this // el is only passed when called by the timer + , pane = $(e).data("layoutEdge") + , name = pane +"ResizerLeave" + , $d = $(document) + ; + timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set + timer.clear(name); // cancel enableSelection timer - may re/set below + // this method calls itself on a timer because it needs to allow + // enough time for dragging to kick-in and set the isResizing flag + // dragging has a 100ms delay set, so this delay must be >100 + if (!el) // 1st call - mouseleave event + timer.set(name, function(){ onResizerLeave(evt, e); }, 200); + // if user is resizing, dragStop will reset everything, so skip it here + else if (options.maskPanesEarly && !state.paneResizing) // 2nd call - by timer + hideMasks(); + } + +/* + * ########################### + * INITIALIZATION METHODS + * ########################### + */ + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see none - triggered onInit + * @return mixed true = fully initialized | false = panes not initialized (yet) | 'cancel' = abort + */ +, _create = function () { + // initialize config/options + initOptions(); + var o = options + , s = state; + + // TEMP state so isInitialized returns true during init process + s.creatingLayout = true; + + // init plugins for this layout, if there are any (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onCreate ); + + // options & state have been initialized, so now run beforeLoad callback + // onload will CANCEL layout creation if it returns false + if (false === _runCallbacks("onload_start")) + return 'cancel'; + + // initialize the container element + _initContainer(); + + // bind hotkey function - keyDown - if required + initHotkeys(); + + // bind window.onunload + $(window).bind("unload."+ sID, unload); + + // init plugins for this layout, if there are any (eg: customButtons) + runPluginCallbacks( Instance, $.layout.onLoad ); + + // if layout elements are hidden, then layout WILL NOT complete initialization! + // initLayoutElements will set initialized=true and run the onload callback IF successful + if (o.initPanes) _initLayoutElements(); + + delete s.creatingLayout; + + return state.initialized; + } + + /** + * Initialize the layout IF not already + * + * @see All methods in Instance run this test + * @return boolean true = layoutElements have been initialized | false = panes are not initialized (yet) + */ +, isInitialized = function () { + if (state.initialized || state.creatingLayout) return true; // already initialized + else return _initLayoutElements(); // try to init panes NOW + } + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see _create() & isInitialized + * @param {boolean=} [retry=false] // indicates this is a 2nd try + * @return An object pointer to the instance created + */ +, _initLayoutElements = function (retry) { + // initialize config/options + var o = options; + // CANNOT init panes inside a hidden container! + if (!$N.is(":visible")) { + // handle Chrome bug where popup window 'has no height' + // if layout is BODY element, try again in 50ms + // SEE: http://layout.jquery-dev.com/samples/test_popup_window.html + if ( !retry && browser.webkit && $N[0].tagName === "BODY" ) + setTimeout(function(){ _initLayoutElements(true); }, 50); + return false; + } + + // a center pane is required, so make sure it exists + if (!getPane("center").length) { + return _log( o.errors.centerPaneMissing ); + } + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // update Container dims + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + + // initialize all layout elements + initPanes(); // size & position panes - calls initHandles() - which calls initResizable() + + if (o.scrollToBookmarkOnLoad) { + var l = self.location; + if (l.hash) l.replace( l.hash ); // scrollTo Bookmark + } + + // check to see if this layout 'nested' inside a pane + if (Instance.hasParentLayout) + o.resizeWithWindow = false; + // bind resizeAll() for 'this layout instance' to window.resize event + else if (o.resizeWithWindow) + $(window).bind("resize."+ sID, windowResize); + + delete state.creatingLayout; + state.initialized = true; + + // init plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onReady ); + + // now run the onload callback, if exists + _runCallbacks("onload_end"); + + return true; // elements initialized successfully + } + + /** + * Initialize nested layouts for a specific pane - can optionally pass layout-options + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {Object=} [opts] Layout-options - if passed, will OVERRRIDE options[pane].children + * @return An object pointer to the layout instance created - or null + */ +, createChildren = function (evt_or_pane, opts) { + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + ; + if (!$P) return; + var $C = $Cs[pane] + , s = state[pane] + , o = options[pane] + , sm = options.stateManagement || {} + , cos = opts ? (o.children = opts) : o.children + ; + if ( $.isPlainObject( cos ) ) + cos = [ cos ]; // convert a hash to a 1-elem array + else if (!cos || !$.isArray( cos )) + return; + + $.each( cos, function (idx, co) { + if ( !$.isPlainObject( co ) ) return; + + // determine which element is supposed to be the 'child container' + // if pane has a 'containerSelector' OR a 'content-div', use those instead of the pane + var $containers = co.containerSelector ? $P.find( co.containerSelector ) : ($C || $P); + + $containers.each(function(){ + var $cont = $(this) + , child = $cont.data("layout") // see if a child-layout ALREADY exists on this element + ; + // if no layout exists, but children are set, try to create the layout now + if (!child) { + // TODO: see about moving this to the stateManagement plugin, as a method + // set a unique child-instance key for this layout, if not already set + setInstanceKey({ container: $cont, options: co }, s ); + // If THIS layout has a hash in stateManagement.autoLoad, + // then see if it also contains state-data for this child-layout + // If so, copy the stateData to child.options.stateManagement.autoLoad + if ( sm.includeChildren && state.stateData[pane] ) { + // THIS layout's state was cached when its state was loaded + var paneChildren = state.stateData[pane].children || {} + , childState = paneChildren[ co.instanceKey ] + , co_sm = co.stateManagement || (co.stateManagement = { autoLoad: true }) + ; + // COPY the stateData into the autoLoad key + if ( co_sm.autoLoad === true && childState ) { + co_sm.autoSave = false; // disable autoSave because saving handled by parent-layout + co_sm.includeChildren = true; // cascade option - FOR NOW + co_sm.autoLoad = $.extend(true, {}, childState); // COPY the state-hash + } + } + + // create the layout + child = $cont.layout( co ); + + // if successful, update data + if (child) { + // add the child and update all layout-pointers + // MAY have already been done by child-layout calling parent.refreshChildren() + refreshChildren( pane, child ); + } + } + }); + }); + } + +, setInstanceKey = function (child, parentPaneState) { + // create a named key for use in state and instance branches + var $c = child.container + , o = child.options + , sm = o.stateManagement + , key = o.instanceKey || $c.data("layoutInstanceKey") + ; + if (!key) key = (sm && sm.cookie ? sm.cookie.name : '') || o.name; // look for a name/key + if (!key) key = "layout"+ (++parentPaneState.childIdx); // if no name/key found, generate one + else key = key.replace(/[^\w-]/gi, '_').replace(/_{2,}/g, '_'); // ensure is valid as a hash key + o.instanceKey = key; + $c.data("layoutInstanceKey", key); // useful if layout is destroyed and then recreated + return key; + } + + /** + * @param {string} pane The pane being opened, ie: north, south, east, or west + * @param {Object=} newChild New child-layout Instance to add to this pane + */ +, refreshChildren = function (pane, newChild) { + var $P = $Ps[pane] + , pC = children[pane] + , s = state[pane] + , o + ; + // check for destroy()ed layouts and update the child pointers & arrays + if ($.isPlainObject( pC )) { + $.each( pC, function (key, child) { + if (child.destroyed) delete pC[key] + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) + pC = children[pane] = null; // clear children hash + } + + // see if there is a directly-nested layout inside this pane + // if there is, then there can be only ONE child-layout, so check that... + if (!newChild && !pC) { + newChild = $P.data("layout"); + } + + // if a newChild instance was passed, add it to children[pane] + if (newChild) { + // update child.state + newChild.hasParentLayout = true; // set parent-flag in child + // instanceKey is a key-name used in both state and children + o = newChild.options; + // set a unique child-instance key for this layout, if not already set + setInstanceKey( newChild, s ); + // add pointer to pane.children hash + if (!pC) pC = children[pane] = {}; // create an empty children hash + pC[ o.instanceKey ] = newChild.container.data("layout"); // add childLayout instance + } + + // ALWAYS refresh the pane.children alias, even if null + Instance[pane].children = children[pane]; + + // if newChild was NOT passed - see if there is a child layout NOW + if (!newChild) { + createChildren(pane); // MAY create a child and re-call this method + } + } + +, windowResize = function () { + var o = options + , delay = Number(o.resizeWithWindowDelay); + if (delay < 10) delay = 100; // MUST have a delay! + // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway + timer.clear("winResize"); // if already running + timer.set("winResize", function(){ + timer.clear("winResize"); + timer.clear("winResizeRepeater"); + var dims = elDims( $N, o.inset ); + // only trigger resizeAll() if container has changed size + if (dims.innerWidth !== sC.innerWidth || dims.innerHeight !== sC.innerHeight) + resizeAll(); + }, delay); + // ALSO set fixed-delay timer, if not already running + if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); + } + +, setWindowResizeRepeater = function () { + var delay = Number(options.resizeWithWindowMaxDelay); + if (delay > 0) + timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); + } + +, unload = function () { + var o = options; + + _runCallbacks("onunload_start"); + + // trigger plugin callabacks for this layout (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onUnload ); + + _runCallbacks("onunload_end"); + } + + /** + * Validate and initialize container CSS and events + * + * @see _create() + */ +, _initContainer = function () { + var + N = $N[0] + , $H = $("html") + , tag = sC.tagName = N.tagName + , id = sC.id = N.id + , cls = sC.className = N.className + , o = options + , name = o.name + , props = "position,margin,padding,border" + , css = "layoutCSS" + , CSS = {} + , hid = "hidden" // used A LOT! + // see if this container is a 'pane' inside an outer-layout + , parent = $N.data("parentLayout") // parent-layout Instance + , pane = $N.data("layoutEdge") // pane-name in parent-layout + , isChild = parent && pane + , num = $.layout.cssNum + , $parent, n + ; + // sC = state.container + sC.selector = $N.selector.split(".slice")[0]; + sC.ref = (o.name ? o.name +' layout / ' : '') + tag + (id ? "#"+id : cls ? '.['+cls+']' : ''); // used in messages + sC.isBody = (tag === "BODY"); + + // try to find a parent-layout + if (!isChild && !sC.isBody) { + $parent = $N.closest("."+ $.layout.defaults.panes.paneClass); + parent = $parent.data("parentLayout"); + pane = $parent.data("layoutEdge"); + isChild = parent && pane; + } + + $N .data({ + layout: Instance + , layoutContainer: sID // FLAG to indicate this is a layout-container - contains unique internal ID + }) + .addClass(o.containerClass) + ; + var layoutMethods = { + destroy: '' + , initPanes: '' + , resizeAll: 'resizeAll' + , resize: 'resizeAll' + }; + // loop hash and bind all methods - include layoutID namespacing + for (name in layoutMethods) { + $N.bind("layout"+ name.toLowerCase() +"."+ sID, Instance[ layoutMethods[name] || name ]); + } + + // if this container is another layout's 'pane', then set child/parent pointers + if (isChild) { + // update parent flag + Instance.hasParentLayout = true; + // set pointers to THIS child-layout (Instance) in parent-layout + parent.refreshChildren( pane, Instance ); + } + + // SAVE original container CSS for use in destroy() + if (!$N.data(css)) { + // handle props like overflow different for BODY & HTML - has 'system default' values + if (sC.isBody) { + // SAVE CSS + $N.data(css, $.extend( styles($N, props), { + height: $N.css("height") + , overflow: $N.css("overflow") + , overflowX: $N.css("overflowX") + , overflowY: $N.css("overflowY") + })); + // ALSO SAVE CSS + $H.data(css, $.extend( styles($H, 'padding'), { + height: "auto" // FF would return a fixed px-size! + , overflow: $H.css("overflow") + , overflowX: $H.css("overflowX") + , overflowY: $H.css("overflowY") + })); + } + else // handle props normally for non-body elements + $N.data(css, styles($N, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY") ); + } + + try { + // common container CSS + CSS = { + overflow: hid + , overflowX: hid + , overflowY: hid + }; + $N.css( CSS ); + + if (o.inset && !$.isPlainObject(o.inset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.inset, 10) || 0 + o.inset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + + // format html & body if this is a full page layout + if (sC.isBody) { + // if HTML has padding, use this as an outer-spacing around BODY + if (!o.outset) { + // use padding from parent-elem (HTML) as outset + o.outset = { + top: num($H, "paddingTop") + , bottom: num($H, "paddingBottom") + , left: num($H, "paddingLeft") + , right: num($H, "paddingRight") + }; + } + else if (!$.isPlainObject(o.outset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.outset, 10) || 0 + o.outset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + // HTML + $H.css( CSS ).css({ + height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + }); + // BODY + if (browser.isIE6) { + // IE6 CANNOT use the trick of setting absolute positioning on all 4 sides - must have 'height' + $N.css({ + width: "100%" + , height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + , position: "relative" + }); + // convert body padding to an inset option - the border cannot be measured in IE6! + if (!o.inset) o.inset = elDims( $N ).inset; + } + else { // use absolute positioning for BODY to allow borders & padding without overflow + $N.css({ + width: "auto" + , height: "auto" + , margin: 0 + , position: "absolute" // allows for border and padding on BODY + }); + // apply edge-positioning created above + $N.css( o.outset ); + } + // set current layout-container dimensions + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + } + else { + // container MUST have 'position' + var p = $N.css("position"); + if (!p || !p.match(/(fixed|absolute|relative)/)) + $N.css("position","relative"); + + // set current layout-container dimensions + if ( $N.is(":visible") ) { + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT change insetX (padding) values + if (sC.innerHeight < 1) // container has no 'height' - warn developer + _log( o.errors.noContainerHeight.replace(/CONTAINER/, sC.ref) ); + } + } + + // if container has min-width/height, then enable scrollbar(s) + if ( num($N, "minWidth") ) $N.parent().css("overflowX","auto"); + if ( num($N, "minHeight") ) $N.parent().css("overflowY","auto"); + + } catch (ex) {} + } + + /** + * Bind layout hotkeys - if options enabled + * + * @see _create() and addPane() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHotkeys = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + // bind keyDown to capture hotkeys, if option enabled for ANY pane + $.each(panes, function (i, pane) { + var o = options[pane]; + if (o.enableCursorHotkey || o.customHotkey) { + $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE + return false; // BREAK - binding was done + } + }); + } + + /** + * Build final OPTIONS data + * + * @see _create() + */ +, initOptions = function () { + var data, d, pane, key, val, i, c, o; + + // reprocess user's layout-options to have correct options sub-key structure + opts = $.layout.transformData( opts, true ); // panes = default subkey + + // auto-rename old options for backward compatibility + opts = $.layout.backwardCompatibility.renameAllOptions( opts ); + + // if user-options has 'panes' key (pane-defaults), clean it... + if (!$.isEmptyObject(opts.panes)) { + // REMOVE any pane-defaults that MUST be set per-pane + data = $.layout.optionsMap.noDefault; + for (i=0, c=data.length; i 0) { + z.pane_normal = zo; + z.content_mask = max(zo+1, z.content_mask); // MIN = +1 + z.resizer_normal = max(zo+2, z.resizer_normal); // MIN = +2 + } + + // DELETE 'panes' key now that we are done - values were copied to EACH pane + delete options.panes; + + + function createFxOptions ( pane ) { + var o = options[pane] + , d = options.panes; + // ensure fxSettings key to avoid errors + if (!o.fxSettings) o.fxSettings = {}; + if (!d.fxSettings) d.fxSettings = {}; + + $.each(["_open","_close","_size"], function (i,n) { + var + sName = "fxName"+ n + , sSpeed = "fxSpeed"+ n + , sSettings = "fxSettings"+ n + // recalculate fxName according to specificity rules + , fxName = o[sName] = + o[sName] // options.west.fxName_open + || d[sName] // options.panes.fxName_open + || o.fxName // options.west.fxName + || d.fxName // options.panes.fxName + || "none" // MEANS $.layout.defaults.panes.fxName == "" || false || null || 0 + , fxExists = $.effects && ($.effects[fxName] || ($.effects.effect && $.effects.effect[fxName])) + ; + // validate fxName to ensure is valid effect - MUST have effect-config data in options.effects + if (fxName === "none" || !options.effects[fxName] || !fxExists) + fxName = o[sName] = "none"; // effect not loaded OR unrecognized fxName + + // set vars for effects subkeys to simplify logic + var fx = options.effects[fxName] || {} // effects.slide + , fx_all = fx.all || null // effects.slide.all + , fx_pane = fx[pane] || null // effects.slide.west + ; + // create fxSpeed[_open|_close|_size] + o[sSpeed] = + o[sSpeed] // options.west.fxSpeed_open + || d[sSpeed] // options.west.fxSpeed_open + || o.fxSpeed // options.west.fxSpeed + || d.fxSpeed // options.panes.fxSpeed + || null // DEFAULT - let fxSetting.duration control speed + ; + // create fxSettings[_open|_close|_size] + o[sSettings] = $.extend( + true + , {} + , fx_all // effects.slide.all + , fx_pane // effects.slide.west + , d.fxSettings // options.panes.fxSettings + , o.fxSettings // options.west.fxSettings + , d[sSettings] // options.panes.fxSettings_open + , o[sSettings] // options.west.fxSettings_open + ); + }); + + // DONE creating action-specific-settings for this pane, + // so DELETE generic options - are no longer meaningful + delete o.fxName; + delete o.fxSpeed; + delete o.fxSettings; + } + } + + /** + * Initialize module objects, styling, size and position for all panes + * + * @see _initElements() + * @param {string} pane The pane to process + */ +, getPane = function (pane) { + var sel = options[pane].paneSelector + if (sel.substr(0,1)==="#") // ID selector + // NOTE: elements selected 'by ID' DO NOT have to be 'children' + return $N.find(sel).eq(0); + else { // class or other selector + var $P = $N.children(sel).eq(0); + // look for the pane nested inside a 'form' element + return $P.length ? $P : $N.children("form:first").children(sel).eq(0); + } + } + + /** + * @param {Object=} evt + */ +, initPanes = function (evt) { + // stopPropagation if called by trigger("layoutinitpanes") - use evtPane utility + evtPane(evt); + + // NOTE: do north & south FIRST so we can measure their height - do center LAST + $.each(_c.allPanes, function (idx, pane) { + addPane( pane, true ); + }); + + // init the pane-handles NOW in case we have to hide or close the pane below + initHandles(); + + // now that all panes have been initialized and initially-sized, + // make sure there is really enough space available for each pane + $.each(_c.borderPanes, function (i, pane) { + if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN + setSizeLimits(pane); + makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() + } + }); + // size center-pane AGAIN in case we 'closed' a border-pane in loop above + sizeMidPanes("center"); + + // Chrome/Webkit sometimes fires callbacks BEFORE it completes resizing! + // Before RC30.3, there was a 10ms delay here, but that caused layout + // to load asynchrously, which is BAD, so try skipping delay for now + + // process pane contents and callbacks, and init/resize child-layout if exists + $.each(_c.allPanes, function (idx, pane) { + afterInitPane(pane); + }); + } + + /** + * Add a pane to the layout - subroutine of initPanes() + * + * @see initPanes() + * @param {string} pane The pane to process + * @param {boolean=} [force=false] Size content after init + */ +, addPane = function (pane, force) { + if ( !force && !isInitialized() ) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , fx = s.fx + , spacing = o.spacing_open || 0 + , isCenter = (pane === "center") + , CSS = {} + , $P = $Ps[pane] + , size, minSize, maxSize, child + ; + // if pane-pointer already exists, remove the old one first + if ($P) + removePane( pane, false, true, false ); + else + $Cs[pane] = false; // init + + $P = $Ps[pane] = getPane(pane); + if (!$P.length) { + $Ps[pane] = false; // logic + return; + } + + // SAVE original Pane CSS + if (!$P.data("layoutCSS")) { + var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; + $P.data("layoutCSS", styles($P, props)); + } + + // create alias for pane data in Instance - initHandles will add more + Instance[pane] = { + name: pane + , pane: $Ps[pane] + , content: $Cs[pane] + , options: options[pane] + , state: state[pane] + , children: children[pane] + }; + + // add classes, attributes & events + $P .data({ + parentLayout: Instance // pointer to Layout Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "pane" + }) + .css(c.cssReq).css("zIndex", options.zIndexes.pane_normal) + .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles + .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' + .bind("mouseenter."+ sID, addHover ) + .bind("mouseleave."+ sID, removeHover ) + ; + var paneMethods = { + hide: '' + , show: '' + , toggle: '' + , close: '' + , open: '' + , slideOpen: '' + , slideClose: '' + , slideToggle: '' + , size: 'sizePane' + , sizePane: 'sizePane' + , sizeContent: '' + , sizeHandles: '' + , enableClosable: '' + , disableClosable: '' + , enableSlideable: '' + , disableSlideable: '' + , enableResizable: '' + , disableResizable: '' + , swapPanes: 'swapPanes' + , swap: 'swapPanes' + , move: 'swapPanes' + , removePane: 'removePane' + , remove: 'removePane' + , createChildren: '' + , resizeChildren: '' + , resizeAll: 'resizeAll' + , resizeLayout: 'resizeAll' + } + , name; + // loop hash and bind all methods - include layoutID namespacing + for (name in paneMethods) { + $P.bind("layoutpane"+ name.toLowerCase() +"."+ sID, Instance[ paneMethods[name] || name ]); + } + + // see if this pane has a 'scrolling-content element' + initContent(pane, false); // false = do NOT sizeContent() - called later + + if (!isCenter) { + // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) + // if o.size is auto or not valid, then MEASURE the pane and use that as its 'size' + size = s.size = _parseSize(pane, o.size); + minSize = _parseSize(pane,o.minSize) || 1; + maxSize = _parseSize(pane,o.maxSize) || 100000; + if (size > 0) size = max(min(size, maxSize), minSize); + s.autoResize = o.autoResize; // used with percentage sizes + + // state for border-panes + s.isClosed = false; // true = pane is closed + s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes + s.isResizing= false; // true = pane is in process of being resized + s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! + + // array for 'pin buttons' whose classNames are auto-updated on pane-open/-close + if (!s.pins) s.pins = []; + } + // states common to ALL panes + s.tagName = $P[0].tagName; + s.edge = pane; // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) + s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically + s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic + + // init pane positioning + setPanePosition( pane ); + + // if pane is not visible, + if (dir === "horz") // north or south pane + CSS.height = cssH($P, size); + else if (dir === "vert") // east or west pane + CSS.width = cssW($P, size); + //else if (isCenter) {} + + $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes + if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + initHandles( pane ); + initHotkeys( pane ); + } + + // close or hide the pane if specified in settings + if (o.initClosed && o.closable && !o.initHidden) + close(pane, true, true); // true, true = force, noAnimation + else if (o.initHidden || o.initClosed) + hide(pane); // will be completely invisible - no resizer or spacing + else if (!s.noRoom) + // make the pane visible - in case was initially hidden + $P.css("display","block"); + // ELSE setAsOpen() - called later by initHandles() + + // RESET visibility now - pane will appear IF display:block + $P.css("visibility","visible"); + + // check option for auto-handling of pop-ups & drop-downs + if (o.showOverflowOnHover) + $P.hover( allowOverflow, resetOverflow ); + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + afterInitPane( pane ); + } + } + +, afterInitPane = function (pane) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + ; + if (!$P) return; + + // see if there is a directly-nested layout inside this pane + if ($P.data("layout")) + refreshChildren( pane, $P.data("layout") ); + + // process pane contents and callbacks, and init/resize child-layout if exists + if (s.isVisible) { // pane is OPEN + if (state.initialized) // this pane was added AFTER layout was created + resizeAll(); // will also sizeContent + else + sizeContent(pane); + + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildren(pane, true); // a previously existing childLayout + } + + // init childLayouts - even if pane is not visible + if (o.initChildren && o.children) + createChildren(pane); + } + + /** + * @param {string=} panes The pane(s) to process + */ +, setPanePosition = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane] + , $R = $Rs[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , CSS = {} + ; + if (!$P) return; // pane does not exist - skip + + // set css-position to account for container borders & padding + switch (pane) { + case "north": CSS.top = sC.inset.top; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "south": CSS.bottom = sC.inset.bottom; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "west": CSS.left = sC.inset.left; // top, bottom & height set by sizeMidPanes() + break; + case "east": CSS.right = sC.inset.right; // ditto + break; + case "center": // top, left, width & height set by sizeMidPanes() + } + // apply position + $P.css(CSS); + + // update resizer position + if ($R && s.isClosed) + $R.css(side, sC.inset[side]); + else if ($R && !s.isHidden) + $R.css(side, sC.inset[side] + getPaneSize(pane)); + }); + } + + /** + * Initialize module objects, styling, size and position for all resize bars and toggler buttons + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHandles = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane]; + $Rs[pane] = false; // INIT + $Ts[pane] = false; + if (!$P) return; // pane does not exist - skip + + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , paneId = o.paneSelector.substr(0,1) === "#" ? o.paneSelector.substr(1) : "" + , rClass = o.resizerClass + , tClass = o.togglerClass + , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) + , _pane = "-"+ pane // used for classNames + , _state = (s.isVisible ? "-open" : "-closed") // used for classNames + , I = Instance[pane] + // INIT RESIZER BAR + , $R = I.resizer = $Rs[pane] = $("
      ") + // INIT TOGGLER BUTTON + , $T = I.toggler = (o.closable ? $Ts[pane] = $("
      ") : false) + ; + + //if (s.isVisible && o.resizable) ... handled by initResizable + if (!s.isVisible && o.slidable) + $R.attr("title", o.tips.Slide).css("cursor", o.sliderCursor); + + $R // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" + .attr("id", paneId ? paneId +"-resizer" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "resizer" + }) + .css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal) + .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles + .addClass(rClass +" "+ rClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if resizing is not enabled - handle with CSS instead + .hover(onResizerEnter, onResizerLeave) // ALWAYS NEED resizer.mouseleave to balance toggler.mouseenter + .mousedown($.layout.disableTextSelection) // prevent text-selection OUTSIDE resizer + .mouseup($.layout.enableTextSelection) // not really necessary, but just in case + .appendTo($N) // append DIV to container + ; + if ($.fn.disableSelection) + $R.disableSelection(); // prevent text-selection INSIDE resizer + if (o.resizerDblClickToggle) + $R.bind("dblclick."+ sID, toggle ); + + if ($T) { + $T // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" + .attr("id", paneId ? paneId +"-toggler" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "toggler" + }) + .css(_c.togglers.cssReq) // add base/required styles + .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles + .addClass(tClass +" "+ tClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if toggling is not enabled - handle with CSS instead + .bind("mouseenter", onResizerEnter) // NEED toggler.mouseenter because mouseenter MAY NOT fire on resizer + .appendTo($R) // append SPAN to resizer DIV + ; + // ADD INNER-SPANS TO TOGGLER + if (o.togglerContent_open) // ui-layout-open + $(""+ o.togglerContent_open +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .data("layoutRole", "togglerContent") + .data("layoutEdge", pane) + .addClass("content content-open") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! + ; + if (o.togglerContent_closed) // ui-layout-closed + $(""+ o.togglerContent_closed +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .addClass("content content-closed") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! + ; + // ADD TOGGLER.click/.hover + enableClosable(pane); + } + + // add Draggable events + initResizable(pane); + + // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" + if (s.isVisible) + setAsOpen(pane); // onOpen will be called, but NOT onResize + else { + setAsClosed(pane); // onClose will be called + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + }); + + // SET ALL HANDLE DIMENSIONS + sizeHandles(); + } + + + /** + * Initialize scrolling ui-layout-content div - if exists + * + * @see initPane() - or externally after an Ajax injection + * @param {string} pane The pane to process + * @param {boolean=} [resize=true] Size content after init + */ +, initContent = function (pane, resize) { + if (!isInitialized()) return; + var + o = options[pane] + , sel = o.contentSelector + , I = Instance[pane] + , $P = $Ps[pane] + , $C + ; + if (sel) $C = I.content = $Cs[pane] = (o.findNestedContent) + ? $P.find(sel).eq(0) // match 1-element only + : $P.children(sel).eq(0) + ; + if ($C && $C.length) { + $C.data("layoutRole", "content"); + // SAVE original Content CSS + if (!$C.data("layoutCSS")) + $C.data("layoutCSS", styles($C, "height")); + $C.css( _c.content.cssReq ); + if (o.applyDemoStyles) { + $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div + $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane + } + // ensure no vertical scrollbar on pane - will mess up measurements + if ($P.css("overflowX").match(/(scroll|auto)/)) { + $P.css("overflow", "hidden"); + } + state[pane].content = {}; // init content state + if (resize !== false) sizeContent(pane); + // sizeContent() is called AFTER init of all elements + } + else + I.content = $Cs[pane] = false; + } + + + /** + * Add resize-bars to all panes that specify it in options + * -dependancy: $.fn.resizable - will skip if not found + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initResizable = function (panes) { + var draggingAvailable = $.layout.plugins.draggable + , side // set in start() + ; + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (idx, pane) { + var o = options[pane]; + if (!draggingAvailable || !$Ps[pane] || !o.resizable) { + o.resizable = false; + return true; // skip to next + } + + var s = state[pane] + , z = options.zIndexes + , c = _c[pane] + , side = c.dir=="horz" ? "top" : "left" + , $P = $Ps[pane] + , $R = $Rs[pane] + , base = o.resizerClass + , lastPos = 0 // used when live-resizing + , r, live // set in start because may change + // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process + , resizerClass = base+"-drag" // resizer-drag + , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag + // 'helper' class is applied to the CLONED resizer-bar while it is being dragged + , helperClass = base+"-dragging" // resizer-dragging + , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging + , helperLimitClass = base+"-dragging-limit" // resizer-drag + , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag + , helperClassesSet = false // logic var + ; + + if (!s.isClosed) + $R.attr("title", o.tips.Resize) + .css("cursor", o.resizerCursor); // n-resize, s-resize, etc + + $R.draggable({ + containment: $N[0] // limit resizing to layout container + , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis + , delay: 0 + , distance: 1 + , grid: o.resizingGrid + // basic format for helper - style it using class: .ui-draggable-dragging + , helper: "clone" + , opacity: o.resizerDragOpacity + , addClasses: false // avoid ui-state-disabled class when disabled + //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed + , zIndex: z.resizer_drag + + , start: function (e, ui) { + // REFRESH options & state pointers in case we used swapPanes + o = options[pane]; + s = state[pane]; + // re-read options + live = o.livePaneResizing; + + // ondrag_start callback - will CANCEL hide if returns false + // TODO: dragging CANNOT be cancelled like this, so see if there is a way? + if (false === _runCallbacks("ondrag_start", pane)) return false; + + s.isResizing = true; // prevent pane from closing while resizing + state.paneResizing = pane; // easy to see if ANY pane is resizing + timer.clear(pane+"_closeSlider"); // just in case already triggered + + // SET RESIZER LIMITS - used in drag() + setSizeLimits(pane); // update pane/resizer state + r = s.resizerPosition; + lastPos = ui.position[ side ] + + $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes + helperClassesSet = false; // reset logic var - see drag() + + // MASK PANES CONTAINING IFRAMES, APPLETS OR OTHER TROUBLESOME ELEMENTS + showMasks( pane, { resizing: true }); + } + + , drag: function (e, ui) { + if (!helperClassesSet) { // can only add classes after clone has been added to the DOM + //$(".ui-draggable-dragging") + ui.helper + .addClass( helperClass +" "+ helperPaneClass ) // add helper classes + .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue + .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar + ; + helperClassesSet = true; + // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! + if (s.isSliding) $Ps[pane].css("zIndex", z.pane_sliding); + } + // CONTAIN RESIZER-BAR TO RESIZING LIMITS + var limit = 0; + if (ui.position[side] < r.min) { + ui.position[side] = r.min; + limit = -1; + } + else if (ui.position[side] > r.max) { + ui.position[side] = r.max; + limit = 1; + } + // ADD/REMOVE dragging-limit CLASS + if (limit) { + ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit + window.defaultStatus = (limit>0 && pane.match(/(north|west)/)) || (limit<0 && pane.match(/(south|east)/)) ? o.tips.maxSizeWarning : o.tips.minSizeWarning; + } + else { + ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit + window.defaultStatus = ""; + } + // DYNAMICALLY RESIZE PANES IF OPTION ENABLED + // won't trigger unless resizer has actually moved! + if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { + lastPos = ui.position[side]; + resizePanes(e, ui, pane) + } + } + + , stop: function (e, ui) { + $('body').enableSelection(); // RE-ENABLE TEXT SELECTION + window.defaultStatus = ""; // clear 'resizing limit' message from statusbar + $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer + s.isResizing = false; + state.paneResizing = false; // easy to see if ANY pane is resizing + resizePanes(e, ui, pane, true); // true = resizingDone + } + + }); + }); + + /** + * resizePanes + * + * Sub-routine called from stop() - and drag() if livePaneResizing + * + * @param {!Object} evt + * @param {!Object} ui + * @param {string} pane + * @param {boolean=} [resizingDone=false] + */ + var resizePanes = function (evt, ui, pane, resizingDone) { + var dragPos = ui.position + , c = _c[pane] + , o = options[pane] + , s = state[pane] + , resizerPos + ; + switch (pane) { + case "north": resizerPos = dragPos.top; break; + case "west": resizerPos = dragPos.left; break; + case "south": resizerPos = sC.layoutHeight - dragPos.top - o.spacing_open; break; + case "east": resizerPos = sC.layoutWidth - dragPos.left - o.spacing_open; break; + }; + // remove container margin from resizer position to get the pane size + var newSize = resizerPos - sC.inset[c.side]; + + // Disable OR Resize Mask(s) created in drag.start + if (!resizingDone) { + // ensure we meet liveResizingTolerance criteria + if (Math.abs(newSize - s.size) < o.liveResizingTolerance) + return; // SKIP resize this time + // resize the pane + manualSizePane(pane, newSize, false, true); // true = noAnimation + sizeMasks(); // resize all visible masks + } + else { // resizingDone + // ondrag_end callback + if (false !== _runCallbacks("ondrag_end", pane)) + manualSizePane(pane, newSize, false, true); // true = noAnimation + hideMasks(true); // true = force hiding all masks even if one is 'sliding' + if (s.isSliding) // RE-SHOW 'object-masks' so objects won't show through sliding pane + showMasks( pane, { resizing: true }); + } + }; + } + + /** + * sizeMask + * + * Needed to overlay a DIV over an IFRAME-pane because mask CANNOT be *inside* the pane + * Called when mask created, and during livePaneResizing + */ +, sizeMask = function () { + var $M = $(this) + , pane = $M.data("layoutMask") // eg: "west" + , s = state[pane] + ; + // only masks over an IFRAME-pane need manual resizing + if (s.tagName == "IFRAME" && s.isVisible) // no need to mask closed/hidden panes + $M.css({ + top: s.offsetTop + , left: s.offsetLeft + , width: s.outerWidth + , height: s.outerHeight + }); + /* ALT Method... + var $P = $Ps[pane]; + $M.css( $P.position() ).css({ width: $P[0].offsetWidth, height: $P[0].offsetHeight }); + */ + } +, sizeMasks = function () { + $Ms.each( sizeMask ); // resize all 'visible' masks + } + + /** + * @param {string} pane The pane being resized, animated or isSliding + * @param {Object=} [args] (optional) Options: which masks to apply, and to which panes + */ +, showMasks = function (pane, args) { + var c = _c[pane] + , panes = ["center"] + , z = options.zIndexes + , a = $.extend({ + objectsOnly: false + , animation: false + , resizing: true + , sliding: state[pane].isSliding + }, args ) + , o, s + ; + if (a.resizing) + panes.push( pane ); + if (a.sliding) + panes.push( _c.oppositeEdge[pane] ); // ADD the oppositeEdge-pane + + if (c.dir === "horz") { + panes.push("west"); + panes.push("east"); + } + + $.each(panes, function(i,p){ + s = state[p]; + o = options[p]; + if (s.isVisible && ( o.maskObjects || (!a.objectsOnly && o.maskContents) )) { + getMasks(p).each(function(){ + sizeMask.call(this); + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.display = "block"; + }); + } + }); + } + + /** + * @param {boolean=} force Hide masks even if a pane is sliding + */ +, hideMasks = function (force) { + // ensure no pane is resizing - could be a timing issue + if (force || !state.paneResizing) { + $Ms.hide(); // hide ALL masks + } + // if ANY pane is sliding, then DO NOT remove masks from panes with maskObjects enabled + else if (!force && !$.isEmptyObject( state.panesSliding )) { + var i = $Ms.length - 1 + , p, $M; + for (; i >= 0; i--) { + $M = $Ms.eq(i); + p = $M.data("layoutMask"); + if (!options[p].maskObjects) { + $M.hide(); + } + } + } + } + + /** + * @param {string} pane + */ +, getMasks = function (pane) { + var $Masks = $([]) + , $M, i = 0, c = $Ms.length + ; + for (; i CSS + if (sC.tagName === "BODY" && ($N = $("html")).data(css)) // RESET CSS + $N.css( $N.data(css) ).removeData(css); + + // trigger plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onDestroy ); + + // trigger state-management and onunload callback + unload(); + + // clear the Instance of everything except for container & options (so could recreate) + // RE-CREATE: myLayout = myLayout.container.layout( myLayout.options ); + for (var n in Instance) + if (!n.match(/^(container|options)$/)) delete Instance[ n ]; + // add a 'destroyed' flag to make it easy to check + Instance.destroyed = true; + + // if this is a child layout, CLEAR the child-pointer in the parent + /* for now the pointer REMAINS, but with only container, options and destroyed keys + if (parentPane) { + var layout = parentPane.pane.data("parentLayout") + , key = layout.options.instanceKey || 'error'; + // THIS SYNTAX MAY BE WRONG! + parentPane.children[key] = layout.children[ parentPane.name ].children[key] = null; + } + */ + + return Instance; // for coding convenience + } + + /** + * Remove a pane from the layout - subroutine of destroy() + * + * @see destroy() + * @param {(string|Object)} evt_or_pane The pane to process + * @param {boolean=} [remove=false] Remove the DOM element? + * @param {boolean=} [skipResize=false] Skip calling resizeAll()? + * @param {boolean=} [destroyChild=true] Destroy Child-layouts? If not passed, obeys options setting + */ +, removePane = function (evt_or_pane, remove, skipResize, destroyChild) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $C = $Cs[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + ; + // NOTE: elements can still exist even after remove() + // so check for missing data(), which is cleared by removed() + if ($P && $.isEmptyObject( $P.data() )) $P = false; + if ($C && $.isEmptyObject( $C.data() )) $C = false; + if ($R && $.isEmptyObject( $R.data() )) $R = false; + if ($T && $.isEmptyObject( $T.data() )) $T = false; + + if ($P) $P.stop(true, true); + + var o = options[pane] + , s = state[pane] + , d = "layout" + , css = "layoutCSS" + , pC = children[pane] + , hasChildren = $.isPlainObject( pC ) && !$.isEmptyObject( pC ) + , destroy = destroyChild !== undefined ? destroyChild : o.destroyChildren + ; + // FIRST destroy the child-layout(s) + if (hasChildren && destroy) { + $.each( pC, function (key, child) { + if (!child.destroyed) + child.destroy(true);// tell child-layout to destroy ALL its child-layouts too + if (child.destroyed) // destroy was successful + delete pC[key]; + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) { + pC = children[pane] = null; // clear children hash + hasChildren = false; + } + } + + // Note: can't 'remove' a pane element with non-destroyed children + if ($P && remove && !hasChildren) + $P.remove(); // remove the pane-element and everything inside it + else if ($P && $P[0]) { + // create list of ALL pane-classes that need to be removed + var root = o.paneClass // default="ui-layout-pane" + , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes + pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes + ; + $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes + // remove all Layout classes from pane-element + $P .removeClass( classes.join(" ") ) // remove ALL pane-classes + .removeData("parentLayout") + .removeData("layoutPane") + .removeData("layoutRole") + .removeData("layoutEdge") + .removeData("autoHidden") // in case set + .unbind("."+ sID) // remove ALL Layout events + // TODO: remove these extra unbind commands when jQuery is fixed + //.unbind("mouseenter"+ sID) + //.unbind("mouseleave"+ sID) + ; + // do NOT reset CSS if this pane/content is STILL the container of a nested layout! + // the nested layout will reset its 'container' CSS when/if it is destroyed + if (hasChildren && $C) { + // a content-div may not have a specific width, so give it one to contain the Layout + $C.width( $C.width() ); + $.each( pC, function (key, child) { + child.resizeAll(); // resize the Layout + }); + } + else if ($C) + $C.css( $C.data(css) ).removeData(css).removeData("layoutRole"); + // remove pane AFTER content in case there was a nested layout + if (!$P.data(d)) + $P.css( $P.data(css) ).removeData(css); + } + + // REMOVE pane resizer and toggler elements + if ($T) $T.remove(); + if ($R) $R.remove(); + + // CLEAR all pointers and state data + Instance[pane] = $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = false; + s = { removed: true }; + + if (!skipResize) + resizeAll(); + } + + +/* + * ########################### + * ACTION METHODS + * ########################### + */ + + /** + * @param {string} pane + */ +, _hidePane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , s = $P[0].style + ; + if (o.useOffscreenClose) { + if (!$P.data(_c.offscreenReset)) + $P.data(_c.offscreenReset, { left: s.left, right: s.right }); + $P.css( _c.offscreenCSS ); + } + else + $P.hide().removeData(_c.offscreenReset); + } + + /** + * @param {string} pane + */ +, _showPane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , off = _c.offscreenCSS + , old = $P.data(_c.offscreenReset) + , s = $P[0].style + ; + $P .show() // ALWAYS show, just in case + .removeData(_c.offscreenReset); + if (o.useOffscreenClose && old) { + if (s.left == off.left) + s.left = old.left; + if (s.right == off.right) + s.right = old.right; + } + } + + + /** + * Completely 'hides' a pane, including its spacing - as if it does not exist + * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it + * + * @param {(string|Object)} evt_or_pane The pane being hidden, ie: north, south, east, or west + * @param {boolean=} [noAnimation=false] + */ +, hide = function (evt_or_pane, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || s.isHidden) return; // pane does not exist OR is already hidden + + // onhide_start callback - will CANCEL hide if returns false + if (state.initialized && false === _runCallbacks("onhide_start", pane)) return; + + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now hide the elements + if ($R) $R.hide(); // hide resizer-bar + if (!state.initialized || s.isClosed) { + s.isClosed = true; // to trigger open-animation on show() + s.isHidden = true; + s.isVisible = false; + if (!state.initialized) + _hidePane(pane); // no animation when loading page + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center"); + if (state.initialized || o.triggerEventsOnLoad) + _runCallbacks("onhide_end", pane); + } + else { + s.isHiding = true; // used by onclose + close(pane, false, noAnimation); // adjust all panes to fit + } + } + + /** + * Show a hidden pane - show as 'closed' by default unless openPane = true + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [openPane=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, show = function (evt_or_pane, openPane, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || !s.isHidden) return; // pane does not exist OR is not hidden + + // onshow_start callback - will CANCEL show if returns false + if (false === _runCallbacks("onshow_start", pane)) return; + + s.isShowing = true; // used by onopen/onclose + //s.isHidden = false; - will be set by open/close - if not cancelled + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now show the elements + //if ($R) $R.show(); - will be shown by open/close + if (openPane === false) + close(pane, true); // true = force + else + open(pane, false, noAnimation, noAlert); // adjust all panes to fit + } + + + /** + * Toggles a pane open/closed by calling either open or close + * + * @param {(string|Object)} evt_or_pane The pane being toggled, ie: north, south, east, or west + * @param {boolean=} [slide=false] + */ +, toggle = function (evt_or_pane, slide) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + ; + if (evt) // called from to $R.dblclick OR triggerPaneEvent + evt.stopImmediatePropagation(); + if (s.isHidden) + show(pane); // will call 'open' after unhiding it + else if (s.isClosed) + open(pane, !!slide); + else + close(pane); + } + + + /** + * Utility method used during init or other auto-processes + * + * @param {string} pane The pane being closed + * @param {boolean=} [setHandles=false] + */ +, _closePane = function (pane, setHandles) { + var + $P = $Ps[pane] + , s = state[pane] + ; + _hidePane(pane); + s.isClosed = true; + s.isVisible = false; + if (setHandles) setAsClosed(pane); + } + + /** + * Close the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being closed, ie: north, south, east, or west + * @param {boolean=} [force=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [skipCallback=false] + */ +, close = function (evt_or_pane, force, noAnimation, skipCallback) { + var pane = evtPane.call(this, evt_or_pane); + if (pane === "center") return; // validate + // if pane has been initialized, but NOT the complete layout, close pane instantly + if (!state.initialized && $Ps[pane]) { + _closePane(pane, true); // INIT pane as closed + return; + } + if (!isInitialized()) return; + + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing, isHiding, wasSliding; + + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.closable && !s.isShowing && !s.isHiding) // invalid request // (!o.resizable && !o.closable) ??? + || (!force && s.isClosed && !s.isShowing) // already closed + ) return queueNext(); + + // onclose_start callback - will CANCEL hide if returns false + // SKIP if just 'showing' a hidden pane as 'closed' + var abort = !s.isShowing && false === _runCallbacks("onclose_start", pane); + + // transfer logic vars to temp vars + isShowing = s.isShowing; + isHiding = s.isHiding; + wasSliding = s.isSliding; + // now clear the logic vars (REQUIRED before aborting) + delete s.isShowing; + delete s.isHiding; + + if (abort) return queueNext(); + + doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"); + s.isMoving = true; + s.isClosed = true; + s.isVisible = false; + // update isHidden BEFORE sizing panes + if (isHiding) s.isHidden = true; + else if (isShowing) s.isHidden = false; + + if (s.isSliding) // pane is being closed, so UNBIND trigger events + bindStopSlidingEvents(pane, false); // will set isSliding=false + else // resize panes adjacent to this one + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center", false); // false = NOT skipCallback + + // if this pane has a resizer bar, move it NOW - before animation + setAsClosed(pane); + + // CLOSE THE PANE + if (doFX) { // animate the close + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { + lockPaneForFX(pane, false); // undo + if (s.isClosed) close_2(); + queueNext(); + }); + } + else { // hide the pane without animation + _hidePane(pane); + close_2(); + queueNext(); + }; + }); + + // SUBROUTINE + function close_2 () { + s.isMoving = false; + bindStartSlidingEvents(pane, true); // will enable if o.slidable = true + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane ); + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { + // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' + if (!isShowing) _runCallbacks("onclose_end", pane); + // onhide OR onshow callback + if (isShowing) _runCallbacks("onshow_end", pane); + if (isHiding) _runCallbacks("onhide_end", pane); + } + } + } + + /** + * @param {string} pane The pane just closed, ie: north, south, east, or west + */ +, setAsClosed = function (pane) { + if (!$Rs[pane]) return; // handles not initialized yet! + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + ; + $R + .css(side, sC.inset[side]) // move the resizer + .removeClass( rClass+_open +" "+ rClass+_pane+_open ) + .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) + ; + // handle already-hidden panes in case called by swap() or a similar method + if (s.isHidden) $R.hide(); // hide resizer-bar + + // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvents? + if (o.resizable && $.layout.plugins.draggable) + $R + .draggable("disable") + .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here + .css("cursor", "default") + .attr("title","") + ; + + // if pane has a toggler button, adjust that too + if ($T) { + $T + .removeClass( tClass+_open +" "+ tClass+_pane+_open ) + .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .attr("title", o.tips.Open) // may be blank + ; + // toggler-content - if exists + $T.children(".content-open").hide(); + $T.children(".content-closed").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, false); + + if (state.initialized) { + // resize 'length' and position togglers for adjacent panes + sizeHandles(); + } + } + + /** + * Open the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [slide=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, open = function (evt_or_pane, slide, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.resizable && !o.closable && !s.isShowing) // invalid request + || (s.isVisible && !s.isSliding) // already open + ) return queueNext(); + + // pane can ALSO be unhidden by just calling show(), so handle this scenario + if (s.isHidden && !s.isShowing) { + queueNext(); // call before show() because it needs the queue free + show(pane, true); + return; + } + + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else + // make sure there is enough space available to open the pane + setSizeLimits(pane, slide); + + // onopen_start callback - will CANCEL open if returns false + var cbReturn = _runCallbacks("onopen_start", pane); + + if (cbReturn === "abort") + return queueNext(); + + // update pane-state again in case options were changed in onopen_start + if (cbReturn !== "NC") // NC = "No Callback" + setSizeLimits(pane, slide); + + if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! + syncPinBtns(pane, false); // make sure pin-buttons are reset + if (!noAlert && o.tips.noRoomToOpen) + alert(o.tips.noRoomToOpen); + return queueNext(); // ABORT + } + + if (slide) // START Sliding - will set isSliding=true + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead + bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false + else if (o.slidable) + bindStartSlidingEvents(pane, false); // UNBIND trigger events + + s.noRoom = false; // will be reset by makePaneFit if 'noRoom' + makePaneFit(pane); + + // transfer logic var to temp var + isShowing = s.isShowing; + // now clear the logic var + delete s.isShowing; + + doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"); + s.isMoving = true; + s.isVisible = true; + s.isClosed = false; + // update isHidden BEFORE sizing panes - WHY??? Old? + if (isShowing) s.isHidden = false; + + if (doFX) { // ANIMATE + // mask adjacent panes with objects + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { + lockPaneForFX(pane, false); // undo + if (s.isVisible) open_2(); // continue + queueNext(); + }); + } + else { // no animation + _showPane(pane);// just show pane and... + open_2(); // continue + queueNext(); + }; + }); + + // SUBROUTINE + function open_2 () { + s.isMoving = false; + + // cure iframe display issues + _fixIframe(pane); + + // NOTE: if isSliding, then other panes are NOT 'resized' + if (!s.isSliding) { // resize all panes adjacent to this one + sizeMidPanes(_c[pane].dir=="vert" ? "center" : "", false); // false = NOT skipCallback + } + + // set classes, position handles and execute callbacks... + setAsOpen(pane); + }; + + } + + /** + * @param {string} pane The pane just opened, ie: north, south, east, or west + * @param {boolean=} [skipCallback=false] + */ +, setAsOpen = function (pane, skipCallback) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _closed = "-closed" + , _sliding= "-sliding" + ; + $R + .css(side, sC.inset[side] + getPaneSize(pane)) // move the resizer + .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .addClass( rClass+_open +" "+ rClass+_pane+_open ) + ; + if (s.isSliding) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + else // in case 'was sliding' + $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + + removeHover( 0, $R ); // remove hover classes + if (o.resizable && $.layout.plugins.draggable) + $R .draggable("enable") + .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + else if (!s.isSliding) + $R.css("cursor", "default"); // n-resize, s-resize, etc + + // if pane also has a toggler button, adjust that too + if ($T) { + $T .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .addClass( tClass+_open +" "+ tClass+_pane+_open ) + .attr("title", o.tips.Close); // may be blank + removeHover( 0, $T ); // remove hover classes + // toggler-content - if exists + $T.children(".content-closed").hide(); + $T.children(".content-open").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, !s.isSliding); + + // update pane-state dimensions - BEFORE resizing content + $.extend(s, elDims($P)); + + if (state.initialized) { + // resize resizer & toggler sizes for all panes + sizeHandles(); + // resize content every time pane opens - to be sure + sizeContent(pane, true); // true = remeasure headers/footers, even if 'pane.isMoving' + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { + // onopen callback + _runCallbacks("onopen_end", pane); + // onshow callback - TODO: should this be here? + if (s.isShowing) _runCallbacks("onshow_end", pane); + + // ALSO call onresize because layout-size *may* have changed while pane was closed + if (state.initialized) + _runCallbacks("onresize_end", pane); + } + + // TODO: Somehow sizePane("north") is being called after this point??? + } + + + /** + * slideOpen / slideClose / slideToggle + * + * Pass-though methods for sliding + */ +, slideOpen = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + , delay = options[pane].slideDelay_open + ; + if (pane === "center") return; // validate + // prevent event from triggering on NEW resizer binding created below + if (evt) evt.stopImmediatePropagation(); + + if (s.isClosed && evt && evt.type === "mouseenter" && delay > 0) + // trigger = mouseenter - use a delay + timer.set(pane+"_openSlider", open_NOW, delay); + else + open_NOW(); // will unbind events if is already open + + /** + * SUBROUTINE for timed open + */ + function open_NOW () { + if (!s.isClosed) // skip if no longer closed! + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (!s.isMoving) + open(pane, true); // true = slide - open() will handle binding + }; + } + +, slideClose = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , delay = s.isMoving ? 1000 : 300 // MINIMUM delay - option may override + ; + if (pane === "center") return; // validate + if (s.isClosed || s.isResizing) + return; // skip if already closed OR in process of resizing + else if (o.slideTrigger_close === "click") + close_NOW(); // close immediately onClick + else if (o.preventQuickSlideClose && s.isMoving) + return; // handle Chrome quick-close on slide-open + else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) + return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + else if (evt) // trigger = mouseleave - use a delay + // 1 sec delay if 'opening', else .3 sec + timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); + else // called programically + close_NOW(); + + /** + * SUBROUTINE for timed close + */ + function close_NOW () { + if (s.isClosed) // skip 'close' if already closed! + bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? + else if (!s.isMoving) + close(pane); // close will handle unbinding + }; + } + + /** + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + */ +, slideToggle = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + toggle(pane, true); + } + + + /** + * Must set left/top on East/South panes so animation will work properly + * + * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! + * @param {boolean} doLock true = set left/top, false = remove + */ +, lockPaneForFX = function (pane, doLock) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + , z = options.zIndexes + ; + if (doLock) { + showMasks( pane, { animation: true, objectsOnly: true }); + $P.css({ zIndex: z.pane_animate }); // overlay all elements during animation + if (pane=="south") + $P.css({ top: sC.inset.top + sC.innerHeight - $P.outerHeight() }); + else if (pane=="east") + $P.css({ left: sC.inset.left + sC.innerWidth - $P.outerWidth() }); + } + else { // animation DONE - RESET CSS + hideMasks(); + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + if (pane=="south") + $P.css({ top: "auto" }); + // if pane is positioned 'off-screen', then DO NOT screw with it! + else if (pane=="east" && !$P.css("left").match(/\-99999/)) + $P.css({ left: "auto" }); + // fix anti-aliasing in IE - only needed for animations that change opacity + if (browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) + $P[0].style.removeAttribute('filter'); + } + } + + + /** + * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger + * + * @see open(), close() + * @param {string} pane The pane to enable/disable, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable sliding? + */ +, bindStartSlidingEvents = function (pane, enable) { + var o = options[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , evtName = o.slideTrigger_open.toLowerCase() + ; + if (!$R || (enable && !o.slidable)) return; + + // make sure we have a valid event + if (evtName.match(/mouseover/)) + evtName = o.slideTrigger_open = "mouseenter"; + else if (!evtName.match(/(click|dblclick|mouseenter)/)) + evtName = o.slideTrigger_open = "click"; + + // must remove double-click-toggle when using dblclick-slide + if (o.resizerDblClickToggle && evtName.match(/click/)) { + $R[enable ? "unbind" : "bind"]('dblclick.'+ sID, toggle) + } + + $R + // add or remove event + [enable ? "bind" : "unbind"](evtName +'.'+ sID, slideOpen) + // set the appropriate cursor & title/tip + .css("cursor", enable ? o.sliderCursor : "default") + .attr("title", enable ? o.tips.Slide : "") + ; + } + + /** + * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed + * Also increases zIndex when pane is sliding open + * See bindStartSlidingEvents for code to control 'slide open' + * + * @see slideOpen(), slideClose() + * @param {string} pane The pane to process, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable events? + */ +, bindStopSlidingEvents = function (pane, enable) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , z = options.zIndexes + , evtName = o.slideTrigger_close.toLowerCase() + , action = (enable ? "bind" : "unbind") + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + timer.clear(pane+"_closeSlider"); // just in case + + if (enable) { + s.isSliding = true; + state.panesSliding[pane] = true; + // remove 'slideOpen' event from resizer + // ALSO will raise the zIndex of the pane & resizer + bindStartSlidingEvents(pane, false); + } + else { + s.isSliding = false; + delete state.panesSliding[pane]; + } + + // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not + $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); + $R.css("zIndex", enable ? z.pane_sliding+2 : z.resizer_normal); // NOTE: mask = pane_sliding+1 + + // make sure we have a valid event + if (!evtName.match(/(click|mouseleave)/)) + evtName = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' + + // add/remove slide triggers + $R[action](evtName, slideClose); // base event on resize + // need extra events for mouseleave + if (evtName === "mouseleave") { + // also close on pane.mouseleave + $P[action]("mouseleave."+ sID, slideClose); + // cancel timer when mouse moves between 'pane' and 'resizer' + $R[action]("mouseenter."+ sID, cancelMouseOut); + $P[action]("mouseenter."+ sID, cancelMouseOut); + } + + if (!enable) + timer.clear(pane+"_closeSlider"); + else if (evtName === "click" && !o.resizable) { + // IF pane is not resizable (which already has a cursor and tip) + // then set the a cursor & title/tip on resizer when sliding + $R.css("cursor", enable ? o.sliderCursor : "default"); + $R.attr("title", enable ? o.tips.Close : ""); // use Toggler-tip, eg: "Close Pane" + } + + // SUBROUTINE for mouseleave timer clearing + function cancelMouseOut (evt) { + timer.clear(pane+"_closeSlider"); + evt.stopPropagation(); + } + } + + + /** + * Hides/closes a pane if there is insufficient room - reverses this when there is room again + * MUST have already called setSizeLimits() before calling this method + * + * @param {string} pane The pane being resized + * @param {boolean=} [isOpening=false] Called from onOpen? + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, makePaneFit = function (pane, isOpening, skipCallback, force) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isSidePane = c.dir==="vert" + , hasRoom = false + ; + // special handling for center & east/west panes + if (pane === "center" || (isSidePane && s.noVerticalRoom)) { + // see if there is enough room to display the pane + // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); + hasRoom = (s.maxHeight >= 0); + if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now + _showPane(pane); + if ($R) $R.show(); + s.isVisible = true; + s.noRoom = false; + if (isSidePane) s.noVerticalRoom = false; + _fixIframe(pane); + } + else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now + _hidePane(pane); + if ($R) $R.hide(); + s.isVisible = false; + s.noRoom = true; + } + } + + // see if there is enough room to fit the border-pane + if (pane === "center") { + // ignore center in this block + } + else if (s.minSize <= s.maxSize) { // pane CAN fit + hasRoom = true; + if (s.size > s.maxSize) // pane is too big - shrink it + sizePane(pane, s.maxSize, skipCallback, true, force); // true = noAnimation + else if (s.size < s.minSize) // pane is too small - enlarge it + sizePane(pane, s.minSize, skipCallback, true, force); // true = noAnimation + // need s.isVisible because new pseudoClose method keeps pane visible, but off-screen + else if ($R && s.isVisible && $P.is(":visible")) { + // make sure resizer-bar is positioned correctly + // handles situation where nested layout was 'hidden' when initialized + var pos = s.size + sC.inset[c.side]; + if ($.layout.cssNum( $R, c.side ) != pos) $R.css( c.side, pos ); + } + + // if was previously hidden due to noRoom, then RESET because NOW there is room + if (s.noRoom) { + // s.noRoom state will be set by open or show + if (s.wasOpen && o.closable) { + if (o.autoReopen) + open(pane, false, true, true); // true = noAnimation, true = noAlert + else // leave the pane closed, so just update state + s.noRoom = false; + } + else + show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert + } + } + else { // !hasRoom - pane CANNOT fit + if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... + s.noRoom = true; // update state + s.wasOpen = !s.isClosed && !s.isSliding; + if (s.isClosed){} // SKIP + else if (o.closable) // 'close' if possible + close(pane, true, true); // true = force, true = noAnimation + else // 'hide' pane if cannot just be closed + hide(pane, true); // true = noAnimation + } + } + } + + + /** + * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, manualSizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... + , forceResize = force || (o.livePaneResizing && !s.isResizing) + ; + if (pane === "center") return; // validate + // ANY call to manualSizePane disables autoResize - ie, percentage sizing + s.autoResize = false; + // flow-through... + sizePane(pane, size, skipCallback, noAnimation, forceResize); // will animate resize if option enabled + } + + /** + * sizePane is called only by internal methods whenever a pane needs to be resized + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, sizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) // probably NEVER called from event? + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , side = _c[pane].side + , dimName = _c[pane].sizeType.toLowerCase() + , skipResizeWhileDragging = s.isResizing && !o.triggerEventsDuringLiveResize + , doFX = noAnimation !== true && o.animatePaneSizing + , oldSize, newSize + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + // calculate 'current' min/max sizes + setSizeLimits(pane); // update pane-state + oldSize = s.size; + size = _parseSize(pane, size); // handle percentages & auto + size = max(size, _parseSize(pane, o.minSize)); + size = min(size, s.maxSize); + if (size < s.minSize) { // not enough room for pane! + queueNext(); // call before makePaneFit() because it needs the queue free + makePaneFit(pane, false, skipCallback); // will hide or close pane + return; + } + + // IF newSize is same as oldSize, then nothing to do - abort + if (!force && size === oldSize) + return queueNext(); + + s.newSize = size; + + // onresize_start callback CANNOT cancel resizing because this would break the layout! + if (!skipCallback && state.initialized && s.isVisible) + _runCallbacks("onresize_start", pane); + + // resize the pane, and make sure its visible + newSize = cssSize(pane, size); + + if (doFX && $P.is(":visible")) { // ANIMATE + var fx = $.layout.effects.size[pane] || $.layout.effects.size.all + , easing = o.fxSettings_size.easing || fx.easing + , z = options.zIndexes + , props = {}; + props[ dimName ] = newSize +'px'; + s.isMoving = true; + // overlay all elements during animation + $P.css({ zIndex: z.pane_animate }) + .show().animate( props, o.fxSpeed_size, easing, function(){ + // reset zIndex after animation + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + s.isMoving = false; + delete s.newSize; + sizePane_2(); // continue + queueNext(); + }); + } + else { // no animation + $P.css( dimName, newSize ); // resize pane + delete s.newSize; + // if pane is visible, then + if ($P.is(":visible")) + sizePane_2(); // continue + else { + // pane is NOT VISIBLE, so just update state data... + // when pane is *next opened*, it will have the new size + s.size = size; // update state.size + //$.extend(s, elDims($P)); // update state dimensions - CANNOT do this when not visible! } + } + queueNext(); + }; + + }); + + // SUBROUTINE + function sizePane_2 () { + /* Panes are sometimes not sized precisely in some browsers!? + * This code will resize the pane up to 3 times to nudge the pane to the correct size + */ + var actual = dimName==='width' ? $P.outerWidth() : $P.outerHeight() + , tries = [{ + pane: pane + , count: 1 + , target: size + , actual: actual + , correct: (size === actual) + , attempt: size + , cssSize: newSize + }] + , lastTry = tries[0] + , thisTry = {} + , msg = 'Inaccurate size after resizing the '+ pane +'-pane.' + ; + while ( !lastTry.correct ) { + thisTry = { pane: pane, count: lastTry.count+1, target: size }; + + if (lastTry.actual > size) + thisTry.attempt = max(0, lastTry.attempt - (lastTry.actual - size)); + else // lastTry.actual < size + thisTry.attempt = max(0, lastTry.attempt + (size - lastTry.actual)); + + thisTry.cssSize = cssSize(pane, thisTry.attempt); + $P.css( dimName, thisTry.cssSize ); + + thisTry.actual = dimName=='width' ? $P.outerWidth() : $P.outerHeight(); + thisTry.correct = (size === thisTry.actual); + + // log attempts and alert the user of this *non-fatal error* (if showDebugMessages) + if ( tries.length === 1) { + _log(msg, false, true); + _log(lastTry, false, true); + } + _log(thisTry, false, true); + // after 4 tries, is as close as its gonna get! + if (tries.length > 3) break; + + tries.push( thisTry ); + lastTry = tries[ tries.length - 1 ]; + } + // END TESTING CODE + + // update pane-state dimensions + s.size = size; + $.extend(s, elDims($P)); + + if (s.isVisible && $P.is(":visible")) { + // reposition the resizer-bar + if ($R) $R.css( side, size + sC.inset[side] ); + // resize the content-div + sizeContent(pane); + } + + if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) + _runCallbacks("onresize_end", pane); + + // resize all the adjacent panes, and adjust their toggler buttons + // when skipCallback passed, it means the controlling method will handle 'other panes' + if (!skipCallback) { + // also no callback if live-resize is in progress and NOT triggerEventsDuringLiveResize + if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "" : "center", skipResizeWhileDragging, force); + sizeHandles(); + } + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (size < oldSize && state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane, false, skipCallback ); + } + + // DEBUG - ALERT user/developer so they know there was a sizing problem + if (tries.length > 1) + _log(msg +'\nSee the Error Console for details.', true, true); + } + } + + /** + * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() + * @param {(Array.|string)} panes The pane(s) being resized, comma-delmited string + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, sizeMidPanes = function (panes, skipCallback, force) { + panes = (panes ? panes : "east,west,center").split(","); + + $.each(panes, function (i, pane) { + if (!$Ps[pane]) return; // NO PANE - skip + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isCenter= (pane=="center") + , hasRoom = true + , CSS = {} + // if pane is not visible, show it invisibly NOW rather than for *each call* in this script + , visCSS = $.layout.showInvisibly($P) + + , newCenter = calcNewCenterPaneDims() + ; + + // update pane-state dimensions + $.extend(s, elDims($P)); + + if (pane === "center") { + if (!force && s.isVisible && newCenter.width === s.outerWidth && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // set state for makePaneFit() logic + $.extend(s, cssMinDims(pane), { + maxWidth: newCenter.width + , maxHeight: newCenter.height + }); + CSS = newCenter; + s.newWidth = CSS.width; + s.newHeight = CSS.height; + // convert OUTER width/height to CSS width/height + CSS.width = cssW($P, CSS.width); + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, CSS.height); + hasRoom = CSS.width >= 0 && CSS.height >= 0; // height >= 0 = ALWAYS TRUE NOW + + // during layout init, try to shrink east/west panes to make room for center + if (!state.initialized && o.minWidth > newCenter.width) { + var + reqPx = o.minWidth - s.outerWidth + , minE = options.east.minSize || 0 + , minW = options.west.minSize || 0 + , sizeE = state.east.size + , sizeW = state.west.size + , newE = sizeE + , newW = sizeW + ; + if (reqPx > 0 && state.east.isVisible && sizeE > minE) { + newE = max( sizeE-minE, sizeE-reqPx ); + reqPx -= sizeE-newE; + } + if (reqPx > 0 && state.west.isVisible && sizeW > minW) { + newW = max( sizeW-minW, sizeW-reqPx ); + reqPx -= sizeW-newW; + } + // IF we found enough extra space, then resize the border panes as calculated + if (reqPx === 0) { + if (sizeE && sizeE != minE) + sizePane('east', newE, true, true, force); // true = skipCallback/noAnimation - initPanes will handle when done + if (sizeW && sizeW != minW) + sizePane('west', newW, true, true, force); // true = skipCallback/noAnimation + // now start over! + sizeMidPanes('center', skipCallback, force); + $P.css(visCSS); + return; // abort this loop + } + } + } + else { // for east and west, set only the height, which is same as center height + // set state.min/maxWidth/Height for makePaneFit() logic + if (s.isVisible && !s.noVerticalRoom) + $.extend(s, elDims($P), cssMinDims(pane)) + if (!force && !s.noVerticalRoom && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // east/west have same top, bottom & height as center + CSS.top = newCenter.top; + CSS.bottom = newCenter.bottom; + s.newSize = newCenter.height + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, newCenter.height); + s.maxHeight = CSS.height; + hasRoom = (s.maxHeight >= 0); // ALWAYS TRUE NOW + if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic + } + + if (hasRoom) { + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_start", pane); + + $P.css(CSS); // apply the CSS to pane + if (pane !== "center") + sizeHandles(pane); // also update resizer length + if (s.noRoom && !s.isClosed && !s.isHidden) + makePaneFit(pane); // will re-open/show auto-closed/hidden pane + if (s.isVisible) { + $.extend(s, elDims($P)); // update pane dimensions + if (state.initialized) sizeContent(pane); // also resize the contents, if exists + } + } + else if (!s.noRoom && s.isVisible) // no room for pane + makePaneFit(pane); // will hide or close pane + + // reset visibility, if necessary + $P.css(visCSS); + + delete s.newSize; + delete s.newWidth; + delete s.newHeight; + + if (!s.isVisible) + return true; // DONE - next pane + + /* + * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes + * Normally these panes have only 'left' & 'right' positions so pane auto-sizes + * ALSO required when pane is an IFRAME because will NOT default to 'full width' + * TODO: Can I use width:100% for a north/south iframe? + * TODO: Sounds like a job for $P.outerWidth( sC.innerWidth ) SETTER METHOD + */ + if (pane === "center") { // finished processing midPanes + var fix = browser.isIE6 || !browser.boxModel; + if ($Ps.north && (fix || state.north.tagName=="IFRAME")) + $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); + if ($Ps.south && (fix || state.south.tagName=="IFRAME")) + $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); + } + + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_end", pane); + }); + } + + + /** + * @see window.onresize(), callbacks or custom code + * @param {(Object|boolean)=} evt_or_refresh If 'true', then also reset pane-positioning + */ +, resizeAll = function (evt_or_refresh) { + var oldW = sC.innerWidth + , oldH = sC.innerHeight + ; + // stopPropagation if called by trigger("layoutdestroy") - use evtPane utility + evtPane(evt_or_refresh); + + // cannot size layout when 'container' is hidden or collapsed + if (!$N.is(":visible")) return; + + if (!state.initialized) { + _initLayoutElements(); + return; // no need to resize since we just initialized! + } + + if (evt_or_refresh === true && $.isPlainObject(options.outset)) { + // update container CSS in case outset option has changed + $N.css( options.outset ); + } + // UPDATE container dimensions + $.extend(sC, elDims( $N, options.inset )); + if (!sC.outerHeight) return; + + // if 'true' passed, refresh pane & handle positioning too + if (evt_or_refresh === true) { + setPanePosition(); + } + + // onresizeall_start will CANCEL resizing if returns false + // state.container has already been set, so user can access this info for calcuations + if (false === _runCallbacks("onresizeall_start")) return false; + + var // see if container is now 'smaller' than before + shrunkH = (sC.innerHeight < oldH) + , shrunkW = (sC.innerWidth < oldW) + , $P, o, s + ; + // NOTE special order for sizing: S-N-E-W + $.each(["south","north","east","west"], function (i, pane) { + if (!$Ps[pane]) return; // no pane - SKIP + o = options[pane]; + s = state[pane]; + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else { + setSizeLimits(pane); + makePaneFit(pane, false, true, true); // true=skipCallback/forceResize + } + }); + + sizeMidPanes("", true, true); // true=skipCallback/forceResize + sizeHandles(); // reposition the toggler elements + + // trigger all individual pane callbacks AFTER layout has finished resizing + $.each(_c.allPanes, function (i, pane) { + $P = $Ps[pane]; + if (!$P) return; // SKIP + if (state[pane].isVisible) // undefined for non-existent panes + _runCallbacks("onresize_end", pane); // callback - if exists + }); + + _runCallbacks("onresizeall_end"); + //_triggerLayoutEvent(pane, 'resizeall'); + } + + /** + * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll + * + * @param {(string|Object)} evt_or_pane The pane just resized or opened + */ +, resizeChildren = function (evt_or_pane, skipRefresh) { + var pane = evtPane.call(this, evt_or_pane); + + if (!options[pane].resizeChildren) return; + + // ensure the pane-children are up-to-date + if (!skipRefresh) refreshChildren( pane ); + var pC = children[pane]; + if ($.isPlainObject( pC )) { + // resize one or more children + $.each( pC, function (key, child) { + if (!child.destroyed) child.resizeAll(); + }); + } + } + + /** + * IF pane has a content-div, then resize all elements inside pane to fit pane-height + * + * @param {(string|Object)} evt_or_panes The pane(s) being resized + * @param {boolean=} [remeasure=false] Should the content (header/footer) be remeasured? + */ +, sizeContent = function (evt_or_panes, remeasure) { + if (!isInitialized()) return; + + var panes = evtPane.call(this, evt_or_panes); + panes = panes ? panes.split(",") : _c.allPanes; + + $.each(panes, function (idx, pane) { + var + $P = $Ps[pane] + , $C = $Cs[pane] + , o = options[pane] + , s = state[pane] + , m = s.content // m = measurements + ; + if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip + + // if content-element was REMOVED, update OR remove the pointer + if (!$C.length) { + initContent(pane, false); // false = do NOT sizeContent() - already there! + if (!$C) return; // no replacement element found - pointer have been removed + } + + // onsizecontent_start will CANCEL resizing if returns false + if (false === _runCallbacks("onsizecontent_start", pane)) return; + + // skip re-measuring offsets if live-resizing + if ((!s.isMoving && !s.isResizing) || o.liveContentResizing || remeasure || m.top == undefined) { + _measure(); + // if any footers are below pane-bottom, they may not measure correctly, + // so allow pane overflow and re-measure + if (m.hiddenFooters > 0 && $P.css("overflow") === "hidden") { + $P.css("overflow", "visible"); + _measure(); // remeasure while overflowing + $P.css("overflow", "hidden"); + } + } + // NOTE: spaceAbove/Below *includes* the pane paddingTop/Bottom, but not pane.borders + var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); + + if (!$C.is(":visible") || m.height != newH) { + // size the Content element to fit new pane-size - will autoHide if not enough room + setOuterHeight($C, newH, true); // true=autoHide + m.height = newH; // save new height + }; + + if (state.initialized) + _runCallbacks("onsizecontent_end", pane); + + function _below ($E) { + return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); + }; + + function _measure () { + var + ignore = options[pane].contentIgnoreSelector + , $Fs = $C.nextAll().not(".ui-layout-mask").not(ignore || ":lt(0)") // not :lt(0) = ALL + , $Fs_vis = $Fs.filter(':visible') + , $F = $Fs_vis.filter(':last') + ; + m = { + top: $C[0].offsetTop + , height: $C.outerHeight() + , numFooters: $Fs.length + , hiddenFooters: $Fs.length - $Fs_vis.length + , spaceBelow: 0 // correct if no content footer ($E) + } + m.spaceAbove = m.top; // just for state - not used in calc + m.bottom = m.top + m.height; + if ($F.length) + //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) + m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); + else // no footer - check marginBottom on Content element itself + m.spaceBelow = _below($C); + }; + }); + } + + + /** + * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary + * + * @see initHandles(), open(), close(), resizeAll() + * @param {(string|Object)=} evt_or_panes The pane(s) being resized + */ +, sizeHandles = function (evt_or_panes) { + var panes = evtPane.call(this, evt_or_panes) + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (i, pane) { + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , $TC + ; + if (!$P || !$R) return; + + var + dir = _c[pane].dir + , _state = (s.isClosed ? "_closed" : "_open") + , spacing = o["spacing"+ _state] + , togAlign = o["togglerAlign"+ _state] + , togLen = o["togglerLength"+ _state] + , paneLen + , left + , offset + , CSS = {} + ; + + if (spacing === 0) { + $R.hide(); + return; + } + else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason + $R.show(); // in case was previously hidden + + // Resizer Bar is ALWAYS same width/height of pane it is attached to + if (dir === "horz") { // north/south + //paneLen = $P.outerWidth(); // s.outerWidth || + paneLen = sC.innerWidth; // handle offscreen-panes + s.resizerLength = paneLen; + left = $.layout.cssNum($P, "left") + $R.css({ + width: cssW($R, paneLen) // account for borders & padding + , height: cssH($R, spacing) // ditto + , left: left > -9999 ? left : sC.inset.left // handle offscreen-panes + }); + } + else { // east/west + paneLen = $P.outerHeight(); // s.outerHeight || + s.resizerLength = paneLen; + $R.css({ + height: cssH($R, paneLen) // account for borders & padding + , width: cssW($R, spacing) // ditto + , top: sC.inset.top + getPaneSize("north", true) // TODO: what if no North pane? + //, top: $.layout.cssNum($Ps["center"], "top") + }); + } + + // remove hover classes + removeHover( o, $R ); + + if ($T) { + if (togLen === 0 || (s.isSliding && o.hideTogglerOnSlide)) { + $T.hide(); // always HIDE the toggler when 'sliding' + return; + } + else + $T.show(); // in case was previously hidden + + if (!(togLen > 0) || togLen === "100%" || togLen > paneLen) { + togLen = paneLen; + offset = 0; + } + else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed + if (isStr(togAlign)) { + switch (togAlign) { + case "top": + case "left": offset = 0; + break; + case "bottom": + case "right": offset = paneLen - togLen; + break; + case "middle": + case "center": + default: offset = round((paneLen - togLen) / 2); // 'default' catches typos + } + } + else { // togAlign = number + var x = parseInt(togAlign, 10); // + if (togAlign >= 0) offset = x; + else offset = paneLen - togLen + x; // NOTE: x is negative! + } + } + + if (dir === "horz") { // north/south + var width = cssW($T, togLen); + $T.css({ + width: width // account for borders & padding + , height: cssH($T, spacing) // ditto + , left: offset // TODO: VERIFY that toggler positions correctly for ALL values + , top: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginLeft", round((width-$TC.outerWidth())/2)); // could be negative + }); + } + else { // east/west + var height = cssH($T, togLen); + $T.css({ + height: height // account for borders & padding + , width: cssW($T, spacing) // ditto + , top: offset // POSITION the toggler + , left: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginTop", round((height-$TC.outerHeight())/2)); // could be negative + }); + } + + // remove ALL hover classes + removeHover( 0, $T ); + } + + // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now + if (!state.initialized && (o.initHidden || s.isHidden)) { + $R.hide(); + if ($T) $T.hide(); + } + }); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableClosable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + , o = options[pane] + ; + if (!$T) return; + o.closable = true; + $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) + .css("visibility", "visible") + .css("cursor", "pointer") + .attr("title", state[pane].isClosed ? o.tips.Open : o.tips.Close) // may be blank + .show(); + } + /** + * @param {(string|Object)} evt_or_pane + * @param {boolean=} [hide=false] + */ +, disableClosable = function (evt_or_pane, hide) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + ; + if (!$T) return; + options[pane].closable = false; + // is closable is disable, then pane MUST be open! + if (state[pane].isClosed) open(pane, false, true); + $T .unbind("."+ sID) + .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues + .css("cursor", "default") + .attr("title", ""); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].slidable = true; + if (state[pane].isClosed) + bindStartSlidingEvents(pane, true); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R) return; + options[pane].slidable = false; + if (state[pane].isSliding) + close(pane, false, true); + else { + bindStartSlidingEvents(pane, false); + $R .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + , o = options[pane] + ; + if (!$R || !$R.data('draggable')) return; + o.resizable = true; + $R.draggable("enable"); + if (!state[pane].isClosed) + $R .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].resizable = false; + $R .draggable("disable") + .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + + + /** + * Move a pane from source-side (eg, west) to target-side (eg, east) + * If pane exists on target-side, move that to source-side, ie, 'swap' the panes + * + * @param {(string|Object)} evt_or_pane1 The pane/edge being swapped + * @param {string} pane2 ditto + */ +, swapPanes = function (evt_or_pane1, pane2) { + if (!isInitialized()) return; + var pane1 = evtPane.call(this, evt_or_pane1); + // change state.edge NOW so callbacks can know where pane is headed... + state[pane1].edge = pane2; + state[pane2].edge = pane1; + // run these even if NOT state.initialized + if (false === _runCallbacks("onswap_start", pane1) + || false === _runCallbacks("onswap_start", pane2) + ) { + state[pane1].edge = pane1; // reset + state[pane2].edge = pane2; + return; + } + + var + oPane1 = copy( pane1 ) + , oPane2 = copy( pane2 ) + , sizes = {} + ; + sizes[pane1] = oPane1 ? oPane1.state.size : 0; + sizes[pane2] = oPane2 ? oPane2.state.size : 0; + + // clear pointers & state + $Ps[pane1] = false; + $Ps[pane2] = false; + state[pane1] = {}; + state[pane2] = {}; + + // ALWAYS remove the resizer & toggler elements + if ($Ts[pane1]) $Ts[pane1].remove(); + if ($Ts[pane2]) $Ts[pane2].remove(); + if ($Rs[pane1]) $Rs[pane1].remove(); + if ($Rs[pane2]) $Rs[pane2].remove(); + $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; + + // transfer element pointers and data to NEW Layout keys + move( oPane1, pane2 ); + move( oPane2, pane1 ); + + // cleanup objects + oPane1 = oPane2 = sizes = null; + + // make panes 'visible' again + if ($Ps[pane1]) $Ps[pane1].css(_c.visible); + if ($Ps[pane2]) $Ps[pane2].css(_c.visible); + + // fix any size discrepancies caused by swap + resizeAll(); + + // run these even if NOT state.initialized + _runCallbacks("onswap_end", pane1); + _runCallbacks("onswap_end", pane2); + + return; + + function copy (n) { // n = pane + var + $P = $Ps[n] + , $C = $Cs[n] + ; + return !$P ? false : { + pane: n + , P: $P ? $P[0] : false + , C: $C ? $C[0] : false + , state: $.extend(true, {}, state[n]) + , options: $.extend(true, {}, options[n]) + } + }; + + function move (oPane, pane) { + if (!oPane) return; + var + P = oPane.P + , C = oPane.C + , oldPane = oPane.pane + , c = _c[pane] + // save pane-options that should be retained + , s = $.extend(true, {}, state[pane]) + , o = options[pane] + // RETAIN side-specific FX Settings - more below + , fx = { resizerCursor: o.resizerCursor } + , re, size, pos + ; + $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { + fx[k +"_open"] = o[k +"_open"]; + fx[k +"_close"] = o[k +"_close"]; + fx[k +"_size"] = o[k +"_size"]; + }); + + // update object pointers and attributes + $Ps[pane] = $(P) + .data({ + layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + }) + .css(_c.hidden) + .css(c.cssReq) + ; + $Cs[pane] = C ? $(C) : false; + + // set options and state + options[pane] = $.extend(true, {}, oPane.options, fx); + state[pane] = $.extend(true, {}, oPane.state); + + // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west + re = new RegExp(o.paneClass +"-"+ oldPane, "g"); + P.className = P.className.replace(re, o.paneClass +"-"+ pane); + + // ALWAYS regenerate the resizer & toggler elements + initHandles(pane); // create the required resizer & toggler + + // if moving to different orientation, then keep 'target' pane size + if (c.dir != _c[oldPane].dir) { + size = sizes[pane] || 0; + setSizeLimits(pane); // update pane-state + size = max(size, state[pane].minSize); + // use manualSizePane to disable autoResize - not useful after panes are swapped + manualSizePane(pane, size, true, true); // true/true = skipCallback/noAnimation + } + else // move the resizer here + $Rs[pane].css(c.side, sC.inset[c.side] + (state[pane].isVisible ? getPaneSize(pane) : 0)); + + + // ADD CLASSNAMES & SLIDE-BINDINGS + if (oPane.state.isVisible && !s.isVisible) + setAsOpen(pane, true); // true = skipCallback + else { + setAsClosed(pane); + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + // DESTROY the object + oPane = null; + }; + } + + + /** + * INTERNAL method to sync pin-buttons when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), setAsOpen(), setAsClosed() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns = function (pane, doPin) { + if ($.layout.plugins.buttons) + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(Instance, $(selector), pane, doPin); + }); + } + +; // END var DECLARATIONS + + /** + * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed + * + * @see document.keydown() + */ + function keyDown (evt) { + if (!evt) return true; + var code = evt.keyCode; + if (code < 33) return true; // ignore special keys: ENTER, TAB, etc + + var + PANE = { + 38: "north" // Up Cursor - $.ui.keyCode.UP + , 40: "south" // Down Cursor - $.ui.keyCode.DOWN + , 37: "west" // Left Cursor - $.ui.keyCode.LEFT + , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT + } + , ALT = evt.altKey // no worky! + , SHIFT = evt.shiftKey + , CTRL = evt.ctrlKey + , CURSOR = (CTRL && code >= 37 && code <= 40) + , o, k, m, pane + ; + + if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey + pane = PANE[code]; + else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey + $.each(_c.borderPanes, function (i, p) { // loop each pane to check its hotkey + o = options[p]; + k = o.customHotkey; + m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" + if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches + if (k && code === (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches + pane = p; + return false; // BREAK + } + } + }); + + // validate pane + if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) + return true; + + toggle(pane); + + evt.stopPropagation(); + evt.returnValue = false; // CANCEL key + return false; + }; + + +/* + * ###################################### + * UTILITY METHODS + * called externally or by initButtons + * ###################################### + */ + + /** + * Change/reset a pane overflow setting & zIndex to allow popups/drop-downs to work + * + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function allowOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + ; + + // if pane is already raised, then reset it before doing it again! + // this would happen if allowOverflow is attached to BOTH the pane and an element + if (s.cssSaved) + resetOverflow(pane); // reset previous CSS before continuing + + // if pane is raised by sliding or resizing, or its closed, then abort + if (s.isSliding || s.isResizing || s.isClosed) { + s.cssSaved = false; + return; + } + + var + newCSS = { zIndex: (options.zIndexes.resizer_normal + 1) } + , curCSS = {} + , of = $P.css("overflow") + , ofX = $P.css("overflowX") + , ofY = $P.css("overflowY") + ; + // determine which, if any, overflow settings need to be changed + if (of != "visible") { + curCSS.overflow = of; + newCSS.overflow = "visible"; + } + if (ofX && !ofX.match(/(visible|auto)/)) { + curCSS.overflowX = ofX; + newCSS.overflowX = "visible"; + } + if (ofY && !ofY.match(/(visible|auto)/)) { + curCSS.overflowY = ofX; + newCSS.overflowY = "visible"; + } + + // save the current overflow settings - even if blank! + s.cssSaved = curCSS; + + // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' + $P.css( newCSS ); + + // make sure the zIndex of all other panes is normal + $.each(_c.allPanes, function(i, p) { + if (p != pane) resetOverflow(p); + }); + + }; + /** + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function resetOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + , CSS = s.cssSaved || {} + ; + // reset the zIndex + if (!s.isSliding && !s.isResizing) + $P.css("zIndex", options.zIndexes.pane_normal); + + // reset Overflow - if necessary + $P.css( CSS ); + + // clear var + s.cssSaved = false; + }; + +/* + * ##################### + * CREATE/RETURN LAYOUT + * ##################### + */ + + // validate that container exists + var $N = $(this).eq(0); // FIRST matching Container element + if (!$N.length) { + return _log( options.errors.containerMissing ); + }; + + // Users retrieve Instance of a layout with: $N.layout() OR $N.data("layout") + // return the Instance-pointer if layout has already been initialized + if ($N.data("layoutContainer") && $N.data("layout")) + return $N.data("layout"); // cached pointer + + // init global vars + var + $Ps = {} // Panes x5 - set in initPanes() + , $Cs = {} // Content x5 - set in initPanes() + , $Rs = {} // Resizers x4 - set in initHandles() + , $Ts = {} // Togglers x4 - set in initHandles() + , $Ms = $([]) // Masks - up to 2 masks per pane (IFRAME + DIV) + // aliases for code brevity + , sC = state.container // alias for easy access to 'container dimensions' + , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" + ; + + // create Instance object to expose data & option Properties, and primary action Methods + var Instance = { + // layout data + options: options // property - options hash + , state: state // property - dimensions hash + // object pointers + , container: $N // property - object pointers for layout container + , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center + , contents: $Cs // property - object pointers for ALL Content: contents.north, contents.center + , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north + , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north + // border-pane open/close + , hide: hide // method - ditto + , show: show // method - ditto + , toggle: toggle // method - pass a 'pane' ("north", "west", etc) + , open: open // method - ditto + , close: close // method - ditto + , slideOpen: slideOpen // method - ditto + , slideClose: slideClose // method - ditto + , slideToggle: slideToggle // method - ditto + // pane actions + , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data + , _sizePane: sizePane // method -intended for user by plugins only! + , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' + , sizeContent: sizeContent // method - pass a 'pane' + , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them + , showMasks: showMasks // method - pass a 'pane' OR list of panes - default = all panes with mask option set + , hideMasks: hideMasks // method - ditto' + // pane element methods + , initContent: initContent // method - ditto + , addPane: addPane // method - pass a 'pane' + , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem + , createChildren: createChildren // method - pass a 'pane' and (optional) layout-options (OVERRIDES options[pane].children + , refreshChildren: refreshChildren // method - pass a 'pane' and a layout-instance + // special pane option setting + , enableClosable: enableClosable // method - pass a 'pane' + , disableClosable: disableClosable // method - ditto + , enableSlidable: enableSlidable // method - ditto + , disableSlidable: disableSlidable // method - ditto + , enableResizable: enableResizable // method - ditto + , disableResizable: disableResizable// method - ditto + // utility methods for panes + , allowOverflow: allowOverflow // utility - pass calling element (this) + , resetOverflow: resetOverflow // utility - ditto + // layout control + , destroy: destroy // method - no parameters + , initPanes: isInitialized // method - no parameters + , resizeAll: resizeAll // method - no parameters + // callback triggering + , runCallbacks: _runCallbacks // method - pass evtName & pane (if a pane-event), eg: trigger("onopen", "west") + // alias collections of options, state and children - created in addPane and extended elsewhere + , hasParentLayout: false // set by initContainer() + , children: children // pointers to child-layouts, eg: Instance.children.west.layoutName + , north: false // alias group: { name: pane, pane: $Ps[pane], options: options[pane], state: state[pane], children: children[pane] } + , south: false // ditto + , west: false // ditto + , east: false // ditto + , center: false // ditto + }; + + // create the border layout NOW + if (_create() === 'cancel') // onload_start callback returned false to CANCEL layout creation + return null; + else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later + return Instance; // return the Instance object + +} + + +})( jQuery ); + + + + +/** + * jquery.layout.state 1.2 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * + * Copyright (c) 2014 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.4.0 or higher + * @requires: $.ui.cookie (above) + * + * @see: http://groups.google.com/group/jquery-ui-layout + */ +;(function ($) { + +if (!$.layout) return; + + +/** + * UI COOKIE UTILITY + * + * A $.cookie OR $.ui.cookie namespace *should be standard*, but until then... + * This creates $.ui.cookie so Layout does not need the cookie.jquery.js plugin + * NOTE: This utility is REQUIRED by the layout.state plugin + * + * Cookie methods in Layout are created as part of State Management + */ +if (!$.ui) $.ui = {}; +$.ui.cookie = { + + // cookieEnabled is not in DOM specs, but DOES works in all browsers,including IE6 + acceptsCookies: !!navigator.cookieEnabled + +, read: function (name) { + var + c = document.cookie + , cs = c ? c.split(';') : [] + , pair, data, i + ; + for (i=0; pair=cs[i]; i++) { + data = $.trim(pair).split('='); // name=value => [ name, value ] + if (data[0] == name) // found the layout cookie + return decodeURIComponent(data[1]); + } + return null; + } + +, write: function (name, val, cookieOpts) { + var params = "" + , date = "" + , clear = false + , o = cookieOpts || {} + , x = o.expires || null + , t = $.type(x) + ; + if (t === "date") + date = x; + else if (t === "string" && x > 0) { + x = parseInt(x,10); + t = "number"; + } + if (t === "number") { + date = new Date(); + if (x > 0) + date.setDate(date.getDate() + x); + else { + date.setFullYear(1970); + clear = true; + } + } + if (date) params += ";expires="+ date.toUTCString(); + if (o.path) params += ";path="+ o.path; + if (o.domain) params += ";domain="+ o.domain; + if (o.secure) params += ";secure"; + document.cookie = name +"="+ (clear ? "" : encodeURIComponent( val )) + params; // write or clear cookie + } + +, clear: function (name) { + $.ui.cookie.write(name, "", {expires: -1}); + } + +}; +// if cookie.jquery.js is not loaded, create an alias to replicate it +// this may be useful to other plugins or code dependent on that plugin +if (!$.cookie) $.cookie = function (k, v, o) { + var C = $.ui.cookie; + if (v === null) + C.clear(k); + else if (v === undefined) + return C.read(k); + else + C.write(k, v, o); +}; + + + +/** + * State-management options stored in options.stateManagement, which includes a .cookie hash + * Default options saves ALL KEYS for ALL PANES, ie: pane.size, pane.isClosed, pane.isHidden + * + * // STATE/COOKIE OPTIONS + * @example $(el).layout({ + stateManagement: { + enabled: true + , stateKeys: "east.size,west.size,east.isClosed,west.isClosed" + , cookie: { name: "appLayout", path: "/" } + } + }) + * @example $(el).layout({ stateManagement__enabled: true }) // enable auto-state-management using cookies + * @example $(el).layout({ stateManagement__cookie: { name: "appLayout", path: "/" } }) + * @example $(el).layout({ stateManagement__cookie__name: "appLayout", stateManagement__cookie__path: "/" }) + * + * // STATE/COOKIE METHODS + * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); + * @example myLayout.loadCookie(); + * @example myLayout.deleteCookie(); + * @example var JSON = myLayout.readState(); // CURRENT Layout State + * @example var JSON = myLayout.readCookie(); // SAVED Layout State (from cookie) + * @example var JSON = myLayout.state.stateData; // LAST LOADED Layout State (cookie saved in layout.state hash) + * + * CUSTOM STATE-MANAGEMENT (eg, saved in a database) + * @example var JSON = myLayout.readState( "west.isClosed,north.size,south.isHidden" ); + * @example myLayout.loadState( JSON ); + */ + +// tell Layout that the state plugin is available +$.layout.plugins.stateManagement = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.stateManagement = { + enabled: false // true = enable state-management, even if not using cookies +, autoSave: true // Save a state-cookie when page exits? +, autoLoad: true // Load the state-cookie when Layout inits? +, animateLoad: true // animate panes when loading state into an active layout +, includeChildren: true // recurse into child layouts to include their state as well + // List state-data to save - must be pane-specific +, stateKeys: "north.size,south.size,east.size,west.size,"+ + "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ + "north.isHidden,south.isHidden,east.isHidden,west.isHidden" +, cookie: { + name: "" // If not specified, will use Layout.name, else just "Layout" + , domain: "" // blank = current domain + , path: "" // blank = current page, "/" = entire website + , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' + , secure: false + } +}; + +// Set stateManagement as a 'layout-option', NOT a 'pane-option' +$.layout.optionsMap.layout.push("stateManagement"); +// Update config so layout does not move options into the pane-default branch (panes) +$.layout.config.optionRootKeys.push("stateManagement"); + +/* + * State Management methods + */ +$.layout.state = { + + /** + * Get the current layout state and save it to a cookie + * + * myLayout.saveCookie( keys, cookieOpts ) + * + * @param {Object} inst + * @param {(string|Array)=} keys + * @param {Object=} cookieOpts + */ + saveCookie: function (inst, keys, cookieOpts) { + var o = inst.options + , sm = o.stateManagement + , oC = $.extend(true, {}, sm.cookie, cookieOpts || null) + , data = inst.state.stateData = inst.readState( keys || sm.stateKeys ) // read current panes-state + ; + $.ui.cookie.write( oC.name || o.name || "Layout", $.layout.state.encodeJSON(data), oC ); + return $.extend(true, {}, data); // return COPY of state.stateData data + } + + /** + * Remove the state cookie + * + * @param {Object} inst + */ +, deleteCookie: function (inst) { + var o = inst.options; + $.ui.cookie.clear( o.stateManagement.cookie.name || o.name || "Layout" ); + } + + /** + * Read & return data from the cookie - as JSON + * + * @param {Object} inst + */ +, readCookie: function (inst) { + var o = inst.options; + var c = $.ui.cookie.read( o.stateManagement.cookie.name || o.name || "Layout" ); + // convert cookie string back to a hash and return it + return c ? $.layout.state.decodeJSON(c) : {}; + } + + /** + * Get data from the cookie and USE IT to loadState + * + * @param {Object} inst + */ +, loadCookie: function (inst) { + var c = $.layout.state.readCookie(inst); // READ the cookie + if (c && !$.isEmptyObject( c )) { + inst.state.stateData = $.extend(true, {}, c); // SET state.stateData + inst.loadState(c); // LOAD the retrieved state + } + return c; + } + + /** + * Update layout options from the cookie, if one exists + * + * @param {Object} inst + * @param {Object=} stateData + * @param {boolean=} animate + */ +, loadState: function (inst, data, opts) { + if (!$.isPlainObject( data ) || $.isEmptyObject( data )) return; + + // normalize data & cache in the state object + data = inst.state.stateData = $.layout.transformData( data ); // panes = default subkey + + // add missing/default state-restore options + var smo = inst.options.stateManagement; + opts = $.extend({ + animateLoad: false //smo.animateLoad + , includeChildren: smo.includeChildren + }, opts ); + + if (!inst.state.initialized) { + /* + * layout NOT initialized, so just update its options + */ + // MUST remove pane.children keys before applying to options + // use a copy so we don't remove keys from original data + var o = $.extend(true, {}, data); + //delete o.center; // center has no state-data - only children + $.each($.layout.config.allPanes, function (idx, pane) { + if (o[pane]) delete o[pane].children; + }); + // update CURRENT layout-options with saved state data + $.extend(true, inst.options, o); + } + else { + /* + * layout already initialized, so modify layout's configuration + */ + var noAnimate = !opts.animateLoad + , o, c, h, state, open + ; + $.each($.layout.config.borderPanes, function (idx, pane) { + o = data[ pane ]; + if (!$.isPlainObject( o )) return; // no key, skip pane + + s = o.size; + c = o.initClosed; + h = o.initHidden; + ar = o.autoResize + state = inst.state[pane]; + open = state.isVisible; + + // reset autoResize + if (ar) + state.autoResize = ar; + // resize BEFORE opening + if (!open) + inst._sizePane(pane, s, false, false, false); // false=skipCallback/noAnimation/forceResize + // open/close as necessary - DO NOT CHANGE THIS ORDER! + if (h === true) inst.hide(pane, noAnimate); + else if (c === true) inst.close(pane, false, noAnimate); + else if (c === false) inst.open (pane, false, noAnimate); + else if (h === false) inst.show (pane, false, noAnimate); + // resize AFTER any other actions + if (open) + inst._sizePane(pane, s, false, false, noAnimate); // animate resize if option passed + }); + + /* + * RECURSE INTO CHILD-LAYOUTS + */ + if (opts.includeChildren) { + var paneStateChildren, childState; + $.each(inst.children, function (pane, paneChildren) { + paneStateChildren = data[pane] ? data[pane].children : 0; + if (paneStateChildren && paneChildren) { + $.each(paneChildren, function (stateKey, child) { + childState = paneStateChildren[stateKey]; + if (child && childState) + child.loadState( childState ); + }); + } + }); + } + } + } + + /** + * Get the *current layout state* and return it as a hash + * + * @param {Object=} inst // Layout instance to get state for + * @param {object=} [opts] // State-Managements override options + */ +, readState: function (inst, opts) { + // backward compatility + if ($.type(opts) === 'string') opts = { keys: opts }; + if (!opts) opts = {}; + var sm = inst.options.stateManagement + , ic = opts.includeChildren + , recurse = ic !== undefined ? ic : sm.includeChildren + , keys = opts.stateKeys || sm.stateKeys + , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } + , state = inst.state + , panes = $.layout.config.allPanes + , data = {} + , pair, pane, key, val + , ps, pC, child, array, count, branch + ; + if ($.isArray(keys)) keys = keys.join(","); + // convert keys to an array and change delimiters from '__' to '.' + keys = keys.replace(/__/g, ".").split(','); + // loop keys and create a data hash + for (var i=0, n=keys.length; i < n; i++) { + pair = keys[i].split("."); + pane = pair[0]; + key = pair[1]; + if ($.inArray(pane, panes) < 0) continue; // bad pane! + val = state[ pane ][ key ]; + if (val == undefined) continue; + if (key=="isClosed" && state[pane]["isSliding"]) + val = true; // if sliding, then *really* isClosed + ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; + } + + // recurse into the child-layouts for each pane + if (recurse) { + $.each(panes, function (idx, pane) { + pC = inst.children[pane]; + ps = state.stateData[pane]; + if ($.isPlainObject( pC ) && !$.isEmptyObject( pC )) { + // ensure a key exists for this 'pane', eg: branch = data.center + branch = data[pane] || (data[pane] = {}); + if (!branch.children) branch.children = {}; + $.each( pC, function (key, child) { + // ONLY read state from an initialize layout + if ( child.state.initialized ) + branch.children[ key ] = $.layout.state.readState( child ); + // if we have PREVIOUS (onLoad) state for this child-layout, KEEP IT! + else if ( ps && ps.children && ps.children[ key ] ) { + branch.children[ key ] = $.extend(true, {}, ps.children[ key ] ); + } + }); + } + }); + } + + return data; + } + + /** + * Stringify a JSON hash so can save in a cookie or db-field + */ +, encodeJSON: function (json) { + var local = window.JSON || {}; + return (local.stringify || stringify)(json); + + function stringify (h) { + var D=[], i=0, k, v, t // k = key, v = value + , a = $.isArray(h) + ; + for (k in h) { + v = h[k]; + t = typeof v; + if (t == 'string') // STRING - add quotes + v = '"'+ v +'"'; + else if (t == 'object') // SUB-KEY - recurse into it + v = parse(v); + D[i++] = (!a ? '"'+ k +'":' : '') + v; + } + return (a ? '[' : '{') + D.join(',') + (a ? ']' : '}'); + }; + } + + /** + * Convert stringified JSON back to a hash object + * @see $.parseJSON(), adding in jQuery 1.4.1 + */ +, decodeJSON: function (str) { + try { return $.parseJSON ? $.parseJSON(str) : window["eval"]("("+ str +")") || {}; } + catch (e) { return {}; } + } + + +, _create: function (inst) { + var s = $.layout.state + , o = inst.options + , sm = o.stateManagement + ; + // ADD State-Management plugin methods to inst + $.extend( inst, { + // readCookie - update options from cookie - returns hash of cookie data + readCookie: function () { return s.readCookie(inst); } + // deleteCookie + , deleteCookie: function () { s.deleteCookie(inst); } + // saveCookie - optionally pass keys-list and cookie-options (hash) + , saveCookie: function (keys, cookieOpts) { return s.saveCookie(inst, keys, cookieOpts); } + // loadCookie - readCookie and use to loadState() - returns hash of cookie data + , loadCookie: function () { return s.loadCookie(inst); } + // loadState - pass a hash of state to use to update options + , loadState: function (stateData, opts) { s.loadState(inst, stateData, opts); } + // readState - returns hash of current layout-state + , readState: function (keys) { return s.readState(inst, keys); } + // add JSON utility methods too... + , encodeJSON: s.encodeJSON + , decodeJSON: s.decodeJSON + }); + + // init state.stateData key, even if plugin is initially disabled + inst.state.stateData = {}; + + // autoLoad MUST BE one of: data-array, data-hash, callback-function, or TRUE + if ( !sm.autoLoad ) return; + + // When state-data exists in the autoLoad key USE IT, + // even if stateManagement.enabled == false + if ($.isPlainObject( sm.autoLoad )) { + if (!$.isEmptyObject( sm.autoLoad )) { + inst.loadState( sm.autoLoad ); + } + } + else if ( sm.enabled ) { + // update the options from cookie or callback + // if options is a function, call it to get stateData + if ($.isFunction( sm.autoLoad )) { + var d = {}; + try { + d = sm.autoLoad( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + if (d && $.isPlainObject( d ) && !$.isEmptyObject( d )) + inst.loadState(d); + } + else // any other truthy value will trigger loadCookie + inst.loadCookie(); + } + } + +, _unload: function (inst) { + var sm = inst.options.stateManagement; + if (sm.enabled && sm.autoSave) { + // if options is a function, call it to save the stateData + if ($.isFunction( sm.autoSave )) { + try { + sm.autoSave( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + } + else // any truthy value will trigger saveCookie + inst.saveCookie(); + } + } + +}; + +// add state initialization method to Layout's onCreate array of functions +$.layout.onCreate.push( $.layout.state._create ); +$.layout.onUnload.push( $.layout.state._unload ); + +})( jQuery ); + + + +/** + * @preserve jquery.layout.buttons 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2011 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * Docs: [ to come ] + * Tips: [ to come ] + */ +;(function ($) { + +if (!$.layout) return; + + +// tell Layout that the state plugin is available +$.layout.plugins.buttons = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.autoBindCustomButtons = false; +// Set stateManagement as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("autoBindCustomButtons"); + +var lang = $.layout.language; + +/* + * Button methods + */ +$.layout.buttons = { + // set data used by multiple methods below + config: { + borderPanes: "north,south,west,east" + } + + /** + * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons + * + * @see _create() + */ +, init: function (inst) { + var pre = "ui-layout-button-" + , layout = inst.options.name || "" + , name; + $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { + $.each($.layout.buttons.config.borderPanes.split(","), function (ii, pane) { + $("."+pre+action+"-"+pane).each(function(){ + // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' + name = $(this).data("layoutName") || $(this).attr("layoutName"); + if (name == undefined || name === layout) + inst.bindButton(this, action, pane); + }); + }); + }); + } + + /** + * Helper function to validate params received by addButton utilities + * + * Two classes are added to the element, based on the buttonClass... + * The type of button is appended to create the 2nd className: + * - ui-layout-button-pin + * - ui-layout-pane-button-toggle + * - ui-layout-pane-button-open + * - ui-layout-pane-button-close + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null + */ +, get: function (inst, selector, pane, action) { + var $E = $(selector) + , o = inst.options + , err = o.showErrorMessages + ; + if (!$E.length) { // element not found + if (err) alert(lang.errButton + lang.selector +": "+ selector); + } + else if ($.layout.buttons.config.borderPanes.indexOf(pane) === -1) { // invalid 'pane' sepecified + if (err) alert(lang.errButton + lang.pane +": "+ pane); + $E = $(""); // NO BUTTON + } + else { // VALID + var btn = o[pane].buttonClass +"-"+ action; + $E .addClass( btn +" "+ btn +"-"+ pane ) + .data("layoutName", o.name); // add layout identifier - even if blank! + } + return $E; + } + + + /** + * NEW syntax for binding layout-buttons - will eventually replace addToggle, addOpen, etc. + * + * @param {(string|!Object)} sel jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} action + * @param {string} pane + */ +, bind: function (inst, sel, action, pane) { + var _ = $.layout.buttons; + switch (action.toLowerCase()) { + case "toggle": _.addToggle (inst, sel, pane); break; + case "open": _.addOpen (inst, sel, pane); break; + case "close": _.addClose (inst, sel, pane); break; + case "pin": _.addPin (inst, sel, pane); break; + case "toggle-slide": _.addToggle (inst, sel, pane, true); break; + case "open-slide": _.addOpen (inst, sel, pane, true); break; + } + return inst; + } + + /** + * Add a custom Toggler button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addToggle: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "toggle") + .click(function(evt){ + inst.toggle(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Open button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addOpen: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "open") + .attr("title", lang.Open) + .click(function (evt) { + inst.open(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Close button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + */ +, addClose: function (inst, selector, pane) { + $.layout.buttons.get(inst, selector, pane, "close") + .attr("title", lang.Close) + .click(function (evt) { + inst.close(pane); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Pin button for a pane + * + * Four classes are added to the element, based on the paneClass for the associated pane... + * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: + * - ui-layout-pane-pin + * - ui-layout-pane-west-pin + * - ui-layout-pane-pin-up + * - ui-layout-pane-west-pin-up + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. + */ +, addPin: function (inst, selector, pane) { + var $E = $.layout.buttons.get(inst, selector, pane, "pin"); + if ($E.length) { + var s = inst.state[pane]; + $E.click(function (evt) { + $.layout.buttons.setPinState(inst, $(this), pane, (s.isSliding || s.isClosed)); + if (s.isSliding || s.isClosed) inst.open( pane ); // change from sliding to open + else inst.close( pane ); // slide-closed + evt.stopPropagation(); + }); + // add up/down pin attributes and classes + $.layout.buttons.setPinState(inst, $E, pane, (!s.isClosed && !s.isSliding)); + // add this pin to the pane data so we can 'sync it' automatically + // PANE.pins key is an array so we can store multiple pins for each pane + s.pins.push( selector ); // just save the selector string + } + return inst; + } + + /** + * Change the class of the pin button to make it look 'up' or 'down' + * + * @see addPin(), syncPins() + * @param {Array.} $Pin The pin-span element in a jQuery wrapper + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin true = set the pin 'down', false = set it 'up' + */ +, setPinState: function (inst, $Pin, pane, doPin) { + var updown = $Pin.attr("pin"); + if (updown && doPin === (updown=="down")) return; // already in correct state + var + pin = inst.options[pane].buttonClass +"-pin" + , side = pin +"-"+ pane + , UP = pin +"-up "+ side +"-up" + , DN = pin +"-down "+side +"-down" + ; + $Pin + .attr("pin", doPin ? "down" : "up") // logic + .attr("title", doPin ? lang.Unpin : lang.Pin) + .removeClass( doPin ? UP : DN ) + .addClass( doPin ? DN : UP ) + ; + } + + /** + * INTERNAL function to sync 'pin buttons' when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), close() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns: function (inst, pane, doPin) { + // REAL METHOD IS _INSIDE_ LAYOUT - THIS IS HERE JUST FOR REFERENCE + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(inst, $(selector), pane, doPin); + }); + } + + +, _load: function (inst) { + // ADD Button methods to Layout Instance + $.extend( inst, { + bindButton: function (selector, action, pane) { return $.layout.buttons.bind(inst, selector, action, pane); } + // DEPRECATED METHODS... + , addToggleBtn: function (selector, pane, slide) { return $.layout.buttons.addToggle(inst, selector, pane, slide); } + , addOpenBtn: function (selector, pane, slide) { return $.layout.buttons.addOpen(inst, selector, pane, slide); } + , addCloseBtn: function (selector, pane) { return $.layout.buttons.addClose(inst, selector, pane); } + , addPinBtn: function (selector, pane) { return $.layout.buttons.addPin(inst, selector, pane); } + }); + + // init state array to hold pin-buttons + for (var i=0; i<4; i++) { + var pane = $.layout.buttons.config.borderPanes[i]; + inst.state[pane].pins = []; + } + + // auto-init buttons onLoad if option is enabled + if ( inst.options.autoBindCustomButtons ) + $.layout.buttons.init(inst); + } + +, _unload: function (inst) { + // TODO: unbind all buttons??? + } + +}; + +// add initialization method to Layout's onLoad array of functions +$.layout.onLoad.push( $.layout.buttons._load ); +//$.layout.onUnload.push( $.layout.buttons._unload ); + +})( jQuery ); + + + + +/** + * jquery.layout.browserZoom 1.0 + * $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $ + * + * Copyright (c) 2012 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.3.0.rc30.1 or higher + * + * @see: http://groups.google.com/group/jquery-ui-layout + * + * TODO: Extend logic to handle other problematic zooming in browsers + * TODO: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event + */ +(function ($) { + +// tell Layout that the plugin is available +$.layout.plugins.browserZoom = true; + +$.layout.defaults.browserZoomCheckInterval = 1000; +$.layout.optionsMap.layout.push("browserZoomCheckInterval"); + +/* + * browserZoom methods + */ +$.layout.browserZoom = { + + _init: function (inst) { + // abort if browser does not need this check + if ($.layout.browserZoom.ratio() !== false) + $.layout.browserZoom._setTimer(inst); + } + +, _setTimer: function (inst) { + // abort if layout destroyed or browser does not need this check + if (inst.destroyed) return; + var o = inst.options + , s = inst.state + // don't need check if inst has parentLayout, but check occassionally in case parent destroyed! + // MINIMUM 100ms interval, for performance + , ms = inst.hasParentLayout ? 5000 : Math.max( o.browserZoomCheckInterval, 100 ) + ; + // set the timer + setTimeout(function(){ + if (inst.destroyed || !o.resizeWithWindow) return; + var d = $.layout.browserZoom.ratio(); + if (d !== s.browserZoom) { + s.browserZoom = d; + inst.resizeAll(); + } + // set a NEW timeout + $.layout.browserZoom._setTimer(inst); + } + , ms ); + } + +, ratio: function () { + var w = window + , s = screen + , d = document + , dE = d.documentElement || d.body + , b = $.layout.browser + , v = b.version + , r, sW, cW + ; + // we can ignore all browsers that fire window.resize event onZoom + if (!b.msie || v > 8) + return false; // don't need to track zoom + if (s.deviceXDPI && s.systemXDPI) // syntax compiler hack + return calc(s.deviceXDPI, s.systemXDPI); + // everything below is just for future reference! + if (b.webkit && (r = d.body.getBoundingClientRect)) + return calc((r.left - r.right), d.body.offsetWidth); + if (b.webkit && (sW = w.outerWidth)) + return calc(sW, w.innerWidth); + if ((sW = s.width) && (cW = dE.clientWidth)) + return calc(sW, cW); + return false; // no match, so cannot - or don't need to - track zoom + + function calc (x,y) { return (parseInt(x,10) / parseInt(y,10) * 100).toFixed(); } + } + +}; +// add initialization method to Layout's onLoad array of functions +$.layout.onReady.push( $.layout.browserZoom._init ); + + +})( jQuery ); + + + + +/** + * UI Layout Plugin: Slide-Offscreen Animation + * + * Prevent panes from being 'hidden' so that an iframes/objects + * does not reload/refresh when pane 'opens' again. + * This plug-in adds a new animation called "slideOffscreen". + * It is identical to the normal "slide" effect, but avoids hiding the element + * + * Requires Layout 1.3.0.RC30.1 or later for Close offscreen + * Requires Layout 1.3.0.RC30.5 or later for Hide, initClosed & initHidden offscreen + * + * Version: 1.1 - 2012-11-18 + * Author: Kevin Dalman (kevin@jquery-dev.com) + * @preserve jquery.layout.slideOffscreen-1.1.js + */ +;(function ($) { + +// Add a new "slideOffscreen" effect +if ($.effects) { + + // add an option so initClosed and initHidden will work + $.layout.defaults.panes.useOffscreenClose = false; // user must enable when needed + /* set the new animation as the default for all panes + $.layout.defaults.panes.fxName = "slideOffscreen"; + */ + + if ($.layout.plugins) + $.layout.plugins.effects.slideOffscreen = true; + + // dupe 'slide' effect defaults as new effect defaults + $.layout.effects.slideOffscreen = $.extend(true, {}, $.layout.effects.slide); + + // add new effect to jQuery UI + $.effects.slideOffscreen = function(o) { + return this.queue(function(){ + + var fx = $.effects + , opt = o.options + , $el = $(this) + , pane = $el.data('layoutEdge') + , state = $el.data('parentLayout').state + , dist = state[pane].size + , s = this.style + , props = ['top','bottom','left','right'] + // Set options + , mode = fx.setMode($el, opt.mode || 'show') // Set Mode + , show = (mode == 'show') + , dir = opt.direction || 'left' // Default Direction + , ref = (dir == 'up' || dir == 'down') ? 'top' : 'left' + , pos = (dir == 'up' || dir == 'left') + , offscrn = $.layout.config.offscreenCSS || {} + , keyLR = $.layout.config.offscreenReset + , keyTB = 'offscreenResetTop' // only used internally + , animation = {} + ; + // Animation settings + animation[ref] = (show ? (pos ? '+=' : '-=') : (pos ? '-=' : '+=')) + dist; + + if (show) { // show() animation, so save top/bottom but retain left/right set when 'hidden' + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + + // set the top or left offset in preparation for animation + // Note: ALL animations work by shifting the top or left edges + if (pos) { // top (north) or left (west) + $el.css(ref, isNaN(dist) ? "-" + dist : -dist); // Shift outside the left/top edge + } + else { // bottom (south) or right (east) - shift all the way across container + if (dir === 'right') + $el.css({ left: state.container.layoutWidth, right: 'auto' }); + else // dir === bottom + $el.css({ top: state.container.layoutHeight, bottom: 'auto' }); + } + // restore the left/right setting if is a top/bottom animation + if (ref === 'top') + $el.css( $el.data( keyLR ) || {} ); + } + else { // hide() animation, so save ALL CSS + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + $el.data(keyLR, { left: s.left, right: s.right }); + } + + // Animate + $el.show().animate(animation, { queue: false, duration: o.duration, easing: opt.easing, complete: function(){ + // Restore top/bottom + if ($el.data( keyTB )) + $el.css($el.data( keyTB )).removeData( keyTB ); + if (show) // Restore left/right too + $el.css($el.data( keyLR ) || {}).removeData( keyLR ); + else // Move the pane off-screen (left: -99999, right: 'auto') + $el.css( offscrn ); + + if (o.callback) o.callback.apply(this, arguments); // Callback + $el.dequeue(); + }}); + + }); + }; + +} + +})( jQuery ); diff --git a/web/src/main/webapp/resources/js/comaco.js b/web/src/main/webapp/resources/js/comaco.js new file mode 100644 index 0000000..163d0bd --- /dev/null +++ b/web/src/main/webapp/resources/js/comaco.js @@ -0,0 +1,99 @@ +/** + * Mantener funciones en un solo formato + */ +var comaco = { + upperText:function(event, element){ + var e = event || window.event; + var k = null; + if(e.which) k = e.which; + else if(e.keyCode) k = e.keyCode; + + //Control para permitir ctrl+c, ctrl+v, ctrl+x + if(e.ctrlKey==true && k==99) + return true; + if(e.ctrlKey==true && k==118) + return true; + if(e.ctrlKey==true && k==120) + return true; + + if(k==8 || k==16 || k==39 || k==37 || e.shiftKey){ + return true; + } + + $(element).addClass("m-upper-case"); + var x = this.doGetCaretPosition(element); + element.value=element.value.toUpperCase(); + this.doSetCaretPosition(element,x); + }, + doGetCaretPosition: function(oField) { + var iCaretPos = 0; + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + // Move selection start to 0 position + oSel.moveStart ('character', -oField.value.length); + // The caret position is selection length + iCaretPos = oSel.text.length; + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + iCaretPos = oField.selectionStart; + return (iCaretPos); + }, + doSetCaretPosition: function (oField, iCaretPos) + { + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + oSel.moveStart('character', -oField.value.length); + oSel.moveStart('character', iCaretPos); + oSel.moveEnd('character', 0); + oSel.select(); + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + { + oField.selectionStart = iCaretPos; + oField.selectionEnd = iCaretPos; + oField.focus(); + } + }, + keyLocks: function (e) + { + var key; + if(window.event) + { + key = window.event.keyCode; + if(key == 116 || key == 122) + { + event.keyCode=0; + event.returnValue=false; + } + } + else + { + key = e.which; + if(key == 116||key == 122) + { + return true; + } + } + } +}; + +$(document).ready(function () { + $('#container').layout({ applyDemoStyles: true, + north: { + closable: false, + resizable: false + } + , south: { + closable: false, + resizable: false + } + }); + document.oncontextmenu = new Function("return false"); + window.history.forward(); +}); diff --git a/web/src/main/webapp/resources/js/jquery.layout-latest.js b/web/src/main/webapp/resources/js/jquery.layout-latest.js new file mode 100644 index 0000000..a16642b --- /dev/null +++ b/web/src/main/webapp/resources/js/jquery.layout-latest.js @@ -0,0 +1,6083 @@ +/** + * @preserve + * jquery.layout 1.4.3 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * $Rev: 1.0403 $ + * + * Copyright (c) 2014 Kevin Dalman (http://jquery-dev.com) + * Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * SEE: http://layout.jquery-dev.com/LICENSE.txt + * + * Changelog: http://layout.jquery-dev.com/changelog.cfm + * + * Docs: http://layout.jquery-dev.com/documentation.html + * Tips: http://layout.jquery-dev.com/tips.html + * Help: http://groups.google.com/group/jquery-ui-layout + */ + +/* JavaDoc Info: http://code.google.com/closure/compiler/docs/js-for-compiler.html + * {!Object} non-nullable type (never NULL) + * {?string} nullable type (sometimes NULL) - default for {Object} + * {number=} optional parameter + * {*} ALL types + */ +/* TODO for jQ 2.0 + * change .andSelf() to .addBack() + * check $.fn.disableSelection - this is in jQuery UI 1.9.x + */ + +// NOTE: For best readability, view with a fixed-width font and tabs equal to 4-chars + +;(function ($) { + +// alias Math methods - used a lot! +var min = Math.min +, max = Math.max +, round = Math.floor + +, isStr = function (v) { return $.type(v) === "string"; } + + /** + * @param {!Object} Instance + * @param {Array.} a_fn + */ +, runPluginCallbacks = function (Instance, a_fn) { + if ($.isArray(a_fn)) + for (var i=0, c=a_fn.length; i').appendTo("body") + , d = { width: $c.outerWidth - $c[0].clientWidth, height: 100 - $c[0].clientHeight }; + $c.remove(); + window.scrollbarWidth = d.width; + window.scrollbarHeight = d.height; + return dim.match(/^(width|height)$/) ? d[dim] : d; + } + + +, disableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled' + , x = 'textSelectionInitialized' + ; + if ($.fn.disableSelection) { + if (!$d.data(x)) // document hasn't been initialized yet + $d.on('mouseup', $.layout.enableTextSelection ).data(x, true); + if (!$d.data(s)) + $d.disableSelection().data(s, true); + } + } +, enableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled'; + if ($.fn.enableSelection && $d.data(s)) + $d.enableSelection().data(s, false); + } + + + /** + * Returns hash container 'display' and 'visibility' + * + * @see $.swap() - swaps CSS, runs callback, resets CSS + * @param {!Object} $E jQuery element + * @param {boolean=} [force=false] Run even if display != none + * @return {!Object} Returns current style props, if applicable + */ +, showInvisibly: function ($E, force) { + if ($E && $E.length && (force || $E.css("display") === "none")) { // only if not *already hidden* + var s = $E[0].style + // save ONLY the 'style' props because that is what we must restore + , CSS = { display: s.display || '', visibility: s.visibility || '' }; + // show element 'invisibly' so can be measured + $E.css({ display: "block", visibility: "hidden" }); + return CSS; + } + return {}; + } + + /** + * Returns data for setting size of an element (container or a pane). + * + * @see _create(), onWindowResize() for container, plus others for pane + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc + */ +, getElementDimensions: function ($E, inset) { + var + // dimensions hash - start with current data IF passed + d = { css: {}, inset: {} } + , x = d.css // CSS hash + , i = { bottom: 0 } // TEMP insets (bottom = complier hack) + , N = $.layout.cssNum + , R = Math.round + , off = $E.offset() + , b, p, ei // TEMP border, padding + ; + d.offsetLeft = off.left; + d.offsetTop = off.top; + + if (!inset) inset = {}; // simplify logic below + + $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge + b = x["border" + e] = $.layout.borderWidth($E, e); + p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); + ei = e.toLowerCase(); + d.inset[ei] = inset[ei] >= 0 ? inset[ei] : p; // any missing insetX value = paddingX + i[ei] = d.inset[ei] + b; // total offset of content from outer side + }); + + x.width = R($E.width()); + x.height = R($E.height()); + x.top = N($E,"top",true); + x.bottom = N($E,"bottom",true); + x.left = N($E,"left",true); + x.right = N($E,"right",true); + + d.outerWidth = R($E.outerWidth()); + d.outerHeight = R($E.outerHeight()); + // calc the TRUE inner-dimensions, even in quirks-mode! + d.innerWidth = max(0, d.outerWidth - i.left - i.right); + d.innerHeight = max(0, d.outerHeight - i.top - i.bottom); + // layoutWidth/Height is used in calcs for manual resizing + // layoutW/H only differs from innerW/H when in quirks-mode - then is like outerW/H + d.layoutWidth = R($E.innerWidth()); + d.layoutHeight = R($E.innerHeight()); + + //if ($E.prop('tagName') === 'BODY') { debugData( d, $E.prop('tagName') ); } // DEBUG + + //d.visible = $E.is(":visible");// && x.width > 0 && x.height > 0; + + return d; + } + +, getElementStyles: function ($E, list) { + var + CSS = {} + , style = $E[0].style + , props = list.split(",") + , sides = "Top,Bottom,Left,Right".split(",") + , attrs = "Color,Style,Width".split(",") + , p, s, a, i, j, k + ; + for (i=0; i < props.length; i++) { + p = props[i]; + if (p.match(/(border|padding|margin)$/)) + for (j=0; j < 4; j++) { + s = sides[j]; + if (p === "border") + for (k=0; k < 3; k++) { + a = attrs[k]; + CSS[p+s+a] = style[p+s+a]; + } + else + CSS[p+s] = style[p+s]; + } + else + CSS[p] = style[p]; + }; + return CSS + } + + /** + * Return the innerWidth for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerWidth of the elem by subtracting padding and borders + */ +, cssWidth: function ($E, outerWidth) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerWidth <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , W = outerWidth + ; + // strip border and/or padding from outerWidth to get CSS Width + if (bs !== "border-box") + W -= (b($E, "Left") + b($E, "Right")); + if (bs === "content-box") + W -= (n($E, "paddingLeft") + n($E, "paddingRight")); + return max(0,W); + } + + /** + * Return the innerHeight for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerHeight of the elem by subtracting padding and borders + */ +, cssHeight: function ($E, outerHeight) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerHeight <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , H = outerHeight + ; + // strip border and/or padding from outerHeight to get CSS Height + if (bs !== "border-box") + H -= (b($E, "Top") + b($E, "Bottom")); + if (bs === "content-box") + H -= (n($E, "paddingTop") + n($E, "paddingBottom")); + return max(0,H); + } + + /** + * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist + * + * @see Called by many methods + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {string} prop The name of the CSS property, eg: top, width, etc. + * @param {boolean=} [allowAuto=false] true = return 'auto' if that is value; false = return 0 + * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) + */ +, cssNum: function ($E, prop, allowAuto) { + if (!$E.jquery) $E = $($E); + var CSS = $.layout.showInvisibly($E) + , p = $.css($E[0], prop, true) + , v = allowAuto && p=="auto" ? p : Math.round(parseFloat(p) || 0); + $E.css( CSS ); // RESET + return v; + } + +, borderWidth: function (el, side) { + if (el.jquery) el = el[0]; + var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left + return $.css(el, b+"Style", true) === "none" ? 0 : Math.round(parseFloat($.css(el, b+"Width", true)) || 0); + } + + /** + * Mouse-tracking utility - FUTURE REFERENCE + * + * init: if (!window.mouse) { + * window.mouse = { x: 0, y: 0 }; + * $(document).mousemove( $.layout.trackMouse ); + * } + * + * @param {Object} evt + * +, trackMouse: function (evt) { + window.mouse = { x: evt.clientX, y: evt.clientY }; + } + */ + + /** + * SUBROUTINE for preventPrematureSlideClose option + * + * @param {Object} evt + * @param {Object=} el + */ +, isMouseOverElem: function (evt, el) { + var + $E = $(el || this) + , d = $E.offset() + , T = d.top + , L = d.left + , R = L + $E.outerWidth() + , B = T + $E.outerHeight() + , x = evt.pageX // evt.clientX ? + , y = evt.pageY // evt.clientY ? + ; + // if X & Y are < 0, probably means is over an open SELECT + return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); + } + + /** + * Message/Logging Utility + * + * @example $.layout.msg("My message"); // log text + * @example $.layout.msg("My message", true); // alert text + * @example $.layout.msg({ foo: "bar" }, "Title"); // log hash-data, with custom title + * @example $.layout.msg({ foo: "bar" }, true, "Title", { sort: false }); -OR- + * @example $.layout.msg({ foo: "bar" }, "Title", { sort: false, display: true }); // alert hash-data + * + * @param {(Object|string)} info String message OR Hash/Array + * @param {(Boolean|string|Object)=} [popup=false] True means alert-box - can be skipped + * @param {(Object|string)=} [debugTitle=""] Title for Hash data - can be skipped + * @param {Object=} [debugOpts] Extra options for debug output + */ +, msg: function (info, popup, debugTitle, debugOpts) { + if ($.isPlainObject(info) && window.debugData) { + if (typeof popup === "string") { + debugOpts = debugTitle; + debugTitle = popup; + } + else if (typeof debugTitle === "object") { + debugOpts = debugTitle; + debugTitle = null; + } + var t = debugTitle || "log( )" + , o = $.extend({ sort: false, returnHTML: false, display: false }, debugOpts); + if (popup === true || o.display) + debugData( info, t, o ); + else if (window.console) + console.log(debugData( info, t, o )); + } + else if (popup) + alert(info); + else if (window.console) + console.log(info); + else { + var id = "#layoutLogger" + , $l = $(id); + if (!$l.length) + $l = createLog(); + $l.children("ul").append('
    • '+ info.replace(/\/g,">") +'
    • '); + } + + function createLog () { + var pos = $.support.fixedPosition ? 'fixed' : 'absolute' + , $e = $('
      ' + + '
      ' + + 'XLayout console.log
      ' + + '
        ' + + '
        ' + ).appendTo("body"); + $e.css('left', $(window).width() - $e.outerWidth() - 5) + if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); + return $e; + }; + } + +}; + + +/* + * $.layout.browser REPLACES removed $.browser, with extra data + * Parsing code here adapted from jQuery 1.8 $.browse + */ +(function(){ + var u = navigator.userAgent.toLowerCase() + , m = /(chrome)[ \/]([\w.]+)/.exec( u ) + || /(webkit)[ \/]([\w.]+)/.exec( u ) + || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( u ) + || /(msie) ([\w.]+)/.exec( u ) + || u.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( u ) + || [] + , b = m[1] || "" + , v = m[2] || 0 + , ie = b === "msie" + , cm = document.compatMode + , $s = $.support + , bs = $s.boxSizing !== undefined ? $s.boxSizing : $s.boxSizingReliable + , bm = !ie || !cm || cm === "CSS1Compat" || $s.boxModel || false + , lb = $.layout.browser = { + version: v + , safari: b === "webkit" // webkit (NOT chrome) = safari + , webkit: b === "chrome" // chrome = webkit + , msie: ie + , isIE6: ie && v == 6 + // ONLY IE reverts to old box-model - Note that compatMode was deprecated as of IE8 + , boxModel: bm + , boxSizing: !!(typeof bs === "function" ? bs() : bs) + }; + ; + if (b) lb[b] = true; // set CURRENT browser + /* OLD versions of jQuery only set $.support.boxModel after page is loaded + * so if this is IE, use support.boxModel to test for quirks-mode (ONLY IE changes boxModel) */ + if (!bm && !cm) $(function(){ lb.boxModel = $s.boxModel; }); +})(); + + +// DEFAULT OPTIONS +$.layout.defaults = { +/* + * LAYOUT & LAYOUT-CONTAINER OPTIONS + * - none of these options are applicable to individual panes + */ + name: "" // Not required, but useful for buttons and used for the state-cookie +, containerClass: "ui-layout-container" // layout-container element +, inset: null // custom container-inset values (override padding) +, scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) +, resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event +, resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky +, resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized +, maskPanesEarly: false // true = create pane-masks on resizer.mouseDown instead of waiting for resizer.dragstart +, onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific +, onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific +, onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements +, onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized +, onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload +, onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload +, initPanes: true // false = DO NOT initialize the panes onLoad - will init later +, showErrorMessages: true // enables fatal error messages to warn developers of common errors +, showDebugMessages: false // display console-and-alert debug msgs - IF this Layout version _has_ debugging code! +// Changing this zIndex value will cause other zIndex values to automatically change +, zIndex: null // the PANE zIndex - resizers and masks will be +1 +// DO NOT CHANGE the zIndex values below unless you clearly understand their relationships +, zIndexes: { // set _default_ z-index values here... + pane_normal: 0 // normal z-index for panes + , content_mask: 1 // applied to overlays used to mask content INSIDE panes during resizing + , resizer_normal: 2 // normal z-index for resizer-bars + , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' + , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer + , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' + } +, errors: { + pane: "pane" // description of "layout pane element" - used only in error messages + , selector: "selector" // description of "jQuery-selector" - used only in error messages + , addButtonError: "Error Adding Button\nInvalid " + , containerMissing: "UI Layout Initialization Error\nThe specified layout-container does not exist." + , centerPaneMissing: "UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element." + , noContainerHeight: "UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!" + , callbackError: "UI Layout Callback Error\nThe EVENT callback is not a valid function." + } +/* + * PANE DEFAULT SETTINGS + * - settings under the 'panes' key become the default settings for *all panes* + * - ALL pane-options can also be set specifically for each panes, which will override these 'default values' + */ +, panes: { // default options for 'all panes' - will be overridden by 'per-pane settings' + applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity + , closable: true // pane can open & close + , resizable: true // when open, pane can be resized + , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out + , initClosed: false // true = init pane as 'closed' + , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing + // SELECTORS + //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane + , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! + , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' + , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) + // GENERIC ROOT-CLASSES - for auto-generated classNames + , paneClass: "ui-layout-pane" // Layout Pane + , resizerClass: "ui-layout-resizer" // Resizer Bar + , togglerClass: "ui-layout-toggler" // Toggler Button + , buttonClass: "ui-layout-button" // CUSTOM Buttons - eg: '[ui-layout-button]-toggle/-open/-close/-pin' + // ELEMENT SIZE & SPACING + //, size: 100 // MUST be pane-specific -initial size of pane + , minSize: 0 // when manually resizing a pane + , maxSize: 0 // ditto, 0 = no limit + , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' + , spacing_closed: 6 // ditto - when pane is 'closed' + , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides + , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' + , togglerAlign_open: "center" // top/left, bottom/right, center, OR... + , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right + , togglerContent_open: "" // text or HTML to put INSIDE the toggler + , togglerContent_closed: "" // ditto + // RESIZING OPTIONS + , resizerDblClickToggle: true // + , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes + , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed + , resizerDragOpacity: 1 // option for ui.draggable + //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar + , maskContents: false // true = add DIV-mask over-or-inside this pane so can 'drag' over IFRAMES + , maskObjects: false // true = add IFRAME-mask over-or-inside this pane to cover objects/applets - content-mask will overlay this mask + , maskZindex: null // will override zIndexes.content_mask if specified - not applicable to iframe-panes + , resizingGrid: false // grid size that the resizers will snap-to during resizing, eg: [20,20] + , livePaneResizing: false // true = LIVE Resizing as resizer is dragged + , liveContentResizing: false // true = re-measure header/footer heights as resizer is dragged + , liveResizingTolerance: 1 // how many px change before pane resizes, to control performance + // SLIDING OPTIONS + , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' + , slideTrigger_open: "click" // click, dblclick, mouseenter + , slideTrigger_close: "mouseleave"// click, mouseleave + , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open + , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) + , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? + , preventQuickSlideClose: $.layout.browser.webkit // Chrome triggers slideClosed as it is opening + , preventPrematureSlideClose: false // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + // PANE-SPECIFIC TIPS & MESSAGES + , tips: { + Open: "Open" // eg: "Open Pane" + , Close: "Close" + , Resize: "Resize" + , Slide: "Slide Open" + , Pin: "Pin" + , Unpin: "Un-Pin" + , noRoomToOpen: "Not enough room to show this panel." // alert if user tries to open a pane that cannot + , minSizeWarning: "Panel has reached its minimum size" // displays in browser statusbar + , maxSizeWarning: "Panel has reached its maximum size" // ditto + } + // HOT-KEYS & MISC + , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver + , enableCursorHotkey: true // enabled 'cursor' hotkeys + //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character + , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' + // PANE ANIMATION + // NOTE: fxSss_open, fxSss_close & fxSss_size options (eg: fxName_open) are auto-generated if not passed + , fxName: "slide" // ('none' or blank), slide, drop, scale -- only relevant to 'open' & 'close', NOT 'size' + , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration + , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } + , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation + , animatePaneSizing: false // true = animate resizing after dragging resizer-bar OR sizePane() is called + /* NOTE: Action-specific FX options are auto-generated from the options above if not specifically set: + fxName_open: "slide" // 'Open' pane animation + fnName_close: "slide" // 'Close' pane animation + fxName_size: "slide" // 'Size' pane animation - when animatePaneSizing = true + fxSpeed_open: null + fxSpeed_close: null + fxSpeed_size: null + fxSettings_open: {} + fxSettings_close: {} + fxSettings_size: {} + */ + // CHILD/NESTED LAYOUTS + , children: null // Layout-options for nested/child layout - even {} is valid as options + , containerSelector: '' // if child is NOT 'directly nested', a selector to find it/them (can have more than one child layout!) + , initChildren: true // true = child layout will be created as soon as _this_ layout completes initialization + , destroyChildren: true // true = destroy child-layout if this pane is destroyed + , resizeChildren: true // true = trigger child-layout.resizeAll() when this pane is resized + // EVENT TRIGGERING + , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes + , triggerEventsDuringLiveResize: true // true = trigger onresize callback REPEATEDLY if livePaneResizing==true + // PANE CALLBACKS + , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start + , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end + , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start + , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end + , onopen_start: null // CALLBACK when pane STARTS to Open + , onopen_end: null // CALLBACK when pane ENDS being Opened + , onclose_start: null // CALLBACK when pane STARTS to Close + , onclose_end: null // CALLBACK when pane ENDS being Closed + , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** + , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** + , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS + , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS + , onswap_start: null // CALLBACK when pane STARTS to Swap + , onswap_end: null // CALLBACK when pane ENDS being Swapped + , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized + , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized + } +/* + * PANE-SPECIFIC SETTINGS + * - options listed below MUST be specified per-pane - they CANNOT be set under 'panes' + * - all options under the 'panes' key can also be set specifically for any pane + * - most options under the 'panes' key apply only to 'border-panes' - NOT the the center-pane + */ +, north: { + paneSelector: ".ui-layout-north" + , size: "auto" // eg: "auto", "30%", .30, 200 + , resizerCursor: "n-resize" // custom = url(myCursor.cur) + , customHotkey: "" // EITHER a charCode (43) OR a character ("o") + } +, south: { + paneSelector: ".ui-layout-south" + , size: "auto" + , resizerCursor: "s-resize" + , customHotkey: "" + } +, east: { + paneSelector: ".ui-layout-east" + , size: 200 + , resizerCursor: "e-resize" + , customHotkey: "" + } +, west: { + paneSelector: ".ui-layout-west" + , size: 200 + , resizerCursor: "w-resize" + , customHotkey: "" + } +, center: { + paneSelector: ".ui-layout-center" + , minWidth: 0 + , minHeight: 0 + } +}; + +$.layout.optionsMap = { + // layout/global options - NOT pane-options + layout: ("name,instanceKey,stateManagement,effects,inset,zIndexes,errors," + + "zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly," + + "outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay," + + "onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end").split(",") +// borderPanes: [ ALL options that are NOT specified as 'layout' ] + // default.panes options that apply to the center-pane (most options apply _only_ to border-panes) +, center: ("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad," + + "showOverflowOnHover,maskContents,maskObjects,liveContentResizing," + + "containerSelector,children,initChildren,resizeChildren,destroyChildren," + + "onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(",") + // options that MUST be specifically set 'per-pane' - CANNOT set in the panes (defaults) key +, noDefault: ("paneSelector,resizerCursor,customHotkey").split(",") +}; + +/** + * Processes options passed in converts flat-format data into subkey (JSON) format + * In flat-format, subkeys are _currently_ separated with 2 underscores, like north__optName + * Plugins may also call this method so they can transform their own data + * + * @param {!Object} hash Data/options passed by user - may be a single level or nested levels + * @param {boolean=} [addKeys=false] Should the primary layout.options keys be added if they do not exist? + * @return {Object} Returns hash of minWidth & minHeight + */ +$.layout.transformData = function (hash, addKeys) { + var json = addKeys ? { panes: {}, center: {} } : {} // init return object + , branch, optKey, keys, key, val, i, c; + + if (typeof hash !== "object") return json; // no options passed + + // convert all 'flat-keys' to 'sub-key' format + for (optKey in hash) { + branch = json; + val = hash[ optKey ]; + keys = optKey.split("__"); // eg: west__size or north__fxSettings__duration + c = keys.length - 1; + // convert underscore-delimited to subkeys + for (i=0; i <= c; i++) { + key = keys[i]; + if (i === c) { // last key = value + if ($.isPlainObject( val )) + branch[key] = $.layout.transformData( val ); // RECURSE + else + branch[key] = val; + } + else { + if (!branch[key]) + branch[key] = {}; // create the subkey + // recurse to sub-key for next loop - if not done + branch = branch[key]; + } + } + } + return json; +}; + +// INTERNAL CONFIG DATA - DO NOT CHANGE THIS! +$.layout.backwardCompatibility = { + // data used by renameOldOptions() + map: { + // OLD Option Name: NEW Option Name + applyDefaultStyles: "applyDemoStyles" + // CHILD/NESTED LAYOUTS + , childOptions: "children" + , initChildLayout: "initChildren" + , destroyChildLayout: "destroyChildren" + , resizeChildLayout: "resizeChildren" + , resizeNestedLayout: "resizeChildren" + // MISC Options + , resizeWhileDragging: "livePaneResizing" + , resizeContentWhileDragging: "liveContentResizing" + , triggerEventsWhileDragging: "triggerEventsDuringLiveResize" + , maskIframesOnResize: "maskContents" + // STATE MANAGEMENT + , useStateCookie: "stateManagement.enabled" + , "cookie.autoLoad": "stateManagement.autoLoad" + , "cookie.autoSave": "stateManagement.autoSave" + , "cookie.keys": "stateManagement.stateKeys" + , "cookie.name": "stateManagement.cookie.name" + , "cookie.domain": "stateManagement.cookie.domain" + , "cookie.path": "stateManagement.cookie.path" + , "cookie.expires": "stateManagement.cookie.expires" + , "cookie.secure": "stateManagement.cookie.secure" + // OLD Language options + , noRoomToOpenTip: "tips.noRoomToOpen" + , togglerTip_open: "tips.Close" // open = Close + , togglerTip_closed: "tips.Open" // closed = Open + , resizerTip: "tips.Resize" + , sliderTip: "tips.Slide" + } + +/** +* @param {Object} opts +*/ +, renameOptions: function (opts) { + var map = $.layout.backwardCompatibility.map + , oldData, newData, value + ; + for (var itemPath in map) { + oldData = getBranch( itemPath ); + value = oldData.branch[ oldData.key ]; + if (value !== undefined) { + newData = getBranch( map[itemPath], true ); + newData.branch[ newData.key ] = value; + delete oldData.branch[ oldData.key ]; + } + } + + /** + * @param {string} path + * @param {boolean=} [create=false] Create path if does not exist + */ + function getBranch (path, create) { + var a = path.split(".") // split keys into array + , c = a.length - 1 + , D = { branch: opts, key: a[c] } // init branch at top & set key (last item) + , i = 0, k, undef; + for (; i 0) { + if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + // make hidden, then visible to 'refresh' display after animation + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerHeight + * @param {boolean=} [autoHide=false] + */ +, setOuterHeight = function (el, outerHeight, autoHide) { + var $E = el, h; + if (isStr(el)) $E = $Ps[el]; // west + else if (!el.jquery) $E = $(el); + h = cssH($E, outerHeight); + $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent + if (h > 0 && $E.innerWidth() > 0) { + if (autoHide && $E.data('autoHidden')) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + + /** + * Converts any 'size' params to a pixel/integer size, if not already + * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated + * + /** + * @param {string} pane + * @param {(string|number)=} size + * @param {string=} [dir] + * @return {number} + */ +, _parseSize = function (pane, size, dir) { + if (!dir) dir = _c[pane].dir; + + if (isStr(size) && size.match(/%/)) + size = (size === '100%') ? -1 : parseInt(size, 10) / 100; // convert % to decimal + + if (size === 0) + return 0; + else if (size >= 1) + return parseInt(size, 10); + + var o = options, avail = 0; + if (dir=="horz") // north or south or center.minHeight + avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); + else if (dir=="vert") // east or west or center.minWidth + avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); + + if (size === -1) // -1 == 100% + return avail; + else if (size > 0) // percentage, eg: .25 + return round(avail * size); + else if (pane=="center") + return 0; + else { // size < 0 || size=='auto' || size==Missing || size==Invalid + // auto-size the pane + var dim = (dir === "horz" ? "height" : "width") + , $P = $Ps[pane] + , $C = dim === 'height' ? $Cs[pane] : false + , vis = $.layout.showInvisibly($P) // show pane invisibly if hidden + , szP = $P.css(dim) // SAVE current pane size + , szC = $C ? $C.css(dim) : 0 // SAVE current content size + ; + $P.css(dim, "auto"); + if ($C) $C.css(dim, "auto"); + size = (dim === "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE + $P.css(dim, szP).css(vis); // RESET size & visibility + if ($C) $C.css(dim, szC); + return size; + } + } + + /** + * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added + * + * @param {(string|!Object)} pane + * @param {boolean=} [inclSpace=false] + * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes + */ +, getPaneSize = function (pane, inclSpace) { + var + $P = $Ps[pane] + , o = options[pane] + , s = state[pane] + , oSp = (inclSpace ? o.spacing_open : 0) + , cSp = (inclSpace ? o.spacing_closed : 0) + ; + if (!$P || s.isHidden) + return 0; + else if (s.isClosed || (s.isSliding && inclSpace)) + return cSp; + else if (_c[pane].dir === "horz") + return $P.outerHeight() + oSp; + else // dir === "vert" + return $P.outerWidth() + oSp; + } + + /** + * Calculate min/max pane dimensions and limits for resizing + * + * @param {string} pane + * @param {boolean=} [slide=false] + */ +, setSizeLimits = function (pane, slide) { + if (!isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , type = c.sizeType.toLowerCase() + , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param + , $P = $Ps[pane] + , paneSpacing = o.spacing_open + // measure the pane on the *opposite side* from this pane + , altPane = _c.oppositeEdge[pane] + , altS = state[altPane] + , $altP = $Ps[altPane] + , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) + , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) + // limitSize prevents this pane from 'overlapping' opposite pane + , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) + , minCenterDims = cssMinDims("center") + , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) + // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them + , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) + , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) + , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) + , r = s.resizerPosition = {} // used to set resizing limits + , top = sC.inset.top + , left = sC.inset.left + , W = sC.innerWidth + , H = sC.innerHeight + , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east + ; + switch (pane) { + case "north": r.min = top + minSize; + r.max = top + maxSize; + break; + case "west": r.min = left + minSize; + r.max = left + maxSize; + break; + case "south": r.min = top + H - maxSize - rW; + r.max = top + H - minSize - rW; + break; + case "east": r.min = left + W - maxSize - rW; + r.max = left + W - minSize - rW; + break; + }; + } + + /** + * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes + * + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height + */ +, calcNewCenterPaneDims = function () { + var d = { + top: getPaneSize("north", true) // true = include 'spacing' value for pane + , bottom: getPaneSize("south", true) + , left: getPaneSize("west", true) + , right: getPaneSize("east", true) + , width: 0 + , height: 0 + }; + + // NOTE: sC = state.container + // calc center-pane outer dimensions + d.width = sC.innerWidth - d.left - d.right; // outerWidth + d.height = sC.innerHeight - d.bottom - d.top; // outerHeight + // add the 'container border/padding' to get final positions relative to the container + d.top += sC.inset.top; + d.bottom += sC.inset.bottom; + d.left += sC.inset.left; + d.right += sC.inset.right; + + return d; + } + + + /** + * @param {!Object} el + * @param {boolean=} [allStates=false] + */ +, getHoverClasses = function (el, allStates) { + var + $El = $(el) + , type = $El.data("layoutRole") + , pane = $El.data("layoutEdge") + , o = options[pane] + , root = o[type +"Class"] + , _pane = "-"+ pane // eg: "-west" + , _open = "-open" + , _closed = "-closed" + , _slide = "-sliding" + , _hover = "-hover " // NOTE the trailing space + , _state = $El.hasClass(root+_closed) ? _closed : _open + , _alt = _state === _closed ? _open : _closed + , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) + ; + if (allStates) // when 'removing' classes, also remove alternate-state classes + classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); + + if (type=="resizer" && $El.hasClass(root+_slide)) + classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); + + return $.trim(classes); + } +, addHover = function (evt, el) { + var $E = $(el || this); + if (evt && $E.data("layoutRole") === "toggler") + evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar + $E.addClass( getHoverClasses($E) ); + } +, removeHover = function (evt, el) { + var $E = $(el || this); + $E.removeClass( getHoverClasses($E, true) ); + } + +, onResizerEnter = function (evt) { // ALSO called by toggler.mouseenter + var pane = $(this).data("layoutEdge") + , s = state[pane] + , $d = $(document) + ; + // ignore closed-panes and mouse moving back & forth over resizer! + // also ignore if ANY pane is currently resizing + if ( s.isResizing || state.paneResizing ) return; + + if (options.maskPanesEarly) + showMasks( pane, { resizing: true }); + } +, onResizerLeave = function (evt, el) { + var e = el || this // el is only passed when called by the timer + , pane = $(e).data("layoutEdge") + , name = pane +"ResizerLeave" + , $d = $(document) + ; + timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set + timer.clear(name); // cancel enableSelection timer - may re/set below + // this method calls itself on a timer because it needs to allow + // enough time for dragging to kick-in and set the isResizing flag + // dragging has a 100ms delay set, so this delay must be >100 + if (!el) // 1st call - mouseleave event + timer.set(name, function(){ onResizerLeave(evt, e); }, 200); + // if user is resizing, dragStop will reset everything, so skip it here + else if (options.maskPanesEarly && !state.paneResizing) // 2nd call - by timer + hideMasks(); + } + +/* + * ########################### + * INITIALIZATION METHODS + * ########################### + */ + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see none - triggered onInit + * @return mixed true = fully initialized | false = panes not initialized (yet) | 'cancel' = abort + */ +, _create = function () { + // initialize config/options + initOptions(); + var o = options + , s = state; + + // TEMP state so isInitialized returns true during init process + s.creatingLayout = true; + + // init plugins for this layout, if there are any (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onCreate ); + + // options & state have been initialized, so now run beforeLoad callback + // onload will CANCEL layout creation if it returns false + if (false === _runCallbacks("onload_start")) + return 'cancel'; + + // initialize the container element + _initContainer(); + + // bind hotkey function - keyDown - if required + initHotkeys(); + + // bind window.onunload + $(window).bind("unload."+ sID, unload); + + // init plugins for this layout, if there are any (eg: customButtons) + runPluginCallbacks( Instance, $.layout.onLoad ); + + // if layout elements are hidden, then layout WILL NOT complete initialization! + // initLayoutElements will set initialized=true and run the onload callback IF successful + if (o.initPanes) _initLayoutElements(); + + delete s.creatingLayout; + + return state.initialized; + } + + /** + * Initialize the layout IF not already + * + * @see All methods in Instance run this test + * @return boolean true = layoutElements have been initialized | false = panes are not initialized (yet) + */ +, isInitialized = function () { + if (state.initialized || state.creatingLayout) return true; // already initialized + else return _initLayoutElements(); // try to init panes NOW + } + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see _create() & isInitialized + * @param {boolean=} [retry=false] // indicates this is a 2nd try + * @return An object pointer to the instance created + */ +, _initLayoutElements = function (retry) { + // initialize config/options + var o = options; + // CANNOT init panes inside a hidden container! + if (!$N.is(":visible")) { + // handle Chrome bug where popup window 'has no height' + // if layout is BODY element, try again in 50ms + // SEE: http://layout.jquery-dev.com/samples/test_popup_window.html + if ( !retry && browser.webkit && $N[0].tagName === "BODY" ) + setTimeout(function(){ _initLayoutElements(true); }, 50); + return false; + } + + // a center pane is required, so make sure it exists + if (!getPane("center").length) { + return _log( o.errors.centerPaneMissing ); + } + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // update Container dims + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + + // initialize all layout elements + initPanes(); // size & position panes - calls initHandles() - which calls initResizable() + + if (o.scrollToBookmarkOnLoad) { + var l = self.location; + if (l.hash) l.replace( l.hash ); // scrollTo Bookmark + } + + // check to see if this layout 'nested' inside a pane + if (Instance.hasParentLayout) + o.resizeWithWindow = false; + // bind resizeAll() for 'this layout instance' to window.resize event + else if (o.resizeWithWindow) + $(window).bind("resize."+ sID, windowResize); + + delete state.creatingLayout; + state.initialized = true; + + // init plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onReady ); + + // now run the onload callback, if exists + _runCallbacks("onload_end"); + + return true; // elements initialized successfully + } + + /** + * Initialize nested layouts for a specific pane - can optionally pass layout-options + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {Object=} [opts] Layout-options - if passed, will OVERRRIDE options[pane].children + * @return An object pointer to the layout instance created - or null + */ +, createChildren = function (evt_or_pane, opts) { + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + ; + if (!$P) return; + var $C = $Cs[pane] + , s = state[pane] + , o = options[pane] + , sm = options.stateManagement || {} + , cos = opts ? (o.children = opts) : o.children + ; + if ( $.isPlainObject( cos ) ) + cos = [ cos ]; // convert a hash to a 1-elem array + else if (!cos || !$.isArray( cos )) + return; + + $.each( cos, function (idx, co) { + if ( !$.isPlainObject( co ) ) return; + + // determine which element is supposed to be the 'child container' + // if pane has a 'containerSelector' OR a 'content-div', use those instead of the pane + var $containers = co.containerSelector ? $P.find( co.containerSelector ) : ($C || $P); + + $containers.each(function(){ + var $cont = $(this) + , child = $cont.data("layout") // see if a child-layout ALREADY exists on this element + ; + // if no layout exists, but children are set, try to create the layout now + if (!child) { + // TODO: see about moving this to the stateManagement plugin, as a method + // set a unique child-instance key for this layout, if not already set + setInstanceKey({ container: $cont, options: co }, s ); + // If THIS layout has a hash in stateManagement.autoLoad, + // then see if it also contains state-data for this child-layout + // If so, copy the stateData to child.options.stateManagement.autoLoad + if ( sm.includeChildren && state.stateData[pane] ) { + // THIS layout's state was cached when its state was loaded + var paneChildren = state.stateData[pane].children || {} + , childState = paneChildren[ co.instanceKey ] + , co_sm = co.stateManagement || (co.stateManagement = { autoLoad: true }) + ; + // COPY the stateData into the autoLoad key + if ( co_sm.autoLoad === true && childState ) { + co_sm.autoSave = false; // disable autoSave because saving handled by parent-layout + co_sm.includeChildren = true; // cascade option - FOR NOW + co_sm.autoLoad = $.extend(true, {}, childState); // COPY the state-hash + } + } + + // create the layout + child = $cont.layout( co ); + + // if successful, update data + if (child) { + // add the child and update all layout-pointers + // MAY have already been done by child-layout calling parent.refreshChildren() + refreshChildren( pane, child ); + } + } + }); + }); + } + +, setInstanceKey = function (child, parentPaneState) { + // create a named key for use in state and instance branches + var $c = child.container + , o = child.options + , sm = o.stateManagement + , key = o.instanceKey || $c.data("layoutInstanceKey") + ; + if (!key) key = (sm && sm.cookie ? sm.cookie.name : '') || o.name; // look for a name/key + if (!key) key = "layout"+ (++parentPaneState.childIdx); // if no name/key found, generate one + else key = key.replace(/[^\w-]/gi, '_').replace(/_{2,}/g, '_'); // ensure is valid as a hash key + o.instanceKey = key; + $c.data("layoutInstanceKey", key); // useful if layout is destroyed and then recreated + return key; + } + + /** + * @param {string} pane The pane being opened, ie: north, south, east, or west + * @param {Object=} newChild New child-layout Instance to add to this pane + */ +, refreshChildren = function (pane, newChild) { + var $P = $Ps[pane] + , pC = children[pane] + , s = state[pane] + , o + ; + // check for destroy()ed layouts and update the child pointers & arrays + if ($.isPlainObject( pC )) { + $.each( pC, function (key, child) { + if (child.destroyed) delete pC[key] + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) + pC = children[pane] = null; // clear children hash + } + + // see if there is a directly-nested layout inside this pane + // if there is, then there can be only ONE child-layout, so check that... + if (!newChild && !pC) { + newChild = $P.data("layout"); + } + + // if a newChild instance was passed, add it to children[pane] + if (newChild) { + // update child.state + newChild.hasParentLayout = true; // set parent-flag in child + // instanceKey is a key-name used in both state and children + o = newChild.options; + // set a unique child-instance key for this layout, if not already set + setInstanceKey( newChild, s ); + // add pointer to pane.children hash + if (!pC) pC = children[pane] = {}; // create an empty children hash + pC[ o.instanceKey ] = newChild.container.data("layout"); // add childLayout instance + } + + // ALWAYS refresh the pane.children alias, even if null + Instance[pane].children = children[pane]; + + // if newChild was NOT passed - see if there is a child layout NOW + if (!newChild) { + createChildren(pane); // MAY create a child and re-call this method + } + } + +, windowResize = function () { + var o = options + , delay = Number(o.resizeWithWindowDelay); + if (delay < 10) delay = 100; // MUST have a delay! + // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway + timer.clear("winResize"); // if already running + timer.set("winResize", function(){ + timer.clear("winResize"); + timer.clear("winResizeRepeater"); + var dims = elDims( $N, o.inset ); + // only trigger resizeAll() if container has changed size + if (dims.innerWidth !== sC.innerWidth || dims.innerHeight !== sC.innerHeight) + resizeAll(); + }, delay); + // ALSO set fixed-delay timer, if not already running + if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); + } + +, setWindowResizeRepeater = function () { + var delay = Number(options.resizeWithWindowMaxDelay); + if (delay > 0) + timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); + } + +, unload = function () { + var o = options; + + _runCallbacks("onunload_start"); + + // trigger plugin callabacks for this layout (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onUnload ); + + _runCallbacks("onunload_end"); + } + + /** + * Validate and initialize container CSS and events + * + * @see _create() + */ +, _initContainer = function () { + var + N = $N[0] + , $H = $("html") + , tag = sC.tagName = N.tagName + , id = sC.id = N.id + , cls = sC.className = N.className + , o = options + , name = o.name + , props = "position,margin,padding,border" + , css = "layoutCSS" + , CSS = {} + , hid = "hidden" // used A LOT! + // see if this container is a 'pane' inside an outer-layout + , parent = $N.data("parentLayout") // parent-layout Instance + , pane = $N.data("layoutEdge") // pane-name in parent-layout + , isChild = parent && pane + , num = $.layout.cssNum + , $parent, n + ; + // sC = state.container + sC.selector = $N.selector.split(".slice")[0]; + sC.ref = (o.name ? o.name +' layout / ' : '') + tag + (id ? "#"+id : cls ? '.['+cls+']' : ''); // used in messages + sC.isBody = (tag === "BODY"); + + // try to find a parent-layout + if (!isChild && !sC.isBody) { + $parent = $N.closest("."+ $.layout.defaults.panes.paneClass); + parent = $parent.data("parentLayout"); + pane = $parent.data("layoutEdge"); + isChild = parent && pane; + } + + $N .data({ + layout: Instance + , layoutContainer: sID // FLAG to indicate this is a layout-container - contains unique internal ID + }) + .addClass(o.containerClass) + ; + var layoutMethods = { + destroy: '' + , initPanes: '' + , resizeAll: 'resizeAll' + , resize: 'resizeAll' + }; + // loop hash and bind all methods - include layoutID namespacing + for (name in layoutMethods) { + $N.bind("layout"+ name.toLowerCase() +"."+ sID, Instance[ layoutMethods[name] || name ]); + } + + // if this container is another layout's 'pane', then set child/parent pointers + if (isChild) { + // update parent flag + Instance.hasParentLayout = true; + // set pointers to THIS child-layout (Instance) in parent-layout + parent.refreshChildren( pane, Instance ); + } + + // SAVE original container CSS for use in destroy() + if (!$N.data(css)) { + // handle props like overflow different for BODY & HTML - has 'system default' values + if (sC.isBody) { + // SAVE CSS + $N.data(css, $.extend( styles($N, props), { + height: $N.css("height") + , overflow: $N.css("overflow") + , overflowX: $N.css("overflowX") + , overflowY: $N.css("overflowY") + })); + // ALSO SAVE CSS + $H.data(css, $.extend( styles($H, 'padding'), { + height: "auto" // FF would return a fixed px-size! + , overflow: $H.css("overflow") + , overflowX: $H.css("overflowX") + , overflowY: $H.css("overflowY") + })); + } + else // handle props normally for non-body elements + $N.data(css, styles($N, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY") ); + } + + try { + // common container CSS + CSS = { + overflow: hid + , overflowX: hid + , overflowY: hid + }; + $N.css( CSS ); + + if (o.inset && !$.isPlainObject(o.inset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.inset, 10) || 0 + o.inset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + + // format html & body if this is a full page layout + if (sC.isBody) { + // if HTML has padding, use this as an outer-spacing around BODY + if (!o.outset) { + // use padding from parent-elem (HTML) as outset + o.outset = { + top: num($H, "paddingTop") + , bottom: num($H, "paddingBottom") + , left: num($H, "paddingLeft") + , right: num($H, "paddingRight") + }; + } + else if (!$.isPlainObject(o.outset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.outset, 10) || 0 + o.outset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + // HTML + $H.css( CSS ).css({ + height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + }); + // BODY + if (browser.isIE6) { + // IE6 CANNOT use the trick of setting absolute positioning on all 4 sides - must have 'height' + $N.css({ + width: "100%" + , height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + , position: "relative" + }); + // convert body padding to an inset option - the border cannot be measured in IE6! + if (!o.inset) o.inset = elDims( $N ).inset; + } + else { // use absolute positioning for BODY to allow borders & padding without overflow + $N.css({ + width: "auto" + , height: "auto" + , margin: 0 + , position: "absolute" // allows for border and padding on BODY + }); + // apply edge-positioning created above + $N.css( o.outset ); + } + // set current layout-container dimensions + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + } + else { + // container MUST have 'position' + var p = $N.css("position"); + if (!p || !p.match(/(fixed|absolute|relative)/)) + $N.css("position","relative"); + + // set current layout-container dimensions + if ( $N.is(":visible") ) { + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT change insetX (padding) values + if (sC.innerHeight < 1) // container has no 'height' - warn developer + _log( o.errors.noContainerHeight.replace(/CONTAINER/, sC.ref) ); + } + } + + // if container has min-width/height, then enable scrollbar(s) + if ( num($N, "minWidth") ) $N.parent().css("overflowX","auto"); + if ( num($N, "minHeight") ) $N.parent().css("overflowY","auto"); + + } catch (ex) {} + } + + /** + * Bind layout hotkeys - if options enabled + * + * @see _create() and addPane() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHotkeys = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + // bind keyDown to capture hotkeys, if option enabled for ANY pane + $.each(panes, function (i, pane) { + var o = options[pane]; + if (o.enableCursorHotkey || o.customHotkey) { + $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE + return false; // BREAK - binding was done + } + }); + } + + /** + * Build final OPTIONS data + * + * @see _create() + */ +, initOptions = function () { + var data, d, pane, key, val, i, c, o; + + // reprocess user's layout-options to have correct options sub-key structure + opts = $.layout.transformData( opts, true ); // panes = default subkey + + // auto-rename old options for backward compatibility + opts = $.layout.backwardCompatibility.renameAllOptions( opts ); + + // if user-options has 'panes' key (pane-defaults), clean it... + if (!$.isEmptyObject(opts.panes)) { + // REMOVE any pane-defaults that MUST be set per-pane + data = $.layout.optionsMap.noDefault; + for (i=0, c=data.length; i 0) { + z.pane_normal = zo; + z.content_mask = max(zo+1, z.content_mask); // MIN = +1 + z.resizer_normal = max(zo+2, z.resizer_normal); // MIN = +2 + } + + // DELETE 'panes' key now that we are done - values were copied to EACH pane + delete options.panes; + + + function createFxOptions ( pane ) { + var o = options[pane] + , d = options.panes; + // ensure fxSettings key to avoid errors + if (!o.fxSettings) o.fxSettings = {}; + if (!d.fxSettings) d.fxSettings = {}; + + $.each(["_open","_close","_size"], function (i,n) { + var + sName = "fxName"+ n + , sSpeed = "fxSpeed"+ n + , sSettings = "fxSettings"+ n + // recalculate fxName according to specificity rules + , fxName = o[sName] = + o[sName] // options.west.fxName_open + || d[sName] // options.panes.fxName_open + || o.fxName // options.west.fxName + || d.fxName // options.panes.fxName + || "none" // MEANS $.layout.defaults.panes.fxName == "" || false || null || 0 + , fxExists = $.effects && ($.effects[fxName] || ($.effects.effect && $.effects.effect[fxName])) + ; + // validate fxName to ensure is valid effect - MUST have effect-config data in options.effects + if (fxName === "none" || !options.effects[fxName] || !fxExists) + fxName = o[sName] = "none"; // effect not loaded OR unrecognized fxName + + // set vars for effects subkeys to simplify logic + var fx = options.effects[fxName] || {} // effects.slide + , fx_all = fx.all || null // effects.slide.all + , fx_pane = fx[pane] || null // effects.slide.west + ; + // create fxSpeed[_open|_close|_size] + o[sSpeed] = + o[sSpeed] // options.west.fxSpeed_open + || d[sSpeed] // options.west.fxSpeed_open + || o.fxSpeed // options.west.fxSpeed + || d.fxSpeed // options.panes.fxSpeed + || null // DEFAULT - let fxSetting.duration control speed + ; + // create fxSettings[_open|_close|_size] + o[sSettings] = $.extend( + true + , {} + , fx_all // effects.slide.all + , fx_pane // effects.slide.west + , d.fxSettings // options.panes.fxSettings + , o.fxSettings // options.west.fxSettings + , d[sSettings] // options.panes.fxSettings_open + , o[sSettings] // options.west.fxSettings_open + ); + }); + + // DONE creating action-specific-settings for this pane, + // so DELETE generic options - are no longer meaningful + delete o.fxName; + delete o.fxSpeed; + delete o.fxSettings; + } + } + + /** + * Initialize module objects, styling, size and position for all panes + * + * @see _initElements() + * @param {string} pane The pane to process + */ +, getPane = function (pane) { + var sel = options[pane].paneSelector + if (sel.substr(0,1)==="#") // ID selector + // NOTE: elements selected 'by ID' DO NOT have to be 'children' + return $N.find(sel).eq(0); + else { // class or other selector + var $P = $N.children(sel).eq(0); + // look for the pane nested inside a 'form' element + return $P.length ? $P : $N.children("form:first").children(sel).eq(0); + } + } + + /** + * @param {Object=} evt + */ +, initPanes = function (evt) { + // stopPropagation if called by trigger("layoutinitpanes") - use evtPane utility + evtPane(evt); + + // NOTE: do north & south FIRST so we can measure their height - do center LAST + $.each(_c.allPanes, function (idx, pane) { + addPane( pane, true ); + }); + + // init the pane-handles NOW in case we have to hide or close the pane below + initHandles(); + + // now that all panes have been initialized and initially-sized, + // make sure there is really enough space available for each pane + $.each(_c.borderPanes, function (i, pane) { + if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN + setSizeLimits(pane); + makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() + } + }); + // size center-pane AGAIN in case we 'closed' a border-pane in loop above + sizeMidPanes("center"); + + // Chrome/Webkit sometimes fires callbacks BEFORE it completes resizing! + // Before RC30.3, there was a 10ms delay here, but that caused layout + // to load asynchrously, which is BAD, so try skipping delay for now + + // process pane contents and callbacks, and init/resize child-layout if exists + $.each(_c.allPanes, function (idx, pane) { + afterInitPane(pane); + }); + } + + /** + * Add a pane to the layout - subroutine of initPanes() + * + * @see initPanes() + * @param {string} pane The pane to process + * @param {boolean=} [force=false] Size content after init + */ +, addPane = function (pane, force) { + if ( !force && !isInitialized() ) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , fx = s.fx + , spacing = o.spacing_open || 0 + , isCenter = (pane === "center") + , CSS = {} + , $P = $Ps[pane] + , size, minSize, maxSize, child + ; + // if pane-pointer already exists, remove the old one first + if ($P) + removePane( pane, false, true, false ); + else + $Cs[pane] = false; // init + + $P = $Ps[pane] = getPane(pane); + if (!$P.length) { + $Ps[pane] = false; // logic + return; + } + + // SAVE original Pane CSS + if (!$P.data("layoutCSS")) { + var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; + $P.data("layoutCSS", styles($P, props)); + } + + // create alias for pane data in Instance - initHandles will add more + Instance[pane] = { + name: pane + , pane: $Ps[pane] + , content: $Cs[pane] + , options: options[pane] + , state: state[pane] + , children: children[pane] + }; + + // add classes, attributes & events + $P .data({ + parentLayout: Instance // pointer to Layout Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "pane" + }) + .css(c.cssReq).css("zIndex", options.zIndexes.pane_normal) + .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles + .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' + .bind("mouseenter."+ sID, addHover ) + .bind("mouseleave."+ sID, removeHover ) + ; + var paneMethods = { + hide: '' + , show: '' + , toggle: '' + , close: '' + , open: '' + , slideOpen: '' + , slideClose: '' + , slideToggle: '' + , size: 'sizePane' + , sizePane: 'sizePane' + , sizeContent: '' + , sizeHandles: '' + , enableClosable: '' + , disableClosable: '' + , enableSlideable: '' + , disableSlideable: '' + , enableResizable: '' + , disableResizable: '' + , swapPanes: 'swapPanes' + , swap: 'swapPanes' + , move: 'swapPanes' + , removePane: 'removePane' + , remove: 'removePane' + , createChildren: '' + , resizeChildren: '' + , resizeAll: 'resizeAll' + , resizeLayout: 'resizeAll' + } + , name; + // loop hash and bind all methods - include layoutID namespacing + for (name in paneMethods) { + $P.bind("layoutpane"+ name.toLowerCase() +"."+ sID, Instance[ paneMethods[name] || name ]); + } + + // see if this pane has a 'scrolling-content element' + initContent(pane, false); // false = do NOT sizeContent() - called later + + if (!isCenter) { + // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) + // if o.size is auto or not valid, then MEASURE the pane and use that as its 'size' + size = s.size = _parseSize(pane, o.size); + minSize = _parseSize(pane,o.minSize) || 1; + maxSize = _parseSize(pane,o.maxSize) || 100000; + if (size > 0) size = max(min(size, maxSize), minSize); + s.autoResize = o.autoResize; // used with percentage sizes + + // state for border-panes + s.isClosed = false; // true = pane is closed + s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes + s.isResizing= false; // true = pane is in process of being resized + s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! + + // array for 'pin buttons' whose classNames are auto-updated on pane-open/-close + if (!s.pins) s.pins = []; + } + // states common to ALL panes + s.tagName = $P[0].tagName; + s.edge = pane; // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) + s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically + s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic + + // init pane positioning + setPanePosition( pane ); + + // if pane is not visible, + if (dir === "horz") // north or south pane + CSS.height = cssH($P, size); + else if (dir === "vert") // east or west pane + CSS.width = cssW($P, size); + //else if (isCenter) {} + + $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes + if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + initHandles( pane ); + initHotkeys( pane ); + } + + // close or hide the pane if specified in settings + if (o.initClosed && o.closable && !o.initHidden) + close(pane, true, true); // true, true = force, noAnimation + else if (o.initHidden || o.initClosed) + hide(pane); // will be completely invisible - no resizer or spacing + else if (!s.noRoom) + // make the pane visible - in case was initially hidden + $P.css("display","block"); + // ELSE setAsOpen() - called later by initHandles() + + // RESET visibility now - pane will appear IF display:block + $P.css("visibility","visible"); + + // check option for auto-handling of pop-ups & drop-downs + if (o.showOverflowOnHover) + $P.hover( allowOverflow, resetOverflow ); + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + afterInitPane( pane ); + } + } + +, afterInitPane = function (pane) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + ; + if (!$P) return; + + // see if there is a directly-nested layout inside this pane + if ($P.data("layout")) + refreshChildren( pane, $P.data("layout") ); + + // process pane contents and callbacks, and init/resize child-layout if exists + if (s.isVisible) { // pane is OPEN + if (state.initialized) // this pane was added AFTER layout was created + resizeAll(); // will also sizeContent + else + sizeContent(pane); + + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildren(pane, true); // a previously existing childLayout + } + + // init childLayouts - even if pane is not visible + if (o.initChildren && o.children) + createChildren(pane); + } + + /** + * @param {string=} panes The pane(s) to process + */ +, setPanePosition = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane] + , $R = $Rs[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , CSS = {} + ; + if (!$P) return; // pane does not exist - skip + + // set css-position to account for container borders & padding + switch (pane) { + case "north": CSS.top = sC.inset.top; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "south": CSS.bottom = sC.inset.bottom; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "west": CSS.left = sC.inset.left; // top, bottom & height set by sizeMidPanes() + break; + case "east": CSS.right = sC.inset.right; // ditto + break; + case "center": // top, left, width & height set by sizeMidPanes() + } + // apply position + $P.css(CSS); + + // update resizer position + if ($R && s.isClosed) + $R.css(side, sC.inset[side]); + else if ($R && !s.isHidden) + $R.css(side, sC.inset[side] + getPaneSize(pane)); + }); + } + + /** + * Initialize module objects, styling, size and position for all resize bars and toggler buttons + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHandles = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane]; + $Rs[pane] = false; // INIT + $Ts[pane] = false; + if (!$P) return; // pane does not exist - skip + + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , paneId = o.paneSelector.substr(0,1) === "#" ? o.paneSelector.substr(1) : "" + , rClass = o.resizerClass + , tClass = o.togglerClass + , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) + , _pane = "-"+ pane // used for classNames + , _state = (s.isVisible ? "-open" : "-closed") // used for classNames + , I = Instance[pane] + // INIT RESIZER BAR + , $R = I.resizer = $Rs[pane] = $("
        ") + // INIT TOGGLER BUTTON + , $T = I.toggler = (o.closable ? $Ts[pane] = $("
        ") : false) + ; + + //if (s.isVisible && o.resizable) ... handled by initResizable + if (!s.isVisible && o.slidable) + $R.attr("title", o.tips.Slide).css("cursor", o.sliderCursor); + + $R // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" + .attr("id", paneId ? paneId +"-resizer" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "resizer" + }) + .css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal) + .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles + .addClass(rClass +" "+ rClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if resizing is not enabled - handle with CSS instead + .hover(onResizerEnter, onResizerLeave) // ALWAYS NEED resizer.mouseleave to balance toggler.mouseenter + .mousedown($.layout.disableTextSelection) // prevent text-selection OUTSIDE resizer + .mouseup($.layout.enableTextSelection) // not really necessary, but just in case + .appendTo($N) // append DIV to container + ; + if ($.fn.disableSelection) + $R.disableSelection(); // prevent text-selection INSIDE resizer + if (o.resizerDblClickToggle) + $R.bind("dblclick."+ sID, toggle ); + + if ($T) { + $T // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" + .attr("id", paneId ? paneId +"-toggler" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "toggler" + }) + .css(_c.togglers.cssReq) // add base/required styles + .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles + .addClass(tClass +" "+ tClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if toggling is not enabled - handle with CSS instead + .bind("mouseenter", onResizerEnter) // NEED toggler.mouseenter because mouseenter MAY NOT fire on resizer + .appendTo($R) // append SPAN to resizer DIV + ; + // ADD INNER-SPANS TO TOGGLER + if (o.togglerContent_open) // ui-layout-open + $(""+ o.togglerContent_open +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .data("layoutRole", "togglerContent") + .data("layoutEdge", pane) + .addClass("content content-open") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! + ; + if (o.togglerContent_closed) // ui-layout-closed + $(""+ o.togglerContent_closed +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .addClass("content content-closed") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! + ; + // ADD TOGGLER.click/.hover + enableClosable(pane); + } + + // add Draggable events + initResizable(pane); + + // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" + if (s.isVisible) + setAsOpen(pane); // onOpen will be called, but NOT onResize + else { + setAsClosed(pane); // onClose will be called + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + }); + + // SET ALL HANDLE DIMENSIONS + sizeHandles(); + } + + + /** + * Initialize scrolling ui-layout-content div - if exists + * + * @see initPane() - or externally after an Ajax injection + * @param {string} pane The pane to process + * @param {boolean=} [resize=true] Size content after init + */ +, initContent = function (pane, resize) { + if (!isInitialized()) return; + var + o = options[pane] + , sel = o.contentSelector + , I = Instance[pane] + , $P = $Ps[pane] + , $C + ; + if (sel) $C = I.content = $Cs[pane] = (o.findNestedContent) + ? $P.find(sel).eq(0) // match 1-element only + : $P.children(sel).eq(0) + ; + if ($C && $C.length) { + $C.data("layoutRole", "content"); + // SAVE original Content CSS + if (!$C.data("layoutCSS")) + $C.data("layoutCSS", styles($C, "height")); + $C.css( _c.content.cssReq ); + if (o.applyDemoStyles) { + $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div + $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane + } + // ensure no vertical scrollbar on pane - will mess up measurements + if ($P.css("overflowX").match(/(scroll|auto)/)) { + $P.css("overflow", "hidden"); + } + state[pane].content = {}; // init content state + if (resize !== false) sizeContent(pane); + // sizeContent() is called AFTER init of all elements + } + else + I.content = $Cs[pane] = false; + } + + + /** + * Add resize-bars to all panes that specify it in options + * -dependancy: $.fn.resizable - will skip if not found + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initResizable = function (panes) { + var draggingAvailable = $.layout.plugins.draggable + , side // set in start() + ; + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (idx, pane) { + var o = options[pane]; + if (!draggingAvailable || !$Ps[pane] || !o.resizable) { + o.resizable = false; + return true; // skip to next + } + + var s = state[pane] + , z = options.zIndexes + , c = _c[pane] + , side = c.dir=="horz" ? "top" : "left" + , $P = $Ps[pane] + , $R = $Rs[pane] + , base = o.resizerClass + , lastPos = 0 // used when live-resizing + , r, live // set in start because may change + // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process + , resizerClass = base+"-drag" // resizer-drag + , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag + // 'helper' class is applied to the CLONED resizer-bar while it is being dragged + , helperClass = base+"-dragging" // resizer-dragging + , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging + , helperLimitClass = base+"-dragging-limit" // resizer-drag + , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag + , helperClassesSet = false // logic var + ; + + if (!s.isClosed) + $R.attr("title", o.tips.Resize) + .css("cursor", o.resizerCursor); // n-resize, s-resize, etc + + $R.draggable({ + containment: $N[0] // limit resizing to layout container + , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis + , delay: 0 + , distance: 1 + , grid: o.resizingGrid + // basic format for helper - style it using class: .ui-draggable-dragging + , helper: "clone" + , opacity: o.resizerDragOpacity + , addClasses: false // avoid ui-state-disabled class when disabled + //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed + , zIndex: z.resizer_drag + + , start: function (e, ui) { + // REFRESH options & state pointers in case we used swapPanes + o = options[pane]; + s = state[pane]; + // re-read options + live = o.livePaneResizing; + + // ondrag_start callback - will CANCEL hide if returns false + // TODO: dragging CANNOT be cancelled like this, so see if there is a way? + if (false === _runCallbacks("ondrag_start", pane)) return false; + + s.isResizing = true; // prevent pane from closing while resizing + state.paneResizing = pane; // easy to see if ANY pane is resizing + timer.clear(pane+"_closeSlider"); // just in case already triggered + + // SET RESIZER LIMITS - used in drag() + setSizeLimits(pane); // update pane/resizer state + r = s.resizerPosition; + lastPos = ui.position[ side ] + + $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes + helperClassesSet = false; // reset logic var - see drag() + + // MASK PANES CONTAINING IFRAMES, APPLETS OR OTHER TROUBLESOME ELEMENTS + showMasks( pane, { resizing: true }); + } + + , drag: function (e, ui) { + if (!helperClassesSet) { // can only add classes after clone has been added to the DOM + //$(".ui-draggable-dragging") + ui.helper + .addClass( helperClass +" "+ helperPaneClass ) // add helper classes + .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue + .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar + ; + helperClassesSet = true; + // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! + if (s.isSliding) $Ps[pane].css("zIndex", z.pane_sliding); + } + // CONTAIN RESIZER-BAR TO RESIZING LIMITS + var limit = 0; + if (ui.position[side] < r.min) { + ui.position[side] = r.min; + limit = -1; + } + else if (ui.position[side] > r.max) { + ui.position[side] = r.max; + limit = 1; + } + // ADD/REMOVE dragging-limit CLASS + if (limit) { + ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit + window.defaultStatus = (limit>0 && pane.match(/(north|west)/)) || (limit<0 && pane.match(/(south|east)/)) ? o.tips.maxSizeWarning : o.tips.minSizeWarning; + } + else { + ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit + window.defaultStatus = ""; + } + // DYNAMICALLY RESIZE PANES IF OPTION ENABLED + // won't trigger unless resizer has actually moved! + if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { + lastPos = ui.position[side]; + resizePanes(e, ui, pane) + } + } + + , stop: function (e, ui) { + $('body').enableSelection(); // RE-ENABLE TEXT SELECTION + window.defaultStatus = ""; // clear 'resizing limit' message from statusbar + $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer + s.isResizing = false; + state.paneResizing = false; // easy to see if ANY pane is resizing + resizePanes(e, ui, pane, true); // true = resizingDone + } + + }); + }); + + /** + * resizePanes + * + * Sub-routine called from stop() - and drag() if livePaneResizing + * + * @param {!Object} evt + * @param {!Object} ui + * @param {string} pane + * @param {boolean=} [resizingDone=false] + */ + var resizePanes = function (evt, ui, pane, resizingDone) { + var dragPos = ui.position + , c = _c[pane] + , o = options[pane] + , s = state[pane] + , resizerPos + ; + switch (pane) { + case "north": resizerPos = dragPos.top; break; + case "west": resizerPos = dragPos.left; break; + case "south": resizerPos = sC.layoutHeight - dragPos.top - o.spacing_open; break; + case "east": resizerPos = sC.layoutWidth - dragPos.left - o.spacing_open; break; + }; + // remove container margin from resizer position to get the pane size + var newSize = resizerPos - sC.inset[c.side]; + + // Disable OR Resize Mask(s) created in drag.start + if (!resizingDone) { + // ensure we meet liveResizingTolerance criteria + if (Math.abs(newSize - s.size) < o.liveResizingTolerance) + return; // SKIP resize this time + // resize the pane + manualSizePane(pane, newSize, false, true); // true = noAnimation + sizeMasks(); // resize all visible masks + } + else { // resizingDone + // ondrag_end callback + if (false !== _runCallbacks("ondrag_end", pane)) + manualSizePane(pane, newSize, false, true); // true = noAnimation + hideMasks(true); // true = force hiding all masks even if one is 'sliding' + if (s.isSliding) // RE-SHOW 'object-masks' so objects won't show through sliding pane + showMasks( pane, { resizing: true }); + } + }; + } + + /** + * sizeMask + * + * Needed to overlay a DIV over an IFRAME-pane because mask CANNOT be *inside* the pane + * Called when mask created, and during livePaneResizing + */ +, sizeMask = function () { + var $M = $(this) + , pane = $M.data("layoutMask") // eg: "west" + , s = state[pane] + ; + // only masks over an IFRAME-pane need manual resizing + if (s.tagName == "IFRAME" && s.isVisible) // no need to mask closed/hidden panes + $M.css({ + top: s.offsetTop + , left: s.offsetLeft + , width: s.outerWidth + , height: s.outerHeight + }); + /* ALT Method... + var $P = $Ps[pane]; + $M.css( $P.position() ).css({ width: $P[0].offsetWidth, height: $P[0].offsetHeight }); + */ + } +, sizeMasks = function () { + $Ms.each( sizeMask ); // resize all 'visible' masks + } + + /** + * @param {string} pane The pane being resized, animated or isSliding + * @param {Object=} [args] (optional) Options: which masks to apply, and to which panes + */ +, showMasks = function (pane, args) { + var c = _c[pane] + , panes = ["center"] + , z = options.zIndexes + , a = $.extend({ + objectsOnly: false + , animation: false + , resizing: true + , sliding: state[pane].isSliding + }, args ) + , o, s + ; + if (a.resizing) + panes.push( pane ); + if (a.sliding) + panes.push( _c.oppositeEdge[pane] ); // ADD the oppositeEdge-pane + + if (c.dir === "horz") { + panes.push("west"); + panes.push("east"); + } + + $.each(panes, function(i,p){ + s = state[p]; + o = options[p]; + if (s.isVisible && ( o.maskObjects || (!a.objectsOnly && o.maskContents) )) { + getMasks(p).each(function(){ + sizeMask.call(this); + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.display = "block"; + }); + } + }); + } + + /** + * @param {boolean=} force Hide masks even if a pane is sliding + */ +, hideMasks = function (force) { + // ensure no pane is resizing - could be a timing issue + if (force || !state.paneResizing) { + $Ms.hide(); // hide ALL masks + } + // if ANY pane is sliding, then DO NOT remove masks from panes with maskObjects enabled + else if (!force && !$.isEmptyObject( state.panesSliding )) { + var i = $Ms.length - 1 + , p, $M; + for (; i >= 0; i--) { + $M = $Ms.eq(i); + p = $M.data("layoutMask"); + if (!options[p].maskObjects) { + $M.hide(); + } + } + } + } + + /** + * @param {string} pane + */ +, getMasks = function (pane) { + var $Masks = $([]) + , $M, i = 0, c = $Ms.length + ; + for (; i CSS + if (sC.tagName === "BODY" && ($N = $("html")).data(css)) // RESET CSS + $N.css( $N.data(css) ).removeData(css); + + // trigger plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onDestroy ); + + // trigger state-management and onunload callback + unload(); + + // clear the Instance of everything except for container & options (so could recreate) + // RE-CREATE: myLayout = myLayout.container.layout( myLayout.options ); + for (var n in Instance) + if (!n.match(/^(container|options)$/)) delete Instance[ n ]; + // add a 'destroyed' flag to make it easy to check + Instance.destroyed = true; + + // if this is a child layout, CLEAR the child-pointer in the parent + /* for now the pointer REMAINS, but with only container, options and destroyed keys + if (parentPane) { + var layout = parentPane.pane.data("parentLayout") + , key = layout.options.instanceKey || 'error'; + // THIS SYNTAX MAY BE WRONG! + parentPane.children[key] = layout.children[ parentPane.name ].children[key] = null; + } + */ + + return Instance; // for coding convenience + } + + /** + * Remove a pane from the layout - subroutine of destroy() + * + * @see destroy() + * @param {(string|Object)} evt_or_pane The pane to process + * @param {boolean=} [remove=false] Remove the DOM element? + * @param {boolean=} [skipResize=false] Skip calling resizeAll()? + * @param {boolean=} [destroyChild=true] Destroy Child-layouts? If not passed, obeys options setting + */ +, removePane = function (evt_or_pane, remove, skipResize, destroyChild) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $C = $Cs[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + ; + // NOTE: elements can still exist even after remove() + // so check for missing data(), which is cleared by removed() + if ($P && $.isEmptyObject( $P.data() )) $P = false; + if ($C && $.isEmptyObject( $C.data() )) $C = false; + if ($R && $.isEmptyObject( $R.data() )) $R = false; + if ($T && $.isEmptyObject( $T.data() )) $T = false; + + if ($P) $P.stop(true, true); + + var o = options[pane] + , s = state[pane] + , d = "layout" + , css = "layoutCSS" + , pC = children[pane] + , hasChildren = $.isPlainObject( pC ) && !$.isEmptyObject( pC ) + , destroy = destroyChild !== undefined ? destroyChild : o.destroyChildren + ; + // FIRST destroy the child-layout(s) + if (hasChildren && destroy) { + $.each( pC, function (key, child) { + if (!child.destroyed) + child.destroy(true);// tell child-layout to destroy ALL its child-layouts too + if (child.destroyed) // destroy was successful + delete pC[key]; + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) { + pC = children[pane] = null; // clear children hash + hasChildren = false; + } + } + + // Note: can't 'remove' a pane element with non-destroyed children + if ($P && remove && !hasChildren) + $P.remove(); // remove the pane-element and everything inside it + else if ($P && $P[0]) { + // create list of ALL pane-classes that need to be removed + var root = o.paneClass // default="ui-layout-pane" + , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes + pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes + ; + $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes + // remove all Layout classes from pane-element + $P .removeClass( classes.join(" ") ) // remove ALL pane-classes + .removeData("parentLayout") + .removeData("layoutPane") + .removeData("layoutRole") + .removeData("layoutEdge") + .removeData("autoHidden") // in case set + .unbind("."+ sID) // remove ALL Layout events + // TODO: remove these extra unbind commands when jQuery is fixed + //.unbind("mouseenter"+ sID) + //.unbind("mouseleave"+ sID) + ; + // do NOT reset CSS if this pane/content is STILL the container of a nested layout! + // the nested layout will reset its 'container' CSS when/if it is destroyed + if (hasChildren && $C) { + // a content-div may not have a specific width, so give it one to contain the Layout + $C.width( $C.width() ); + $.each( pC, function (key, child) { + child.resizeAll(); // resize the Layout + }); + } + else if ($C) + $C.css( $C.data(css) ).removeData(css).removeData("layoutRole"); + // remove pane AFTER content in case there was a nested layout + if (!$P.data(d)) + $P.css( $P.data(css) ).removeData(css); + } + + // REMOVE pane resizer and toggler elements + if ($T) $T.remove(); + if ($R) $R.remove(); + + // CLEAR all pointers and state data + Instance[pane] = $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = false; + s = { removed: true }; + + if (!skipResize) + resizeAll(); + } + + +/* + * ########################### + * ACTION METHODS + * ########################### + */ + + /** + * @param {string} pane + */ +, _hidePane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , s = $P[0].style + ; + if (o.useOffscreenClose) { + if (!$P.data(_c.offscreenReset)) + $P.data(_c.offscreenReset, { left: s.left, right: s.right }); + $P.css( _c.offscreenCSS ); + } + else + $P.hide().removeData(_c.offscreenReset); + } + + /** + * @param {string} pane + */ +, _showPane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , off = _c.offscreenCSS + , old = $P.data(_c.offscreenReset) + , s = $P[0].style + ; + $P .show() // ALWAYS show, just in case + .removeData(_c.offscreenReset); + if (o.useOffscreenClose && old) { + if (s.left == off.left) + s.left = old.left; + if (s.right == off.right) + s.right = old.right; + } + } + + + /** + * Completely 'hides' a pane, including its spacing - as if it does not exist + * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it + * + * @param {(string|Object)} evt_or_pane The pane being hidden, ie: north, south, east, or west + * @param {boolean=} [noAnimation=false] + */ +, hide = function (evt_or_pane, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || s.isHidden) return; // pane does not exist OR is already hidden + + // onhide_start callback - will CANCEL hide if returns false + if (state.initialized && false === _runCallbacks("onhide_start", pane)) return; + + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now hide the elements + if ($R) $R.hide(); // hide resizer-bar + if (!state.initialized || s.isClosed) { + s.isClosed = true; // to trigger open-animation on show() + s.isHidden = true; + s.isVisible = false; + if (!state.initialized) + _hidePane(pane); // no animation when loading page + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center"); + if (state.initialized || o.triggerEventsOnLoad) + _runCallbacks("onhide_end", pane); + } + else { + s.isHiding = true; // used by onclose + close(pane, false, noAnimation); // adjust all panes to fit + } + } + + /** + * Show a hidden pane - show as 'closed' by default unless openPane = true + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [openPane=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, show = function (evt_or_pane, openPane, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || !s.isHidden) return; // pane does not exist OR is not hidden + + // onshow_start callback - will CANCEL show if returns false + if (false === _runCallbacks("onshow_start", pane)) return; + + s.isShowing = true; // used by onopen/onclose + //s.isHidden = false; - will be set by open/close - if not cancelled + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now show the elements + //if ($R) $R.show(); - will be shown by open/close + if (openPane === false) + close(pane, true); // true = force + else + open(pane, false, noAnimation, noAlert); // adjust all panes to fit + } + + + /** + * Toggles a pane open/closed by calling either open or close + * + * @param {(string|Object)} evt_or_pane The pane being toggled, ie: north, south, east, or west + * @param {boolean=} [slide=false] + */ +, toggle = function (evt_or_pane, slide) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + ; + if (evt) // called from to $R.dblclick OR triggerPaneEvent + evt.stopImmediatePropagation(); + if (s.isHidden) + show(pane); // will call 'open' after unhiding it + else if (s.isClosed) + open(pane, !!slide); + else + close(pane); + } + + + /** + * Utility method used during init or other auto-processes + * + * @param {string} pane The pane being closed + * @param {boolean=} [setHandles=false] + */ +, _closePane = function (pane, setHandles) { + var + $P = $Ps[pane] + , s = state[pane] + ; + _hidePane(pane); + s.isClosed = true; + s.isVisible = false; + if (setHandles) setAsClosed(pane); + } + + /** + * Close the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being closed, ie: north, south, east, or west + * @param {boolean=} [force=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [skipCallback=false] + */ +, close = function (evt_or_pane, force, noAnimation, skipCallback) { + var pane = evtPane.call(this, evt_or_pane); + if (pane === "center") return; // validate + // if pane has been initialized, but NOT the complete layout, close pane instantly + if (!state.initialized && $Ps[pane]) { + _closePane(pane, true); // INIT pane as closed + return; + } + if (!isInitialized()) return; + + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing, isHiding, wasSliding; + + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.closable && !s.isShowing && !s.isHiding) // invalid request // (!o.resizable && !o.closable) ??? + || (!force && s.isClosed && !s.isShowing) // already closed + ) return queueNext(); + + // onclose_start callback - will CANCEL hide if returns false + // SKIP if just 'showing' a hidden pane as 'closed' + var abort = !s.isShowing && false === _runCallbacks("onclose_start", pane); + + // transfer logic vars to temp vars + isShowing = s.isShowing; + isHiding = s.isHiding; + wasSliding = s.isSliding; + // now clear the logic vars (REQUIRED before aborting) + delete s.isShowing; + delete s.isHiding; + + if (abort) return queueNext(); + + doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"); + s.isMoving = true; + s.isClosed = true; + s.isVisible = false; + // update isHidden BEFORE sizing panes + if (isHiding) s.isHidden = true; + else if (isShowing) s.isHidden = false; + + if (s.isSliding) // pane is being closed, so UNBIND trigger events + bindStopSlidingEvents(pane, false); // will set isSliding=false + else // resize panes adjacent to this one + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center", false); // false = NOT skipCallback + + // if this pane has a resizer bar, move it NOW - before animation + setAsClosed(pane); + + // CLOSE THE PANE + if (doFX) { // animate the close + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { + lockPaneForFX(pane, false); // undo + if (s.isClosed) close_2(); + queueNext(); + }); + } + else { // hide the pane without animation + _hidePane(pane); + close_2(); + queueNext(); + }; + }); + + // SUBROUTINE + function close_2 () { + s.isMoving = false; + bindStartSlidingEvents(pane, true); // will enable if o.slidable = true + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane ); + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { + // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' + if (!isShowing) _runCallbacks("onclose_end", pane); + // onhide OR onshow callback + if (isShowing) _runCallbacks("onshow_end", pane); + if (isHiding) _runCallbacks("onhide_end", pane); + } + } + } + + /** + * @param {string} pane The pane just closed, ie: north, south, east, or west + */ +, setAsClosed = function (pane) { + if (!$Rs[pane]) return; // handles not initialized yet! + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + ; + $R + .css(side, sC.inset[side]) // move the resizer + .removeClass( rClass+_open +" "+ rClass+_pane+_open ) + .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) + ; + // handle already-hidden panes in case called by swap() or a similar method + if (s.isHidden) $R.hide(); // hide resizer-bar + + // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvents? + if (o.resizable && $.layout.plugins.draggable) + $R + .draggable("disable") + .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here + .css("cursor", "default") + .attr("title","") + ; + + // if pane has a toggler button, adjust that too + if ($T) { + $T + .removeClass( tClass+_open +" "+ tClass+_pane+_open ) + .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .attr("title", o.tips.Open) // may be blank + ; + // toggler-content - if exists + $T.children(".content-open").hide(); + $T.children(".content-closed").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, false); + + if (state.initialized) { + // resize 'length' and position togglers for adjacent panes + sizeHandles(); + } + } + + /** + * Open the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [slide=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, open = function (evt_or_pane, slide, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.resizable && !o.closable && !s.isShowing) // invalid request + || (s.isVisible && !s.isSliding) // already open + ) return queueNext(); + + // pane can ALSO be unhidden by just calling show(), so handle this scenario + if (s.isHidden && !s.isShowing) { + queueNext(); // call before show() because it needs the queue free + show(pane, true); + return; + } + + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else + // make sure there is enough space available to open the pane + setSizeLimits(pane, slide); + + // onopen_start callback - will CANCEL open if returns false + var cbReturn = _runCallbacks("onopen_start", pane); + + if (cbReturn === "abort") + return queueNext(); + + // update pane-state again in case options were changed in onopen_start + if (cbReturn !== "NC") // NC = "No Callback" + setSizeLimits(pane, slide); + + if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! + syncPinBtns(pane, false); // make sure pin-buttons are reset + if (!noAlert && o.tips.noRoomToOpen) + alert(o.tips.noRoomToOpen); + return queueNext(); // ABORT + } + + if (slide) // START Sliding - will set isSliding=true + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead + bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false + else if (o.slidable) + bindStartSlidingEvents(pane, false); // UNBIND trigger events + + s.noRoom = false; // will be reset by makePaneFit if 'noRoom' + makePaneFit(pane); + + // transfer logic var to temp var + isShowing = s.isShowing; + // now clear the logic var + delete s.isShowing; + + doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"); + s.isMoving = true; + s.isVisible = true; + s.isClosed = false; + // update isHidden BEFORE sizing panes - WHY??? Old? + if (isShowing) s.isHidden = false; + + if (doFX) { // ANIMATE + // mask adjacent panes with objects + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { + lockPaneForFX(pane, false); // undo + if (s.isVisible) open_2(); // continue + queueNext(); + }); + } + else { // no animation + _showPane(pane);// just show pane and... + open_2(); // continue + queueNext(); + }; + }); + + // SUBROUTINE + function open_2 () { + s.isMoving = false; + + // cure iframe display issues + _fixIframe(pane); + + // NOTE: if isSliding, then other panes are NOT 'resized' + if (!s.isSliding) { // resize all panes adjacent to this one + sizeMidPanes(_c[pane].dir=="vert" ? "center" : "", false); // false = NOT skipCallback + } + + // set classes, position handles and execute callbacks... + setAsOpen(pane); + }; + + } + + /** + * @param {string} pane The pane just opened, ie: north, south, east, or west + * @param {boolean=} [skipCallback=false] + */ +, setAsOpen = function (pane, skipCallback) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _closed = "-closed" + , _sliding= "-sliding" + ; + $R + .css(side, sC.inset[side] + getPaneSize(pane)) // move the resizer + .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .addClass( rClass+_open +" "+ rClass+_pane+_open ) + ; + if (s.isSliding) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + else // in case 'was sliding' + $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + + removeHover( 0, $R ); // remove hover classes + if (o.resizable && $.layout.plugins.draggable) + $R .draggable("enable") + .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + else if (!s.isSliding) + $R.css("cursor", "default"); // n-resize, s-resize, etc + + // if pane also has a toggler button, adjust that too + if ($T) { + $T .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .addClass( tClass+_open +" "+ tClass+_pane+_open ) + .attr("title", o.tips.Close); // may be blank + removeHover( 0, $T ); // remove hover classes + // toggler-content - if exists + $T.children(".content-closed").hide(); + $T.children(".content-open").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, !s.isSliding); + + // update pane-state dimensions - BEFORE resizing content + $.extend(s, elDims($P)); + + if (state.initialized) { + // resize resizer & toggler sizes for all panes + sizeHandles(); + // resize content every time pane opens - to be sure + sizeContent(pane, true); // true = remeasure headers/footers, even if 'pane.isMoving' + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { + // onopen callback + _runCallbacks("onopen_end", pane); + // onshow callback - TODO: should this be here? + if (s.isShowing) _runCallbacks("onshow_end", pane); + + // ALSO call onresize because layout-size *may* have changed while pane was closed + if (state.initialized) + _runCallbacks("onresize_end", pane); + } + + // TODO: Somehow sizePane("north") is being called after this point??? + } + + + /** + * slideOpen / slideClose / slideToggle + * + * Pass-though methods for sliding + */ +, slideOpen = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + , delay = options[pane].slideDelay_open + ; + if (pane === "center") return; // validate + // prevent event from triggering on NEW resizer binding created below + if (evt) evt.stopImmediatePropagation(); + + if (s.isClosed && evt && evt.type === "mouseenter" && delay > 0) + // trigger = mouseenter - use a delay + timer.set(pane+"_openSlider", open_NOW, delay); + else + open_NOW(); // will unbind events if is already open + + /** + * SUBROUTINE for timed open + */ + function open_NOW () { + if (!s.isClosed) // skip if no longer closed! + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (!s.isMoving) + open(pane, true); // true = slide - open() will handle binding + }; + } + +, slideClose = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , delay = s.isMoving ? 1000 : 300 // MINIMUM delay - option may override + ; + if (pane === "center") return; // validate + if (s.isClosed || s.isResizing) + return; // skip if already closed OR in process of resizing + else if (o.slideTrigger_close === "click") + close_NOW(); // close immediately onClick + else if (o.preventQuickSlideClose && s.isMoving) + return; // handle Chrome quick-close on slide-open + else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) + return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + else if (evt) // trigger = mouseleave - use a delay + // 1 sec delay if 'opening', else .3 sec + timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); + else // called programically + close_NOW(); + + /** + * SUBROUTINE for timed close + */ + function close_NOW () { + if (s.isClosed) // skip 'close' if already closed! + bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? + else if (!s.isMoving) + close(pane); // close will handle unbinding + }; + } + + /** + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + */ +, slideToggle = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + toggle(pane, true); + } + + + /** + * Must set left/top on East/South panes so animation will work properly + * + * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! + * @param {boolean} doLock true = set left/top, false = remove + */ +, lockPaneForFX = function (pane, doLock) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + , z = options.zIndexes + ; + if (doLock) { + showMasks( pane, { animation: true, objectsOnly: true }); + $P.css({ zIndex: z.pane_animate }); // overlay all elements during animation + if (pane=="south") + $P.css({ top: sC.inset.top + sC.innerHeight - $P.outerHeight() }); + else if (pane=="east") + $P.css({ left: sC.inset.left + sC.innerWidth - $P.outerWidth() }); + } + else { // animation DONE - RESET CSS + hideMasks(); + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + if (pane=="south") + $P.css({ top: "auto" }); + // if pane is positioned 'off-screen', then DO NOT screw with it! + else if (pane=="east" && !$P.css("left").match(/\-99999/)) + $P.css({ left: "auto" }); + // fix anti-aliasing in IE - only needed for animations that change opacity + if (browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) + $P[0].style.removeAttribute('filter'); + } + } + + + /** + * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger + * + * @see open(), close() + * @param {string} pane The pane to enable/disable, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable sliding? + */ +, bindStartSlidingEvents = function (pane, enable) { + var o = options[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , evtName = o.slideTrigger_open.toLowerCase() + ; + if (!$R || (enable && !o.slidable)) return; + + // make sure we have a valid event + if (evtName.match(/mouseover/)) + evtName = o.slideTrigger_open = "mouseenter"; + else if (!evtName.match(/(click|dblclick|mouseenter)/)) + evtName = o.slideTrigger_open = "click"; + + // must remove double-click-toggle when using dblclick-slide + if (o.resizerDblClickToggle && evtName.match(/click/)) { + $R[enable ? "unbind" : "bind"]('dblclick.'+ sID, toggle) + } + + $R + // add or remove event + [enable ? "bind" : "unbind"](evtName +'.'+ sID, slideOpen) + // set the appropriate cursor & title/tip + .css("cursor", enable ? o.sliderCursor : "default") + .attr("title", enable ? o.tips.Slide : "") + ; + } + + /** + * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed + * Also increases zIndex when pane is sliding open + * See bindStartSlidingEvents for code to control 'slide open' + * + * @see slideOpen(), slideClose() + * @param {string} pane The pane to process, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable events? + */ +, bindStopSlidingEvents = function (pane, enable) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , z = options.zIndexes + , evtName = o.slideTrigger_close.toLowerCase() + , action = (enable ? "bind" : "unbind") + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + timer.clear(pane+"_closeSlider"); // just in case + + if (enable) { + s.isSliding = true; + state.panesSliding[pane] = true; + // remove 'slideOpen' event from resizer + // ALSO will raise the zIndex of the pane & resizer + bindStartSlidingEvents(pane, false); + } + else { + s.isSliding = false; + delete state.panesSliding[pane]; + } + + // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not + $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); + $R.css("zIndex", enable ? z.pane_sliding+2 : z.resizer_normal); // NOTE: mask = pane_sliding+1 + + // make sure we have a valid event + if (!evtName.match(/(click|mouseleave)/)) + evtName = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' + + // add/remove slide triggers + $R[action](evtName, slideClose); // base event on resize + // need extra events for mouseleave + if (evtName === "mouseleave") { + // also close on pane.mouseleave + $P[action]("mouseleave."+ sID, slideClose); + // cancel timer when mouse moves between 'pane' and 'resizer' + $R[action]("mouseenter."+ sID, cancelMouseOut); + $P[action]("mouseenter."+ sID, cancelMouseOut); + } + + if (!enable) + timer.clear(pane+"_closeSlider"); + else if (evtName === "click" && !o.resizable) { + // IF pane is not resizable (which already has a cursor and tip) + // then set the a cursor & title/tip on resizer when sliding + $R.css("cursor", enable ? o.sliderCursor : "default"); + $R.attr("title", enable ? o.tips.Close : ""); // use Toggler-tip, eg: "Close Pane" + } + + // SUBROUTINE for mouseleave timer clearing + function cancelMouseOut (evt) { + timer.clear(pane+"_closeSlider"); + evt.stopPropagation(); + } + } + + + /** + * Hides/closes a pane if there is insufficient room - reverses this when there is room again + * MUST have already called setSizeLimits() before calling this method + * + * @param {string} pane The pane being resized + * @param {boolean=} [isOpening=false] Called from onOpen? + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, makePaneFit = function (pane, isOpening, skipCallback, force) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isSidePane = c.dir==="vert" + , hasRoom = false + ; + // special handling for center & east/west panes + if (pane === "center" || (isSidePane && s.noVerticalRoom)) { + // see if there is enough room to display the pane + // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); + hasRoom = (s.maxHeight >= 0); + if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now + _showPane(pane); + if ($R) $R.show(); + s.isVisible = true; + s.noRoom = false; + if (isSidePane) s.noVerticalRoom = false; + _fixIframe(pane); + } + else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now + _hidePane(pane); + if ($R) $R.hide(); + s.isVisible = false; + s.noRoom = true; + } + } + + // see if there is enough room to fit the border-pane + if (pane === "center") { + // ignore center in this block + } + else if (s.minSize <= s.maxSize) { // pane CAN fit + hasRoom = true; + if (s.size > s.maxSize) // pane is too big - shrink it + sizePane(pane, s.maxSize, skipCallback, true, force); // true = noAnimation + else if (s.size < s.minSize) // pane is too small - enlarge it + sizePane(pane, s.minSize, skipCallback, true, force); // true = noAnimation + // need s.isVisible because new pseudoClose method keeps pane visible, but off-screen + else if ($R && s.isVisible && $P.is(":visible")) { + // make sure resizer-bar is positioned correctly + // handles situation where nested layout was 'hidden' when initialized + var pos = s.size + sC.inset[c.side]; + if ($.layout.cssNum( $R, c.side ) != pos) $R.css( c.side, pos ); + } + + // if was previously hidden due to noRoom, then RESET because NOW there is room + if (s.noRoom) { + // s.noRoom state will be set by open or show + if (s.wasOpen && o.closable) { + if (o.autoReopen) + open(pane, false, true, true); // true = noAnimation, true = noAlert + else // leave the pane closed, so just update state + s.noRoom = false; + } + else + show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert + } + } + else { // !hasRoom - pane CANNOT fit + if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... + s.noRoom = true; // update state + s.wasOpen = !s.isClosed && !s.isSliding; + if (s.isClosed){} // SKIP + else if (o.closable) // 'close' if possible + close(pane, true, true); // true = force, true = noAnimation + else // 'hide' pane if cannot just be closed + hide(pane, true); // true = noAnimation + } + } + } + + + /** + * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, manualSizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... + , forceResize = force || (o.livePaneResizing && !s.isResizing) + ; + if (pane === "center") return; // validate + // ANY call to manualSizePane disables autoResize - ie, percentage sizing + s.autoResize = false; + // flow-through... + sizePane(pane, size, skipCallback, noAnimation, forceResize); // will animate resize if option enabled + } + + /** + * sizePane is called only by internal methods whenever a pane needs to be resized + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, sizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) // probably NEVER called from event? + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , side = _c[pane].side + , dimName = _c[pane].sizeType.toLowerCase() + , skipResizeWhileDragging = s.isResizing && !o.triggerEventsDuringLiveResize + , doFX = noAnimation !== true && o.animatePaneSizing + , oldSize, newSize + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + // calculate 'current' min/max sizes + setSizeLimits(pane); // update pane-state + oldSize = s.size; + size = _parseSize(pane, size); // handle percentages & auto + size = max(size, _parseSize(pane, o.minSize)); + size = min(size, s.maxSize); + if (size < s.minSize) { // not enough room for pane! + queueNext(); // call before makePaneFit() because it needs the queue free + makePaneFit(pane, false, skipCallback); // will hide or close pane + return; + } + + // IF newSize is same as oldSize, then nothing to do - abort + if (!force && size === oldSize) + return queueNext(); + + s.newSize = size; + + // onresize_start callback CANNOT cancel resizing because this would break the layout! + if (!skipCallback && state.initialized && s.isVisible) + _runCallbacks("onresize_start", pane); + + // resize the pane, and make sure its visible + newSize = cssSize(pane, size); + + if (doFX && $P.is(":visible")) { // ANIMATE + var fx = $.layout.effects.size[pane] || $.layout.effects.size.all + , easing = o.fxSettings_size.easing || fx.easing + , z = options.zIndexes + , props = {}; + props[ dimName ] = newSize +'px'; + s.isMoving = true; + // overlay all elements during animation + $P.css({ zIndex: z.pane_animate }) + .show().animate( props, o.fxSpeed_size, easing, function(){ + // reset zIndex after animation + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + s.isMoving = false; + delete s.newSize; + sizePane_2(); // continue + queueNext(); + }); + } + else { // no animation + $P.css( dimName, newSize ); // resize pane + delete s.newSize; + // if pane is visible, then + if ($P.is(":visible")) + sizePane_2(); // continue + else { + // pane is NOT VISIBLE, so just update state data... + // when pane is *next opened*, it will have the new size + s.size = size; // update state.size + //$.extend(s, elDims($P)); // update state dimensions - CANNOT do this when not visible! } + } + queueNext(); + }; + + }); + + // SUBROUTINE + function sizePane_2 () { + /* Panes are sometimes not sized precisely in some browsers!? + * This code will resize the pane up to 3 times to nudge the pane to the correct size + */ + var actual = dimName==='width' ? $P.outerWidth() : $P.outerHeight() + , tries = [{ + pane: pane + , count: 1 + , target: size + , actual: actual + , correct: (size === actual) + , attempt: size + , cssSize: newSize + }] + , lastTry = tries[0] + , thisTry = {} + , msg = 'Inaccurate size after resizing the '+ pane +'-pane.' + ; + while ( !lastTry.correct ) { + thisTry = { pane: pane, count: lastTry.count+1, target: size }; + + if (lastTry.actual > size) + thisTry.attempt = max(0, lastTry.attempt - (lastTry.actual - size)); + else // lastTry.actual < size + thisTry.attempt = max(0, lastTry.attempt + (size - lastTry.actual)); + + thisTry.cssSize = cssSize(pane, thisTry.attempt); + $P.css( dimName, thisTry.cssSize ); + + thisTry.actual = dimName=='width' ? $P.outerWidth() : $P.outerHeight(); + thisTry.correct = (size === thisTry.actual); + + // log attempts and alert the user of this *non-fatal error* (if showDebugMessages) + if ( tries.length === 1) { + _log(msg, false, true); + _log(lastTry, false, true); + } + _log(thisTry, false, true); + // after 4 tries, is as close as its gonna get! + if (tries.length > 3) break; + + tries.push( thisTry ); + lastTry = tries[ tries.length - 1 ]; + } + // END TESTING CODE + + // update pane-state dimensions + s.size = size; + $.extend(s, elDims($P)); + + if (s.isVisible && $P.is(":visible")) { + // reposition the resizer-bar + if ($R) $R.css( side, size + sC.inset[side] ); + // resize the content-div + sizeContent(pane); + } + + if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) + _runCallbacks("onresize_end", pane); + + // resize all the adjacent panes, and adjust their toggler buttons + // when skipCallback passed, it means the controlling method will handle 'other panes' + if (!skipCallback) { + // also no callback if live-resize is in progress and NOT triggerEventsDuringLiveResize + if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "" : "center", skipResizeWhileDragging, force); + sizeHandles(); + } + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (size < oldSize && state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane, false, skipCallback ); + } + + // DEBUG - ALERT user/developer so they know there was a sizing problem + if (tries.length > 1) + _log(msg +'\nSee the Error Console for details.', true, true); + } + } + + /** + * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() + * @param {(Array.|string)} panes The pane(s) being resized, comma-delmited string + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, sizeMidPanes = function (panes, skipCallback, force) { + panes = (panes ? panes : "east,west,center").split(","); + + $.each(panes, function (i, pane) { + if (!$Ps[pane]) return; // NO PANE - skip + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isCenter= (pane=="center") + , hasRoom = true + , CSS = {} + // if pane is not visible, show it invisibly NOW rather than for *each call* in this script + , visCSS = $.layout.showInvisibly($P) + + , newCenter = calcNewCenterPaneDims() + ; + + // update pane-state dimensions + $.extend(s, elDims($P)); + + if (pane === "center") { + if (!force && s.isVisible && newCenter.width === s.outerWidth && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // set state for makePaneFit() logic + $.extend(s, cssMinDims(pane), { + maxWidth: newCenter.width + , maxHeight: newCenter.height + }); + CSS = newCenter; + s.newWidth = CSS.width; + s.newHeight = CSS.height; + // convert OUTER width/height to CSS width/height + CSS.width = cssW($P, CSS.width); + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, CSS.height); + hasRoom = CSS.width >= 0 && CSS.height >= 0; // height >= 0 = ALWAYS TRUE NOW + + // during layout init, try to shrink east/west panes to make room for center + if (!state.initialized && o.minWidth > newCenter.width) { + var + reqPx = o.minWidth - s.outerWidth + , minE = options.east.minSize || 0 + , minW = options.west.minSize || 0 + , sizeE = state.east.size + , sizeW = state.west.size + , newE = sizeE + , newW = sizeW + ; + if (reqPx > 0 && state.east.isVisible && sizeE > minE) { + newE = max( sizeE-minE, sizeE-reqPx ); + reqPx -= sizeE-newE; + } + if (reqPx > 0 && state.west.isVisible && sizeW > minW) { + newW = max( sizeW-minW, sizeW-reqPx ); + reqPx -= sizeW-newW; + } + // IF we found enough extra space, then resize the border panes as calculated + if (reqPx === 0) { + if (sizeE && sizeE != minE) + sizePane('east', newE, true, true, force); // true = skipCallback/noAnimation - initPanes will handle when done + if (sizeW && sizeW != minW) + sizePane('west', newW, true, true, force); // true = skipCallback/noAnimation + // now start over! + sizeMidPanes('center', skipCallback, force); + $P.css(visCSS); + return; // abort this loop + } + } + } + else { // for east and west, set only the height, which is same as center height + // set state.min/maxWidth/Height for makePaneFit() logic + if (s.isVisible && !s.noVerticalRoom) + $.extend(s, elDims($P), cssMinDims(pane)) + if (!force && !s.noVerticalRoom && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // east/west have same top, bottom & height as center + CSS.top = newCenter.top; + CSS.bottom = newCenter.bottom; + s.newSize = newCenter.height + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, newCenter.height); + s.maxHeight = CSS.height; + hasRoom = (s.maxHeight >= 0); // ALWAYS TRUE NOW + if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic + } + + if (hasRoom) { + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_start", pane); + + $P.css(CSS); // apply the CSS to pane + if (pane !== "center") + sizeHandles(pane); // also update resizer length + if (s.noRoom && !s.isClosed && !s.isHidden) + makePaneFit(pane); // will re-open/show auto-closed/hidden pane + if (s.isVisible) { + $.extend(s, elDims($P)); // update pane dimensions + if (state.initialized) sizeContent(pane); // also resize the contents, if exists + } + } + else if (!s.noRoom && s.isVisible) // no room for pane + makePaneFit(pane); // will hide or close pane + + // reset visibility, if necessary + $P.css(visCSS); + + delete s.newSize; + delete s.newWidth; + delete s.newHeight; + + if (!s.isVisible) + return true; // DONE - next pane + + /* + * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes + * Normally these panes have only 'left' & 'right' positions so pane auto-sizes + * ALSO required when pane is an IFRAME because will NOT default to 'full width' + * TODO: Can I use width:100% for a north/south iframe? + * TODO: Sounds like a job for $P.outerWidth( sC.innerWidth ) SETTER METHOD + */ + if (pane === "center") { // finished processing midPanes + var fix = browser.isIE6 || !browser.boxModel; + if ($Ps.north && (fix || state.north.tagName=="IFRAME")) + $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); + if ($Ps.south && (fix || state.south.tagName=="IFRAME")) + $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); + } + + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_end", pane); + }); + } + + + /** + * @see window.onresize(), callbacks or custom code + * @param {(Object|boolean)=} evt_or_refresh If 'true', then also reset pane-positioning + */ +, resizeAll = function (evt_or_refresh) { + var oldW = sC.innerWidth + , oldH = sC.innerHeight + ; + // stopPropagation if called by trigger("layoutdestroy") - use evtPane utility + evtPane(evt_or_refresh); + + // cannot size layout when 'container' is hidden or collapsed + if (!$N.is(":visible")) return; + + if (!state.initialized) { + _initLayoutElements(); + return; // no need to resize since we just initialized! + } + + if (evt_or_refresh === true && $.isPlainObject(options.outset)) { + // update container CSS in case outset option has changed + $N.css( options.outset ); + } + // UPDATE container dimensions + $.extend(sC, elDims( $N, options.inset )); + if (!sC.outerHeight) return; + + // if 'true' passed, refresh pane & handle positioning too + if (evt_or_refresh === true) { + setPanePosition(); + } + + // onresizeall_start will CANCEL resizing if returns false + // state.container has already been set, so user can access this info for calcuations + if (false === _runCallbacks("onresizeall_start")) return false; + + var // see if container is now 'smaller' than before + shrunkH = (sC.innerHeight < oldH) + , shrunkW = (sC.innerWidth < oldW) + , $P, o, s + ; + // NOTE special order for sizing: S-N-E-W + $.each(["south","north","east","west"], function (i, pane) { + if (!$Ps[pane]) return; // no pane - SKIP + o = options[pane]; + s = state[pane]; + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else { + setSizeLimits(pane); + makePaneFit(pane, false, true, true); // true=skipCallback/forceResize + } + }); + + sizeMidPanes("", true, true); // true=skipCallback/forceResize + sizeHandles(); // reposition the toggler elements + + // trigger all individual pane callbacks AFTER layout has finished resizing + $.each(_c.allPanes, function (i, pane) { + $P = $Ps[pane]; + if (!$P) return; // SKIP + if (state[pane].isVisible) // undefined for non-existent panes + _runCallbacks("onresize_end", pane); // callback - if exists + }); + + _runCallbacks("onresizeall_end"); + //_triggerLayoutEvent(pane, 'resizeall'); + } + + /** + * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll + * + * @param {(string|Object)} evt_or_pane The pane just resized or opened + */ +, resizeChildren = function (evt_or_pane, skipRefresh) { + var pane = evtPane.call(this, evt_or_pane); + + if (!options[pane].resizeChildren) return; + + // ensure the pane-children are up-to-date + if (!skipRefresh) refreshChildren( pane ); + var pC = children[pane]; + if ($.isPlainObject( pC )) { + // resize one or more children + $.each( pC, function (key, child) { + if (!child.destroyed) child.resizeAll(); + }); + } + } + + /** + * IF pane has a content-div, then resize all elements inside pane to fit pane-height + * + * @param {(string|Object)} evt_or_panes The pane(s) being resized + * @param {boolean=} [remeasure=false] Should the content (header/footer) be remeasured? + */ +, sizeContent = function (evt_or_panes, remeasure) { + if (!isInitialized()) return; + + var panes = evtPane.call(this, evt_or_panes); + panes = panes ? panes.split(",") : _c.allPanes; + + $.each(panes, function (idx, pane) { + var + $P = $Ps[pane] + , $C = $Cs[pane] + , o = options[pane] + , s = state[pane] + , m = s.content // m = measurements + ; + if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip + + // if content-element was REMOVED, update OR remove the pointer + if (!$C.length) { + initContent(pane, false); // false = do NOT sizeContent() - already there! + if (!$C) return; // no replacement element found - pointer have been removed + } + + // onsizecontent_start will CANCEL resizing if returns false + if (false === _runCallbacks("onsizecontent_start", pane)) return; + + // skip re-measuring offsets if live-resizing + if ((!s.isMoving && !s.isResizing) || o.liveContentResizing || remeasure || m.top == undefined) { + _measure(); + // if any footers are below pane-bottom, they may not measure correctly, + // so allow pane overflow and re-measure + if (m.hiddenFooters > 0 && $P.css("overflow") === "hidden") { + $P.css("overflow", "visible"); + _measure(); // remeasure while overflowing + $P.css("overflow", "hidden"); + } + } + // NOTE: spaceAbove/Below *includes* the pane paddingTop/Bottom, but not pane.borders + var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); + + if (!$C.is(":visible") || m.height != newH) { + // size the Content element to fit new pane-size - will autoHide if not enough room + setOuterHeight($C, newH, true); // true=autoHide + m.height = newH; // save new height + }; + + if (state.initialized) + _runCallbacks("onsizecontent_end", pane); + + function _below ($E) { + return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); + }; + + function _measure () { + var + ignore = options[pane].contentIgnoreSelector + , $Fs = $C.nextAll().not(".ui-layout-mask").not(ignore || ":lt(0)") // not :lt(0) = ALL + , $Fs_vis = $Fs.filter(':visible') + , $F = $Fs_vis.filter(':last') + ; + m = { + top: $C[0].offsetTop + , height: $C.outerHeight() + , numFooters: $Fs.length + , hiddenFooters: $Fs.length - $Fs_vis.length + , spaceBelow: 0 // correct if no content footer ($E) + } + m.spaceAbove = m.top; // just for state - not used in calc + m.bottom = m.top + m.height; + if ($F.length) + //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) + m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); + else // no footer - check marginBottom on Content element itself + m.spaceBelow = _below($C); + }; + }); + } + + + /** + * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary + * + * @see initHandles(), open(), close(), resizeAll() + * @param {(string|Object)=} evt_or_panes The pane(s) being resized + */ +, sizeHandles = function (evt_or_panes) { + var panes = evtPane.call(this, evt_or_panes) + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (i, pane) { + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , $TC + ; + if (!$P || !$R) return; + + var + dir = _c[pane].dir + , _state = (s.isClosed ? "_closed" : "_open") + , spacing = o["spacing"+ _state] + , togAlign = o["togglerAlign"+ _state] + , togLen = o["togglerLength"+ _state] + , paneLen + , left + , offset + , CSS = {} + ; + + if (spacing === 0) { + $R.hide(); + return; + } + else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason + $R.show(); // in case was previously hidden + + // Resizer Bar is ALWAYS same width/height of pane it is attached to + if (dir === "horz") { // north/south + //paneLen = $P.outerWidth(); // s.outerWidth || + paneLen = sC.innerWidth; // handle offscreen-panes + s.resizerLength = paneLen; + left = $.layout.cssNum($P, "left") + $R.css({ + width: cssW($R, paneLen) // account for borders & padding + , height: cssH($R, spacing) // ditto + , left: left > -9999 ? left : sC.inset.left // handle offscreen-panes + }); + } + else { // east/west + paneLen = $P.outerHeight(); // s.outerHeight || + s.resizerLength = paneLen; + $R.css({ + height: cssH($R, paneLen) // account for borders & padding + , width: cssW($R, spacing) // ditto + , top: sC.inset.top + getPaneSize("north", true) // TODO: what if no North pane? + //, top: $.layout.cssNum($Ps["center"], "top") + }); + } + + // remove hover classes + removeHover( o, $R ); + + if ($T) { + if (togLen === 0 || (s.isSliding && o.hideTogglerOnSlide)) { + $T.hide(); // always HIDE the toggler when 'sliding' + return; + } + else + $T.show(); // in case was previously hidden + + if (!(togLen > 0) || togLen === "100%" || togLen > paneLen) { + togLen = paneLen; + offset = 0; + } + else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed + if (isStr(togAlign)) { + switch (togAlign) { + case "top": + case "left": offset = 0; + break; + case "bottom": + case "right": offset = paneLen - togLen; + break; + case "middle": + case "center": + default: offset = round((paneLen - togLen) / 2); // 'default' catches typos + } + } + else { // togAlign = number + var x = parseInt(togAlign, 10); // + if (togAlign >= 0) offset = x; + else offset = paneLen - togLen + x; // NOTE: x is negative! + } + } + + if (dir === "horz") { // north/south + var width = cssW($T, togLen); + $T.css({ + width: width // account for borders & padding + , height: cssH($T, spacing) // ditto + , left: offset // TODO: VERIFY that toggler positions correctly for ALL values + , top: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginLeft", round((width-$TC.outerWidth())/2)); // could be negative + }); + } + else { // east/west + var height = cssH($T, togLen); + $T.css({ + height: height // account for borders & padding + , width: cssW($T, spacing) // ditto + , top: offset // POSITION the toggler + , left: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginTop", round((height-$TC.outerHeight())/2)); // could be negative + }); + } + + // remove ALL hover classes + removeHover( 0, $T ); + } + + // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now + if (!state.initialized && (o.initHidden || s.isHidden)) { + $R.hide(); + if ($T) $T.hide(); + } + }); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableClosable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + , o = options[pane] + ; + if (!$T) return; + o.closable = true; + $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) + .css("visibility", "visible") + .css("cursor", "pointer") + .attr("title", state[pane].isClosed ? o.tips.Open : o.tips.Close) // may be blank + .show(); + } + /** + * @param {(string|Object)} evt_or_pane + * @param {boolean=} [hide=false] + */ +, disableClosable = function (evt_or_pane, hide) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + ; + if (!$T) return; + options[pane].closable = false; + // is closable is disable, then pane MUST be open! + if (state[pane].isClosed) open(pane, false, true); + $T .unbind("."+ sID) + .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues + .css("cursor", "default") + .attr("title", ""); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].slidable = true; + if (state[pane].isClosed) + bindStartSlidingEvents(pane, true); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R) return; + options[pane].slidable = false; + if (state[pane].isSliding) + close(pane, false, true); + else { + bindStartSlidingEvents(pane, false); + $R .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + , o = options[pane] + ; + if (!$R || !$R.data('draggable')) return; + o.resizable = true; + $R.draggable("enable"); + if (!state[pane].isClosed) + $R .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].resizable = false; + $R .draggable("disable") + .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + + + /** + * Move a pane from source-side (eg, west) to target-side (eg, east) + * If pane exists on target-side, move that to source-side, ie, 'swap' the panes + * + * @param {(string|Object)} evt_or_pane1 The pane/edge being swapped + * @param {string} pane2 ditto + */ +, swapPanes = function (evt_or_pane1, pane2) { + if (!isInitialized()) return; + var pane1 = evtPane.call(this, evt_or_pane1); + // change state.edge NOW so callbacks can know where pane is headed... + state[pane1].edge = pane2; + state[pane2].edge = pane1; + // run these even if NOT state.initialized + if (false === _runCallbacks("onswap_start", pane1) + || false === _runCallbacks("onswap_start", pane2) + ) { + state[pane1].edge = pane1; // reset + state[pane2].edge = pane2; + return; + } + + var + oPane1 = copy( pane1 ) + , oPane2 = copy( pane2 ) + , sizes = {} + ; + sizes[pane1] = oPane1 ? oPane1.state.size : 0; + sizes[pane2] = oPane2 ? oPane2.state.size : 0; + + // clear pointers & state + $Ps[pane1] = false; + $Ps[pane2] = false; + state[pane1] = {}; + state[pane2] = {}; + + // ALWAYS remove the resizer & toggler elements + if ($Ts[pane1]) $Ts[pane1].remove(); + if ($Ts[pane2]) $Ts[pane2].remove(); + if ($Rs[pane1]) $Rs[pane1].remove(); + if ($Rs[pane2]) $Rs[pane2].remove(); + $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; + + // transfer element pointers and data to NEW Layout keys + move( oPane1, pane2 ); + move( oPane2, pane1 ); + + // cleanup objects + oPane1 = oPane2 = sizes = null; + + // make panes 'visible' again + if ($Ps[pane1]) $Ps[pane1].css(_c.visible); + if ($Ps[pane2]) $Ps[pane2].css(_c.visible); + + // fix any size discrepancies caused by swap + resizeAll(); + + // run these even if NOT state.initialized + _runCallbacks("onswap_end", pane1); + _runCallbacks("onswap_end", pane2); + + return; + + function copy (n) { // n = pane + var + $P = $Ps[n] + , $C = $Cs[n] + ; + return !$P ? false : { + pane: n + , P: $P ? $P[0] : false + , C: $C ? $C[0] : false + , state: $.extend(true, {}, state[n]) + , options: $.extend(true, {}, options[n]) + } + }; + + function move (oPane, pane) { + if (!oPane) return; + var + P = oPane.P + , C = oPane.C + , oldPane = oPane.pane + , c = _c[pane] + // save pane-options that should be retained + , s = $.extend(true, {}, state[pane]) + , o = options[pane] + // RETAIN side-specific FX Settings - more below + , fx = { resizerCursor: o.resizerCursor } + , re, size, pos + ; + $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { + fx[k +"_open"] = o[k +"_open"]; + fx[k +"_close"] = o[k +"_close"]; + fx[k +"_size"] = o[k +"_size"]; + }); + + // update object pointers and attributes + $Ps[pane] = $(P) + .data({ + layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + }) + .css(_c.hidden) + .css(c.cssReq) + ; + $Cs[pane] = C ? $(C) : false; + + // set options and state + options[pane] = $.extend(true, {}, oPane.options, fx); + state[pane] = $.extend(true, {}, oPane.state); + + // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west + re = new RegExp(o.paneClass +"-"+ oldPane, "g"); + P.className = P.className.replace(re, o.paneClass +"-"+ pane); + + // ALWAYS regenerate the resizer & toggler elements + initHandles(pane); // create the required resizer & toggler + + // if moving to different orientation, then keep 'target' pane size + if (c.dir != _c[oldPane].dir) { + size = sizes[pane] || 0; + setSizeLimits(pane); // update pane-state + size = max(size, state[pane].minSize); + // use manualSizePane to disable autoResize - not useful after panes are swapped + manualSizePane(pane, size, true, true); // true/true = skipCallback/noAnimation + } + else // move the resizer here + $Rs[pane].css(c.side, sC.inset[c.side] + (state[pane].isVisible ? getPaneSize(pane) : 0)); + + + // ADD CLASSNAMES & SLIDE-BINDINGS + if (oPane.state.isVisible && !s.isVisible) + setAsOpen(pane, true); // true = skipCallback + else { + setAsClosed(pane); + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + // DESTROY the object + oPane = null; + }; + } + + + /** + * INTERNAL method to sync pin-buttons when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), setAsOpen(), setAsClosed() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns = function (pane, doPin) { + if ($.layout.plugins.buttons) + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(Instance, $(selector), pane, doPin); + }); + } + +; // END var DECLARATIONS + + /** + * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed + * + * @see document.keydown() + */ + function keyDown (evt) { + if (!evt) return true; + var code = evt.keyCode; + if (code < 33) return true; // ignore special keys: ENTER, TAB, etc + + var + PANE = { + 38: "north" // Up Cursor - $.ui.keyCode.UP + , 40: "south" // Down Cursor - $.ui.keyCode.DOWN + , 37: "west" // Left Cursor - $.ui.keyCode.LEFT + , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT + } + , ALT = evt.altKey // no worky! + , SHIFT = evt.shiftKey + , CTRL = evt.ctrlKey + , CURSOR = (CTRL && code >= 37 && code <= 40) + , o, k, m, pane + ; + + if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey + pane = PANE[code]; + else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey + $.each(_c.borderPanes, function (i, p) { // loop each pane to check its hotkey + o = options[p]; + k = o.customHotkey; + m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" + if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches + if (k && code === (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches + pane = p; + return false; // BREAK + } + } + }); + + // validate pane + if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) + return true; + + toggle(pane); + + evt.stopPropagation(); + evt.returnValue = false; // CANCEL key + return false; + }; + + +/* + * ###################################### + * UTILITY METHODS + * called externally or by initButtons + * ###################################### + */ + + /** + * Change/reset a pane overflow setting & zIndex to allow popups/drop-downs to work + * + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function allowOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + ; + + // if pane is already raised, then reset it before doing it again! + // this would happen if allowOverflow is attached to BOTH the pane and an element + if (s.cssSaved) + resetOverflow(pane); // reset previous CSS before continuing + + // if pane is raised by sliding or resizing, or its closed, then abort + if (s.isSliding || s.isResizing || s.isClosed) { + s.cssSaved = false; + return; + } + + var + newCSS = { zIndex: (options.zIndexes.resizer_normal + 1) } + , curCSS = {} + , of = $P.css("overflow") + , ofX = $P.css("overflowX") + , ofY = $P.css("overflowY") + ; + // determine which, if any, overflow settings need to be changed + if (of != "visible") { + curCSS.overflow = of; + newCSS.overflow = "visible"; + } + if (ofX && !ofX.match(/(visible|auto)/)) { + curCSS.overflowX = ofX; + newCSS.overflowX = "visible"; + } + if (ofY && !ofY.match(/(visible|auto)/)) { + curCSS.overflowY = ofX; + newCSS.overflowY = "visible"; + } + + // save the current overflow settings - even if blank! + s.cssSaved = curCSS; + + // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' + $P.css( newCSS ); + + // make sure the zIndex of all other panes is normal + $.each(_c.allPanes, function(i, p) { + if (p != pane) resetOverflow(p); + }); + + }; + /** + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function resetOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + , CSS = s.cssSaved || {} + ; + // reset the zIndex + if (!s.isSliding && !s.isResizing) + $P.css("zIndex", options.zIndexes.pane_normal); + + // reset Overflow - if necessary + $P.css( CSS ); + + // clear var + s.cssSaved = false; + }; + +/* + * ##################### + * CREATE/RETURN LAYOUT + * ##################### + */ + + // validate that container exists + var $N = $(this).eq(0); // FIRST matching Container element + if (!$N.length) { + return _log( options.errors.containerMissing ); + }; + + // Users retrieve Instance of a layout with: $N.layout() OR $N.data("layout") + // return the Instance-pointer if layout has already been initialized + if ($N.data("layoutContainer") && $N.data("layout")) + return $N.data("layout"); // cached pointer + + // init global vars + var + $Ps = {} // Panes x5 - set in initPanes() + , $Cs = {} // Content x5 - set in initPanes() + , $Rs = {} // Resizers x4 - set in initHandles() + , $Ts = {} // Togglers x4 - set in initHandles() + , $Ms = $([]) // Masks - up to 2 masks per pane (IFRAME + DIV) + // aliases for code brevity + , sC = state.container // alias for easy access to 'container dimensions' + , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" + ; + + // create Instance object to expose data & option Properties, and primary action Methods + var Instance = { + // layout data + options: options // property - options hash + , state: state // property - dimensions hash + // object pointers + , container: $N // property - object pointers for layout container + , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center + , contents: $Cs // property - object pointers for ALL Content: contents.north, contents.center + , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north + , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north + // border-pane open/close + , hide: hide // method - ditto + , show: show // method - ditto + , toggle: toggle // method - pass a 'pane' ("north", "west", etc) + , open: open // method - ditto + , close: close // method - ditto + , slideOpen: slideOpen // method - ditto + , slideClose: slideClose // method - ditto + , slideToggle: slideToggle // method - ditto + // pane actions + , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data + , _sizePane: sizePane // method -intended for user by plugins only! + , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' + , sizeContent: sizeContent // method - pass a 'pane' + , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them + , showMasks: showMasks // method - pass a 'pane' OR list of panes - default = all panes with mask option set + , hideMasks: hideMasks // method - ditto' + // pane element methods + , initContent: initContent // method - ditto + , addPane: addPane // method - pass a 'pane' + , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem + , createChildren: createChildren // method - pass a 'pane' and (optional) layout-options (OVERRIDES options[pane].children + , refreshChildren: refreshChildren // method - pass a 'pane' and a layout-instance + // special pane option setting + , enableClosable: enableClosable // method - pass a 'pane' + , disableClosable: disableClosable // method - ditto + , enableSlidable: enableSlidable // method - ditto + , disableSlidable: disableSlidable // method - ditto + , enableResizable: enableResizable // method - ditto + , disableResizable: disableResizable// method - ditto + // utility methods for panes + , allowOverflow: allowOverflow // utility - pass calling element (this) + , resetOverflow: resetOverflow // utility - ditto + // layout control + , destroy: destroy // method - no parameters + , initPanes: isInitialized // method - no parameters + , resizeAll: resizeAll // method - no parameters + // callback triggering + , runCallbacks: _runCallbacks // method - pass evtName & pane (if a pane-event), eg: trigger("onopen", "west") + // alias collections of options, state and children - created in addPane and extended elsewhere + , hasParentLayout: false // set by initContainer() + , children: children // pointers to child-layouts, eg: Instance.children.west.layoutName + , north: false // alias group: { name: pane, pane: $Ps[pane], options: options[pane], state: state[pane], children: children[pane] } + , south: false // ditto + , west: false // ditto + , east: false // ditto + , center: false // ditto + }; + + // create the border layout NOW + if (_create() === 'cancel') // onload_start callback returned false to CANCEL layout creation + return null; + else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later + return Instance; // return the Instance object + +} + + +})( jQuery ); + + + + +/** + * jquery.layout.state 1.2 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * + * Copyright (c) 2014 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.4.0 or higher + * @requires: $.ui.cookie (above) + * + * @see: http://groups.google.com/group/jquery-ui-layout + */ +;(function ($) { + +if (!$.layout) return; + + +/** + * UI COOKIE UTILITY + * + * A $.cookie OR $.ui.cookie namespace *should be standard*, but until then... + * This creates $.ui.cookie so Layout does not need the cookie.jquery.js plugin + * NOTE: This utility is REQUIRED by the layout.state plugin + * + * Cookie methods in Layout are created as part of State Management + */ +if (!$.ui) $.ui = {}; +$.ui.cookie = { + + // cookieEnabled is not in DOM specs, but DOES works in all browsers,including IE6 + acceptsCookies: !!navigator.cookieEnabled + +, read: function (name) { + var + c = document.cookie + , cs = c ? c.split(';') : [] + , pair, data, i + ; + for (i=0; pair=cs[i]; i++) { + data = $.trim(pair).split('='); // name=value => [ name, value ] + if (data[0] == name) // found the layout cookie + return decodeURIComponent(data[1]); + } + return null; + } + +, write: function (name, val, cookieOpts) { + var params = "" + , date = "" + , clear = false + , o = cookieOpts || {} + , x = o.expires || null + , t = $.type(x) + ; + if (t === "date") + date = x; + else if (t === "string" && x > 0) { + x = parseInt(x,10); + t = "number"; + } + if (t === "number") { + date = new Date(); + if (x > 0) + date.setDate(date.getDate() + x); + else { + date.setFullYear(1970); + clear = true; + } + } + if (date) params += ";expires="+ date.toUTCString(); + if (o.path) params += ";path="+ o.path; + if (o.domain) params += ";domain="+ o.domain; + if (o.secure) params += ";secure"; + document.cookie = name +"="+ (clear ? "" : encodeURIComponent( val )) + params; // write or clear cookie + } + +, clear: function (name) { + $.ui.cookie.write(name, "", {expires: -1}); + } + +}; +// if cookie.jquery.js is not loaded, create an alias to replicate it +// this may be useful to other plugins or code dependent on that plugin +if (!$.cookie) $.cookie = function (k, v, o) { + var C = $.ui.cookie; + if (v === null) + C.clear(k); + else if (v === undefined) + return C.read(k); + else + C.write(k, v, o); +}; + + + +/** + * State-management options stored in options.stateManagement, which includes a .cookie hash + * Default options saves ALL KEYS for ALL PANES, ie: pane.size, pane.isClosed, pane.isHidden + * + * // STATE/COOKIE OPTIONS + * @example $(el).layout({ + stateManagement: { + enabled: true + , stateKeys: "east.size,west.size,east.isClosed,west.isClosed" + , cookie: { name: "appLayout", path: "/" } + } + }) + * @example $(el).layout({ stateManagement__enabled: true }) // enable auto-state-management using cookies + * @example $(el).layout({ stateManagement__cookie: { name: "appLayout", path: "/" } }) + * @example $(el).layout({ stateManagement__cookie__name: "appLayout", stateManagement__cookie__path: "/" }) + * + * // STATE/COOKIE METHODS + * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); + * @example myLayout.loadCookie(); + * @example myLayout.deleteCookie(); + * @example var JSON = myLayout.readState(); // CURRENT Layout State + * @example var JSON = myLayout.readCookie(); // SAVED Layout State (from cookie) + * @example var JSON = myLayout.state.stateData; // LAST LOADED Layout State (cookie saved in layout.state hash) + * + * CUSTOM STATE-MANAGEMENT (eg, saved in a database) + * @example var JSON = myLayout.readState( "west.isClosed,north.size,south.isHidden" ); + * @example myLayout.loadState( JSON ); + */ + +// tell Layout that the state plugin is available +$.layout.plugins.stateManagement = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.stateManagement = { + enabled: false // true = enable state-management, even if not using cookies +, autoSave: true // Save a state-cookie when page exits? +, autoLoad: true // Load the state-cookie when Layout inits? +, animateLoad: true // animate panes when loading state into an active layout +, includeChildren: true // recurse into child layouts to include their state as well + // List state-data to save - must be pane-specific +, stateKeys: "north.size,south.size,east.size,west.size,"+ + "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ + "north.isHidden,south.isHidden,east.isHidden,west.isHidden" +, cookie: { + name: "" // If not specified, will use Layout.name, else just "Layout" + , domain: "" // blank = current domain + , path: "" // blank = current page, "/" = entire website + , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' + , secure: false + } +}; + +// Set stateManagement as a 'layout-option', NOT a 'pane-option' +$.layout.optionsMap.layout.push("stateManagement"); +// Update config so layout does not move options into the pane-default branch (panes) +$.layout.config.optionRootKeys.push("stateManagement"); + +/* + * State Management methods + */ +$.layout.state = { + + /** + * Get the current layout state and save it to a cookie + * + * myLayout.saveCookie( keys, cookieOpts ) + * + * @param {Object} inst + * @param {(string|Array)=} keys + * @param {Object=} cookieOpts + */ + saveCookie: function (inst, keys, cookieOpts) { + var o = inst.options + , sm = o.stateManagement + , oC = $.extend(true, {}, sm.cookie, cookieOpts || null) + , data = inst.state.stateData = inst.readState( keys || sm.stateKeys ) // read current panes-state + ; + $.ui.cookie.write( oC.name || o.name || "Layout", $.layout.state.encodeJSON(data), oC ); + return $.extend(true, {}, data); // return COPY of state.stateData data + } + + /** + * Remove the state cookie + * + * @param {Object} inst + */ +, deleteCookie: function (inst) { + var o = inst.options; + $.ui.cookie.clear( o.stateManagement.cookie.name || o.name || "Layout" ); + } + + /** + * Read & return data from the cookie - as JSON + * + * @param {Object} inst + */ +, readCookie: function (inst) { + var o = inst.options; + var c = $.ui.cookie.read( o.stateManagement.cookie.name || o.name || "Layout" ); + // convert cookie string back to a hash and return it + return c ? $.layout.state.decodeJSON(c) : {}; + } + + /** + * Get data from the cookie and USE IT to loadState + * + * @param {Object} inst + */ +, loadCookie: function (inst) { + var c = $.layout.state.readCookie(inst); // READ the cookie + if (c && !$.isEmptyObject( c )) { + inst.state.stateData = $.extend(true, {}, c); // SET state.stateData + inst.loadState(c); // LOAD the retrieved state + } + return c; + } + + /** + * Update layout options from the cookie, if one exists + * + * @param {Object} inst + * @param {Object=} stateData + * @param {boolean=} animate + */ +, loadState: function (inst, data, opts) { + if (!$.isPlainObject( data ) || $.isEmptyObject( data )) return; + + // normalize data & cache in the state object + data = inst.state.stateData = $.layout.transformData( data ); // panes = default subkey + + // add missing/default state-restore options + var smo = inst.options.stateManagement; + opts = $.extend({ + animateLoad: false //smo.animateLoad + , includeChildren: smo.includeChildren + }, opts ); + + if (!inst.state.initialized) { + /* + * layout NOT initialized, so just update its options + */ + // MUST remove pane.children keys before applying to options + // use a copy so we don't remove keys from original data + var o = $.extend(true, {}, data); + //delete o.center; // center has no state-data - only children + $.each($.layout.config.allPanes, function (idx, pane) { + if (o[pane]) delete o[pane].children; + }); + // update CURRENT layout-options with saved state data + $.extend(true, inst.options, o); + } + else { + /* + * layout already initialized, so modify layout's configuration + */ + var noAnimate = !opts.animateLoad + , o, c, h, state, open + ; + $.each($.layout.config.borderPanes, function (idx, pane) { + o = data[ pane ]; + if (!$.isPlainObject( o )) return; // no key, skip pane + + s = o.size; + c = o.initClosed; + h = o.initHidden; + ar = o.autoResize + state = inst.state[pane]; + open = state.isVisible; + + // reset autoResize + if (ar) + state.autoResize = ar; + // resize BEFORE opening + if (!open) + inst._sizePane(pane, s, false, false, false); // false=skipCallback/noAnimation/forceResize + // open/close as necessary - DO NOT CHANGE THIS ORDER! + if (h === true) inst.hide(pane, noAnimate); + else if (c === true) inst.close(pane, false, noAnimate); + else if (c === false) inst.open (pane, false, noAnimate); + else if (h === false) inst.show (pane, false, noAnimate); + // resize AFTER any other actions + if (open) + inst._sizePane(pane, s, false, false, noAnimate); // animate resize if option passed + }); + + /* + * RECURSE INTO CHILD-LAYOUTS + */ + if (opts.includeChildren) { + var paneStateChildren, childState; + $.each(inst.children, function (pane, paneChildren) { + paneStateChildren = data[pane] ? data[pane].children : 0; + if (paneStateChildren && paneChildren) { + $.each(paneChildren, function (stateKey, child) { + childState = paneStateChildren[stateKey]; + if (child && childState) + child.loadState( childState ); + }); + } + }); + } + } + } + + /** + * Get the *current layout state* and return it as a hash + * + * @param {Object=} inst // Layout instance to get state for + * @param {object=} [opts] // State-Managements override options + */ +, readState: function (inst, opts) { + // backward compatility + if ($.type(opts) === 'string') opts = { keys: opts }; + if (!opts) opts = {}; + var sm = inst.options.stateManagement + , ic = opts.includeChildren + , recurse = ic !== undefined ? ic : sm.includeChildren + , keys = opts.stateKeys || sm.stateKeys + , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } + , state = inst.state + , panes = $.layout.config.allPanes + , data = {} + , pair, pane, key, val + , ps, pC, child, array, count, branch + ; + if ($.isArray(keys)) keys = keys.join(","); + // convert keys to an array and change delimiters from '__' to '.' + keys = keys.replace(/__/g, ".").split(','); + // loop keys and create a data hash + for (var i=0, n=keys.length; i < n; i++) { + pair = keys[i].split("."); + pane = pair[0]; + key = pair[1]; + if ($.inArray(pane, panes) < 0) continue; // bad pane! + val = state[ pane ][ key ]; + if (val == undefined) continue; + if (key=="isClosed" && state[pane]["isSliding"]) + val = true; // if sliding, then *really* isClosed + ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; + } + + // recurse into the child-layouts for each pane + if (recurse) { + $.each(panes, function (idx, pane) { + pC = inst.children[pane]; + ps = state.stateData[pane]; + if ($.isPlainObject( pC ) && !$.isEmptyObject( pC )) { + // ensure a key exists for this 'pane', eg: branch = data.center + branch = data[pane] || (data[pane] = {}); + if (!branch.children) branch.children = {}; + $.each( pC, function (key, child) { + // ONLY read state from an initialize layout + if ( child.state.initialized ) + branch.children[ key ] = $.layout.state.readState( child ); + // if we have PREVIOUS (onLoad) state for this child-layout, KEEP IT! + else if ( ps && ps.children && ps.children[ key ] ) { + branch.children[ key ] = $.extend(true, {}, ps.children[ key ] ); + } + }); + } + }); + } + + return data; + } + + /** + * Stringify a JSON hash so can save in a cookie or db-field + */ +, encodeJSON: function (json) { + var local = window.JSON || {}; + return (local.stringify || stringify)(json); + + function stringify (h) { + var D=[], i=0, k, v, t // k = key, v = value + , a = $.isArray(h) + ; + for (k in h) { + v = h[k]; + t = typeof v; + if (t == 'string') // STRING - add quotes + v = '"'+ v +'"'; + else if (t == 'object') // SUB-KEY - recurse into it + v = parse(v); + D[i++] = (!a ? '"'+ k +'":' : '') + v; + } + return (a ? '[' : '{') + D.join(',') + (a ? ']' : '}'); + }; + } + + /** + * Convert stringified JSON back to a hash object + * @see $.parseJSON(), adding in jQuery 1.4.1 + */ +, decodeJSON: function (str) { + try { return $.parseJSON ? $.parseJSON(str) : window["eval"]("("+ str +")") || {}; } + catch (e) { return {}; } + } + + +, _create: function (inst) { + var s = $.layout.state + , o = inst.options + , sm = o.stateManagement + ; + // ADD State-Management plugin methods to inst + $.extend( inst, { + // readCookie - update options from cookie - returns hash of cookie data + readCookie: function () { return s.readCookie(inst); } + // deleteCookie + , deleteCookie: function () { s.deleteCookie(inst); } + // saveCookie - optionally pass keys-list and cookie-options (hash) + , saveCookie: function (keys, cookieOpts) { return s.saveCookie(inst, keys, cookieOpts); } + // loadCookie - readCookie and use to loadState() - returns hash of cookie data + , loadCookie: function () { return s.loadCookie(inst); } + // loadState - pass a hash of state to use to update options + , loadState: function (stateData, opts) { s.loadState(inst, stateData, opts); } + // readState - returns hash of current layout-state + , readState: function (keys) { return s.readState(inst, keys); } + // add JSON utility methods too... + , encodeJSON: s.encodeJSON + , decodeJSON: s.decodeJSON + }); + + // init state.stateData key, even if plugin is initially disabled + inst.state.stateData = {}; + + // autoLoad MUST BE one of: data-array, data-hash, callback-function, or TRUE + if ( !sm.autoLoad ) return; + + // When state-data exists in the autoLoad key USE IT, + // even if stateManagement.enabled == false + if ($.isPlainObject( sm.autoLoad )) { + if (!$.isEmptyObject( sm.autoLoad )) { + inst.loadState( sm.autoLoad ); + } + } + else if ( sm.enabled ) { + // update the options from cookie or callback + // if options is a function, call it to get stateData + if ($.isFunction( sm.autoLoad )) { + var d = {}; + try { + d = sm.autoLoad( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + if (d && $.isPlainObject( d ) && !$.isEmptyObject( d )) + inst.loadState(d); + } + else // any other truthy value will trigger loadCookie + inst.loadCookie(); + } + } + +, _unload: function (inst) { + var sm = inst.options.stateManagement; + if (sm.enabled && sm.autoSave) { + // if options is a function, call it to save the stateData + if ($.isFunction( sm.autoSave )) { + try { + sm.autoSave( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + } + else // any truthy value will trigger saveCookie + inst.saveCookie(); + } + } + +}; + +// add state initialization method to Layout's onCreate array of functions +$.layout.onCreate.push( $.layout.state._create ); +$.layout.onUnload.push( $.layout.state._unload ); + +})( jQuery ); + + + +/** + * @preserve jquery.layout.buttons 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2011 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * Docs: [ to come ] + * Tips: [ to come ] + */ +;(function ($) { + +if (!$.layout) return; + + +// tell Layout that the state plugin is available +$.layout.plugins.buttons = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.autoBindCustomButtons = false; +// Set stateManagement as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("autoBindCustomButtons"); + +var lang = $.layout.language; + +/* + * Button methods + */ +$.layout.buttons = { + // set data used by multiple methods below + config: { + borderPanes: "north,south,west,east" + } + + /** + * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons + * + * @see _create() + */ +, init: function (inst) { + var pre = "ui-layout-button-" + , layout = inst.options.name || "" + , name; + $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { + $.each($.layout.buttons.config.borderPanes.split(","), function (ii, pane) { + $("."+pre+action+"-"+pane).each(function(){ + // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' + name = $(this).data("layoutName") || $(this).attr("layoutName"); + if (name == undefined || name === layout) + inst.bindButton(this, action, pane); + }); + }); + }); + } + + /** + * Helper function to validate params received by addButton utilities + * + * Two classes are added to the element, based on the buttonClass... + * The type of button is appended to create the 2nd className: + * - ui-layout-button-pin + * - ui-layout-pane-button-toggle + * - ui-layout-pane-button-open + * - ui-layout-pane-button-close + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null + */ +, get: function (inst, selector, pane, action) { + var $E = $(selector) + , o = inst.options + , err = o.showErrorMessages + ; + if (!$E.length) { // element not found + if (err) alert(lang.errButton + lang.selector +": "+ selector); + } + else if ($.layout.buttons.config.borderPanes.indexOf(pane) === -1) { // invalid 'pane' sepecified + if (err) alert(lang.errButton + lang.pane +": "+ pane); + $E = $(""); // NO BUTTON + } + else { // VALID + var btn = o[pane].buttonClass +"-"+ action; + $E .addClass( btn +" "+ btn +"-"+ pane ) + .data("layoutName", o.name); // add layout identifier - even if blank! + } + return $E; + } + + + /** + * NEW syntax for binding layout-buttons - will eventually replace addToggle, addOpen, etc. + * + * @param {(string|!Object)} sel jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} action + * @param {string} pane + */ +, bind: function (inst, sel, action, pane) { + var _ = $.layout.buttons; + switch (action.toLowerCase()) { + case "toggle": _.addToggle (inst, sel, pane); break; + case "open": _.addOpen (inst, sel, pane); break; + case "close": _.addClose (inst, sel, pane); break; + case "pin": _.addPin (inst, sel, pane); break; + case "toggle-slide": _.addToggle (inst, sel, pane, true); break; + case "open-slide": _.addOpen (inst, sel, pane, true); break; + } + return inst; + } + + /** + * Add a custom Toggler button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addToggle: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "toggle") + .click(function(evt){ + inst.toggle(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Open button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addOpen: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "open") + .attr("title", lang.Open) + .click(function (evt) { + inst.open(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Close button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + */ +, addClose: function (inst, selector, pane) { + $.layout.buttons.get(inst, selector, pane, "close") + .attr("title", lang.Close) + .click(function (evt) { + inst.close(pane); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Pin button for a pane + * + * Four classes are added to the element, based on the paneClass for the associated pane... + * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: + * - ui-layout-pane-pin + * - ui-layout-pane-west-pin + * - ui-layout-pane-pin-up + * - ui-layout-pane-west-pin-up + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. + */ +, addPin: function (inst, selector, pane) { + var $E = $.layout.buttons.get(inst, selector, pane, "pin"); + if ($E.length) { + var s = inst.state[pane]; + $E.click(function (evt) { + $.layout.buttons.setPinState(inst, $(this), pane, (s.isSliding || s.isClosed)); + if (s.isSliding || s.isClosed) inst.open( pane ); // change from sliding to open + else inst.close( pane ); // slide-closed + evt.stopPropagation(); + }); + // add up/down pin attributes and classes + $.layout.buttons.setPinState(inst, $E, pane, (!s.isClosed && !s.isSliding)); + // add this pin to the pane data so we can 'sync it' automatically + // PANE.pins key is an array so we can store multiple pins for each pane + s.pins.push( selector ); // just save the selector string + } + return inst; + } + + /** + * Change the class of the pin button to make it look 'up' or 'down' + * + * @see addPin(), syncPins() + * @param {Array.} $Pin The pin-span element in a jQuery wrapper + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin true = set the pin 'down', false = set it 'up' + */ +, setPinState: function (inst, $Pin, pane, doPin) { + var updown = $Pin.attr("pin"); + if (updown && doPin === (updown=="down")) return; // already in correct state + var + pin = inst.options[pane].buttonClass +"-pin" + , side = pin +"-"+ pane + , UP = pin +"-up "+ side +"-up" + , DN = pin +"-down "+side +"-down" + ; + $Pin + .attr("pin", doPin ? "down" : "up") // logic + .attr("title", doPin ? lang.Unpin : lang.Pin) + .removeClass( doPin ? UP : DN ) + .addClass( doPin ? DN : UP ) + ; + } + + /** + * INTERNAL function to sync 'pin buttons' when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), close() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns: function (inst, pane, doPin) { + // REAL METHOD IS _INSIDE_ LAYOUT - THIS IS HERE JUST FOR REFERENCE + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(inst, $(selector), pane, doPin); + }); + } + + +, _load: function (inst) { + // ADD Button methods to Layout Instance + $.extend( inst, { + bindButton: function (selector, action, pane) { return $.layout.buttons.bind(inst, selector, action, pane); } + // DEPRECATED METHODS... + , addToggleBtn: function (selector, pane, slide) { return $.layout.buttons.addToggle(inst, selector, pane, slide); } + , addOpenBtn: function (selector, pane, slide) { return $.layout.buttons.addOpen(inst, selector, pane, slide); } + , addCloseBtn: function (selector, pane) { return $.layout.buttons.addClose(inst, selector, pane); } + , addPinBtn: function (selector, pane) { return $.layout.buttons.addPin(inst, selector, pane); } + }); + + // init state array to hold pin-buttons + for (var i=0; i<4; i++) { + var pane = $.layout.buttons.config.borderPanes[i]; + inst.state[pane].pins = []; + } + + // auto-init buttons onLoad if option is enabled + if ( inst.options.autoBindCustomButtons ) + $.layout.buttons.init(inst); + } + +, _unload: function (inst) { + // TODO: unbind all buttons??? + } + +}; + +// add initialization method to Layout's onLoad array of functions +$.layout.onLoad.push( $.layout.buttons._load ); +//$.layout.onUnload.push( $.layout.buttons._unload ); + +})( jQuery ); + + + + +/** + * jquery.layout.browserZoom 1.0 + * $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $ + * + * Copyright (c) 2012 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.3.0.rc30.1 or higher + * + * @see: http://groups.google.com/group/jquery-ui-layout + * + * TODO: Extend logic to handle other problematic zooming in browsers + * TODO: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event + */ +(function ($) { + +// tell Layout that the plugin is available +$.layout.plugins.browserZoom = true; + +$.layout.defaults.browserZoomCheckInterval = 1000; +$.layout.optionsMap.layout.push("browserZoomCheckInterval"); + +/* + * browserZoom methods + */ +$.layout.browserZoom = { + + _init: function (inst) { + // abort if browser does not need this check + if ($.layout.browserZoom.ratio() !== false) + $.layout.browserZoom._setTimer(inst); + } + +, _setTimer: function (inst) { + // abort if layout destroyed or browser does not need this check + if (inst.destroyed) return; + var o = inst.options + , s = inst.state + // don't need check if inst has parentLayout, but check occassionally in case parent destroyed! + // MINIMUM 100ms interval, for performance + , ms = inst.hasParentLayout ? 5000 : Math.max( o.browserZoomCheckInterval, 100 ) + ; + // set the timer + setTimeout(function(){ + if (inst.destroyed || !o.resizeWithWindow) return; + var d = $.layout.browserZoom.ratio(); + if (d !== s.browserZoom) { + s.browserZoom = d; + inst.resizeAll(); + } + // set a NEW timeout + $.layout.browserZoom._setTimer(inst); + } + , ms ); + } + +, ratio: function () { + var w = window + , s = screen + , d = document + , dE = d.documentElement || d.body + , b = $.layout.browser + , v = b.version + , r, sW, cW + ; + // we can ignore all browsers that fire window.resize event onZoom + if (!b.msie || v > 8) + return false; // don't need to track zoom + if (s.deviceXDPI && s.systemXDPI) // syntax compiler hack + return calc(s.deviceXDPI, s.systemXDPI); + // everything below is just for future reference! + if (b.webkit && (r = d.body.getBoundingClientRect)) + return calc((r.left - r.right), d.body.offsetWidth); + if (b.webkit && (sW = w.outerWidth)) + return calc(sW, w.innerWidth); + if ((sW = s.width) && (cW = dE.clientWidth)) + return calc(sW, cW); + return false; // no match, so cannot - or don't need to - track zoom + + function calc (x,y) { return (parseInt(x,10) / parseInt(y,10) * 100).toFixed(); } + } + +}; +// add initialization method to Layout's onLoad array of functions +$.layout.onReady.push( $.layout.browserZoom._init ); + + +})( jQuery ); + + + + +/** + * UI Layout Plugin: Slide-Offscreen Animation + * + * Prevent panes from being 'hidden' so that an iframes/objects + * does not reload/refresh when pane 'opens' again. + * This plug-in adds a new animation called "slideOffscreen". + * It is identical to the normal "slide" effect, but avoids hiding the element + * + * Requires Layout 1.3.0.RC30.1 or later for Close offscreen + * Requires Layout 1.3.0.RC30.5 or later for Hide, initClosed & initHidden offscreen + * + * Version: 1.1 - 2012-11-18 + * Author: Kevin Dalman (kevin@jquery-dev.com) + * @preserve jquery.layout.slideOffscreen-1.1.js + */ +;(function ($) { + +// Add a new "slideOffscreen" effect +if ($.effects) { + + // add an option so initClosed and initHidden will work + $.layout.defaults.panes.useOffscreenClose = false; // user must enable when needed + /* set the new animation as the default for all panes + $.layout.defaults.panes.fxName = "slideOffscreen"; + */ + + if ($.layout.plugins) + $.layout.plugins.effects.slideOffscreen = true; + + // dupe 'slide' effect defaults as new effect defaults + $.layout.effects.slideOffscreen = $.extend(true, {}, $.layout.effects.slide); + + // add new effect to jQuery UI + $.effects.slideOffscreen = function(o) { + return this.queue(function(){ + + var fx = $.effects + , opt = o.options + , $el = $(this) + , pane = $el.data('layoutEdge') + , state = $el.data('parentLayout').state + , dist = state[pane].size + , s = this.style + , props = ['top','bottom','left','right'] + // Set options + , mode = fx.setMode($el, opt.mode || 'show') // Set Mode + , show = (mode == 'show') + , dir = opt.direction || 'left' // Default Direction + , ref = (dir == 'up' || dir == 'down') ? 'top' : 'left' + , pos = (dir == 'up' || dir == 'left') + , offscrn = $.layout.config.offscreenCSS || {} + , keyLR = $.layout.config.offscreenReset + , keyTB = 'offscreenResetTop' // only used internally + , animation = {} + ; + // Animation settings + animation[ref] = (show ? (pos ? '+=' : '-=') : (pos ? '-=' : '+=')) + dist; + + if (show) { // show() animation, so save top/bottom but retain left/right set when 'hidden' + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + + // set the top or left offset in preparation for animation + // Note: ALL animations work by shifting the top or left edges + if (pos) { // top (north) or left (west) + $el.css(ref, isNaN(dist) ? "-" + dist : -dist); // Shift outside the left/top edge + } + else { // bottom (south) or right (east) - shift all the way across container + if (dir === 'right') + $el.css({ left: state.container.layoutWidth, right: 'auto' }); + else // dir === bottom + $el.css({ top: state.container.layoutHeight, bottom: 'auto' }); + } + // restore the left/right setting if is a top/bottom animation + if (ref === 'top') + $el.css( $el.data( keyLR ) || {} ); + } + else { // hide() animation, so save ALL CSS + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + $el.data(keyLR, { left: s.left, right: s.right }); + } + + // Animate + $el.show().animate(animation, { queue: false, duration: o.duration, easing: opt.easing, complete: function(){ + // Restore top/bottom + if ($el.data( keyTB )) + $el.css($el.data( keyTB )).removeData( keyTB ); + if (show) // Restore left/right too + $el.css($el.data( keyLR ) || {}).removeData( keyLR ); + else // Move the pane off-screen (left: -99999, right: 'auto') + $el.css( offscrn ); + + if (o.callback) o.callback.apply(this, arguments); // Callback + $el.dequeue(); + }}); + + }); + }; + +} + +})( jQuery ); diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/entries b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/entries new file mode 100644 index 0000000..648a954 --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/entries @@ -0,0 +1,65 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources/primefaces-comaco-theme +svn://172.17.26.185/COMACO + + + +2014-08-18T12:44:54.484684Z +223 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +images +dir + +theme.css +file + + + + +2022-07-28T03:45:37.573078Z +f0fff175eac511f8d6a3b72fb15f3986 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +32662 + diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/prop-base/theme.css.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/prop-base/theme.css.svn-base new file mode 100644 index 0000000..138f983 --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/prop-base/theme.css.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 10 +text/plain +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/text-base/theme.css.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/text-base/theme.css.svn-base new file mode 100644 index 0000000..1adcb60 --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/.svn/text-base/theme.css.svn-base @@ -0,0 +1 @@ +/*! jQuery UI - v1.9.2 - 2013-09-08* http://jqueryui.com* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=8pt&cornerRadius=5px&bgColorHeader=%233c73bb&bgTextureHeader=highlight_hard&bgImgOpacityHeader=55&borderColorHeader=%235c9ccc&fcHeader=%23ffffff&iconColorHeader=%23d8e7f3&bgColorContent=%23ffffff&bgTextureContent=inset_hard&bgImgOpacityContent=0&borderColorContent=%23a6c9e2&fcContent=%23222222&iconColorContent=%23469bdd&bgColorDefault=%235e9ed0&bgTextureDefault=highlight_hard&bgImgOpacityDefault=85&borderColorDefault=%23c5dbec&fcDefault=%23ffffff&iconColorDefault=%23ffffff&bgColorHover=%23d0e5f5&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=%2379b7e7&fcHover=%231d5987&iconColorHover=%23217bc0&bgColorActive=%23f5f8f9&bgTextureActive=inset_hard&bgImgOpacityActive=100&borderColorActive=%2379b7e7&fcActive=%236fa925&iconColorActive=%233e8d36&bgColorHighlight=%23fbec88&bgTextureHighlight=flat&bgImgOpacityHighlight=55&borderColorHighlight=%23fad42e&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23f2c8b7&bgTextureError=inset_soft&bgImgOpacityError=95&borderColorError=%23cd0a0a&fcError=%23cd0a0a&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT *//* Layout helpers----------------------------------*/.ui-helper-hidden { display: none; }.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }.ui-helper-clearfix:after { clear: both; }.ui-helper-clearfix { zoom: 1; }.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }/* Interaction Cues----------------------------------*/.ui-state-disabled { cursor: default !important; }/* Icons----------------------------------*//* states and images */.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }/* Misc visuals----------------------------------*//* Overlays */.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.ui-resizable { position: relative;}.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-noicons { padding-left: .7em; }.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }.ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default;}/* workarounds */* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */.ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /*button text element */.ui-button .ui-button-text { display: block; line-height: 1.4; }.ui-button-text-only .ui-button-text { padding: .4em 1em; }.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }/* no icon support for input elements, provide padding by default */input.ui-button { padding: .4em 1em; }/*button icon element(s) */.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }/*button sets*/.ui-buttonset { margin-right: 7px; }.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }/* workarounds */button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }.ui-datepicker .ui-datepicker-prev { left:2px; }.ui-datepicker .ui-datepicker-next { right:2px; }.ui-datepicker .ui-datepicker-prev-hover { left:1px; }.ui-datepicker .ui-datepicker-next-hover { right:1px; }.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }.ui-datepicker select.ui-datepicker-month-year {width: 100%;}.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%;}.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }.ui-datepicker td { border: 0; padding: 1px; }.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }/* with multiple calendars */.ui-datepicker.ui-datepicker-multi { width:auto; }.ui-datepicker-multi .ui-datepicker-group { float:left; }.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }/* RTL support */.ui-datepicker-rtl { direction: rtl; }.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }.ui-datepicker-rtl .ui-datepicker-group { float:right; }.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */.ui-datepicker-cover { position: absolute; /*must have*/ z-index: -1; /*must have*/ filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/}.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }.ui-draggable .ui-dialog-titlebar { cursor: move; }.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }.ui-menu .ui-menu { margin-top: -3px; position: absolute; }.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }.ui-menu .ui-state-disabled a { cursor: default; }/* icon support */.ui-menu-icons { position: relative; }.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }/* left-aligned */.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }/* right-aligned */.ui-menu .ui-menu-icon { position: static; float: right; }.ui-progressbar { height:2em; text-align: left; overflow: hidden; }.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }.ui-slider-horizontal { height: .8em; }.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }.ui-slider-horizontal .ui-slider-range-min { left: 0; }.ui-slider-horizontal .ui-slider-range-max { right: 0; }.ui-slider-vertical { width: .8em; height: 100px; }.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }.ui-slider-vertical .ui-slider-range-min { bottom: 0; }.ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */.ui-spinner-up { top: 0; }.ui-spinner-down { bottom: 0; }/* TR overrides */.ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position:-65px -16px;}.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }.ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa;}/* Fades and background-images don't work well together in IE6, drop the image */* html .ui-tooltip { background-image: none;}body .ui-tooltip { border-width: 2px; }/* Component containers----------------------------------*/.ui-widget { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 8pt; }.ui-widget .ui-widget { font-size: 1em; }.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 1em; }.ui-widget-content { border: 1px solid #a6c9e2; background: #ffffff url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_0_ffffff_1x100.png']}") 50% bottom repeat-x; color: #222222; }.ui-widget-content a { color: #222222; }.ui-widget-header { border: 1px solid #5c9ccc; background: #3c73bb url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_55_3c73bb_1x100.png']}") 50% 50% repeat-x; color: #ffffff; font-weight: bold; }.ui-widget-header a { color: #ffffff; }/* Interaction states----------------------------------*/.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #5e9ed0 url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_85_5e9ed0_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #ffffff; }.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; }.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url("#{resource['primefaces-comaco-theme:images/ui-bg_glass_75_d0e5f5_1x400.png']}") 50% 50% repeat-x; font-weight: bold; color: #1d5987; }.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #1d5987; text-decoration: none; }.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_100_f5f8f9_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #6fa925; }.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #6fa925; text-decoration: none; }/* Interaction Cues----------------------------------*/.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_55_fbec88_40x100.png']}") 50% 50% repeat-x; color: #363636; }.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #f2c8b7 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-soft_95_f2c8b7_1x100.png']}") 50% bottom repeat-x; color: #cd0a0a; }.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 *//* Icons----------------------------------*//* states and images */.ui-icon { width: 16px; height: 16px; background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-content .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-header .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_d8e7f3_256x240.png']}"); }.ui-state-default .ui-icon { background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_ffffff_256x240.png']}"); }.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_217bc0_256x240.png']}"); }.ui-state-active .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_3e8d36_256x240.png']}"); }.ui-state-highlight .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_2e83ff_256x240.png']}"); }.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_cd0a0a_256x240.png']}"); }/* positioning */.ui-icon-carat-1-n { background-position: 0 0; }.ui-icon-carat-1-ne { background-position: -16px 0; }.ui-icon-carat-1-e { background-position: -32px 0; }.ui-icon-carat-1-se { background-position: -48px 0; }.ui-icon-carat-1-s { background-position: -64px 0; }.ui-icon-carat-1-sw { background-position: -80px 0; }.ui-icon-carat-1-w { background-position: -96px 0; }.ui-icon-carat-1-nw { background-position: -112px 0; }.ui-icon-carat-2-n-s { background-position: -128px 0; }.ui-icon-carat-2-e-w { background-position: -144px 0; }.ui-icon-triangle-1-n { background-position: 0 -16px; }.ui-icon-triangle-1-ne { background-position: -16px -16px; }.ui-icon-triangle-1-e { background-position: -32px -16px; }.ui-icon-triangle-1-se { background-position: -48px -16px; }.ui-icon-triangle-1-s { background-position: -64px -16px; }.ui-icon-triangle-1-sw { background-position: -80px -16px; }.ui-icon-triangle-1-w { background-position: -96px -16px; }.ui-icon-triangle-1-nw { background-position: -112px -16px; }.ui-icon-triangle-2-n-s { background-position: -128px -16px; }.ui-icon-triangle-2-e-w { background-position: -144px -16px; }.ui-icon-arrow-1-n { background-position: 0 -32px; }.ui-icon-arrow-1-ne { background-position: -16px -32px; }.ui-icon-arrow-1-e { background-position: -32px -32px; }.ui-icon-arrow-1-se { background-position: -48px -32px; }.ui-icon-arrow-1-s { background-position: -64px -32px; }.ui-icon-arrow-1-sw { background-position: -80px -32px; }.ui-icon-arrow-1-w { background-position: -96px -32px; }.ui-icon-arrow-1-nw { background-position: -112px -32px; }.ui-icon-arrow-2-n-s { background-position: -128px -32px; }.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }.ui-icon-arrow-2-e-w { background-position: -160px -32px; }.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }.ui-icon-arrowstop-1-n { background-position: -192px -32px; }.ui-icon-arrowstop-1-e { background-position: -208px -32px; }.ui-icon-arrowstop-1-s { background-position: -224px -32px; }.ui-icon-arrowstop-1-w { background-position: -240px -32px; }.ui-icon-arrowthick-1-n { background-position: 0 -48px; }.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }.ui-icon-arrowthick-1-e { background-position: -32px -48px; }.ui-icon-arrowthick-1-se { background-position: -48px -48px; }.ui-icon-arrowthick-1-s { background-position: -64px -48px; }.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }.ui-icon-arrowthick-1-w { background-position: -96px -48px; }.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }.ui-icon-arrow-4 { background-position: 0 -80px; }.ui-icon-arrow-4-diag { background-position: -16px -80px; }.ui-icon-extlink { background-position: -32px -80px; }.ui-icon-newwin { background-position: -48px -80px; }.ui-icon-refresh { background-position: -64px -80px; }.ui-icon-shuffle { background-position: -80px -80px; }.ui-icon-transfer-e-w { background-position: -96px -80px; }.ui-icon-transferthick-e-w { background-position: -112px -80px; }.ui-icon-folder-collapsed { background-position: 0 -96px; }.ui-icon-folder-open { background-position: -16px -96px; }.ui-icon-document { background-position: -32px -96px; }.ui-icon-document-b { background-position: -48px -96px; }.ui-icon-note { background-position: -64px -96px; }.ui-icon-mail-closed { background-position: -80px -96px; }.ui-icon-mail-open { background-position: -96px -96px; }.ui-icon-suitcase { background-position: -112px -96px; }.ui-icon-comment { background-position: -128px -96px; }.ui-icon-person { background-position: -144px -96px; }.ui-icon-print { background-position: -160px -96px; }.ui-icon-trash { background-position: -176px -96px; }.ui-icon-locked { background-position: -192px -96px; }.ui-icon-unlocked { background-position: -208px -96px; }.ui-icon-bookmark { background-position: -224px -96px; }.ui-icon-tag { background-position: -240px -96px; }.ui-icon-home { background-position: 0 -112px; }.ui-icon-flag { background-position: -16px -112px; }.ui-icon-calendar { background-position: -32px -112px; }.ui-icon-cart { background-position: -48px -112px; }.ui-icon-pencil { background-position: -64px -112px; }.ui-icon-clock { background-position: -80px -112px; }.ui-icon-disk { background-position: -96px -112px; }.ui-icon-calculator { background-position: -112px -112px; }.ui-icon-zoomin { background-position: -128px -112px; }.ui-icon-zoomout { background-position: -144px -112px; }.ui-icon-search { background-position: -160px -112px; }.ui-icon-wrench { background-position: -176px -112px; }.ui-icon-gear { background-position: -192px -112px; }.ui-icon-heart { background-position: -208px -112px; }.ui-icon-star { background-position: -224px -112px; }.ui-icon-link { background-position: -240px -112px; }.ui-icon-cancel { background-position: 0 -128px; }.ui-icon-plus { background-position: -16px -128px; }.ui-icon-plusthick { background-position: -32px -128px; }.ui-icon-minus { background-position: -48px -128px; }.ui-icon-minusthick { background-position: -64px -128px; }.ui-icon-close { background-position: -80px -128px; }.ui-icon-closethick { background-position: -96px -128px; }.ui-icon-key { background-position: -112px -128px; }.ui-icon-lightbulb { background-position: -128px -128px; }.ui-icon-scissors { background-position: -144px -128px; }.ui-icon-clipboard { background-position: -160px -128px; }.ui-icon-copy { background-position: -176px -128px; }.ui-icon-contact { background-position: -192px -128px; }.ui-icon-image { background-position: -208px -128px; }.ui-icon-video { background-position: -224px -128px; }.ui-icon-script { background-position: -240px -128px; }.ui-icon-alert { background-position: 0 -144px; }.ui-icon-info { background-position: -16px -144px; }.ui-icon-notice { background-position: -32px -144px; }.ui-icon-help { background-position: -48px -144px; }.ui-icon-check { background-position: -64px -144px; }.ui-icon-bullet { background-position: -80px -144px; }.ui-icon-radio-on { background-position: -96px -144px; }.ui-icon-radio-off { background-position: -112px -144px; }.ui-icon-pin-w { background-position: -128px -144px; }.ui-icon-pin-s { background-position: -144px -144px; }.ui-icon-play { background-position: 0 -160px; }.ui-icon-pause { background-position: -16px -160px; }.ui-icon-seek-next { background-position: -32px -160px; }.ui-icon-seek-prev { background-position: -48px -160px; }.ui-icon-seek-end { background-position: -64px -160px; }.ui-icon-seek-start { background-position: -80px -160px; }/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */.ui-icon-seek-first { background-position: -80px -160px; }.ui-icon-stop { background-position: -96px -160px; }.ui-icon-eject { background-position: -112px -160px; }.ui-icon-volume-off { background-position: -128px -160px; }.ui-icon-volume-on { background-position: -144px -160px; }.ui-icon-power { background-position: 0 -176px; }.ui-icon-signal-diag { background-position: -16px -176px; }.ui-icon-signal { background-position: -32px -176px; }.ui-icon-battery-0 { background-position: -48px -176px; }.ui-icon-battery-1 { background-position: -64px -176px; }.ui-icon-battery-2 { background-position: -80px -176px; }.ui-icon-battery-3 { background-position: -96px -176px; }.ui-icon-circle-plus { background-position: 0 -192px; }.ui-icon-circle-minus { background-position: -16px -192px; }.ui-icon-circle-close { background-position: -32px -192px; }.ui-icon-circle-triangle-e { background-position: -48px -192px; }.ui-icon-circle-triangle-s { background-position: -64px -192px; }.ui-icon-circle-triangle-w { background-position: -80px -192px; }.ui-icon-circle-triangle-n { background-position: -96px -192px; }.ui-icon-circle-arrow-e { background-position: -112px -192px; }.ui-icon-circle-arrow-s { background-position: -128px -192px; }.ui-icon-circle-arrow-w { background-position: -144px -192px; }.ui-icon-circle-arrow-n { background-position: -160px -192px; }.ui-icon-circle-zoomin { background-position: -176px -192px; }.ui-icon-circle-zoomout { background-position: -192px -192px; }.ui-icon-circle-check { background-position: -208px -192px; }.ui-icon-circlesmall-plus { background-position: 0 -208px; }.ui-icon-circlesmall-minus { background-position: -16px -208px; }.ui-icon-circlesmall-close { background-position: -32px -208px; }.ui-icon-squaresmall-plus { background-position: -48px -208px; }.ui-icon-squaresmall-minus { background-position: -64px -208px; }.ui-icon-squaresmall-close { background-position: -80px -208px; }.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }.ui-icon-grip-solid-vertical { background-position: -32px -224px; }.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }.ui-icon-grip-diagonal-se { background-position: -80px -224px; }/* Misc visuals----------------------------------*//* Corner radius */.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }/* Overlays */.ui-widget-overlay { background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); }.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3; filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } \ No newline at end of file diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/entries b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/entries new file mode 100644 index 0000000..bfc6264 --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/entries @@ -0,0 +1,538 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/main/webapp/resources/primefaces-comaco-theme/images +svn://172.17.26.185/COMACO + + + +2014-08-18T12:44:54.484684Z +223 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +ui-icons_3e8d36_256x240.png +file + + + + +2022-07-28T03:45:37.545078Z +e414564405705b9ecbcbc450e99e2550 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-bg_inset-hard_0_ffffff_1x100.png +file + + + + +2022-07-28T03:45:37.544078Z +6c29a1f46d20df944d9a5d85ec5f202f +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +203 + +ui-bg_flat_55_fbec88_40x100.png +file + + + + +2022-07-28T03:45:37.545078Z +ccc39ad8d24fcb3e73b613939ddf490c +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +206 + +ui-bg_inset-soft_95_f2c8b7_1x100.png +file + + + + +2022-07-28T03:45:37.547078Z +668d1b234c45c571e2e6d7ab7a367908 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +366 + +ui-icons_ffffff_256x240.png +file + + + + +2022-07-28T03:45:37.548078Z +e3f4748b19b87aadaa924d85f0882432 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +6299 + +ui-icons_cd0a0a_256x240.png +file + + + + +2022-07-28T03:45:37.548078Z +5c78585b80fbf4342d21674a04e89c8b +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-bg_flat_0_aaaaaa_40x100.png +file + + + + +2022-07-28T03:45:37.549078Z +feec511126dba68cde746b752720c614 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +212 + +ui-bg_highlight-hard_55_3c73bb_1x100.png +file + + + + +2022-07-28T03:45:37.549078Z +cd13065a50f67c05e0ce6acb4fa6f269 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +316 + +ui-bg_glass_75_d0e5f5_1x400.png +file + + + + +2022-07-28T03:45:37.549078Z +a24ba6c081c2e58226095a00e42ab6df +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +336 + +ui-icons_469bdd_256x240.png +file + + + + +2022-07-28T03:45:37.545078Z +36a2a3ba0579d3a4b05836c75972e42a +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-icons_2e83ff_256x240.png +file + + + + +2022-07-28T03:45:37.546078Z +764c37efbf6d7ffc176b466fadc6f2ca +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-icons_217bc0_256x240.png +file + + + + +2022-07-28T03:45:37.546078Z +7a34afda44db5cc6a62454983ccba939 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-icons_d8e7f3_256x240.png +file + + + + +2022-07-28T03:45:37.547078Z +cb043673f76ed1e7b96b11eda68a6ad6 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +4549 + +ui-bg_inset-hard_100_f5f8f9_1x100.png +file + + + + +2022-07-28T03:45:37.547078Z +cdde2b39ee0370f854f762fb88d8dca7 +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +333 + +ui-bg_highlight-hard_85_5e9ed0_1x100.png +file + + + + +2022-07-28T03:45:37.548078Z +e1dd7e1479bba151128663747f63701d +2014-08-18T12:44:54.484684Z +223 +dcruz +has-props + + + + + + + + + + + + + + + + + + + + +331 + diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_55_fbec88_40x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_55_fbec88_40x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_flat_55_fbec88_40x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_217bc0_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_217bc0_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_217bc0_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_2e83ff_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_2e83ff_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_2e83ff_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_3e8d36_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_3e8d36_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_3e8d36_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_469bdd_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_469bdd_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_469bdd_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_cd0a0a_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_cd0a0a_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_cd0a0a_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_d8e7f3_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_d8e7f3_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_d8e7f3_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_ffffff_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_ffffff_256x240.png.svn-base new file mode 100644 index 0000000..5e9587e --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/prop-base/ui-icons_ffffff_256x240.png.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base new file mode 100644 index 0000000..782799d Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_0_aaaaaa_40x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_55_fbec88_40x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_55_fbec88_40x100.png.svn-base new file mode 100644 index 0000000..60a3676 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_flat_55_fbec88_40x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base new file mode 100644 index 0000000..ce04795 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_glass_75_d0e5f5_1x400.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base new file mode 100644 index 0000000..3ba80ea Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_55_3c73bb_1x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base new file mode 100644 index 0000000..cd1ecd4 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_highlight-hard_85_5e9ed0_1x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base new file mode 100644 index 0000000..f4024bd Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_0_ffffff_1x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base new file mode 100644 index 0000000..e4d107b Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-hard_100_f5f8f9_1x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base new file mode 100644 index 0000000..04ae618 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-bg_inset-soft_95_f2c8b7_1x100.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_217bc0_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_217bc0_256x240.png.svn-base new file mode 100644 index 0000000..8d2b7e5 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_217bc0_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_2e83ff_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_2e83ff_256x240.png.svn-base new file mode 100644 index 0000000..84b601b Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_2e83ff_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_3e8d36_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_3e8d36_256x240.png.svn-base new file mode 100644 index 0000000..570e22c Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_3e8d36_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_469bdd_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_469bdd_256x240.png.svn-base new file mode 100644 index 0000000..5dff3f9 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_469bdd_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_cd0a0a_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_cd0a0a_256x240.png.svn-base new file mode 100644 index 0000000..ed5b6b0 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_cd0a0a_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_d8e7f3_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_d8e7f3_256x240.png.svn-base new file mode 100644 index 0000000..9b46228 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_d8e7f3_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_ffffff_256x240.png.svn-base b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_ffffff_256x240.png.svn-base new file mode 100644 index 0000000..4f624bb Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/.svn/text-base/ui-icons_ffffff_256x240.png.svn-base differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..782799d Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100644 index 0000000..60a3676 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100644 index 0000000..ce04795 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png new file mode 100644 index 0000000..3ba80ea Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png new file mode 100644 index 0000000..cd1ecd4 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png new file mode 100644 index 0000000..f4024bd Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png new file mode 100644 index 0000000..e4d107b Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png new file mode 100644 index 0000000..04ae618 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png new file mode 100644 index 0000000..8d2b7e5 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..84b601b Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png new file mode 100644 index 0000000..570e22c Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png new file mode 100644 index 0000000..5dff3f9 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..ed5b6b0 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png new file mode 100644 index 0000000..9b46228 Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..4f624bb Binary files /dev/null and b/web/src/main/webapp/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png differ diff --git a/web/src/main/webapp/resources/primefaces-comaco-theme/theme.css b/web/src/main/webapp/resources/primefaces-comaco-theme/theme.css new file mode 100644 index 0000000..1adcb60 --- /dev/null +++ b/web/src/main/webapp/resources/primefaces-comaco-theme/theme.css @@ -0,0 +1 @@ +/*! jQuery UI - v1.9.2 - 2013-09-08* http://jqueryui.com* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=8pt&cornerRadius=5px&bgColorHeader=%233c73bb&bgTextureHeader=highlight_hard&bgImgOpacityHeader=55&borderColorHeader=%235c9ccc&fcHeader=%23ffffff&iconColorHeader=%23d8e7f3&bgColorContent=%23ffffff&bgTextureContent=inset_hard&bgImgOpacityContent=0&borderColorContent=%23a6c9e2&fcContent=%23222222&iconColorContent=%23469bdd&bgColorDefault=%235e9ed0&bgTextureDefault=highlight_hard&bgImgOpacityDefault=85&borderColorDefault=%23c5dbec&fcDefault=%23ffffff&iconColorDefault=%23ffffff&bgColorHover=%23d0e5f5&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=%2379b7e7&fcHover=%231d5987&iconColorHover=%23217bc0&bgColorActive=%23f5f8f9&bgTextureActive=inset_hard&bgImgOpacityActive=100&borderColorActive=%2379b7e7&fcActive=%236fa925&iconColorActive=%233e8d36&bgColorHighlight=%23fbec88&bgTextureHighlight=flat&bgImgOpacityHighlight=55&borderColorHighlight=%23fad42e&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23f2c8b7&bgTextureError=inset_soft&bgImgOpacityError=95&borderColorError=%23cd0a0a&fcError=%23cd0a0a&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT *//* Layout helpers----------------------------------*/.ui-helper-hidden { display: none; }.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }.ui-helper-clearfix:after { clear: both; }.ui-helper-clearfix { zoom: 1; }.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }/* Interaction Cues----------------------------------*/.ui-state-disabled { cursor: default !important; }/* Icons----------------------------------*//* states and images */.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }/* Misc visuals----------------------------------*//* Overlays */.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.ui-resizable { position: relative;}.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-noicons { padding-left: .7em; }.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }.ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default;}/* workarounds */* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */.ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /*button text element */.ui-button .ui-button-text { display: block; line-height: 1.4; }.ui-button-text-only .ui-button-text { padding: .4em 1em; }.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }/* no icon support for input elements, provide padding by default */input.ui-button { padding: .4em 1em; }/*button icon element(s) */.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }/*button sets*/.ui-buttonset { margin-right: 7px; }.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }/* workarounds */button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }.ui-datepicker .ui-datepicker-prev { left:2px; }.ui-datepicker .ui-datepicker-next { right:2px; }.ui-datepicker .ui-datepicker-prev-hover { left:1px; }.ui-datepicker .ui-datepicker-next-hover { right:1px; }.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }.ui-datepicker select.ui-datepicker-month-year {width: 100%;}.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%;}.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }.ui-datepicker td { border: 0; padding: 1px; }.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }/* with multiple calendars */.ui-datepicker.ui-datepicker-multi { width:auto; }.ui-datepicker-multi .ui-datepicker-group { float:left; }.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }/* RTL support */.ui-datepicker-rtl { direction: rtl; }.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }.ui-datepicker-rtl .ui-datepicker-group { float:right; }.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */.ui-datepicker-cover { position: absolute; /*must have*/ z-index: -1; /*must have*/ filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/}.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }.ui-draggable .ui-dialog-titlebar { cursor: move; }.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }.ui-menu .ui-menu { margin-top: -3px; position: absolute; }.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }.ui-menu .ui-state-disabled a { cursor: default; }/* icon support */.ui-menu-icons { position: relative; }.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }/* left-aligned */.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }/* right-aligned */.ui-menu .ui-menu-icon { position: static; float: right; }.ui-progressbar { height:2em; text-align: left; overflow: hidden; }.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }.ui-slider-horizontal { height: .8em; }.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }.ui-slider-horizontal .ui-slider-range-min { left: 0; }.ui-slider-horizontal .ui-slider-range-max { right: 0; }.ui-slider-vertical { width: .8em; height: 100px; }.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }.ui-slider-vertical .ui-slider-range-min { bottom: 0; }.ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */.ui-spinner-up { top: 0; }.ui-spinner-down { bottom: 0; }/* TR overrides */.ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position:-65px -16px;}.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }.ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa;}/* Fades and background-images don't work well together in IE6, drop the image */* html .ui-tooltip { background-image: none;}body .ui-tooltip { border-width: 2px; }/* Component containers----------------------------------*/.ui-widget { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 8pt; }.ui-widget .ui-widget { font-size: 1em; }.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 1em; }.ui-widget-content { border: 1px solid #a6c9e2; background: #ffffff url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_0_ffffff_1x100.png']}") 50% bottom repeat-x; color: #222222; }.ui-widget-content a { color: #222222; }.ui-widget-header { border: 1px solid #5c9ccc; background: #3c73bb url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_55_3c73bb_1x100.png']}") 50% 50% repeat-x; color: #ffffff; font-weight: bold; }.ui-widget-header a { color: #ffffff; }/* Interaction states----------------------------------*/.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #5e9ed0 url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_85_5e9ed0_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #ffffff; }.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; }.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url("#{resource['primefaces-comaco-theme:images/ui-bg_glass_75_d0e5f5_1x400.png']}") 50% 50% repeat-x; font-weight: bold; color: #1d5987; }.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #1d5987; text-decoration: none; }.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_100_f5f8f9_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #6fa925; }.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #6fa925; text-decoration: none; }/* Interaction Cues----------------------------------*/.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_55_fbec88_40x100.png']}") 50% 50% repeat-x; color: #363636; }.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #f2c8b7 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-soft_95_f2c8b7_1x100.png']}") 50% bottom repeat-x; color: #cd0a0a; }.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 *//* Icons----------------------------------*//* states and images */.ui-icon { width: 16px; height: 16px; background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-content .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-header .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_d8e7f3_256x240.png']}"); }.ui-state-default .ui-icon { background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_ffffff_256x240.png']}"); }.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_217bc0_256x240.png']}"); }.ui-state-active .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_3e8d36_256x240.png']}"); }.ui-state-highlight .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_2e83ff_256x240.png']}"); }.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_cd0a0a_256x240.png']}"); }/* positioning */.ui-icon-carat-1-n { background-position: 0 0; }.ui-icon-carat-1-ne { background-position: -16px 0; }.ui-icon-carat-1-e { background-position: -32px 0; }.ui-icon-carat-1-se { background-position: -48px 0; }.ui-icon-carat-1-s { background-position: -64px 0; }.ui-icon-carat-1-sw { background-position: -80px 0; }.ui-icon-carat-1-w { background-position: -96px 0; }.ui-icon-carat-1-nw { background-position: -112px 0; }.ui-icon-carat-2-n-s { background-position: -128px 0; }.ui-icon-carat-2-e-w { background-position: -144px 0; }.ui-icon-triangle-1-n { background-position: 0 -16px; }.ui-icon-triangle-1-ne { background-position: -16px -16px; }.ui-icon-triangle-1-e { background-position: -32px -16px; }.ui-icon-triangle-1-se { background-position: -48px -16px; }.ui-icon-triangle-1-s { background-position: -64px -16px; }.ui-icon-triangle-1-sw { background-position: -80px -16px; }.ui-icon-triangle-1-w { background-position: -96px -16px; }.ui-icon-triangle-1-nw { background-position: -112px -16px; }.ui-icon-triangle-2-n-s { background-position: -128px -16px; }.ui-icon-triangle-2-e-w { background-position: -144px -16px; }.ui-icon-arrow-1-n { background-position: 0 -32px; }.ui-icon-arrow-1-ne { background-position: -16px -32px; }.ui-icon-arrow-1-e { background-position: -32px -32px; }.ui-icon-arrow-1-se { background-position: -48px -32px; }.ui-icon-arrow-1-s { background-position: -64px -32px; }.ui-icon-arrow-1-sw { background-position: -80px -32px; }.ui-icon-arrow-1-w { background-position: -96px -32px; }.ui-icon-arrow-1-nw { background-position: -112px -32px; }.ui-icon-arrow-2-n-s { background-position: -128px -32px; }.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }.ui-icon-arrow-2-e-w { background-position: -160px -32px; }.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }.ui-icon-arrowstop-1-n { background-position: -192px -32px; }.ui-icon-arrowstop-1-e { background-position: -208px -32px; }.ui-icon-arrowstop-1-s { background-position: -224px -32px; }.ui-icon-arrowstop-1-w { background-position: -240px -32px; }.ui-icon-arrowthick-1-n { background-position: 0 -48px; }.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }.ui-icon-arrowthick-1-e { background-position: -32px -48px; }.ui-icon-arrowthick-1-se { background-position: -48px -48px; }.ui-icon-arrowthick-1-s { background-position: -64px -48px; }.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }.ui-icon-arrowthick-1-w { background-position: -96px -48px; }.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }.ui-icon-arrow-4 { background-position: 0 -80px; }.ui-icon-arrow-4-diag { background-position: -16px -80px; }.ui-icon-extlink { background-position: -32px -80px; }.ui-icon-newwin { background-position: -48px -80px; }.ui-icon-refresh { background-position: -64px -80px; }.ui-icon-shuffle { background-position: -80px -80px; }.ui-icon-transfer-e-w { background-position: -96px -80px; }.ui-icon-transferthick-e-w { background-position: -112px -80px; }.ui-icon-folder-collapsed { background-position: 0 -96px; }.ui-icon-folder-open { background-position: -16px -96px; }.ui-icon-document { background-position: -32px -96px; }.ui-icon-document-b { background-position: -48px -96px; }.ui-icon-note { background-position: -64px -96px; }.ui-icon-mail-closed { background-position: -80px -96px; }.ui-icon-mail-open { background-position: -96px -96px; }.ui-icon-suitcase { background-position: -112px -96px; }.ui-icon-comment { background-position: -128px -96px; }.ui-icon-person { background-position: -144px -96px; }.ui-icon-print { background-position: -160px -96px; }.ui-icon-trash { background-position: -176px -96px; }.ui-icon-locked { background-position: -192px -96px; }.ui-icon-unlocked { background-position: -208px -96px; }.ui-icon-bookmark { background-position: -224px -96px; }.ui-icon-tag { background-position: -240px -96px; }.ui-icon-home { background-position: 0 -112px; }.ui-icon-flag { background-position: -16px -112px; }.ui-icon-calendar { background-position: -32px -112px; }.ui-icon-cart { background-position: -48px -112px; }.ui-icon-pencil { background-position: -64px -112px; }.ui-icon-clock { background-position: -80px -112px; }.ui-icon-disk { background-position: -96px -112px; }.ui-icon-calculator { background-position: -112px -112px; }.ui-icon-zoomin { background-position: -128px -112px; }.ui-icon-zoomout { background-position: -144px -112px; }.ui-icon-search { background-position: -160px -112px; }.ui-icon-wrench { background-position: -176px -112px; }.ui-icon-gear { background-position: -192px -112px; }.ui-icon-heart { background-position: -208px -112px; }.ui-icon-star { background-position: -224px -112px; }.ui-icon-link { background-position: -240px -112px; }.ui-icon-cancel { background-position: 0 -128px; }.ui-icon-plus { background-position: -16px -128px; }.ui-icon-plusthick { background-position: -32px -128px; }.ui-icon-minus { background-position: -48px -128px; }.ui-icon-minusthick { background-position: -64px -128px; }.ui-icon-close { background-position: -80px -128px; }.ui-icon-closethick { background-position: -96px -128px; }.ui-icon-key { background-position: -112px -128px; }.ui-icon-lightbulb { background-position: -128px -128px; }.ui-icon-scissors { background-position: -144px -128px; }.ui-icon-clipboard { background-position: -160px -128px; }.ui-icon-copy { background-position: -176px -128px; }.ui-icon-contact { background-position: -192px -128px; }.ui-icon-image { background-position: -208px -128px; }.ui-icon-video { background-position: -224px -128px; }.ui-icon-script { background-position: -240px -128px; }.ui-icon-alert { background-position: 0 -144px; }.ui-icon-info { background-position: -16px -144px; }.ui-icon-notice { background-position: -32px -144px; }.ui-icon-help { background-position: -48px -144px; }.ui-icon-check { background-position: -64px -144px; }.ui-icon-bullet { background-position: -80px -144px; }.ui-icon-radio-on { background-position: -96px -144px; }.ui-icon-radio-off { background-position: -112px -144px; }.ui-icon-pin-w { background-position: -128px -144px; }.ui-icon-pin-s { background-position: -144px -144px; }.ui-icon-play { background-position: 0 -160px; }.ui-icon-pause { background-position: -16px -160px; }.ui-icon-seek-next { background-position: -32px -160px; }.ui-icon-seek-prev { background-position: -48px -160px; }.ui-icon-seek-end { background-position: -64px -160px; }.ui-icon-seek-start { background-position: -80px -160px; }/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */.ui-icon-seek-first { background-position: -80px -160px; }.ui-icon-stop { background-position: -96px -160px; }.ui-icon-eject { background-position: -112px -160px; }.ui-icon-volume-off { background-position: -128px -160px; }.ui-icon-volume-on { background-position: -144px -160px; }.ui-icon-power { background-position: 0 -176px; }.ui-icon-signal-diag { background-position: -16px -176px; }.ui-icon-signal { background-position: -32px -176px; }.ui-icon-battery-0 { background-position: -48px -176px; }.ui-icon-battery-1 { background-position: -64px -176px; }.ui-icon-battery-2 { background-position: -80px -176px; }.ui-icon-battery-3 { background-position: -96px -176px; }.ui-icon-circle-plus { background-position: 0 -192px; }.ui-icon-circle-minus { background-position: -16px -192px; }.ui-icon-circle-close { background-position: -32px -192px; }.ui-icon-circle-triangle-e { background-position: -48px -192px; }.ui-icon-circle-triangle-s { background-position: -64px -192px; }.ui-icon-circle-triangle-w { background-position: -80px -192px; }.ui-icon-circle-triangle-n { background-position: -96px -192px; }.ui-icon-circle-arrow-e { background-position: -112px -192px; }.ui-icon-circle-arrow-s { background-position: -128px -192px; }.ui-icon-circle-arrow-w { background-position: -144px -192px; }.ui-icon-circle-arrow-n { background-position: -160px -192px; }.ui-icon-circle-zoomin { background-position: -176px -192px; }.ui-icon-circle-zoomout { background-position: -192px -192px; }.ui-icon-circle-check { background-position: -208px -192px; }.ui-icon-circlesmall-plus { background-position: 0 -208px; }.ui-icon-circlesmall-minus { background-position: -16px -208px; }.ui-icon-circlesmall-close { background-position: -32px -208px; }.ui-icon-squaresmall-plus { background-position: -48px -208px; }.ui-icon-squaresmall-minus { background-position: -64px -208px; }.ui-icon-squaresmall-close { background-position: -80px -208px; }.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }.ui-icon-grip-solid-vertical { background-position: -32px -224px; }.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }.ui-icon-grip-diagonal-se { background-position: -80px -224px; }/* Misc visuals----------------------------------*//* Corner radius */.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }/* Overlays */.ui-widget-overlay { background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); }.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3; filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } \ No newline at end of file diff --git a/web/src/test/.svn/entries b/web/src/test/.svn/entries new file mode 100644 index 0000000..c4dbdcc --- /dev/null +++ b/web/src/test/.svn/entries @@ -0,0 +1,34 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/test +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + +java +dir + +resources +dir + diff --git a/web/src/test/java/.svn/entries b/web/src/test/java/.svn/entries new file mode 100644 index 0000000..0109253 --- /dev/null +++ b/web/src/test/java/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/test/java +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + diff --git a/web/src/test/resources/.svn/entries b/web/src/test/resources/.svn/entries new file mode 100644 index 0000000..7fa56b5 --- /dev/null +++ b/web/src/test/resources/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +4669 +svn://172.17.26.185/COMACO/registro/portal/web/src/test/resources +svn://172.17.26.185/COMACO + + + +2014-08-15T13:56:33.844127Z +203 +dcruz + + + + + + + + + + + + + + +a11ad980-3ca8-45f0-88f7-f0e618c262b7 + diff --git a/web/target/classes/com/fp/armas/portal/controller/base/BaseController.class b/web/target/classes/com/fp/armas/portal/controller/base/BaseController.class new file mode 100644 index 0000000..3510674 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/controller/base/BaseController.class differ diff --git a/web/target/classes/com/fp/armas/portal/controller/registro/RegistroController.class b/web/target/classes/com/fp/armas/portal/controller/registro/RegistroController.class new file mode 100644 index 0000000..05c16f9 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/controller/registro/RegistroController.class differ diff --git a/web/target/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class b/web/target/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class new file mode 100644 index 0000000..781bb72 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class differ diff --git a/web/target/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class b/web/target/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class new file mode 100644 index 0000000..9c5634d Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class differ diff --git a/web/target/classes/com/fp/armas/portal/faces/FacesUtil.class b/web/target/classes/com/fp/armas/portal/faces/FacesUtil.class new file mode 100644 index 0000000..dc3f31a Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/faces/FacesUtil.class differ diff --git a/web/target/classes/com/fp/armas/portal/faces/listener/PortalListener.class b/web/target/classes/com/fp/armas/portal/faces/listener/PortalListener.class new file mode 100644 index 0000000..c947bea Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/faces/listener/PortalListener.class differ diff --git a/web/target/classes/com/fp/armas/portal/validator/CelularValidator.class b/web/target/classes/com/fp/armas/portal/validator/CelularValidator.class new file mode 100644 index 0000000..05aa984 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/validator/CelularValidator.class differ diff --git a/web/target/classes/com/fp/armas/portal/validator/EmailValidator.class b/web/target/classes/com/fp/armas/portal/validator/EmailValidator.class new file mode 100644 index 0000000..a8d8e49 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/validator/EmailValidator.class differ diff --git a/web/target/classes/com/fp/armas/portal/validator/IdentificacionValidator.class b/web/target/classes/com/fp/armas/portal/validator/IdentificacionValidator.class new file mode 100644 index 0000000..3af13d7 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/validator/IdentificacionValidator.class differ diff --git a/web/target/classes/com/fp/armas/portal/web/PortalWebResources.class b/web/target/classes/com/fp/armas/portal/web/PortalWebResources.class new file mode 100644 index 0000000..5580e9b Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/web/PortalWebResources.class differ diff --git a/web/target/classes/com/fp/armas/portal/web_portal.properties b/web/target/classes/com/fp/armas/portal/web_portal.properties new file mode 100644 index 0000000..778efee --- /dev/null +++ b/web/target/classes/com/fp/armas/portal/web_portal.properties @@ -0,0 +1,119 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +##MENSAJES GENERALES +lbl_requeridos=Los campos marcados con (*) son obligatorios +##------------------------------------ +lbl_cargando=Cargando + +lbl_registro_usuario=Registro de Usuario +lbl_tipo_documento=Tipo Documento +lbl_numero_documento=N\u00FAmero Documento +lbl_datos_generales=Datos Generales +lbl_nombre_razon=Nombre/Raz\u00F3n Social +lbl_nombres=Nombres +lbl_nombre_completo=Nombre Completo +lbl_apellido_paterno=Apellido Paterno +lbl_apellido_materno=Apellido Materno +lbl_actividad_economica=Actividad Econ\u00F3mica +lbl_representate_legal=Representante Legal +lbl_cedula_representante=C\u00E9dula Representante Legal +lbl_pais_origen=Pa\u00EDs Origen +lbl_provincia=Provincia +lbl_canton=Cant\u00F3n +lbl_ciudad=Ciudad +lbl_parroquia=Parroquia +lbl_direccion=Direcci\u00F3n +lbl_telf_convencional=Tel\u00E9fono Convencional +lbl_telf_celular=Celular +lbl_estado_civil=Estado Civil +lbl_genero=G\u00E9nero +lbl_estatura=Estatura +lbl_profesion=Profesi\u00F3n +lbl_email=Correo Electr\u00F3nico +lbl_aceptar=Aceptar +lbl_masculino=Masculino +lbl_femenino=Femenino +lbl_cancelar=Cancelar +lbl_logo=Cargar Logotipo de la Empresa + +lbl_vista_expirada=Debido a la inactividad en el portal y por su seguridad, hemos redirigido la petici\u00F3n a otra p\u00E1gina, si desea regresar al registro de usuarios puede hacerlo desde +lbl_aqui=aqu\u00ED + +##MENSAJES DE ERRORES## +error.msg.persona.registrada=La persona ya est\u00E1 registrada, ingrese con su usuario y password +error.msg.cedula=El campo ingresado no es una C\u00E9dula v\u00E1lida +error.msg.ruc=El campo ingresado no es un RUC v\u00E1lido +error.campo.vacio=El campo es obligatorio +error.mail.incorrecto=El campo no es un mail v\u00E1lido +error.celular.incorrecto=El n\u00FAmero celular debe empezar con '09' +error_captcha=Captcha requerido +error_valor_captcha=Ingrese los valores correctos del captcha + +##MENSAJES NOTIFICACION + +mensaje.informativo.correo.enviado=Correo enviado +url.servidor.maia=https://tramitesarmas.ccffaa.mil.ec/frontend +url.servidor.registro=https://tramitesarmas.ccffaa.mil.ec/portal-web + +#URL DE LOS SERVICIOS MANEJADOS DESDE LA SNAP +url_snap_servicio_cedula=https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl +url_snap_servicio_ruc=https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl + +#Validaciones JSF +javax.faces.component.UIInput.REQUIRED=Valor obligatorio. +javax.faces.component.UIInput.REQUIRED_detail=Valor obligatorio. + +javax.faces.converter.BigDecimalConverter.DECIMAL=''{0}'' Debe ser un número decimal. +javax.faces.converter.BigDecimalConverter.DECIMAL_detail= El campo solo acepta n\u00FAmeros decimales. Ejemplo\: {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=''{0}'' Entero de uno o mu00e1s d\u00EDgitos. +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=''{0}'' Entero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.BooleanConverter.BOOLEAN=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.BooleanConverter.BOOLEAN_detail=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.ByteConverter.BYTE=''{0}'' Debe se un n\u00FAmero entre 0 y 255. +javax.faces.converter.ByteConverter.BYTE_detail=''{0}'' Debe ser un n\u00FAmero entre 0 y 255. +javax.faces.converter.CharacterConverter.CHARACTER=''{0}'' Debe ser un car\u00E1cter v\u00E1lido. +javax.faces.converter.CharacterConverter.CHARACTER_detail=''{0}'' Debe ser un car\u00E1cter ASCII v\u00E1lido. +javax.faces.converter.DateTimeConverter.DATE=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATE_detail=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.TIME=''{0}'' Formato de hora incorrecto. +javax.faces.converter.DateTimeConverter.TIME_detail=''{0}'' Formato de hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATETIME=''{0}'' Formato de fecha u hora incorrecto. +javax.faces.converter.DateTimeConverter.DATETIME_detail=''{0}'' Formato de fecha u hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=Un 'modelo' o 'tipo' de atributo debe ser especificado para convertir el valor ''{0}''. +javax.faces.converter.DoubleConverter.DOUBLE=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.DoubleConverter.DOUBLE_detail=''{0}'' Debe ser un n\u00FAmero entre 4.9E-324 and 1.7976931348623157E308 Ejemplo\: {1} +javax.faces.converter.EnumConverter.ENUM=''{0}'' Debe ser convertible a una enumeración. +javax.faces.converter.EnumConverter.ENUM_detail=''{0}'' Convertible a una enumeración de la enumeración que contiene la constante ''{1}''. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.FloatConverter.FLOAT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.FloatConverter.FLOAT_detail=''{0}'' Debe ser un n\u00FAmero entre 1.4E-45 y 3.4028235E38 Ejemplo\: {1} +javax.faces.converter.IntegerConverter.INTEGER=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.IntegerConverter.INTEGER_detail=''{0}'' Debe ser un n\u00FAmero entre -2147483648 y 2147483647 Ejemplo\: {1} +javax.faces.converter.LongConverter.LONG=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.LongConverter.LONG_detail=''{0}'' Debe ser un n\u00FAmero entre -9223372036854775808 y 9223372036854775807 Ejemplo\: {1} +javax.faces.converter.NumberConverter.CURRENCY=''{0}'' Formato de moneda incorrecto. +javax.faces.converter.NumberConverter.CURRENCY_detail=''{0}'' Formato de moneda incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.PERCENT=''{0}'' Formato de porcentaje incorrecto. +javax.faces.converter.NumberConverter.PERCENT_detail=''{0}'' Formato de porcentaje incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.NUMBER=''{0}'' No es un n\u00FAmero. +javax.faces.converter.NumberConverter.NUMBER_detail=''{0}'' No es un n\u00FAmero. Ejemplo\: {1} +javax.faces.converter.NumberConverter.PATTERN=''{0}'' No es un n\u00FAmero modelo. +javax.faces.converter.NumberConverter.PATTERN_detail=''{0}'' No es un n\u00FAmero modelo. Ejemplo\: {1} +javax.faces.converter.ShortConverter.SHORT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.ShortConverter.SHORT_detail=''{0}'' Debe ser un n\u00FAmero entre -32768 y 32767. Ejemplo\: {1} +javax.faces.converter.STRING=No se puede convertir ''{0}'' a un string. \ No newline at end of file diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class new file mode 100644 index 0000000..8fd997f Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class new file mode 100644 index 0000000..5abed3d Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class new file mode 100644 index 0000000..ce87e05 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class new file mode 100644 index 0000000..29da82e Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class new file mode 100644 index 0000000..8025b21 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class new file mode 100644 index 0000000..2dab75b Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class new file mode 100644 index 0000000..9a22961 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class new file mode 100644 index 0000000..cfdb9e2 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class new file mode 100644 index 0000000..700a87f Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class new file mode 100644 index 0000000..a5cfd32 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class new file mode 100644 index 0000000..b27dde5 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class new file mode 100644 index 0000000..b840dfd Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class new file mode 100644 index 0000000..caa1332 Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class differ diff --git a/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class new file mode 100644 index 0000000..8676b1f Binary files /dev/null and b/web/target/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class differ diff --git a/web/target/maven-archiver/pom.properties b/web/target/maven-archiver/pom.properties new file mode 100644 index 0000000..6209878 --- /dev/null +++ b/web/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Nov 11 13:12:54 ECT 2022 +version=2.1 +groupId=com.fp.armas +artifactId=portal-web diff --git a/web/target/portal-web.war b/web/target/portal-web.war new file mode 100644 index 0000000..c6bb066 Binary files /dev/null and b/web/target/portal-web.war differ diff --git a/web/target/portal-web/WEB-INF/.faces-config.xml.jsfdia b/web/target/portal-web/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/web/target/portal-web/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,2 @@ + + diff --git a/web/target/portal-web/WEB-INF/beans.xml b/web/target/portal-web/WEB-INF/beans.xml new file mode 100644 index 0000000..e7488ad --- /dev/null +++ b/web/target/portal-web/WEB-INF/beans.xml @@ -0,0 +1,25 @@ + + + + + + diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/base/BaseController.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/base/BaseController.class new file mode 100644 index 0000000..3510674 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/base/BaseController.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/registro/RegistroController.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/registro/RegistroController.class new file mode 100644 index 0000000..05c16f9 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/controller/registro/RegistroController.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class new file mode 100644 index 0000000..781bb72 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/base/BaseDataManager.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class new file mode 100644 index 0000000..9c5634d Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/datamanager/registro/RegistroDataManager.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/FacesUtil.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/FacesUtil.class new file mode 100644 index 0000000..dc3f31a Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/FacesUtil.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/listener/PortalListener.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/listener/PortalListener.class new file mode 100644 index 0000000..c947bea Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/faces/listener/PortalListener.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/CelularValidator.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/CelularValidator.class new file mode 100644 index 0000000..05aa984 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/CelularValidator.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/EmailValidator.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/EmailValidator.class new file mode 100644 index 0000000..a8d8e49 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/EmailValidator.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/IdentificacionValidator.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/IdentificacionValidator.class new file mode 100644 index 0000000..3af13d7 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/validator/IdentificacionValidator.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web/PortalWebResources.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web/PortalWebResources.class new file mode 100644 index 0000000..5580e9b Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web/PortalWebResources.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web_portal.properties b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web_portal.properties new file mode 100644 index 0000000..778efee --- /dev/null +++ b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/web_portal.properties @@ -0,0 +1,119 @@ +################################################### +##### S\u00edmbolos unicode +#####\u00e1 -> á +#####\u00e9 -> é +#####\u00ed -> í +#####\u00f3 -> ó +#####\u00fa -> ú +#####\u00c1 -> Á +#####\u00c9 -> É +#####\u00cd -> Í +#####\u00d3 -> Ó +#####\u00da -> Ú +#####\u00f1 -> ñ +#####\u00d1 -> Ñ +#####\u0020 -> Espacio en blanco +################################################### +##MENSAJES GENERALES +lbl_requeridos=Los campos marcados con (*) son obligatorios +##------------------------------------ +lbl_cargando=Cargando + +lbl_registro_usuario=Registro de Usuario +lbl_tipo_documento=Tipo Documento +lbl_numero_documento=N\u00FAmero Documento +lbl_datos_generales=Datos Generales +lbl_nombre_razon=Nombre/Raz\u00F3n Social +lbl_nombres=Nombres +lbl_nombre_completo=Nombre Completo +lbl_apellido_paterno=Apellido Paterno +lbl_apellido_materno=Apellido Materno +lbl_actividad_economica=Actividad Econ\u00F3mica +lbl_representate_legal=Representante Legal +lbl_cedula_representante=C\u00E9dula Representante Legal +lbl_pais_origen=Pa\u00EDs Origen +lbl_provincia=Provincia +lbl_canton=Cant\u00F3n +lbl_ciudad=Ciudad +lbl_parroquia=Parroquia +lbl_direccion=Direcci\u00F3n +lbl_telf_convencional=Tel\u00E9fono Convencional +lbl_telf_celular=Celular +lbl_estado_civil=Estado Civil +lbl_genero=G\u00E9nero +lbl_estatura=Estatura +lbl_profesion=Profesi\u00F3n +lbl_email=Correo Electr\u00F3nico +lbl_aceptar=Aceptar +lbl_masculino=Masculino +lbl_femenino=Femenino +lbl_cancelar=Cancelar +lbl_logo=Cargar Logotipo de la Empresa + +lbl_vista_expirada=Debido a la inactividad en el portal y por su seguridad, hemos redirigido la petici\u00F3n a otra p\u00E1gina, si desea regresar al registro de usuarios puede hacerlo desde +lbl_aqui=aqu\u00ED + +##MENSAJES DE ERRORES## +error.msg.persona.registrada=La persona ya est\u00E1 registrada, ingrese con su usuario y password +error.msg.cedula=El campo ingresado no es una C\u00E9dula v\u00E1lida +error.msg.ruc=El campo ingresado no es un RUC v\u00E1lido +error.campo.vacio=El campo es obligatorio +error.mail.incorrecto=El campo no es un mail v\u00E1lido +error.celular.incorrecto=El n\u00FAmero celular debe empezar con '09' +error_captcha=Captcha requerido +error_valor_captcha=Ingrese los valores correctos del captcha + +##MENSAJES NOTIFICACION + +mensaje.informativo.correo.enviado=Correo enviado +url.servidor.maia=https://tramitesarmas.ccffaa.mil.ec/frontend +url.servidor.registro=https://tramitesarmas.ccffaa.mil.ec/portal-web + +#URL DE LOS SERVICIOS MANEJADOS DESDE LA SNAP +url_snap_servicio_cedula=https://serviciosarmas.ccffaa.mil.ec:8085/serviceCedula?wsdl +url_snap_servicio_ruc=https://serviciosarmas.ccffaa.mil.ec:8085/serviceRUC?wsdl + +#Validaciones JSF +javax.faces.component.UIInput.REQUIRED=Valor obligatorio. +javax.faces.component.UIInput.REQUIRED_detail=Valor obligatorio. + +javax.faces.converter.BigDecimalConverter.DECIMAL=''{0}'' Debe ser un número decimal. +javax.faces.converter.BigDecimalConverter.DECIMAL_detail= El campo solo acepta n\u00FAmeros decimales. Ejemplo\: {1} +javax.faces.converter.BigIntegerConverter.BIGINTEGER=''{0}'' Entero de uno o mu00e1s d\u00EDgitos. +javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=''{0}'' Entero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.BooleanConverter.BOOLEAN=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.BooleanConverter.BOOLEAN_detail=''{0}'' Solo acepta 'Verdadero' o 'Falso'. +javax.faces.converter.ByteConverter.BYTE=''{0}'' Debe se un n\u00FAmero entre 0 y 255. +javax.faces.converter.ByteConverter.BYTE_detail=''{0}'' Debe ser un n\u00FAmero entre 0 y 255. +javax.faces.converter.CharacterConverter.CHARACTER=''{0}'' Debe ser un car\u00E1cter v\u00E1lido. +javax.faces.converter.CharacterConverter.CHARACTER_detail=''{0}'' Debe ser un car\u00E1cter ASCII v\u00E1lido. +javax.faces.converter.DateTimeConverter.DATE=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATE_detail=''{0}'' Formato de fecha incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.TIME=''{0}'' Formato de hora incorrecto. +javax.faces.converter.DateTimeConverter.TIME_detail=''{0}'' Formato de hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.DATETIME=''{0}'' Formato de fecha u hora incorrecto. +javax.faces.converter.DateTimeConverter.DATETIME_detail=''{0}'' Formato de fecha u hora incorrecto. Ejemplo: {1} +javax.faces.converter.DateTimeConverter.PATTERN_TYPE=Un 'modelo' o 'tipo' de atributo debe ser especificado para convertir el valor ''{0}''. +javax.faces.converter.DoubleConverter.DOUBLE=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.DoubleConverter.DOUBLE_detail=''{0}'' Debe ser un n\u00FAmero entre 4.9E-324 and 1.7976931348623157E308 Ejemplo\: {1} +javax.faces.converter.EnumConverter.ENUM=''{0}'' Debe ser convertible a una enumeración. +javax.faces.converter.EnumConverter.ENUM_detail=''{0}'' Convertible a una enumeración de la enumeración que contiene la constante ''{1}''. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=''{0}'' Debe ser convertible a una enumeración, pero no se provee la clase. +javax.faces.converter.FloatConverter.FLOAT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.FloatConverter.FLOAT_detail=''{0}'' Debe ser un n\u00FAmero entre 1.4E-45 y 3.4028235E38 Ejemplo\: {1} +javax.faces.converter.IntegerConverter.INTEGER=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.IntegerConverter.INTEGER_detail=''{0}'' Debe ser un n\u00FAmero entre -2147483648 y 2147483647 Ejemplo\: {1} +javax.faces.converter.LongConverter.LONG=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.LongConverter.LONG_detail=''{0}'' Debe ser un n\u00FAmero entre -9223372036854775808 y 9223372036854775807 Ejemplo\: {1} +javax.faces.converter.NumberConverter.CURRENCY=''{0}'' Formato de moneda incorrecto. +javax.faces.converter.NumberConverter.CURRENCY_detail=''{0}'' Formato de moneda incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.PERCENT=''{0}'' Formato de porcentaje incorrecto. +javax.faces.converter.NumberConverter.PERCENT_detail=''{0}'' Formato de porcentaje incorrecto. Ejemplo: {1} +javax.faces.converter.NumberConverter.NUMBER=''{0}'' No es un n\u00FAmero. +javax.faces.converter.NumberConverter.NUMBER_detail=''{0}'' No es un n\u00FAmero. Ejemplo\: {1} +javax.faces.converter.NumberConverter.PATTERN=''{0}'' No es un n\u00FAmero modelo. +javax.faces.converter.NumberConverter.PATTERN_detail=''{0}'' No es un n\u00FAmero modelo. Ejemplo\: {1} +javax.faces.converter.ShortConverter.SHORT=''{0}'' Debe ser un n\u00FAmero de uno o m\u00E1s d\u00EDgitos. +javax.faces.converter.ShortConverter.SHORT_detail=''{0}'' Debe ser un n\u00FAmero entre -32768 y 32767. Ejemplo\: {1} +javax.faces.converter.STRING=No se puede convertir ''{0}'' a un string. \ No newline at end of file diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class new file mode 100644 index 0000000..8fd997f Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicio.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class new file mode 100644 index 0000000..5abed3d Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/CedulaServicioService.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class new file mode 100644 index 0000000..ce87e05 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ClienteCedula.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class new file mode 100644 index 0000000..29da82e Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedula.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class new file mode 100644 index 0000000..8025b21 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ConsultarCedulaResponse.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class new file mode 100644 index 0000000..2dab75b Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/ObjectFactory.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class new file mode 100644 index 0000000..9a22961 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/cedula/package-info.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class new file mode 100644 index 0000000..cfdb9e2 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ClienteRUC.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class new file mode 100644 index 0000000..700a87f Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRuc.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class new file mode 100644 index 0000000..a5cfd32 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ConsultarRucResponse.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class new file mode 100644 index 0000000..b27dde5 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/ObjectFactory.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class new file mode 100644 index 0000000..b840dfd Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicio.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class new file mode 100644 index 0000000..caa1332 Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/RucServicioService.class differ diff --git a/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class new file mode 100644 index 0000000..8676b1f Binary files /dev/null and b/web/target/portal-web/WEB-INF/classes/com/fp/armas/portal/webservices/snap/ruc/package-info.class differ diff --git a/web/target/portal-web/WEB-INF/faces-config.xml b/web/target/portal-web/WEB-INF/faces-config.xml new file mode 100644 index 0000000..9654471 --- /dev/null +++ b/web/target/portal-web/WEB-INF/faces-config.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + com.fp.armas.portal.web_portal + msg_portal + + com.fp.armas.portal.web_portal + + + com.fp.armas.portal.faces.listener.PortalListener + + diff --git a/web/target/portal-web/WEB-INF/lib/commons-fileupload-1.3.jar b/web/target/portal-web/WEB-INF/lib/commons-fileupload-1.3.jar new file mode 100644 index 0000000..32f2360 Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/commons-fileupload-1.3.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/commons-io-2.4.jar b/web/target/portal-web/WEB-INF/lib/commons-io-2.4.jar new file mode 100644 index 0000000..90035a4 Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/commons-io-2.4.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/commons-lang3-3.1.jar b/web/target/portal-web/WEB-INF/lib/commons-lang3-3.1.jar new file mode 100644 index 0000000..a85e539 Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/commons-lang3-3.1.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/gson-2.2.4.jar b/web/target/portal-web/WEB-INF/lib/gson-2.2.4.jar new file mode 100644 index 0000000..75fe27c Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/gson-2.2.4.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/primefaces-5.0.jar b/web/target/portal-web/WEB-INF/lib/primefaces-5.0.jar new file mode 100644 index 0000000..d139e3d Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/primefaces-5.0.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/primefaces-extensions-2.0.0.jar b/web/target/portal-web/WEB-INF/lib/primefaces-extensions-2.0.0.jar new file mode 100644 index 0000000..313a9ce Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/primefaces-extensions-2.0.0.jar differ diff --git a/web/target/portal-web/WEB-INF/lib/slf4j-api-1.6.1.jar b/web/target/portal-web/WEB-INF/lib/slf4j-api-1.6.1.jar new file mode 100644 index 0000000..f1f4fdd Binary files /dev/null and b/web/target/portal-web/WEB-INF/lib/slf4j-api-1.6.1.jar differ diff --git a/web/target/portal-web/WEB-INF/templates/template.xhtml b/web/target/portal-web/WEB-INF/templates/template.xhtml new file mode 100644 index 0000000..6fc709f --- /dev/null +++ b/web/target/portal-web/WEB-INF/templates/template.xhtml @@ -0,0 +1,60 @@ + + + + + + + + + + Portal COMACO + + +
        + + +
        + + + + + Registro Usuarios + Portal Control de Armas + +
        +
        + + +
        +
        + +

        Copyright 2014, Derechos reservados, Dirección + Nacional de Control de Armas

        +

        + Desarrollado por: + +

        +
        +
        +
        +
        + + + + + + + +
        +
        + \ No newline at end of file diff --git a/web/target/portal-web/WEB-INF/web.xml b/web/target/portal-web/WEB-INF/web.xml new file mode 100644 index 0000000..cf5bdfc --- /dev/null +++ b/web/target/portal-web/WEB-INF/web.xml @@ -0,0 +1,60 @@ + + + Portal + portal-web + + + javax.faces.PROJECT_STAGE + Production + + + primefaces.THEME + comaco-theme + + + primefaces.PRIVATE_CAPTCHA_KEY + 6Lf-swATAAAAAOdJNdvFDEzQGRZBwGnZ_5q7qdI_ + + + primefaces.PUBLIC_CAPTCHA_KEY + 6Lf-swATAAAAAMT7_E5dQkjk8dmdblQVp4bBxUnW + + + javax.faces.FACELETS_SKIP_COMMENTS + true + + + + PrimeFaces FileUpload Filter + org.primefaces.webapp.filter.FileUploadFilter + + + PrimeFaces FileUpload Filter + Faces Servlet + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + Faces Servlet + *.faces + + + index.jsp + + + 500 + /pages/error/500.xhtml + + + 30 + + diff --git a/web/target/portal-web/index.jsp b/web/target/portal-web/index.jsp new file mode 100644 index 0000000..37ed513 --- /dev/null +++ b/web/target/portal-web/index.jsp @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/target/portal-web/pages/error/500.xhtml b/web/target/portal-web/pages/error/500.xhtml new file mode 100644 index 0000000..e342a74 --- /dev/null +++ b/web/target/portal-web/pages/error/500.xhtml @@ -0,0 +1,14 @@ + + + + + +   + + + \ No newline at end of file diff --git a/web/target/portal-web/pages/notificacion/home.xhtml b/web/target/portal-web/pages/notificacion/home.xhtml new file mode 100644 index 0000000..b6558fb --- /dev/null +++ b/web/target/portal-web/pages/notificacion/home.xhtml @@ -0,0 +1,17 @@ + + + + + + + +

        Se ha enviado un correo a la dirección proporcionada, el usuario y clave para ingresar al Sistema de Control de Armas, para ingresar a la aplicación lo puede hacer desde

        +
        +
        +
        +
        \ No newline at end of file diff --git a/web/target/portal-web/pages/registro/home.xhtml b/web/target/portal-web/pages/registro/home.xhtml new file mode 100644 index 0000000..c95395d --- /dev/null +++ b/web/target/portal-web/pages/registro/home.xhtml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/target/portal-web/resources/css/comaco.css b/web/target/portal-web/resources/css/comaco.css new file mode 100644 index 0000000..582ed75 --- /dev/null +++ b/web/target/portal-web/resources/css/comaco.css @@ -0,0 +1,26 @@ +@CHARSET "UTF-8"; +html, body { + background: #3c73bb; + width: 100%; + height: 100%; + padding: 0; + margin: 0; + overflow: auto; /* when page gets too small */ +} + +/*body { + background-color: #3c73bb; +}*/ +#container{ + background-color: #FFFFFF; + height: 100%; + margin: 0 auto; + width: 100%; + max-width: 1000px; + min-width: 900px; + +} + +.pane { + display: none; /* will appear when layout inits */ +} diff --git a/web/target/portal-web/resources/css/layout-default-latest.css b/web/target/portal-web/resources/css/layout-default-latest.css new file mode 100644 index 0000000..14e507b --- /dev/null +++ b/web/target/portal-web/resources/css/layout-default-latest.css @@ -0,0 +1,224 @@ +/* + * Default Layout Theme + * + * Created for jquery.layout + * + * Copyright (c) 2010 + * Fabrizio Balliano (http://www.fabrizioballiano.net) + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * Last Updated: 2010-02-10 + * NOTE: For best code readability, view this with a fixed-space font and tabs equal to 4-chars + */ + +/* + * DEFAULT FONT + * Just to make demo-pages look better - not actually relevant to Layout! + */ +body { + font-family: Geneva, Arial, Helvetica, sans-serif; + font-size: 100%; + *font-size: 80%; +} + +/* + * PANES & CONTENT-DIVs + */ +.ui-layout-pane { /* all 'panes' */ + background: #FFF; + border: 1px solid #BBB; + padding: 10px; + overflow: auto; + /* DO NOT add scrolling (or padding) to 'panes' that have a content-div, + otherwise you may get double-scrollbars - on the pane AND on the content-div + - use ui-layout-wrapper class if pane has a content-div + - use ui-layout-container if pane has an inner-layout + */ + } + /* (scrolling) content-div inside pane allows for fixed header(s) and/or footer(s) */ + .ui-layout-content { + padding: 10px; + position: relative; /* contain floated or positioned elements */ + overflow: auto; /* add scrolling to content-div */ + } + +/* + * UTILITY CLASSES + * Must come AFTER pane-class above so will override + * These classes are NOT auto-generated and are NOT used by Layout + */ +.layout-child-container, +.layout-content-container { + padding: 0; + overflow: hidden; +} +.layout-child-container { + border: 0; /* remove border because inner-layout-panes probably have borders */ +} +.layout-scroll { + overflow: auto; +} +.layout-hide { + display: none; +} + +/* + * RESIZER-BARS + */ +.ui-layout-resizer { /* all 'resizer-bars' */ + background: #DDD; + border: 1px solid #BBB; + border-width: 0; + } + .ui-layout-resizer-drag { /* REAL resizer while resize in progress */ + } + .ui-layout-resizer-hover { /* affects both open and closed states */ + } + /* NOTE: It looks best when 'hover' and 'dragging' are set to the same color, + otherwise color shifts while dragging when bar can't keep up with mouse */ + .ui-layout-resizer-open-hover , /* hover-color to 'resize' */ + .ui-layout-resizer-dragging { /* resizer beging 'dragging' */ + background: #C4E1A4; + } + .ui-layout-resizer-dragging { /* CLONED resizer being dragged */ + border: 1px solid #BBB; + } + .ui-layout-resizer-north-dragging, + .ui-layout-resizer-south-dragging { + border-width: 1px 0; + } + .ui-layout-resizer-west-dragging, + .ui-layout-resizer-east-dragging { + border-width: 0 1px; + } + /* NOTE: Add a 'dragging-limit' color to provide visual feedback when resizer hits min/max size limits */ + .ui-layout-resizer-dragging-limit { /* CLONED resizer at min or max size-limit */ + background: #E1A4A4; /* red */ + } + + .ui-layout-resizer-closed-hover { /* hover-color to 'slide open' */ + background: #EBD5AA; + } + .ui-layout-resizer-sliding { /* resizer when pane is 'slid open' */ + opacity: .10; /* show only a slight shadow */ + filter: alpha(opacity=10); + } + .ui-layout-resizer-sliding-hover { /* sliding resizer - hover */ + opacity: 1.00; /* on-hover, show the resizer-bar normally */ + filter: alpha(opacity=100); + } + /* sliding resizer - add 'outside-border' to resizer on-hover + * this sample illustrates how to target specific panes and states */ + .ui-layout-resizer-north-sliding-hover { border-bottom-width: 1px; } + .ui-layout-resizer-south-sliding-hover { border-top-width: 1px; } + .ui-layout-resizer-west-sliding-hover { border-right-width: 1px; } + .ui-layout-resizer-east-sliding-hover { border-left-width: 1px; } + +/* + * TOGGLER-BUTTONS + */ +.ui-layout-toggler { + border: 1px solid #BBB; /* match pane-border */ + background-color: #BBB; + } + .ui-layout-resizer-hover .ui-layout-toggler { + opacity: .60; + filter: alpha(opacity=60); + } + .ui-layout-toggler-hover , /* need when NOT resizable */ + .ui-layout-resizer-hover .ui-layout-toggler-hover { /* need specificity when IS resizable */ + background-color: #FC6; + opacity: 1.00; + filter: alpha(opacity=100); + } + .ui-layout-toggler-north , + .ui-layout-toggler-south { + border-width: 0 1px; /* left/right borders */ + } + .ui-layout-toggler-west , + .ui-layout-toggler-east { + border-width: 1px 0; /* top/bottom borders */ + } + /* hide the toggler-button when the pane is 'slid open' */ + .ui-layout-resizer-sliding .ui-layout-toggler { + display: none; + } + /* + * style the text we put INSIDE the togglers + */ + .ui-layout-toggler .content { + color: #666; + font-size: 12px; + font-weight: bold; + width: 100%; + padding-bottom: 0.35ex; /* to 'vertically center' text inside text-span */ + } + +/* + * PANE-MASKS + * these styles are hard-coded on mask elems, but are also + * included here as !important to ensure will overrides any generic styles + */ +.ui-layout-mask { + border: none !important; + padding: 0 !important; + margin: 0 !important; + overflow: hidden !important; + position: absolute !important; + opacity: 0 !important; + filter: Alpha(Opacity="0") !important; +} +.ui-layout-mask-inside-pane { /* masks always inside pane EXCEPT when pane is an iframe */ + top: 0 !important; + left: 0 !important; + width: 100% !important; + height: 100% !important; +} +div.ui-layout-mask {} /* standard mask for iframes */ +iframe.ui-layout-mask {} /* extra mask for objects/applets */ + +/* + * Default printing styles + */ +@media print { + /* + * Unless you want to print the layout as it appears onscreen, + * these html/body styles are needed to allow the content to 'flow' + */ + html { + height: auto !important; + overflow: visible !important; + } + body.ui-layout-container { + position: static !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + /* only IE6 has container width & height set by Layout */ + _width: auto !important; + _height: auto !important; + } + .ui-layout-resizer, .ui-layout-toggler { + display: none !important; + } + /* + * Default pane print styles disables positioning, borders and backgrounds. + * You can modify these styles however it suit your needs. + */ + .ui-layout-pane { + border: none !important; + background: transparent !important; + position: relative !important; + top: auto !important; + bottom: auto !important; + left: auto !important; + right: auto !important; + width: auto !important; + height: auto !important; + overflow: visible !important; + } +} \ No newline at end of file diff --git a/web/target/portal-web/resources/css/maia.css b/web/target/portal-web/resources/css/maia.css new file mode 100644 index 0000000..348d06a --- /dev/null +++ b/web/target/portal-web/resources/css/maia.css @@ -0,0 +1,622 @@ +/*** Estilos generales ***/ +*{ + margin: 0px; + padding: 0px; + font-family: Geneva,Arial,Helvetica,sans-serif; + font-size: 8pt; +} +/*iframe{ + width: 100% !important; + height: 100% !important; + border:none; +}*/ +body { + font-family: Geneva,Arial,Helvetica,sans-serif; + overflow: auto; + height: 100%; +} + +/* Para que se autoajuste los panels cuando crezca la informacion en el tab */ +html{ + /*padding-bottom: 30px;*/ + overflow: auto; +} + + +/*** Estilos sobreescritos ***/ +body.ui-layout-container{ + background: url("#{resource['images/degrade.gif']}") !important; +} +body.ui-layout-container .ui-widget-content { + background: none; +} +.ui-tabs-nav{ + width: 100%; + padding-right: 0px; +} +.ui-selectonemenu label.ui-selectonemenu-label { + cursor: pointer; +} +.ui-tabs{ + height: 95%; + border: none; +} +.ui-tabs-panels{ + width: 99%; +} +#tabs .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.6em !important; + background: #ffffff url("#{resource['images/logoagua.gif']}") bottom no-repeat !important; + background-position: 50% 200px !important; +} +.ui-tabs-panel { + position: absolute; + width: 99%; + height: 99%; + min-height: 250px; +} +.centerLayout .ui-layout-unit-content{ + overflow: hidden !important; +} +.ui-button-text-icon-left .ui-button-text { + height: 14px !important; +} +.ui-inputNum .ui-widget { + text-align:right; +} +.ui-messages{ + min-height: 25px; + margin-top: 3px; + margin-bottom: 2px; + margin-right: 15px; +} +.ui-messages-info, .ui-messages-warn, .ui-messages-error, .ui-messages-fatal { + margin: 0px !important; + padding: 8px 5px 5px 5px !important; +} +.ui-messages-info-icon, .ui-messages-warn-icon, .ui-messages-error-icon, .ui-messages-fatal-icon { + margin-top: -7px !important; +} +.ui-panelgrid .ui-panelgrid-header { + text-align: left !important; +} +.ui-panelgrid .ui-panelgrid-cell { + border-width: 0px !important; +} + +input.ui-inputfield, .ui-selectonemenu{ + height: 20px !important; + padding: 0px 4px 0px 4px; +} +input.ui-state-disabled, input.ui-widget-content .ui-state-disabled, input.ui-widget-header .ui-state-disabled { + background: none !important; + opacity: .80 !important; + filter: Alpha(Opacity=80) !important; + background-color: #F5F5F5 !important; +} +label.ui-state-error, label.ui-widget-content .ui-state-error, label.ui-widget-header.ui-state-error { + border: none !important; + background: none !important; +} +input.ui-state-default, .ui-widget-content input.ui-state-default, .ui-widget-header input.ui-state-default, div.ui-selectonemenu{ + background: none; + background-color: #ffffff; + font-weight: normal !important; + color: #000000 !important; +} +div.ui-selectonemenu{ + background: none !important; + background-color: #FFFFFF !important; +} +ul.ui-widget-content{ + background-color: #ffffff !important; +} +.ui-selectonemenu label.ui-selectonemenu-label { + width: 100% !important; + padding-top: 1px !important; + height: 15px; +} +.ui-selectonemenu-panel .ui-selectonemenu-list-item { + padding: 2px 5px !important; + font-size: 95%; +} +.ui-datatable{ + margin-bottom: 10px; +} +.ui-dialog-content{ + background-color: #ffffff !important; + overflow-y: auto !important; + width: auto; + padding: .5em .5em !important; +} +.ui-menuitem-link{ + color: #ffffff; +} +.ui-panelmenu .ui-panelmenu-panel { + margin-bottom: 1px !important; +} +.ui-panelmenu .ui-panelmenu-header { + height: 20px; +} +.ui-panelmenu .ui-panelmenu-header a { + padding: .3em .5em .5em 2.2em !important; +} +.ui-widget-content a { + color: #ffffff; +} +h3.ui-state-active, h3.ui-widget-content h3.ui-state-active, h3.ui-widget-header h3.ui-state-active { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-default, h3.ui-widget-content h3.ui-state-default, h3.ui-widget-header h3.ui-state-default { + border: none !important; + background: none !important; + color: #ffffff; +} +h3.ui-state-hover a, h3.ui-state-hover a:hover, h3.ui-state-hover a:link, h3.ui-state-hover a:visited { + color: #C6DEE9; +} +.ui-panelmenu .ui-icon-triangle-1-e +{ + background-position: 0 -96px; +} +.ui-panelmenu .ui-icon-triangle-1-s +{ + background-position: -16px -96px; +} +.ui-panelmenu .ui-widget-content +{ + border: none !important; +} +.ui-panelmenu .ui-menuitem-link{ + padding: 0.3em 0.3em 0.3em 0.6em !important; +} +.ui-panelmenu .ui-menu-parent .ui-menu-list { + margin-left: 10px !important; +} +.ui-widget-overlay { + height: 100% !important; +} +.ui-selectonemenu-panel .ui-selectonemenu-table td { + border-color: white !important; + white-space: nowrap; +} + +.ui-selectonemenu-panel .ui-selectonemenu-items-wrapper { + overflow-y: auto !important; + overflow-x: hidden !important; +} +.ui-layout-unit .ui-layout-unit-content { + padding: 0.2em 0em !important; + border: 0px none !important; + overflow: hidden; +} + + +.ui-wizard-step-title { + font-size: 12px !important; +} + + + + + + + + + + + +/** Estilos propios **************************************************/ +tbody td{ + padding-top: 1px !important; + padding-bottom: 1px !important; +} +/** Propiedad para hacer referencia al tab activo y que se ubique al frente de todos **/ +div[aria-hidden="false"]{ + visibility: visible; + z-index: 20; +} +/** Propiedad para hacer referencia a los tabs inactivos y que se ubiquen al fondo **/ +div[aria-hidden="true"]{ + visibility: hidden; + z-index: 10; +} +.m-number-align { + text-align:right; +} +.m-form-login{ + width: 700px; + height: 370px; + position: relative; + top: 20%; + left: 0%; + margin: 0 auto; + background-image: url("#{resource['images/index.gif']}") !important; + background-repeat: no-repeat; +} +.m-panel-login{ + left: 20%; + position: relative; + top: 11%; + background-image: url("#{resource['images/fondo.png']}") !important; + background-repeat: no-repeat; + height: 190px; +} +.m-panel-login-content{ + position: relative; + top: 0%; + left: 20%; + min-width: 390px; +} +.m-panel-login-content input, .m-panel-login-content .ui-selectonemenu{ + width: 175px !important; +} +.m-panel-login-content label.ui-outputlabel{ + color: white !important; + background: none; +} +.m-icon-button{ + width: 26px; + height: 26px; + background-repeat: no-repeat !important; +} +.m-icon-close { + background-image: url("#{resource['images/icons/close.png']}") !important; +} +.m-icon-f2 { + background-image: url("#{resource['images/icons/f2.png']}") !important; +} +.m-icon-f4 { + background-image: url("#{resource['images/icons/f4.png']}") !important; +} +.m-icon-f5 { + background-image: url("#{resource['images/icons/f5.png']}") !important; +} +.m-icon-f10 { + background-image: url("#{resource['images/icons/f10.png']}") !important; +} +.m-icon-f1 { + background-image: url("#{resource['images/icons/f1.png']}") !important; +} + + +.m-filters, .ui-panelgrid{ + margin-bottom: 8px; + border: 1px solid #a6c9e2; + border-collapse: collapse; +} +.m-filters tr{ + /**border: none;**/ +} +.m-filters label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-filters input{ + margin-right: 10px; +} +.m-filters tbody td, .ui-panelgrid tbody td{ + padding-right: 2px !important; + padding-left: 2px !important; + border: none; +} +.m-filters tbody tr td:first-child, .ui-panelgrid tbody tr td:first-child{ + padding-left: 10px !important; +} +.m-data-content{ + min-width: 300px; + max-width: 99%; + width: auto; +} +.m-data-content .ui-datatable-tablewrapper td{ + white-space: normal !important; +} +.m-controls{ + margin-bottom: 2px; +} + +.m-dialog .ui-message-error { + background-color: transparent !important; + border-color: transparent !important; +} +.m-dialog .ui-messages { + min-height: 10px; + height: auto; +} +.m-dialog label{ + font-weight: bold; + color: rgb(90, 78, 78); +} +.m-action-column{ + width: 15px; +} +.m-action-button{ + width: 24px; + height: 18px; + margin-left: 4px; + border-radius: 0px !important; + -moz-border-radius: 0px !important; + -webkit-border-radius: 0px !important; + -khtml-border-radius: 0px !important; +} +.m-action-button .ui-icon{ + top: 42% !important; +} +.m-lov-button{ + position: relative !important; +} +a.m-menuitem{ + min-width: 95%; + width: auto; +} +.m-profile{ + background: url("#{resource['images/logo-maia.png']}") no-repeat scroll 100% 0% transparent !important; + float: right; + position: fixed; + right: 0%; +} +.m-profile-controls{ + position: relative; + left: -230px; +} +.m-profile-controls label{ + color: #FFFFFF; + font-weight: bold; +} +.m-user-info{ + height: 100%; + float: right; +} +.m-user-info-button{ + margin-top: 2px; + width: 100%; + height: 23px; +} +.m-layout-top{ + background: url("#{resource['images/logoSBS.png']}") !important; + background-repeat: no-repeat !important; + border: none !important; + z-index: 30 !important; +} +.m-layout-top .ui-layout-unit-content{ + overflow: hidden !important; + height: 105% !important; +} +/* Usado en maia.js en el metodo upper para transformacion en mayuscula */ +.m-upper-case{ + text-transform: uppercase; +} +/* Alinea un campo a la derecha */ +.m-number{ + text-align:right; +} + +.m-dialog{ + min-width: 400px !important; + width: auto; + overflow: visible; +} +.m-dialog .ui-dialog-content form{ + width: 100%; + margin-top: 0px; +} +.m-location{ + background-color: #FCFCFC; + width: 250px; + height: 180px; + position: fixed; + top: 87px; + right: 3px; + border: 1px solid #79b7e7; + border-radius: 10px 0px 10px 10px; + -moz-border-radius: 10px 0px 10px 10px; + -webkit-border-radius: 10px 0px 10px 10px; + -khtml-border-radius: 10px 0px 10px 10px; + z-index: 2000 !important; +} +.m-location td{ + height: 23px; +} +.transaccion-display{ + display: flex; + width: 200px; + height: 30px; + background-color: #4A8FCE; + position: fixed; + bottom: 0px; + border: 1px solid #FFFFFF; +} +.transaccion-display input{ + margin-top: 0px; + margin-left: 3px; + height: 20px; +} + +.transaccion-display button{ + margin-top: 2px; + margin-left: 3px; + height: 20px; + width: 20px; +} + +.m-bpm-log-title{ + position: relative; + left: 50%; + font-weight: bold; + text-transform: uppercase; +} +.m-float-l{ + float: left; +} +.m-float-r{ + float: right; +} + +/* BPM */ +.m-flow-container{ + position: relative; + top: 2px; + left: 0px; + overflow: auto; + width: 100%; + height: 320px; + background-color: #FFFFFF; + border-width: 1px; + border-style: inset; +} +.m-image-flow{ + position: relative; + top: 0px; + left: 0px; +} +.done { + background-color: #00FF00; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.common { + opacity: 0.3; +} +.sub { + background-color: #55EEDD; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} +.act { + background-color: #FF0000; + border-radius: 14px; + -moz-border-radius: 14px; + -webkit-border-radius: 14px; + -khtml-border-radius: 14px; + margin-left: 20px; +} + +/* Estilos tabs side */ +.m-tabs-side{ + width: 98%; +} +.m-tabs-side .ui-tabs-panels .ui-tabs-panel { + background: none !important; + padding-left: 0em !important; + overflow: auto; +} + +.m-tabs-side .ui-tabs-panel { + width: 98% !important; +} + +/*Estilos tbas BPM*/ +.m-side-form{ + height: 100%; + width: 99%; +} +.m-bpm-data{ +} + +.m-bpm-data-old{ + position: absolute; + z-index: 100; + bottom: 70px; + width: 100%; +} +.m-bpm-data table{ + width: 100%; +} +.m-bpm-data textarea, .m-bpm-data select{ + width: 100%; +} +.m-bpm-data textarea{ + height: 50px; + +} +.m-tabs-side .ui-panelgrid tbody tr td:first-child{ + padding-left: 0px !important; +} +.m-tab-inner{ + height: auto !important; +} +.m-tab-inner .ui-tabs-nav{ + background: none; +} + +.m-tab-inner .ui-tabs-panels .ui-tabs-panel { + padding: 0.4em 0em 0em 0.2em !important; +} +.m-tabs-side .ui-accordion-header{ + background: #FFFFFF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + min-height: 11px; + height: auto; +} +.m-tabs-side .ui-accordion-header a{ + color: #707070 !important; + margin-top: -7px; +} +.m-tabs-side .ui-accordion{ + background-color: #E4E6E7; + border-radius: 8px; + -moz-border-radius: 8px; + -khtml-border-radius: 8px; + -webkit-border-radius: 8px; +} +.m-tabs-side .ui-accordion .ui-accordion-content{ + padding: 0.4em 1.8em 0.5em 2em !important; +} +.m-tabs-side table{ + border: none !important; + margin-bottom: 5px !important; +} +.m-tabs-side table tr{ + border: none !important; +} +.m-accordion-detail .ui-accordion-header{ + background: #CACBCF !important; + border-radius: 4px; + -moz-border-radius: 4px; + -khtml-border-radius: 4px; + -webkit-border-radius: 4px; + margin-top: 5px !important; +} + +/*CFLORES*/ +.m-accordion-detail .ui-accordion-header a{ + color: #4A4A4B !important; +} + + .ui-state-active a:link, .ui-state-active a:visited{ + color: #6fa925 !important; +} +.m-accordion-detail .ui-accordion-content{ + background-color: #FFFFFF !important; + border-radius: 0px 0px 8px 8px; + -moz-border-radius: 0px 0px 8px 8px; + -khtml-border-radius: 0px 0px 8px 8px; + -webkit-border-radius: 0px 0px 8px 8px; + margin-top: -3px !important; + border: solid 1px #CACBCF; +} + +.m-white-space-mormal{ + white-space: normal !important; +} + +textarea { + background : #F5F5F5 !important; + border: 1px solid #c5dbec !important; + font-family: Geneva,Arial,Helvetica,sans-serif !important; + color: #000 !important; + opacity: 0.8 !important; +} + +/*CFLORES*/ diff --git a/web/target/portal-web/resources/images/ajaxloadingbar.gif b/web/target/portal-web/resources/images/ajaxloadingbar.gif new file mode 100644 index 0000000..47adbf0 Binary files /dev/null and b/web/target/portal-web/resources/images/ajaxloadingbar.gif differ diff --git a/web/target/portal-web/resources/images/escudoarmas.png b/web/target/portal-web/resources/images/escudoarmas.png new file mode 100644 index 0000000..bce5554 Binary files /dev/null and b/web/target/portal-web/resources/images/escudoarmas.png differ diff --git a/web/target/portal-web/resources/images/escudoarmas1.png b/web/target/portal-web/resources/images/escudoarmas1.png new file mode 100644 index 0000000..a207edd Binary files /dev/null and b/web/target/portal-web/resources/images/escudoarmas1.png differ diff --git a/web/target/portal-web/resources/js/comaco.js b/web/target/portal-web/resources/js/comaco.js new file mode 100644 index 0000000..163d0bd --- /dev/null +++ b/web/target/portal-web/resources/js/comaco.js @@ -0,0 +1,99 @@ +/** + * Mantener funciones en un solo formato + */ +var comaco = { + upperText:function(event, element){ + var e = event || window.event; + var k = null; + if(e.which) k = e.which; + else if(e.keyCode) k = e.keyCode; + + //Control para permitir ctrl+c, ctrl+v, ctrl+x + if(e.ctrlKey==true && k==99) + return true; + if(e.ctrlKey==true && k==118) + return true; + if(e.ctrlKey==true && k==120) + return true; + + if(k==8 || k==16 || k==39 || k==37 || e.shiftKey){ + return true; + } + + $(element).addClass("m-upper-case"); + var x = this.doGetCaretPosition(element); + element.value=element.value.toUpperCase(); + this.doSetCaretPosition(element,x); + }, + doGetCaretPosition: function(oField) { + var iCaretPos = 0; + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + // Move selection start to 0 position + oSel.moveStart ('character', -oField.value.length); + // The caret position is selection length + iCaretPos = oSel.text.length; + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + iCaretPos = oField.selectionStart; + return (iCaretPos); + }, + doSetCaretPosition: function (oField, iCaretPos) + { + if (document.selection) // IE Support + { + oField.focus(); + var oSel = document.selection.createRange(); + oSel.moveStart('character', -oField.value.length); + oSel.moveStart('character', iCaretPos); + oSel.moveEnd('character', 0); + oSel.select(); + } + else + if (oField.selectionStart || oField.selectionStart == '0') // Firefox support + { + oField.selectionStart = iCaretPos; + oField.selectionEnd = iCaretPos; + oField.focus(); + } + }, + keyLocks: function (e) + { + var key; + if(window.event) + { + key = window.event.keyCode; + if(key == 116 || key == 122) + { + event.keyCode=0; + event.returnValue=false; + } + } + else + { + key = e.which; + if(key == 116||key == 122) + { + return true; + } + } + } +}; + +$(document).ready(function () { + $('#container').layout({ applyDemoStyles: true, + north: { + closable: false, + resizable: false + } + , south: { + closable: false, + resizable: false + } + }); + document.oncontextmenu = new Function("return false"); + window.history.forward(); +}); diff --git a/web/target/portal-web/resources/js/jquery.layout-latest.js b/web/target/portal-web/resources/js/jquery.layout-latest.js new file mode 100644 index 0000000..a16642b --- /dev/null +++ b/web/target/portal-web/resources/js/jquery.layout-latest.js @@ -0,0 +1,6083 @@ +/** + * @preserve + * jquery.layout 1.4.3 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * $Rev: 1.0403 $ + * + * Copyright (c) 2014 Kevin Dalman (http://jquery-dev.com) + * Based on work by Fabrizio Balliano (http://www.fabrizioballiano.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * SEE: http://layout.jquery-dev.com/LICENSE.txt + * + * Changelog: http://layout.jquery-dev.com/changelog.cfm + * + * Docs: http://layout.jquery-dev.com/documentation.html + * Tips: http://layout.jquery-dev.com/tips.html + * Help: http://groups.google.com/group/jquery-ui-layout + */ + +/* JavaDoc Info: http://code.google.com/closure/compiler/docs/js-for-compiler.html + * {!Object} non-nullable type (never NULL) + * {?string} nullable type (sometimes NULL) - default for {Object} + * {number=} optional parameter + * {*} ALL types + */ +/* TODO for jQ 2.0 + * change .andSelf() to .addBack() + * check $.fn.disableSelection - this is in jQuery UI 1.9.x + */ + +// NOTE: For best readability, view with a fixed-width font and tabs equal to 4-chars + +;(function ($) { + +// alias Math methods - used a lot! +var min = Math.min +, max = Math.max +, round = Math.floor + +, isStr = function (v) { return $.type(v) === "string"; } + + /** + * @param {!Object} Instance + * @param {Array.} a_fn + */ +, runPluginCallbacks = function (Instance, a_fn) { + if ($.isArray(a_fn)) + for (var i=0, c=a_fn.length; i').appendTo("body") + , d = { width: $c.outerWidth - $c[0].clientWidth, height: 100 - $c[0].clientHeight }; + $c.remove(); + window.scrollbarWidth = d.width; + window.scrollbarHeight = d.height; + return dim.match(/^(width|height)$/) ? d[dim] : d; + } + + +, disableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled' + , x = 'textSelectionInitialized' + ; + if ($.fn.disableSelection) { + if (!$d.data(x)) // document hasn't been initialized yet + $d.on('mouseup', $.layout.enableTextSelection ).data(x, true); + if (!$d.data(s)) + $d.disableSelection().data(s, true); + } + } +, enableTextSelection: function () { + var $d = $(document) + , s = 'textSelectionDisabled'; + if ($.fn.enableSelection && $d.data(s)) + $d.enableSelection().data(s, false); + } + + + /** + * Returns hash container 'display' and 'visibility' + * + * @see $.swap() - swaps CSS, runs callback, resets CSS + * @param {!Object} $E jQuery element + * @param {boolean=} [force=false] Run even if display != none + * @return {!Object} Returns current style props, if applicable + */ +, showInvisibly: function ($E, force) { + if ($E && $E.length && (force || $E.css("display") === "none")) { // only if not *already hidden* + var s = $E[0].style + // save ONLY the 'style' props because that is what we must restore + , CSS = { display: s.display || '', visibility: s.visibility || '' }; + // show element 'invisibly' so can be measured + $E.css({ display: "block", visibility: "hidden" }); + return CSS; + } + return {}; + } + + /** + * Returns data for setting size of an element (container or a pane). + * + * @see _create(), onWindowResize() for container, plus others for pane + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, outerWidth, innerHeight, etc + */ +, getElementDimensions: function ($E, inset) { + var + // dimensions hash - start with current data IF passed + d = { css: {}, inset: {} } + , x = d.css // CSS hash + , i = { bottom: 0 } // TEMP insets (bottom = complier hack) + , N = $.layout.cssNum + , R = Math.round + , off = $E.offset() + , b, p, ei // TEMP border, padding + ; + d.offsetLeft = off.left; + d.offsetTop = off.top; + + if (!inset) inset = {}; // simplify logic below + + $.each("Left,Right,Top,Bottom".split(","), function (idx, e) { // e = edge + b = x["border" + e] = $.layout.borderWidth($E, e); + p = x["padding"+ e] = $.layout.cssNum($E, "padding"+e); + ei = e.toLowerCase(); + d.inset[ei] = inset[ei] >= 0 ? inset[ei] : p; // any missing insetX value = paddingX + i[ei] = d.inset[ei] + b; // total offset of content from outer side + }); + + x.width = R($E.width()); + x.height = R($E.height()); + x.top = N($E,"top",true); + x.bottom = N($E,"bottom",true); + x.left = N($E,"left",true); + x.right = N($E,"right",true); + + d.outerWidth = R($E.outerWidth()); + d.outerHeight = R($E.outerHeight()); + // calc the TRUE inner-dimensions, even in quirks-mode! + d.innerWidth = max(0, d.outerWidth - i.left - i.right); + d.innerHeight = max(0, d.outerHeight - i.top - i.bottom); + // layoutWidth/Height is used in calcs for manual resizing + // layoutW/H only differs from innerW/H when in quirks-mode - then is like outerW/H + d.layoutWidth = R($E.innerWidth()); + d.layoutHeight = R($E.innerHeight()); + + //if ($E.prop('tagName') === 'BODY') { debugData( d, $E.prop('tagName') ); } // DEBUG + + //d.visible = $E.is(":visible");// && x.width > 0 && x.height > 0; + + return d; + } + +, getElementStyles: function ($E, list) { + var + CSS = {} + , style = $E[0].style + , props = list.split(",") + , sides = "Top,Bottom,Left,Right".split(",") + , attrs = "Color,Style,Width".split(",") + , p, s, a, i, j, k + ; + for (i=0; i < props.length; i++) { + p = props[i]; + if (p.match(/(border|padding|margin)$/)) + for (j=0; j < 4; j++) { + s = sides[j]; + if (p === "border") + for (k=0; k < 3; k++) { + a = attrs[k]; + CSS[p+s+a] = style[p+s+a]; + } + else + CSS[p+s] = style[p+s]; + } + else + CSS[p] = style[p]; + }; + return CSS + } + + /** + * Return the innerWidth for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerWidth (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerWidth of the elem by subtracting padding and borders + */ +, cssWidth: function ($E, outerWidth) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerWidth <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , W = outerWidth + ; + // strip border and/or padding from outerWidth to get CSS Width + if (bs !== "border-box") + W -= (b($E, "Left") + b($E, "Right")); + if (bs === "content-box") + W -= (n($E, "paddingLeft") + n($E, "paddingRight")); + return max(0,W); + } + + /** + * Return the innerHeight for the current browser/doctype + * + * @see initPanes(), sizeMidPanes(), initHandles(), sizeHandles() + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {number=} outerHeight (optional) Can pass a width, allowing calculations BEFORE element is resized + * @return {number} Returns the innerHeight of the elem by subtracting padding and borders + */ +, cssHeight: function ($E, outerHeight) { + // a 'calculated' outerHeight can be passed so borders and/or padding are removed if needed + if (outerHeight <= 0) return 0; + + var lb = $.layout.browser + , bs = !lb.boxModel ? "border-box" : lb.boxSizing ? $E.css("boxSizing") : "content-box" + , b = $.layout.borderWidth + , n = $.layout.cssNum + , H = outerHeight + ; + // strip border and/or padding from outerHeight to get CSS Height + if (bs !== "border-box") + H -= (b($E, "Top") + b($E, "Bottom")); + if (bs === "content-box") + H -= (n($E, "paddingTop") + n($E, "paddingBottom")); + return max(0,H); + } + + /** + * Returns the 'current CSS numeric value' for a CSS property - 0 if property does not exist + * + * @see Called by many methods + * @param {Array.} $E Must pass a jQuery object - first element is processed + * @param {string} prop The name of the CSS property, eg: top, width, etc. + * @param {boolean=} [allowAuto=false] true = return 'auto' if that is value; false = return 0 + * @return {(string|number)} Usually used to get an integer value for position (top, left) or size (height, width) + */ +, cssNum: function ($E, prop, allowAuto) { + if (!$E.jquery) $E = $($E); + var CSS = $.layout.showInvisibly($E) + , p = $.css($E[0], prop, true) + , v = allowAuto && p=="auto" ? p : Math.round(parseFloat(p) || 0); + $E.css( CSS ); // RESET + return v; + } + +, borderWidth: function (el, side) { + if (el.jquery) el = el[0]; + var b = "border"+ side.substr(0,1).toUpperCase() + side.substr(1); // left => Left + return $.css(el, b+"Style", true) === "none" ? 0 : Math.round(parseFloat($.css(el, b+"Width", true)) || 0); + } + + /** + * Mouse-tracking utility - FUTURE REFERENCE + * + * init: if (!window.mouse) { + * window.mouse = { x: 0, y: 0 }; + * $(document).mousemove( $.layout.trackMouse ); + * } + * + * @param {Object} evt + * +, trackMouse: function (evt) { + window.mouse = { x: evt.clientX, y: evt.clientY }; + } + */ + + /** + * SUBROUTINE for preventPrematureSlideClose option + * + * @param {Object} evt + * @param {Object=} el + */ +, isMouseOverElem: function (evt, el) { + var + $E = $(el || this) + , d = $E.offset() + , T = d.top + , L = d.left + , R = L + $E.outerWidth() + , B = T + $E.outerHeight() + , x = evt.pageX // evt.clientX ? + , y = evt.pageY // evt.clientY ? + ; + // if X & Y are < 0, probably means is over an open SELECT + return ($.layout.browser.msie && x < 0 && y < 0) || ((x >= L && x <= R) && (y >= T && y <= B)); + } + + /** + * Message/Logging Utility + * + * @example $.layout.msg("My message"); // log text + * @example $.layout.msg("My message", true); // alert text + * @example $.layout.msg({ foo: "bar" }, "Title"); // log hash-data, with custom title + * @example $.layout.msg({ foo: "bar" }, true, "Title", { sort: false }); -OR- + * @example $.layout.msg({ foo: "bar" }, "Title", { sort: false, display: true }); // alert hash-data + * + * @param {(Object|string)} info String message OR Hash/Array + * @param {(Boolean|string|Object)=} [popup=false] True means alert-box - can be skipped + * @param {(Object|string)=} [debugTitle=""] Title for Hash data - can be skipped + * @param {Object=} [debugOpts] Extra options for debug output + */ +, msg: function (info, popup, debugTitle, debugOpts) { + if ($.isPlainObject(info) && window.debugData) { + if (typeof popup === "string") { + debugOpts = debugTitle; + debugTitle = popup; + } + else if (typeof debugTitle === "object") { + debugOpts = debugTitle; + debugTitle = null; + } + var t = debugTitle || "log( )" + , o = $.extend({ sort: false, returnHTML: false, display: false }, debugOpts); + if (popup === true || o.display) + debugData( info, t, o ); + else if (window.console) + console.log(debugData( info, t, o )); + } + else if (popup) + alert(info); + else if (window.console) + console.log(info); + else { + var id = "#layoutLogger" + , $l = $(id); + if (!$l.length) + $l = createLog(); + $l.children("ul").append('
      • '+ info.replace(/\/g,">") +'
      • '); + } + + function createLog () { + var pos = $.support.fixedPosition ? 'fixed' : 'absolute' + , $e = $('
        ' + + '
        ' + + 'XLayout console.log
        ' + + '
          ' + + '
          ' + ).appendTo("body"); + $e.css('left', $(window).width() - $e.outerWidth() - 5) + if ($.ui.draggable) $e.draggable({ handle: ':first-child' }); + return $e; + }; + } + +}; + + +/* + * $.layout.browser REPLACES removed $.browser, with extra data + * Parsing code here adapted from jQuery 1.8 $.browse + */ +(function(){ + var u = navigator.userAgent.toLowerCase() + , m = /(chrome)[ \/]([\w.]+)/.exec( u ) + || /(webkit)[ \/]([\w.]+)/.exec( u ) + || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( u ) + || /(msie) ([\w.]+)/.exec( u ) + || u.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( u ) + || [] + , b = m[1] || "" + , v = m[2] || 0 + , ie = b === "msie" + , cm = document.compatMode + , $s = $.support + , bs = $s.boxSizing !== undefined ? $s.boxSizing : $s.boxSizingReliable + , bm = !ie || !cm || cm === "CSS1Compat" || $s.boxModel || false + , lb = $.layout.browser = { + version: v + , safari: b === "webkit" // webkit (NOT chrome) = safari + , webkit: b === "chrome" // chrome = webkit + , msie: ie + , isIE6: ie && v == 6 + // ONLY IE reverts to old box-model - Note that compatMode was deprecated as of IE8 + , boxModel: bm + , boxSizing: !!(typeof bs === "function" ? bs() : bs) + }; + ; + if (b) lb[b] = true; // set CURRENT browser + /* OLD versions of jQuery only set $.support.boxModel after page is loaded + * so if this is IE, use support.boxModel to test for quirks-mode (ONLY IE changes boxModel) */ + if (!bm && !cm) $(function(){ lb.boxModel = $s.boxModel; }); +})(); + + +// DEFAULT OPTIONS +$.layout.defaults = { +/* + * LAYOUT & LAYOUT-CONTAINER OPTIONS + * - none of these options are applicable to individual panes + */ + name: "" // Not required, but useful for buttons and used for the state-cookie +, containerClass: "ui-layout-container" // layout-container element +, inset: null // custom container-inset values (override padding) +, scrollToBookmarkOnLoad: true // after creating a layout, scroll to bookmark in URL (.../page.htm#myBookmark) +, resizeWithWindow: true // bind thisLayout.resizeAll() to the window.resize event +, resizeWithWindowDelay: 200 // delay calling resizeAll because makes window resizing very jerky +, resizeWithWindowMaxDelay: 0 // 0 = none - force resize every XX ms while window is being resized +, maskPanesEarly: false // true = create pane-masks on resizer.mouseDown instead of waiting for resizer.dragstart +, onresizeall_start: null // CALLBACK when resizeAll() STARTS - NOT pane-specific +, onresizeall_end: null // CALLBACK when resizeAll() ENDS - NOT pane-specific +, onload_start: null // CALLBACK when Layout inits - after options initialized, but before elements +, onload_end: null // CALLBACK when Layout inits - after EVERYTHING has been initialized +, onunload_start: null // CALLBACK when Layout is destroyed OR onWindowUnload +, onunload_end: null // CALLBACK when Layout is destroyed OR onWindowUnload +, initPanes: true // false = DO NOT initialize the panes onLoad - will init later +, showErrorMessages: true // enables fatal error messages to warn developers of common errors +, showDebugMessages: false // display console-and-alert debug msgs - IF this Layout version _has_ debugging code! +// Changing this zIndex value will cause other zIndex values to automatically change +, zIndex: null // the PANE zIndex - resizers and masks will be +1 +// DO NOT CHANGE the zIndex values below unless you clearly understand their relationships +, zIndexes: { // set _default_ z-index values here... + pane_normal: 0 // normal z-index for panes + , content_mask: 1 // applied to overlays used to mask content INSIDE panes during resizing + , resizer_normal: 2 // normal z-index for resizer-bars + , pane_sliding: 100 // applied to *BOTH* the pane and its resizer when a pane is 'slid open' + , pane_animate: 1000 // applied to the pane when being animated - not applied to the resizer + , resizer_drag: 10000 // applied to the CLONED resizer-bar when being 'dragged' + } +, errors: { + pane: "pane" // description of "layout pane element" - used only in error messages + , selector: "selector" // description of "jQuery-selector" - used only in error messages + , addButtonError: "Error Adding Button\nInvalid " + , containerMissing: "UI Layout Initialization Error\nThe specified layout-container does not exist." + , centerPaneMissing: "UI Layout Initialization Error\nThe center-pane element does not exist.\nThe center-pane is a required element." + , noContainerHeight: "UI Layout Initialization Warning\nThe layout-container \"CONTAINER\" has no height.\nTherefore the layout is 0-height and hence 'invisible'!" + , callbackError: "UI Layout Callback Error\nThe EVENT callback is not a valid function." + } +/* + * PANE DEFAULT SETTINGS + * - settings under the 'panes' key become the default settings for *all panes* + * - ALL pane-options can also be set specifically for each panes, which will override these 'default values' + */ +, panes: { // default options for 'all panes' - will be overridden by 'per-pane settings' + applyDemoStyles: false // NOTE: renamed from applyDefaultStyles for clarity + , closable: true // pane can open & close + , resizable: true // when open, pane can be resized + , slidable: true // when closed, pane can 'slide open' over other panes - closes on mouse-out + , initClosed: false // true = init pane as 'closed' + , initHidden: false // true = init pane as 'hidden' - no resizer-bar/spacing + // SELECTORS + //, paneSelector: "" // MUST be pane-specific - jQuery selector for pane + , contentSelector: ".ui-layout-content" // INNER div/element to auto-size so only it scrolls, not the entire pane! + , contentIgnoreSelector: ".ui-layout-ignore" // element(s) to 'ignore' when measuring 'content' + , findNestedContent: false // true = $P.find(contentSelector), false = $P.children(contentSelector) + // GENERIC ROOT-CLASSES - for auto-generated classNames + , paneClass: "ui-layout-pane" // Layout Pane + , resizerClass: "ui-layout-resizer" // Resizer Bar + , togglerClass: "ui-layout-toggler" // Toggler Button + , buttonClass: "ui-layout-button" // CUSTOM Buttons - eg: '[ui-layout-button]-toggle/-open/-close/-pin' + // ELEMENT SIZE & SPACING + //, size: 100 // MUST be pane-specific -initial size of pane + , minSize: 0 // when manually resizing a pane + , maxSize: 0 // ditto, 0 = no limit + , spacing_open: 6 // space between pane and adjacent panes - when pane is 'open' + , spacing_closed: 6 // ditto - when pane is 'closed' + , togglerLength_open: 50 // Length = WIDTH of toggler button on north/south sides - HEIGHT on east/west sides + , togglerLength_closed: 50 // 100% OR -1 means 'full height/width of resizer bar' - 0 means 'hidden' + , togglerAlign_open: "center" // top/left, bottom/right, center, OR... + , togglerAlign_closed: "center" // 1 => nn = offset from top/left, -1 => -nn == offset from bottom/right + , togglerContent_open: "" // text or HTML to put INSIDE the toggler + , togglerContent_closed: "" // ditto + // RESIZING OPTIONS + , resizerDblClickToggle: true // + , autoResize: true // IF size is 'auto' or a percentage, then recalc 'pixel size' whenever the layout resizes + , autoReopen: true // IF a pane was auto-closed due to noRoom, reopen it when there is room? False = leave it closed + , resizerDragOpacity: 1 // option for ui.draggable + //, resizerCursor: "" // MUST be pane-specific - cursor when over resizer-bar + , maskContents: false // true = add DIV-mask over-or-inside this pane so can 'drag' over IFRAMES + , maskObjects: false // true = add IFRAME-mask over-or-inside this pane to cover objects/applets - content-mask will overlay this mask + , maskZindex: null // will override zIndexes.content_mask if specified - not applicable to iframe-panes + , resizingGrid: false // grid size that the resizers will snap-to during resizing, eg: [20,20] + , livePaneResizing: false // true = LIVE Resizing as resizer is dragged + , liveContentResizing: false // true = re-measure header/footer heights as resizer is dragged + , liveResizingTolerance: 1 // how many px change before pane resizes, to control performance + // SLIDING OPTIONS + , sliderCursor: "pointer" // cursor when resizer-bar will trigger 'sliding' + , slideTrigger_open: "click" // click, dblclick, mouseenter + , slideTrigger_close: "mouseleave"// click, mouseleave + , slideDelay_open: 300 // applies only for mouseenter event - 0 = instant open + , slideDelay_close: 300 // applies only for mouseleave event (300ms is the minimum!) + , hideTogglerOnSlide: false // when pane is slid-open, should the toggler show? + , preventQuickSlideClose: $.layout.browser.webkit // Chrome triggers slideClosed as it is opening + , preventPrematureSlideClose: false // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + // PANE-SPECIFIC TIPS & MESSAGES + , tips: { + Open: "Open" // eg: "Open Pane" + , Close: "Close" + , Resize: "Resize" + , Slide: "Slide Open" + , Pin: "Pin" + , Unpin: "Un-Pin" + , noRoomToOpen: "Not enough room to show this panel." // alert if user tries to open a pane that cannot + , minSizeWarning: "Panel has reached its minimum size" // displays in browser statusbar + , maxSizeWarning: "Panel has reached its maximum size" // ditto + } + // HOT-KEYS & MISC + , showOverflowOnHover: false // will bind allowOverflow() utility to pane.onMouseOver + , enableCursorHotkey: true // enabled 'cursor' hotkeys + //, customHotkey: "" // MUST be pane-specific - EITHER a charCode OR a character + , customHotkeyModifier: "SHIFT" // either 'SHIFT', 'CTRL' or 'CTRL+SHIFT' - NOT 'ALT' + // PANE ANIMATION + // NOTE: fxSss_open, fxSss_close & fxSss_size options (eg: fxName_open) are auto-generated if not passed + , fxName: "slide" // ('none' or blank), slide, drop, scale -- only relevant to 'open' & 'close', NOT 'size' + , fxSpeed: null // slow, normal, fast, 200, nnn - if passed, will OVERRIDE fxSettings.duration + , fxSettings: {} // can be passed, eg: { easing: "easeOutBounce", duration: 1500 } + , fxOpacityFix: true // tries to fix opacity in IE to restore anti-aliasing after animation + , animatePaneSizing: false // true = animate resizing after dragging resizer-bar OR sizePane() is called + /* NOTE: Action-specific FX options are auto-generated from the options above if not specifically set: + fxName_open: "slide" // 'Open' pane animation + fnName_close: "slide" // 'Close' pane animation + fxName_size: "slide" // 'Size' pane animation - when animatePaneSizing = true + fxSpeed_open: null + fxSpeed_close: null + fxSpeed_size: null + fxSettings_open: {} + fxSettings_close: {} + fxSettings_size: {} + */ + // CHILD/NESTED LAYOUTS + , children: null // Layout-options for nested/child layout - even {} is valid as options + , containerSelector: '' // if child is NOT 'directly nested', a selector to find it/them (can have more than one child layout!) + , initChildren: true // true = child layout will be created as soon as _this_ layout completes initialization + , destroyChildren: true // true = destroy child-layout if this pane is destroyed + , resizeChildren: true // true = trigger child-layout.resizeAll() when this pane is resized + // EVENT TRIGGERING + , triggerEventsOnLoad: false // true = trigger onopen OR onclose callbacks when layout initializes + , triggerEventsDuringLiveResize: true // true = trigger onresize callback REPEATEDLY if livePaneResizing==true + // PANE CALLBACKS + , onshow_start: null // CALLBACK when pane STARTS to Show - BEFORE onopen/onhide_start + , onshow_end: null // CALLBACK when pane ENDS being Shown - AFTER onopen/onhide_end + , onhide_start: null // CALLBACK when pane STARTS to Close - BEFORE onclose_start + , onhide_end: null // CALLBACK when pane ENDS being Closed - AFTER onclose_end + , onopen_start: null // CALLBACK when pane STARTS to Open + , onopen_end: null // CALLBACK when pane ENDS being Opened + , onclose_start: null // CALLBACK when pane STARTS to Close + , onclose_end: null // CALLBACK when pane ENDS being Closed + , onresize_start: null // CALLBACK when pane STARTS being Resized ***FOR ANY REASON*** + , onresize_end: null // CALLBACK when pane ENDS being Resized ***FOR ANY REASON*** + , onsizecontent_start: null // CALLBACK when sizing of content-element STARTS + , onsizecontent_end: null // CALLBACK when sizing of content-element ENDS + , onswap_start: null // CALLBACK when pane STARTS to Swap + , onswap_end: null // CALLBACK when pane ENDS being Swapped + , ondrag_start: null // CALLBACK when pane STARTS being ***MANUALLY*** Resized + , ondrag_end: null // CALLBACK when pane ENDS being ***MANUALLY*** Resized + } +/* + * PANE-SPECIFIC SETTINGS + * - options listed below MUST be specified per-pane - they CANNOT be set under 'panes' + * - all options under the 'panes' key can also be set specifically for any pane + * - most options under the 'panes' key apply only to 'border-panes' - NOT the the center-pane + */ +, north: { + paneSelector: ".ui-layout-north" + , size: "auto" // eg: "auto", "30%", .30, 200 + , resizerCursor: "n-resize" // custom = url(myCursor.cur) + , customHotkey: "" // EITHER a charCode (43) OR a character ("o") + } +, south: { + paneSelector: ".ui-layout-south" + , size: "auto" + , resizerCursor: "s-resize" + , customHotkey: "" + } +, east: { + paneSelector: ".ui-layout-east" + , size: 200 + , resizerCursor: "e-resize" + , customHotkey: "" + } +, west: { + paneSelector: ".ui-layout-west" + , size: 200 + , resizerCursor: "w-resize" + , customHotkey: "" + } +, center: { + paneSelector: ".ui-layout-center" + , minWidth: 0 + , minHeight: 0 + } +}; + +$.layout.optionsMap = { + // layout/global options - NOT pane-options + layout: ("name,instanceKey,stateManagement,effects,inset,zIndexes,errors," + + "zIndex,scrollToBookmarkOnLoad,showErrorMessages,maskPanesEarly," + + "outset,resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay," + + "onresizeall,onresizeall_start,onresizeall_end,onload,onload_start,onload_end,onunload,onunload_start,onunload_end").split(",") +// borderPanes: [ ALL options that are NOT specified as 'layout' ] + // default.panes options that apply to the center-pane (most options apply _only_ to border-panes) +, center: ("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad," + + "showOverflowOnHover,maskContents,maskObjects,liveContentResizing," + + "containerSelector,children,initChildren,resizeChildren,destroyChildren," + + "onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(",") + // options that MUST be specifically set 'per-pane' - CANNOT set in the panes (defaults) key +, noDefault: ("paneSelector,resizerCursor,customHotkey").split(",") +}; + +/** + * Processes options passed in converts flat-format data into subkey (JSON) format + * In flat-format, subkeys are _currently_ separated with 2 underscores, like north__optName + * Plugins may also call this method so they can transform their own data + * + * @param {!Object} hash Data/options passed by user - may be a single level or nested levels + * @param {boolean=} [addKeys=false] Should the primary layout.options keys be added if they do not exist? + * @return {Object} Returns hash of minWidth & minHeight + */ +$.layout.transformData = function (hash, addKeys) { + var json = addKeys ? { panes: {}, center: {} } : {} // init return object + , branch, optKey, keys, key, val, i, c; + + if (typeof hash !== "object") return json; // no options passed + + // convert all 'flat-keys' to 'sub-key' format + for (optKey in hash) { + branch = json; + val = hash[ optKey ]; + keys = optKey.split("__"); // eg: west__size or north__fxSettings__duration + c = keys.length - 1; + // convert underscore-delimited to subkeys + for (i=0; i <= c; i++) { + key = keys[i]; + if (i === c) { // last key = value + if ($.isPlainObject( val )) + branch[key] = $.layout.transformData( val ); // RECURSE + else + branch[key] = val; + } + else { + if (!branch[key]) + branch[key] = {}; // create the subkey + // recurse to sub-key for next loop - if not done + branch = branch[key]; + } + } + } + return json; +}; + +// INTERNAL CONFIG DATA - DO NOT CHANGE THIS! +$.layout.backwardCompatibility = { + // data used by renameOldOptions() + map: { + // OLD Option Name: NEW Option Name + applyDefaultStyles: "applyDemoStyles" + // CHILD/NESTED LAYOUTS + , childOptions: "children" + , initChildLayout: "initChildren" + , destroyChildLayout: "destroyChildren" + , resizeChildLayout: "resizeChildren" + , resizeNestedLayout: "resizeChildren" + // MISC Options + , resizeWhileDragging: "livePaneResizing" + , resizeContentWhileDragging: "liveContentResizing" + , triggerEventsWhileDragging: "triggerEventsDuringLiveResize" + , maskIframesOnResize: "maskContents" + // STATE MANAGEMENT + , useStateCookie: "stateManagement.enabled" + , "cookie.autoLoad": "stateManagement.autoLoad" + , "cookie.autoSave": "stateManagement.autoSave" + , "cookie.keys": "stateManagement.stateKeys" + , "cookie.name": "stateManagement.cookie.name" + , "cookie.domain": "stateManagement.cookie.domain" + , "cookie.path": "stateManagement.cookie.path" + , "cookie.expires": "stateManagement.cookie.expires" + , "cookie.secure": "stateManagement.cookie.secure" + // OLD Language options + , noRoomToOpenTip: "tips.noRoomToOpen" + , togglerTip_open: "tips.Close" // open = Close + , togglerTip_closed: "tips.Open" // closed = Open + , resizerTip: "tips.Resize" + , sliderTip: "tips.Slide" + } + +/** +* @param {Object} opts +*/ +, renameOptions: function (opts) { + var map = $.layout.backwardCompatibility.map + , oldData, newData, value + ; + for (var itemPath in map) { + oldData = getBranch( itemPath ); + value = oldData.branch[ oldData.key ]; + if (value !== undefined) { + newData = getBranch( map[itemPath], true ); + newData.branch[ newData.key ] = value; + delete oldData.branch[ oldData.key ]; + } + } + + /** + * @param {string} path + * @param {boolean=} [create=false] Create path if does not exist + */ + function getBranch (path, create) { + var a = path.split(".") // split keys into array + , c = a.length - 1 + , D = { branch: opts, key: a[c] } // init branch at top & set key (last item) + , i = 0, k, undef; + for (; i 0) { + if (autoHide && $E.data('autoHidden') && $E.innerHeight() > 0) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + // make hidden, then visible to 'refresh' display after animation + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + /** + * @param {(string|!Object)} el + * @param {number=} outerHeight + * @param {boolean=} [autoHide=false] + */ +, setOuterHeight = function (el, outerHeight, autoHide) { + var $E = el, h; + if (isStr(el)) $E = $Ps[el]; // west + else if (!el.jquery) $E = $(el); + h = cssH($E, outerHeight); + $E.css({ height: h, visibility: "visible" }); // may have been 'hidden' by sizeContent + if (h > 0 && $E.innerWidth() > 0) { + if (autoHide && $E.data('autoHidden')) { + $E.show().data('autoHidden', false); + if (!browser.mozilla) // FireFox refreshes iframes - IE does not + $E.css(_c.hidden).css(_c.visible); + } + } + else if (autoHide && !$E.data('autoHidden')) + $E.hide().data('autoHidden', true); + } + + + /** + * Converts any 'size' params to a pixel/integer size, if not already + * If 'auto' or a decimal/percentage is passed as 'size', a pixel-size is calculated + * + /** + * @param {string} pane + * @param {(string|number)=} size + * @param {string=} [dir] + * @return {number} + */ +, _parseSize = function (pane, size, dir) { + if (!dir) dir = _c[pane].dir; + + if (isStr(size) && size.match(/%/)) + size = (size === '100%') ? -1 : parseInt(size, 10) / 100; // convert % to decimal + + if (size === 0) + return 0; + else if (size >= 1) + return parseInt(size, 10); + + var o = options, avail = 0; + if (dir=="horz") // north or south or center.minHeight + avail = sC.innerHeight - ($Ps.north ? o.north.spacing_open : 0) - ($Ps.south ? o.south.spacing_open : 0); + else if (dir=="vert") // east or west or center.minWidth + avail = sC.innerWidth - ($Ps.west ? o.west.spacing_open : 0) - ($Ps.east ? o.east.spacing_open : 0); + + if (size === -1) // -1 == 100% + return avail; + else if (size > 0) // percentage, eg: .25 + return round(avail * size); + else if (pane=="center") + return 0; + else { // size < 0 || size=='auto' || size==Missing || size==Invalid + // auto-size the pane + var dim = (dir === "horz" ? "height" : "width") + , $P = $Ps[pane] + , $C = dim === 'height' ? $Cs[pane] : false + , vis = $.layout.showInvisibly($P) // show pane invisibly if hidden + , szP = $P.css(dim) // SAVE current pane size + , szC = $C ? $C.css(dim) : 0 // SAVE current content size + ; + $P.css(dim, "auto"); + if ($C) $C.css(dim, "auto"); + size = (dim === "height") ? $P.outerHeight() : $P.outerWidth(); // MEASURE + $P.css(dim, szP).css(vis); // RESET size & visibility + if ($C) $C.css(dim, szC); + return size; + } + } + + /** + * Calculates current 'size' (outer-width or outer-height) of a border-pane - optionally with 'pane-spacing' added + * + * @param {(string|!Object)} pane + * @param {boolean=} [inclSpace=false] + * @return {number} Returns EITHER Width for east/west panes OR Height for north/south panes + */ +, getPaneSize = function (pane, inclSpace) { + var + $P = $Ps[pane] + , o = options[pane] + , s = state[pane] + , oSp = (inclSpace ? o.spacing_open : 0) + , cSp = (inclSpace ? o.spacing_closed : 0) + ; + if (!$P || s.isHidden) + return 0; + else if (s.isClosed || (s.isSliding && inclSpace)) + return cSp; + else if (_c[pane].dir === "horz") + return $P.outerHeight() + oSp; + else // dir === "vert" + return $P.outerWidth() + oSp; + } + + /** + * Calculate min/max pane dimensions and limits for resizing + * + * @param {string} pane + * @param {boolean=} [slide=false] + */ +, setSizeLimits = function (pane, slide) { + if (!isInitialized()) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , type = c.sizeType.toLowerCase() + , isSliding = (slide != undefined ? slide : s.isSliding) // only open() passes 'slide' param + , $P = $Ps[pane] + , paneSpacing = o.spacing_open + // measure the pane on the *opposite side* from this pane + , altPane = _c.oppositeEdge[pane] + , altS = state[altPane] + , $altP = $Ps[altPane] + , altPaneSize = (!$altP || altS.isVisible===false || altS.isSliding ? 0 : (dir=="horz" ? $altP.outerHeight() : $altP.outerWidth())) + , altPaneSpacing = ((!$altP || altS.isHidden ? 0 : options[altPane][ altS.isClosed !== false ? "spacing_closed" : "spacing_open" ]) || 0) + // limitSize prevents this pane from 'overlapping' opposite pane + , containerSize = (dir=="horz" ? sC.innerHeight : sC.innerWidth) + , minCenterDims = cssMinDims("center") + , minCenterSize = dir=="horz" ? max(options.center.minHeight, minCenterDims.minHeight) : max(options.center.minWidth, minCenterDims.minWidth) + // if pane is 'sliding', then ignore center and alt-pane sizes - because 'overlays' them + , limitSize = (containerSize - paneSpacing - (isSliding ? 0 : (_parseSize("center", minCenterSize, dir) + altPaneSize + altPaneSpacing))) + , minSize = s.minSize = max( _parseSize(pane, o.minSize), cssMinDims(pane).minSize ) + , maxSize = s.maxSize = min( (o.maxSize ? _parseSize(pane, o.maxSize) : 100000), limitSize ) + , r = s.resizerPosition = {} // used to set resizing limits + , top = sC.inset.top + , left = sC.inset.left + , W = sC.innerWidth + , H = sC.innerHeight + , rW = o.spacing_open // subtract resizer-width to get top/left position for south/east + ; + switch (pane) { + case "north": r.min = top + minSize; + r.max = top + maxSize; + break; + case "west": r.min = left + minSize; + r.max = left + maxSize; + break; + case "south": r.min = top + H - maxSize - rW; + r.max = top + H - minSize - rW; + break; + case "east": r.min = left + W - maxSize - rW; + r.max = left + W - minSize - rW; + break; + }; + } + + /** + * Returns data for setting the size/position of center pane. Also used to set Height for east/west panes + * + * @return JSON Returns a hash of all dimensions: top, bottom, left, right, (outer) width and (outer) height + */ +, calcNewCenterPaneDims = function () { + var d = { + top: getPaneSize("north", true) // true = include 'spacing' value for pane + , bottom: getPaneSize("south", true) + , left: getPaneSize("west", true) + , right: getPaneSize("east", true) + , width: 0 + , height: 0 + }; + + // NOTE: sC = state.container + // calc center-pane outer dimensions + d.width = sC.innerWidth - d.left - d.right; // outerWidth + d.height = sC.innerHeight - d.bottom - d.top; // outerHeight + // add the 'container border/padding' to get final positions relative to the container + d.top += sC.inset.top; + d.bottom += sC.inset.bottom; + d.left += sC.inset.left; + d.right += sC.inset.right; + + return d; + } + + + /** + * @param {!Object} el + * @param {boolean=} [allStates=false] + */ +, getHoverClasses = function (el, allStates) { + var + $El = $(el) + , type = $El.data("layoutRole") + , pane = $El.data("layoutEdge") + , o = options[pane] + , root = o[type +"Class"] + , _pane = "-"+ pane // eg: "-west" + , _open = "-open" + , _closed = "-closed" + , _slide = "-sliding" + , _hover = "-hover " // NOTE the trailing space + , _state = $El.hasClass(root+_closed) ? _closed : _open + , _alt = _state === _closed ? _open : _closed + , classes = (root+_hover) + (root+_pane+_hover) + (root+_state+_hover) + (root+_pane+_state+_hover) + ; + if (allStates) // when 'removing' classes, also remove alternate-state classes + classes += (root+_alt+_hover) + (root+_pane+_alt+_hover); + + if (type=="resizer" && $El.hasClass(root+_slide)) + classes += (root+_slide+_hover) + (root+_pane+_slide+_hover); + + return $.trim(classes); + } +, addHover = function (evt, el) { + var $E = $(el || this); + if (evt && $E.data("layoutRole") === "toggler") + evt.stopPropagation(); // prevent triggering 'slide' on Resizer-bar + $E.addClass( getHoverClasses($E) ); + } +, removeHover = function (evt, el) { + var $E = $(el || this); + $E.removeClass( getHoverClasses($E, true) ); + } + +, onResizerEnter = function (evt) { // ALSO called by toggler.mouseenter + var pane = $(this).data("layoutEdge") + , s = state[pane] + , $d = $(document) + ; + // ignore closed-panes and mouse moving back & forth over resizer! + // also ignore if ANY pane is currently resizing + if ( s.isResizing || state.paneResizing ) return; + + if (options.maskPanesEarly) + showMasks( pane, { resizing: true }); + } +, onResizerLeave = function (evt, el) { + var e = el || this // el is only passed when called by the timer + , pane = $(e).data("layoutEdge") + , name = pane +"ResizerLeave" + , $d = $(document) + ; + timer.clear(pane+"_openSlider"); // cancel slideOpen timer, if set + timer.clear(name); // cancel enableSelection timer - may re/set below + // this method calls itself on a timer because it needs to allow + // enough time for dragging to kick-in and set the isResizing flag + // dragging has a 100ms delay set, so this delay must be >100 + if (!el) // 1st call - mouseleave event + timer.set(name, function(){ onResizerLeave(evt, e); }, 200); + // if user is resizing, dragStop will reset everything, so skip it here + else if (options.maskPanesEarly && !state.paneResizing) // 2nd call - by timer + hideMasks(); + } + +/* + * ########################### + * INITIALIZATION METHODS + * ########################### + */ + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see none - triggered onInit + * @return mixed true = fully initialized | false = panes not initialized (yet) | 'cancel' = abort + */ +, _create = function () { + // initialize config/options + initOptions(); + var o = options + , s = state; + + // TEMP state so isInitialized returns true during init process + s.creatingLayout = true; + + // init plugins for this layout, if there are any (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onCreate ); + + // options & state have been initialized, so now run beforeLoad callback + // onload will CANCEL layout creation if it returns false + if (false === _runCallbacks("onload_start")) + return 'cancel'; + + // initialize the container element + _initContainer(); + + // bind hotkey function - keyDown - if required + initHotkeys(); + + // bind window.onunload + $(window).bind("unload."+ sID, unload); + + // init plugins for this layout, if there are any (eg: customButtons) + runPluginCallbacks( Instance, $.layout.onLoad ); + + // if layout elements are hidden, then layout WILL NOT complete initialization! + // initLayoutElements will set initialized=true and run the onload callback IF successful + if (o.initPanes) _initLayoutElements(); + + delete s.creatingLayout; + + return state.initialized; + } + + /** + * Initialize the layout IF not already + * + * @see All methods in Instance run this test + * @return boolean true = layoutElements have been initialized | false = panes are not initialized (yet) + */ +, isInitialized = function () { + if (state.initialized || state.creatingLayout) return true; // already initialized + else return _initLayoutElements(); // try to init panes NOW + } + + /** + * Initialize the layout - called automatically whenever an instance of layout is created + * + * @see _create() & isInitialized + * @param {boolean=} [retry=false] // indicates this is a 2nd try + * @return An object pointer to the instance created + */ +, _initLayoutElements = function (retry) { + // initialize config/options + var o = options; + // CANNOT init panes inside a hidden container! + if (!$N.is(":visible")) { + // handle Chrome bug where popup window 'has no height' + // if layout is BODY element, try again in 50ms + // SEE: http://layout.jquery-dev.com/samples/test_popup_window.html + if ( !retry && browser.webkit && $N[0].tagName === "BODY" ) + setTimeout(function(){ _initLayoutElements(true); }, 50); + return false; + } + + // a center pane is required, so make sure it exists + if (!getPane("center").length) { + return _log( o.errors.centerPaneMissing ); + } + + // TEMP state so isInitialized returns true during init process + state.creatingLayout = true; + + // update Container dims + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + + // initialize all layout elements + initPanes(); // size & position panes - calls initHandles() - which calls initResizable() + + if (o.scrollToBookmarkOnLoad) { + var l = self.location; + if (l.hash) l.replace( l.hash ); // scrollTo Bookmark + } + + // check to see if this layout 'nested' inside a pane + if (Instance.hasParentLayout) + o.resizeWithWindow = false; + // bind resizeAll() for 'this layout instance' to window.resize event + else if (o.resizeWithWindow) + $(window).bind("resize."+ sID, windowResize); + + delete state.creatingLayout; + state.initialized = true; + + // init plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onReady ); + + // now run the onload callback, if exists + _runCallbacks("onload_end"); + + return true; // elements initialized successfully + } + + /** + * Initialize nested layouts for a specific pane - can optionally pass layout-options + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {Object=} [opts] Layout-options - if passed, will OVERRRIDE options[pane].children + * @return An object pointer to the layout instance created - or null + */ +, createChildren = function (evt_or_pane, opts) { + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + ; + if (!$P) return; + var $C = $Cs[pane] + , s = state[pane] + , o = options[pane] + , sm = options.stateManagement || {} + , cos = opts ? (o.children = opts) : o.children + ; + if ( $.isPlainObject( cos ) ) + cos = [ cos ]; // convert a hash to a 1-elem array + else if (!cos || !$.isArray( cos )) + return; + + $.each( cos, function (idx, co) { + if ( !$.isPlainObject( co ) ) return; + + // determine which element is supposed to be the 'child container' + // if pane has a 'containerSelector' OR a 'content-div', use those instead of the pane + var $containers = co.containerSelector ? $P.find( co.containerSelector ) : ($C || $P); + + $containers.each(function(){ + var $cont = $(this) + , child = $cont.data("layout") // see if a child-layout ALREADY exists on this element + ; + // if no layout exists, but children are set, try to create the layout now + if (!child) { + // TODO: see about moving this to the stateManagement plugin, as a method + // set a unique child-instance key for this layout, if not already set + setInstanceKey({ container: $cont, options: co }, s ); + // If THIS layout has a hash in stateManagement.autoLoad, + // then see if it also contains state-data for this child-layout + // If so, copy the stateData to child.options.stateManagement.autoLoad + if ( sm.includeChildren && state.stateData[pane] ) { + // THIS layout's state was cached when its state was loaded + var paneChildren = state.stateData[pane].children || {} + , childState = paneChildren[ co.instanceKey ] + , co_sm = co.stateManagement || (co.stateManagement = { autoLoad: true }) + ; + // COPY the stateData into the autoLoad key + if ( co_sm.autoLoad === true && childState ) { + co_sm.autoSave = false; // disable autoSave because saving handled by parent-layout + co_sm.includeChildren = true; // cascade option - FOR NOW + co_sm.autoLoad = $.extend(true, {}, childState); // COPY the state-hash + } + } + + // create the layout + child = $cont.layout( co ); + + // if successful, update data + if (child) { + // add the child and update all layout-pointers + // MAY have already been done by child-layout calling parent.refreshChildren() + refreshChildren( pane, child ); + } + } + }); + }); + } + +, setInstanceKey = function (child, parentPaneState) { + // create a named key for use in state and instance branches + var $c = child.container + , o = child.options + , sm = o.stateManagement + , key = o.instanceKey || $c.data("layoutInstanceKey") + ; + if (!key) key = (sm && sm.cookie ? sm.cookie.name : '') || o.name; // look for a name/key + if (!key) key = "layout"+ (++parentPaneState.childIdx); // if no name/key found, generate one + else key = key.replace(/[^\w-]/gi, '_').replace(/_{2,}/g, '_'); // ensure is valid as a hash key + o.instanceKey = key; + $c.data("layoutInstanceKey", key); // useful if layout is destroyed and then recreated + return key; + } + + /** + * @param {string} pane The pane being opened, ie: north, south, east, or west + * @param {Object=} newChild New child-layout Instance to add to this pane + */ +, refreshChildren = function (pane, newChild) { + var $P = $Ps[pane] + , pC = children[pane] + , s = state[pane] + , o + ; + // check for destroy()ed layouts and update the child pointers & arrays + if ($.isPlainObject( pC )) { + $.each( pC, function (key, child) { + if (child.destroyed) delete pC[key] + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) + pC = children[pane] = null; // clear children hash + } + + // see if there is a directly-nested layout inside this pane + // if there is, then there can be only ONE child-layout, so check that... + if (!newChild && !pC) { + newChild = $P.data("layout"); + } + + // if a newChild instance was passed, add it to children[pane] + if (newChild) { + // update child.state + newChild.hasParentLayout = true; // set parent-flag in child + // instanceKey is a key-name used in both state and children + o = newChild.options; + // set a unique child-instance key for this layout, if not already set + setInstanceKey( newChild, s ); + // add pointer to pane.children hash + if (!pC) pC = children[pane] = {}; // create an empty children hash + pC[ o.instanceKey ] = newChild.container.data("layout"); // add childLayout instance + } + + // ALWAYS refresh the pane.children alias, even if null + Instance[pane].children = children[pane]; + + // if newChild was NOT passed - see if there is a child layout NOW + if (!newChild) { + createChildren(pane); // MAY create a child and re-call this method + } + } + +, windowResize = function () { + var o = options + , delay = Number(o.resizeWithWindowDelay); + if (delay < 10) delay = 100; // MUST have a delay! + // resizing uses a delay-loop because the resize event fires repeatly - except in FF, but delay anyway + timer.clear("winResize"); // if already running + timer.set("winResize", function(){ + timer.clear("winResize"); + timer.clear("winResizeRepeater"); + var dims = elDims( $N, o.inset ); + // only trigger resizeAll() if container has changed size + if (dims.innerWidth !== sC.innerWidth || dims.innerHeight !== sC.innerHeight) + resizeAll(); + }, delay); + // ALSO set fixed-delay timer, if not already running + if (!timer.data["winResizeRepeater"]) setWindowResizeRepeater(); + } + +, setWindowResizeRepeater = function () { + var delay = Number(options.resizeWithWindowMaxDelay); + if (delay > 0) + timer.set("winResizeRepeater", function(){ setWindowResizeRepeater(); resizeAll(); }, delay); + } + +, unload = function () { + var o = options; + + _runCallbacks("onunload_start"); + + // trigger plugin callabacks for this layout (eg: stateManagement) + runPluginCallbacks( Instance, $.layout.onUnload ); + + _runCallbacks("onunload_end"); + } + + /** + * Validate and initialize container CSS and events + * + * @see _create() + */ +, _initContainer = function () { + var + N = $N[0] + , $H = $("html") + , tag = sC.tagName = N.tagName + , id = sC.id = N.id + , cls = sC.className = N.className + , o = options + , name = o.name + , props = "position,margin,padding,border" + , css = "layoutCSS" + , CSS = {} + , hid = "hidden" // used A LOT! + // see if this container is a 'pane' inside an outer-layout + , parent = $N.data("parentLayout") // parent-layout Instance + , pane = $N.data("layoutEdge") // pane-name in parent-layout + , isChild = parent && pane + , num = $.layout.cssNum + , $parent, n + ; + // sC = state.container + sC.selector = $N.selector.split(".slice")[0]; + sC.ref = (o.name ? o.name +' layout / ' : '') + tag + (id ? "#"+id : cls ? '.['+cls+']' : ''); // used in messages + sC.isBody = (tag === "BODY"); + + // try to find a parent-layout + if (!isChild && !sC.isBody) { + $parent = $N.closest("."+ $.layout.defaults.panes.paneClass); + parent = $parent.data("parentLayout"); + pane = $parent.data("layoutEdge"); + isChild = parent && pane; + } + + $N .data({ + layout: Instance + , layoutContainer: sID // FLAG to indicate this is a layout-container - contains unique internal ID + }) + .addClass(o.containerClass) + ; + var layoutMethods = { + destroy: '' + , initPanes: '' + , resizeAll: 'resizeAll' + , resize: 'resizeAll' + }; + // loop hash and bind all methods - include layoutID namespacing + for (name in layoutMethods) { + $N.bind("layout"+ name.toLowerCase() +"."+ sID, Instance[ layoutMethods[name] || name ]); + } + + // if this container is another layout's 'pane', then set child/parent pointers + if (isChild) { + // update parent flag + Instance.hasParentLayout = true; + // set pointers to THIS child-layout (Instance) in parent-layout + parent.refreshChildren( pane, Instance ); + } + + // SAVE original container CSS for use in destroy() + if (!$N.data(css)) { + // handle props like overflow different for BODY & HTML - has 'system default' values + if (sC.isBody) { + // SAVE CSS + $N.data(css, $.extend( styles($N, props), { + height: $N.css("height") + , overflow: $N.css("overflow") + , overflowX: $N.css("overflowX") + , overflowY: $N.css("overflowY") + })); + // ALSO SAVE CSS + $H.data(css, $.extend( styles($H, 'padding'), { + height: "auto" // FF would return a fixed px-size! + , overflow: $H.css("overflow") + , overflowX: $H.css("overflowX") + , overflowY: $H.css("overflowY") + })); + } + else // handle props normally for non-body elements + $N.data(css, styles($N, props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY") ); + } + + try { + // common container CSS + CSS = { + overflow: hid + , overflowX: hid + , overflowY: hid + }; + $N.css( CSS ); + + if (o.inset && !$.isPlainObject(o.inset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.inset, 10) || 0 + o.inset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + + // format html & body if this is a full page layout + if (sC.isBody) { + // if HTML has padding, use this as an outer-spacing around BODY + if (!o.outset) { + // use padding from parent-elem (HTML) as outset + o.outset = { + top: num($H, "paddingTop") + , bottom: num($H, "paddingBottom") + , left: num($H, "paddingLeft") + , right: num($H, "paddingRight") + }; + } + else if (!$.isPlainObject(o.outset)) { + // can specify a single number for equal outset all-around + n = parseInt(o.outset, 10) || 0 + o.outset = { + top: n + , bottom: n + , left: n + , right: n + }; + } + // HTML + $H.css( CSS ).css({ + height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + }); + // BODY + if (browser.isIE6) { + // IE6 CANNOT use the trick of setting absolute positioning on all 4 sides - must have 'height' + $N.css({ + width: "100%" + , height: "100%" + , border: "none" // no border or padding allowed when using height = 100% + , padding: 0 // ditto + , margin: 0 + , position: "relative" + }); + // convert body padding to an inset option - the border cannot be measured in IE6! + if (!o.inset) o.inset = elDims( $N ).inset; + } + else { // use absolute positioning for BODY to allow borders & padding without overflow + $N.css({ + width: "auto" + , height: "auto" + , margin: 0 + , position: "absolute" // allows for border and padding on BODY + }); + // apply edge-positioning created above + $N.css( o.outset ); + } + // set current layout-container dimensions + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT include insetX values + } + else { + // container MUST have 'position' + var p = $N.css("position"); + if (!p || !p.match(/(fixed|absolute|relative)/)) + $N.css("position","relative"); + + // set current layout-container dimensions + if ( $N.is(":visible") ) { + $.extend(sC, elDims( $N, o.inset )); // passing inset means DO NOT change insetX (padding) values + if (sC.innerHeight < 1) // container has no 'height' - warn developer + _log( o.errors.noContainerHeight.replace(/CONTAINER/, sC.ref) ); + } + } + + // if container has min-width/height, then enable scrollbar(s) + if ( num($N, "minWidth") ) $N.parent().css("overflowX","auto"); + if ( num($N, "minHeight") ) $N.parent().css("overflowY","auto"); + + } catch (ex) {} + } + + /** + * Bind layout hotkeys - if options enabled + * + * @see _create() and addPane() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHotkeys = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + // bind keyDown to capture hotkeys, if option enabled for ANY pane + $.each(panes, function (i, pane) { + var o = options[pane]; + if (o.enableCursorHotkey || o.customHotkey) { + $(document).bind("keydown."+ sID, keyDown); // only need to bind this ONCE + return false; // BREAK - binding was done + } + }); + } + + /** + * Build final OPTIONS data + * + * @see _create() + */ +, initOptions = function () { + var data, d, pane, key, val, i, c, o; + + // reprocess user's layout-options to have correct options sub-key structure + opts = $.layout.transformData( opts, true ); // panes = default subkey + + // auto-rename old options for backward compatibility + opts = $.layout.backwardCompatibility.renameAllOptions( opts ); + + // if user-options has 'panes' key (pane-defaults), clean it... + if (!$.isEmptyObject(opts.panes)) { + // REMOVE any pane-defaults that MUST be set per-pane + data = $.layout.optionsMap.noDefault; + for (i=0, c=data.length; i 0) { + z.pane_normal = zo; + z.content_mask = max(zo+1, z.content_mask); // MIN = +1 + z.resizer_normal = max(zo+2, z.resizer_normal); // MIN = +2 + } + + // DELETE 'panes' key now that we are done - values were copied to EACH pane + delete options.panes; + + + function createFxOptions ( pane ) { + var o = options[pane] + , d = options.panes; + // ensure fxSettings key to avoid errors + if (!o.fxSettings) o.fxSettings = {}; + if (!d.fxSettings) d.fxSettings = {}; + + $.each(["_open","_close","_size"], function (i,n) { + var + sName = "fxName"+ n + , sSpeed = "fxSpeed"+ n + , sSettings = "fxSettings"+ n + // recalculate fxName according to specificity rules + , fxName = o[sName] = + o[sName] // options.west.fxName_open + || d[sName] // options.panes.fxName_open + || o.fxName // options.west.fxName + || d.fxName // options.panes.fxName + || "none" // MEANS $.layout.defaults.panes.fxName == "" || false || null || 0 + , fxExists = $.effects && ($.effects[fxName] || ($.effects.effect && $.effects.effect[fxName])) + ; + // validate fxName to ensure is valid effect - MUST have effect-config data in options.effects + if (fxName === "none" || !options.effects[fxName] || !fxExists) + fxName = o[sName] = "none"; // effect not loaded OR unrecognized fxName + + // set vars for effects subkeys to simplify logic + var fx = options.effects[fxName] || {} // effects.slide + , fx_all = fx.all || null // effects.slide.all + , fx_pane = fx[pane] || null // effects.slide.west + ; + // create fxSpeed[_open|_close|_size] + o[sSpeed] = + o[sSpeed] // options.west.fxSpeed_open + || d[sSpeed] // options.west.fxSpeed_open + || o.fxSpeed // options.west.fxSpeed + || d.fxSpeed // options.panes.fxSpeed + || null // DEFAULT - let fxSetting.duration control speed + ; + // create fxSettings[_open|_close|_size] + o[sSettings] = $.extend( + true + , {} + , fx_all // effects.slide.all + , fx_pane // effects.slide.west + , d.fxSettings // options.panes.fxSettings + , o.fxSettings // options.west.fxSettings + , d[sSettings] // options.panes.fxSettings_open + , o[sSettings] // options.west.fxSettings_open + ); + }); + + // DONE creating action-specific-settings for this pane, + // so DELETE generic options - are no longer meaningful + delete o.fxName; + delete o.fxSpeed; + delete o.fxSettings; + } + } + + /** + * Initialize module objects, styling, size and position for all panes + * + * @see _initElements() + * @param {string} pane The pane to process + */ +, getPane = function (pane) { + var sel = options[pane].paneSelector + if (sel.substr(0,1)==="#") // ID selector + // NOTE: elements selected 'by ID' DO NOT have to be 'children' + return $N.find(sel).eq(0); + else { // class or other selector + var $P = $N.children(sel).eq(0); + // look for the pane nested inside a 'form' element + return $P.length ? $P : $N.children("form:first").children(sel).eq(0); + } + } + + /** + * @param {Object=} evt + */ +, initPanes = function (evt) { + // stopPropagation if called by trigger("layoutinitpanes") - use evtPane utility + evtPane(evt); + + // NOTE: do north & south FIRST so we can measure their height - do center LAST + $.each(_c.allPanes, function (idx, pane) { + addPane( pane, true ); + }); + + // init the pane-handles NOW in case we have to hide or close the pane below + initHandles(); + + // now that all panes have been initialized and initially-sized, + // make sure there is really enough space available for each pane + $.each(_c.borderPanes, function (i, pane) { + if ($Ps[pane] && state[pane].isVisible) { // pane is OPEN + setSizeLimits(pane); + makePaneFit(pane); // pane may be Closed, Hidden or Resized by makePaneFit() + } + }); + // size center-pane AGAIN in case we 'closed' a border-pane in loop above + sizeMidPanes("center"); + + // Chrome/Webkit sometimes fires callbacks BEFORE it completes resizing! + // Before RC30.3, there was a 10ms delay here, but that caused layout + // to load asynchrously, which is BAD, so try skipping delay for now + + // process pane contents and callbacks, and init/resize child-layout if exists + $.each(_c.allPanes, function (idx, pane) { + afterInitPane(pane); + }); + } + + /** + * Add a pane to the layout - subroutine of initPanes() + * + * @see initPanes() + * @param {string} pane The pane to process + * @param {boolean=} [force=false] Size content after init + */ +, addPane = function (pane, force) { + if ( !force && !isInitialized() ) return; + var + o = options[pane] + , s = state[pane] + , c = _c[pane] + , dir = c.dir + , fx = s.fx + , spacing = o.spacing_open || 0 + , isCenter = (pane === "center") + , CSS = {} + , $P = $Ps[pane] + , size, minSize, maxSize, child + ; + // if pane-pointer already exists, remove the old one first + if ($P) + removePane( pane, false, true, false ); + else + $Cs[pane] = false; // init + + $P = $Ps[pane] = getPane(pane); + if (!$P.length) { + $Ps[pane] = false; // logic + return; + } + + // SAVE original Pane CSS + if (!$P.data("layoutCSS")) { + var props = "position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border"; + $P.data("layoutCSS", styles($P, props)); + } + + // create alias for pane data in Instance - initHandles will add more + Instance[pane] = { + name: pane + , pane: $Ps[pane] + , content: $Cs[pane] + , options: options[pane] + , state: state[pane] + , children: children[pane] + }; + + // add classes, attributes & events + $P .data({ + parentLayout: Instance // pointer to Layout Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "pane" + }) + .css(c.cssReq).css("zIndex", options.zIndexes.pane_normal) + .css(o.applyDemoStyles ? c.cssDemo : {}) // demo styles + .addClass( o.paneClass +" "+ o.paneClass+"-"+pane ) // default = "ui-layout-pane ui-layout-pane-west" - may be a dupe of 'paneSelector' + .bind("mouseenter."+ sID, addHover ) + .bind("mouseleave."+ sID, removeHover ) + ; + var paneMethods = { + hide: '' + , show: '' + , toggle: '' + , close: '' + , open: '' + , slideOpen: '' + , slideClose: '' + , slideToggle: '' + , size: 'sizePane' + , sizePane: 'sizePane' + , sizeContent: '' + , sizeHandles: '' + , enableClosable: '' + , disableClosable: '' + , enableSlideable: '' + , disableSlideable: '' + , enableResizable: '' + , disableResizable: '' + , swapPanes: 'swapPanes' + , swap: 'swapPanes' + , move: 'swapPanes' + , removePane: 'removePane' + , remove: 'removePane' + , createChildren: '' + , resizeChildren: '' + , resizeAll: 'resizeAll' + , resizeLayout: 'resizeAll' + } + , name; + // loop hash and bind all methods - include layoutID namespacing + for (name in paneMethods) { + $P.bind("layoutpane"+ name.toLowerCase() +"."+ sID, Instance[ paneMethods[name] || name ]); + } + + // see if this pane has a 'scrolling-content element' + initContent(pane, false); // false = do NOT sizeContent() - called later + + if (!isCenter) { + // call _parseSize AFTER applying pane classes & styles - but before making visible (if hidden) + // if o.size is auto or not valid, then MEASURE the pane and use that as its 'size' + size = s.size = _parseSize(pane, o.size); + minSize = _parseSize(pane,o.minSize) || 1; + maxSize = _parseSize(pane,o.maxSize) || 100000; + if (size > 0) size = max(min(size, maxSize), minSize); + s.autoResize = o.autoResize; // used with percentage sizes + + // state for border-panes + s.isClosed = false; // true = pane is closed + s.isSliding = false; // true = pane is currently open by 'sliding' over adjacent panes + s.isResizing= false; // true = pane is in process of being resized + s.isHidden = false; // true = pane is hidden - no spacing, resizer or toggler is visible! + + // array for 'pin buttons' whose classNames are auto-updated on pane-open/-close + if (!s.pins) s.pins = []; + } + // states common to ALL panes + s.tagName = $P[0].tagName; + s.edge = pane; // useful if pane is (or about to be) 'swapped' - easy find out where it is (or is going) + s.noRoom = false; // true = pane 'automatically' hidden due to insufficient room - will unhide automatically + s.isVisible = true; // false = pane is invisible - closed OR hidden - simplify logic + + // init pane positioning + setPanePosition( pane ); + + // if pane is not visible, + if (dir === "horz") // north or south pane + CSS.height = cssH($P, size); + else if (dir === "vert") // east or west pane + CSS.width = cssW($P, size); + //else if (isCenter) {} + + $P.css(CSS); // apply size -- top, bottom & height will be set by sizeMidPanes + if (dir != "horz") sizeMidPanes(pane, true); // true = skipCallback + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + initHandles( pane ); + initHotkeys( pane ); + } + + // close or hide the pane if specified in settings + if (o.initClosed && o.closable && !o.initHidden) + close(pane, true, true); // true, true = force, noAnimation + else if (o.initHidden || o.initClosed) + hide(pane); // will be completely invisible - no resizer or spacing + else if (!s.noRoom) + // make the pane visible - in case was initially hidden + $P.css("display","block"); + // ELSE setAsOpen() - called later by initHandles() + + // RESET visibility now - pane will appear IF display:block + $P.css("visibility","visible"); + + // check option for auto-handling of pop-ups & drop-downs + if (o.showOverflowOnHover) + $P.hover( allowOverflow, resetOverflow ); + + // if manually adding a pane AFTER layout initialization, then... + if (state.initialized) { + afterInitPane( pane ); + } + } + +, afterInitPane = function (pane) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + ; + if (!$P) return; + + // see if there is a directly-nested layout inside this pane + if ($P.data("layout")) + refreshChildren( pane, $P.data("layout") ); + + // process pane contents and callbacks, and init/resize child-layout if exists + if (s.isVisible) { // pane is OPEN + if (state.initialized) // this pane was added AFTER layout was created + resizeAll(); // will also sizeContent + else + sizeContent(pane); + + if (o.triggerEventsOnLoad) + _runCallbacks("onresize_end", pane); + else // automatic if onresize called, otherwise call it specifically + // resize child - IF inner-layout already exists (created before this layout) + resizeChildren(pane, true); // a previously existing childLayout + } + + // init childLayouts - even if pane is not visible + if (o.initChildren && o.children) + createChildren(pane); + } + + /** + * @param {string=} panes The pane(s) to process + */ +, setPanePosition = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane] + , $R = $Rs[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , CSS = {} + ; + if (!$P) return; // pane does not exist - skip + + // set css-position to account for container borders & padding + switch (pane) { + case "north": CSS.top = sC.inset.top; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "south": CSS.bottom = sC.inset.bottom; + CSS.left = sC.inset.left; + CSS.right = sC.inset.right; + break; + case "west": CSS.left = sC.inset.left; // top, bottom & height set by sizeMidPanes() + break; + case "east": CSS.right = sC.inset.right; // ditto + break; + case "center": // top, left, width & height set by sizeMidPanes() + } + // apply position + $P.css(CSS); + + // update resizer position + if ($R && s.isClosed) + $R.css(side, sC.inset[side]); + else if ($R && !s.isHidden) + $R.css(side, sC.inset[side] + getPaneSize(pane)); + }); + } + + /** + * Initialize module objects, styling, size and position for all resize bars and toggler buttons + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initHandles = function (panes) { + panes = panes ? panes.split(",") : _c.borderPanes; + + // create toggler DIVs for each pane, and set object pointers for them, eg: $R.north = north toggler DIV + $.each(panes, function (i, pane) { + var $P = $Ps[pane]; + $Rs[pane] = false; // INIT + $Ts[pane] = false; + if (!$P) return; // pane does not exist - skip + + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , paneId = o.paneSelector.substr(0,1) === "#" ? o.paneSelector.substr(1) : "" + , rClass = o.resizerClass + , tClass = o.togglerClass + , spacing = (s.isVisible ? o.spacing_open : o.spacing_closed) + , _pane = "-"+ pane // used for classNames + , _state = (s.isVisible ? "-open" : "-closed") // used for classNames + , I = Instance[pane] + // INIT RESIZER BAR + , $R = I.resizer = $Rs[pane] = $("
          ") + // INIT TOGGLER BUTTON + , $T = I.toggler = (o.closable ? $Ts[pane] = $("
          ") : false) + ; + + //if (s.isVisible && o.resizable) ... handled by initResizable + if (!s.isVisible && o.slidable) + $R.attr("title", o.tips.Slide).css("cursor", o.sliderCursor); + + $R // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "paneLeft-resizer" + .attr("id", paneId ? paneId +"-resizer" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "resizer" + }) + .css(_c.resizers.cssReq).css("zIndex", options.zIndexes.resizer_normal) + .css(o.applyDemoStyles ? _c.resizers.cssDemo : {}) // add demo styles + .addClass(rClass +" "+ rClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if resizing is not enabled - handle with CSS instead + .hover(onResizerEnter, onResizerLeave) // ALWAYS NEED resizer.mouseleave to balance toggler.mouseenter + .mousedown($.layout.disableTextSelection) // prevent text-selection OUTSIDE resizer + .mouseup($.layout.enableTextSelection) // not really necessary, but just in case + .appendTo($N) // append DIV to container + ; + if ($.fn.disableSelection) + $R.disableSelection(); // prevent text-selection INSIDE resizer + if (o.resizerDblClickToggle) + $R.bind("dblclick."+ sID, toggle ); + + if ($T) { + $T // if paneSelector is an ID, then create a matching ID for the resizer, eg: "#paneLeft" => "#paneLeft-toggler" + .attr("id", paneId ? paneId +"-toggler" : "" ) + .data({ + parentLayout: Instance + , layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + , layoutRole: "toggler" + }) + .css(_c.togglers.cssReq) // add base/required styles + .css(o.applyDemoStyles ? _c.togglers.cssDemo : {}) // add demo styles + .addClass(tClass +" "+ tClass+_pane) + .hover(addHover, removeHover) // ALWAYS add hover-classes, even if toggling is not enabled - handle with CSS instead + .bind("mouseenter", onResizerEnter) // NEED toggler.mouseenter because mouseenter MAY NOT fire on resizer + .appendTo($R) // append SPAN to resizer DIV + ; + // ADD INNER-SPANS TO TOGGLER + if (o.togglerContent_open) // ui-layout-open + $(""+ o.togglerContent_open +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .data("layoutRole", "togglerContent") + .data("layoutEdge", pane) + .addClass("content content-open") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-open instead! + ; + if (o.togglerContent_closed) // ui-layout-closed + $(""+ o.togglerContent_closed +"") + .data({ + layoutEdge: pane + , layoutRole: "togglerContent" + }) + .addClass("content content-closed") + .css("display","none") + .appendTo( $T ) + //.hover( addHover, removeHover ) // use ui-layout-toggler-west-hover .content-closed instead! + ; + // ADD TOGGLER.click/.hover + enableClosable(pane); + } + + // add Draggable events + initResizable(pane); + + // ADD CLASSNAMES & SLIDE-BINDINGS - eg: class="resizer resizer-west resizer-open" + if (s.isVisible) + setAsOpen(pane); // onOpen will be called, but NOT onResize + else { + setAsClosed(pane); // onClose will be called + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + }); + + // SET ALL HANDLE DIMENSIONS + sizeHandles(); + } + + + /** + * Initialize scrolling ui-layout-content div - if exists + * + * @see initPane() - or externally after an Ajax injection + * @param {string} pane The pane to process + * @param {boolean=} [resize=true] Size content after init + */ +, initContent = function (pane, resize) { + if (!isInitialized()) return; + var + o = options[pane] + , sel = o.contentSelector + , I = Instance[pane] + , $P = $Ps[pane] + , $C + ; + if (sel) $C = I.content = $Cs[pane] = (o.findNestedContent) + ? $P.find(sel).eq(0) // match 1-element only + : $P.children(sel).eq(0) + ; + if ($C && $C.length) { + $C.data("layoutRole", "content"); + // SAVE original Content CSS + if (!$C.data("layoutCSS")) + $C.data("layoutCSS", styles($C, "height")); + $C.css( _c.content.cssReq ); + if (o.applyDemoStyles) { + $C.css( _c.content.cssDemo ); // add padding & overflow: auto to content-div + $P.css( _c.content.cssDemoPane ); // REMOVE padding/scrolling from pane + } + // ensure no vertical scrollbar on pane - will mess up measurements + if ($P.css("overflowX").match(/(scroll|auto)/)) { + $P.css("overflow", "hidden"); + } + state[pane].content = {}; // init content state + if (resize !== false) sizeContent(pane); + // sizeContent() is called AFTER init of all elements + } + else + I.content = $Cs[pane] = false; + } + + + /** + * Add resize-bars to all panes that specify it in options + * -dependancy: $.fn.resizable - will skip if not found + * + * @see _create() + * @param {string=} [panes=""] The edge(s) to process + */ +, initResizable = function (panes) { + var draggingAvailable = $.layout.plugins.draggable + , side // set in start() + ; + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (idx, pane) { + var o = options[pane]; + if (!draggingAvailable || !$Ps[pane] || !o.resizable) { + o.resizable = false; + return true; // skip to next + } + + var s = state[pane] + , z = options.zIndexes + , c = _c[pane] + , side = c.dir=="horz" ? "top" : "left" + , $P = $Ps[pane] + , $R = $Rs[pane] + , base = o.resizerClass + , lastPos = 0 // used when live-resizing + , r, live // set in start because may change + // 'drag' classes are applied to the ORIGINAL resizer-bar while dragging is in process + , resizerClass = base+"-drag" // resizer-drag + , resizerPaneClass = base+"-"+pane+"-drag" // resizer-north-drag + // 'helper' class is applied to the CLONED resizer-bar while it is being dragged + , helperClass = base+"-dragging" // resizer-dragging + , helperPaneClass = base+"-"+pane+"-dragging" // resizer-north-dragging + , helperLimitClass = base+"-dragging-limit" // resizer-drag + , helperPaneLimitClass = base+"-"+pane+"-dragging-limit" // resizer-north-drag + , helperClassesSet = false // logic var + ; + + if (!s.isClosed) + $R.attr("title", o.tips.Resize) + .css("cursor", o.resizerCursor); // n-resize, s-resize, etc + + $R.draggable({ + containment: $N[0] // limit resizing to layout container + , axis: (c.dir=="horz" ? "y" : "x") // limit resizing to horz or vert axis + , delay: 0 + , distance: 1 + , grid: o.resizingGrid + // basic format for helper - style it using class: .ui-draggable-dragging + , helper: "clone" + , opacity: o.resizerDragOpacity + , addClasses: false // avoid ui-state-disabled class when disabled + //, iframeFix: o.draggableIframeFix // TODO: consider using when bug is fixed + , zIndex: z.resizer_drag + + , start: function (e, ui) { + // REFRESH options & state pointers in case we used swapPanes + o = options[pane]; + s = state[pane]; + // re-read options + live = o.livePaneResizing; + + // ondrag_start callback - will CANCEL hide if returns false + // TODO: dragging CANNOT be cancelled like this, so see if there is a way? + if (false === _runCallbacks("ondrag_start", pane)) return false; + + s.isResizing = true; // prevent pane from closing while resizing + state.paneResizing = pane; // easy to see if ANY pane is resizing + timer.clear(pane+"_closeSlider"); // just in case already triggered + + // SET RESIZER LIMITS - used in drag() + setSizeLimits(pane); // update pane/resizer state + r = s.resizerPosition; + lastPos = ui.position[ side ] + + $R.addClass( resizerClass +" "+ resizerPaneClass ); // add drag classes + helperClassesSet = false; // reset logic var - see drag() + + // MASK PANES CONTAINING IFRAMES, APPLETS OR OTHER TROUBLESOME ELEMENTS + showMasks( pane, { resizing: true }); + } + + , drag: function (e, ui) { + if (!helperClassesSet) { // can only add classes after clone has been added to the DOM + //$(".ui-draggable-dragging") + ui.helper + .addClass( helperClass +" "+ helperPaneClass ) // add helper classes + .css({ right: "auto", bottom: "auto" }) // fix dir="rtl" issue + .children().css("visibility","hidden") // hide toggler inside dragged resizer-bar + ; + helperClassesSet = true; + // draggable bug!? RE-SET zIndex to prevent E/W resize-bar showing through N/S pane! + if (s.isSliding) $Ps[pane].css("zIndex", z.pane_sliding); + } + // CONTAIN RESIZER-BAR TO RESIZING LIMITS + var limit = 0; + if (ui.position[side] < r.min) { + ui.position[side] = r.min; + limit = -1; + } + else if (ui.position[side] > r.max) { + ui.position[side] = r.max; + limit = 1; + } + // ADD/REMOVE dragging-limit CLASS + if (limit) { + ui.helper.addClass( helperLimitClass +" "+ helperPaneLimitClass ); // at dragging-limit + window.defaultStatus = (limit>0 && pane.match(/(north|west)/)) || (limit<0 && pane.match(/(south|east)/)) ? o.tips.maxSizeWarning : o.tips.minSizeWarning; + } + else { + ui.helper.removeClass( helperLimitClass +" "+ helperPaneLimitClass ); // not at dragging-limit + window.defaultStatus = ""; + } + // DYNAMICALLY RESIZE PANES IF OPTION ENABLED + // won't trigger unless resizer has actually moved! + if (live && Math.abs(ui.position[side] - lastPos) >= o.liveResizingTolerance) { + lastPos = ui.position[side]; + resizePanes(e, ui, pane) + } + } + + , stop: function (e, ui) { + $('body').enableSelection(); // RE-ENABLE TEXT SELECTION + window.defaultStatus = ""; // clear 'resizing limit' message from statusbar + $R.removeClass( resizerClass +" "+ resizerPaneClass ); // remove drag classes from Resizer + s.isResizing = false; + state.paneResizing = false; // easy to see if ANY pane is resizing + resizePanes(e, ui, pane, true); // true = resizingDone + } + + }); + }); + + /** + * resizePanes + * + * Sub-routine called from stop() - and drag() if livePaneResizing + * + * @param {!Object} evt + * @param {!Object} ui + * @param {string} pane + * @param {boolean=} [resizingDone=false] + */ + var resizePanes = function (evt, ui, pane, resizingDone) { + var dragPos = ui.position + , c = _c[pane] + , o = options[pane] + , s = state[pane] + , resizerPos + ; + switch (pane) { + case "north": resizerPos = dragPos.top; break; + case "west": resizerPos = dragPos.left; break; + case "south": resizerPos = sC.layoutHeight - dragPos.top - o.spacing_open; break; + case "east": resizerPos = sC.layoutWidth - dragPos.left - o.spacing_open; break; + }; + // remove container margin from resizer position to get the pane size + var newSize = resizerPos - sC.inset[c.side]; + + // Disable OR Resize Mask(s) created in drag.start + if (!resizingDone) { + // ensure we meet liveResizingTolerance criteria + if (Math.abs(newSize - s.size) < o.liveResizingTolerance) + return; // SKIP resize this time + // resize the pane + manualSizePane(pane, newSize, false, true); // true = noAnimation + sizeMasks(); // resize all visible masks + } + else { // resizingDone + // ondrag_end callback + if (false !== _runCallbacks("ondrag_end", pane)) + manualSizePane(pane, newSize, false, true); // true = noAnimation + hideMasks(true); // true = force hiding all masks even if one is 'sliding' + if (s.isSliding) // RE-SHOW 'object-masks' so objects won't show through sliding pane + showMasks( pane, { resizing: true }); + } + }; + } + + /** + * sizeMask + * + * Needed to overlay a DIV over an IFRAME-pane because mask CANNOT be *inside* the pane + * Called when mask created, and during livePaneResizing + */ +, sizeMask = function () { + var $M = $(this) + , pane = $M.data("layoutMask") // eg: "west" + , s = state[pane] + ; + // only masks over an IFRAME-pane need manual resizing + if (s.tagName == "IFRAME" && s.isVisible) // no need to mask closed/hidden panes + $M.css({ + top: s.offsetTop + , left: s.offsetLeft + , width: s.outerWidth + , height: s.outerHeight + }); + /* ALT Method... + var $P = $Ps[pane]; + $M.css( $P.position() ).css({ width: $P[0].offsetWidth, height: $P[0].offsetHeight }); + */ + } +, sizeMasks = function () { + $Ms.each( sizeMask ); // resize all 'visible' masks + } + + /** + * @param {string} pane The pane being resized, animated or isSliding + * @param {Object=} [args] (optional) Options: which masks to apply, and to which panes + */ +, showMasks = function (pane, args) { + var c = _c[pane] + , panes = ["center"] + , z = options.zIndexes + , a = $.extend({ + objectsOnly: false + , animation: false + , resizing: true + , sliding: state[pane].isSliding + }, args ) + , o, s + ; + if (a.resizing) + panes.push( pane ); + if (a.sliding) + panes.push( _c.oppositeEdge[pane] ); // ADD the oppositeEdge-pane + + if (c.dir === "horz") { + panes.push("west"); + panes.push("east"); + } + + $.each(panes, function(i,p){ + s = state[p]; + o = options[p]; + if (s.isVisible && ( o.maskObjects || (!a.objectsOnly && o.maskContents) )) { + getMasks(p).each(function(){ + sizeMask.call(this); + this.style.zIndex = s.isSliding ? z.pane_sliding+1 : z.pane_normal+1 + this.style.display = "block"; + }); + } + }); + } + + /** + * @param {boolean=} force Hide masks even if a pane is sliding + */ +, hideMasks = function (force) { + // ensure no pane is resizing - could be a timing issue + if (force || !state.paneResizing) { + $Ms.hide(); // hide ALL masks + } + // if ANY pane is sliding, then DO NOT remove masks from panes with maskObjects enabled + else if (!force && !$.isEmptyObject( state.panesSliding )) { + var i = $Ms.length - 1 + , p, $M; + for (; i >= 0; i--) { + $M = $Ms.eq(i); + p = $M.data("layoutMask"); + if (!options[p].maskObjects) { + $M.hide(); + } + } + } + } + + /** + * @param {string} pane + */ +, getMasks = function (pane) { + var $Masks = $([]) + , $M, i = 0, c = $Ms.length + ; + for (; i CSS + if (sC.tagName === "BODY" && ($N = $("html")).data(css)) // RESET CSS + $N.css( $N.data(css) ).removeData(css); + + // trigger plugins for this layout, if there are any + runPluginCallbacks( Instance, $.layout.onDestroy ); + + // trigger state-management and onunload callback + unload(); + + // clear the Instance of everything except for container & options (so could recreate) + // RE-CREATE: myLayout = myLayout.container.layout( myLayout.options ); + for (var n in Instance) + if (!n.match(/^(container|options)$/)) delete Instance[ n ]; + // add a 'destroyed' flag to make it easy to check + Instance.destroyed = true; + + // if this is a child layout, CLEAR the child-pointer in the parent + /* for now the pointer REMAINS, but with only container, options and destroyed keys + if (parentPane) { + var layout = parentPane.pane.data("parentLayout") + , key = layout.options.instanceKey || 'error'; + // THIS SYNTAX MAY BE WRONG! + parentPane.children[key] = layout.children[ parentPane.name ].children[key] = null; + } + */ + + return Instance; // for coding convenience + } + + /** + * Remove a pane from the layout - subroutine of destroy() + * + * @see destroy() + * @param {(string|Object)} evt_or_pane The pane to process + * @param {boolean=} [remove=false] Remove the DOM element? + * @param {boolean=} [skipResize=false] Skip calling resizeAll()? + * @param {boolean=} [destroyChild=true] Destroy Child-layouts? If not passed, obeys options setting + */ +, removePane = function (evt_or_pane, remove, skipResize, destroyChild) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $C = $Cs[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + ; + // NOTE: elements can still exist even after remove() + // so check for missing data(), which is cleared by removed() + if ($P && $.isEmptyObject( $P.data() )) $P = false; + if ($C && $.isEmptyObject( $C.data() )) $C = false; + if ($R && $.isEmptyObject( $R.data() )) $R = false; + if ($T && $.isEmptyObject( $T.data() )) $T = false; + + if ($P) $P.stop(true, true); + + var o = options[pane] + , s = state[pane] + , d = "layout" + , css = "layoutCSS" + , pC = children[pane] + , hasChildren = $.isPlainObject( pC ) && !$.isEmptyObject( pC ) + , destroy = destroyChild !== undefined ? destroyChild : o.destroyChildren + ; + // FIRST destroy the child-layout(s) + if (hasChildren && destroy) { + $.each( pC, function (key, child) { + if (!child.destroyed) + child.destroy(true);// tell child-layout to destroy ALL its child-layouts too + if (child.destroyed) // destroy was successful + delete pC[key]; + }); + // if no more children, remove the children hash + if ($.isEmptyObject( pC )) { + pC = children[pane] = null; // clear children hash + hasChildren = false; + } + } + + // Note: can't 'remove' a pane element with non-destroyed children + if ($P && remove && !hasChildren) + $P.remove(); // remove the pane-element and everything inside it + else if ($P && $P[0]) { + // create list of ALL pane-classes that need to be removed + var root = o.paneClass // default="ui-layout-pane" + , pRoot = root +"-"+ pane // eg: "ui-layout-pane-west" + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + , classes = [ root, root+_open, root+_closed, root+_sliding, // generic classes + pRoot, pRoot+_open, pRoot+_closed, pRoot+_sliding ] // pane-specific classes + ; + $.merge(classes, getHoverClasses($P, true)); // ADD hover-classes + // remove all Layout classes from pane-element + $P .removeClass( classes.join(" ") ) // remove ALL pane-classes + .removeData("parentLayout") + .removeData("layoutPane") + .removeData("layoutRole") + .removeData("layoutEdge") + .removeData("autoHidden") // in case set + .unbind("."+ sID) // remove ALL Layout events + // TODO: remove these extra unbind commands when jQuery is fixed + //.unbind("mouseenter"+ sID) + //.unbind("mouseleave"+ sID) + ; + // do NOT reset CSS if this pane/content is STILL the container of a nested layout! + // the nested layout will reset its 'container' CSS when/if it is destroyed + if (hasChildren && $C) { + // a content-div may not have a specific width, so give it one to contain the Layout + $C.width( $C.width() ); + $.each( pC, function (key, child) { + child.resizeAll(); // resize the Layout + }); + } + else if ($C) + $C.css( $C.data(css) ).removeData(css).removeData("layoutRole"); + // remove pane AFTER content in case there was a nested layout + if (!$P.data(d)) + $P.css( $P.data(css) ).removeData(css); + } + + // REMOVE pane resizer and toggler elements + if ($T) $T.remove(); + if ($R) $R.remove(); + + // CLEAR all pointers and state data + Instance[pane] = $Ps[pane] = $Cs[pane] = $Rs[pane] = $Ts[pane] = false; + s = { removed: true }; + + if (!skipResize) + resizeAll(); + } + + +/* + * ########################### + * ACTION METHODS + * ########################### + */ + + /** + * @param {string} pane + */ +, _hidePane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , s = $P[0].style + ; + if (o.useOffscreenClose) { + if (!$P.data(_c.offscreenReset)) + $P.data(_c.offscreenReset, { left: s.left, right: s.right }); + $P.css( _c.offscreenCSS ); + } + else + $P.hide().removeData(_c.offscreenReset); + } + + /** + * @param {string} pane + */ +, _showPane = function (pane) { + var $P = $Ps[pane] + , o = options[pane] + , off = _c.offscreenCSS + , old = $P.data(_c.offscreenReset) + , s = $P[0].style + ; + $P .show() // ALWAYS show, just in case + .removeData(_c.offscreenReset); + if (o.useOffscreenClose && old) { + if (s.left == off.left) + s.left = old.left; + if (s.right == off.right) + s.right = old.right; + } + } + + + /** + * Completely 'hides' a pane, including its spacing - as if it does not exist + * The pane is not actually 'removed' from the source, so can use 'show' to un-hide it + * + * @param {(string|Object)} evt_or_pane The pane being hidden, ie: north, south, east, or west + * @param {boolean=} [noAnimation=false] + */ +, hide = function (evt_or_pane, noAnimation) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || s.isHidden) return; // pane does not exist OR is already hidden + + // onhide_start callback - will CANCEL hide if returns false + if (state.initialized && false === _runCallbacks("onhide_start", pane)) return; + + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now hide the elements + if ($R) $R.hide(); // hide resizer-bar + if (!state.initialized || s.isClosed) { + s.isClosed = true; // to trigger open-animation on show() + s.isHidden = true; + s.isVisible = false; + if (!state.initialized) + _hidePane(pane); // no animation when loading page + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center"); + if (state.initialized || o.triggerEventsOnLoad) + _runCallbacks("onhide_end", pane); + } + else { + s.isHiding = true; // used by onclose + close(pane, false, noAnimation); // adjust all panes to fit + } + } + + /** + * Show a hidden pane - show as 'closed' by default unless openPane = true + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [openPane=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, show = function (evt_or_pane, openPane, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + if (pane === "center" || !$P || !s.isHidden) return; // pane does not exist OR is not hidden + + // onshow_start callback - will CANCEL show if returns false + if (false === _runCallbacks("onshow_start", pane)) return; + + s.isShowing = true; // used by onopen/onclose + //s.isHidden = false; - will be set by open/close - if not cancelled + s.isSliding = false; // just in case + delete state.panesSliding[pane]; + + // now show the elements + //if ($R) $R.show(); - will be shown by open/close + if (openPane === false) + close(pane, true); // true = force + else + open(pane, false, noAnimation, noAlert); // adjust all panes to fit + } + + + /** + * Toggles a pane open/closed by calling either open or close + * + * @param {(string|Object)} evt_or_pane The pane being toggled, ie: north, south, east, or west + * @param {boolean=} [slide=false] + */ +, toggle = function (evt_or_pane, slide) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + ; + if (evt) // called from to $R.dblclick OR triggerPaneEvent + evt.stopImmediatePropagation(); + if (s.isHidden) + show(pane); // will call 'open' after unhiding it + else if (s.isClosed) + open(pane, !!slide); + else + close(pane); + } + + + /** + * Utility method used during init or other auto-processes + * + * @param {string} pane The pane being closed + * @param {boolean=} [setHandles=false] + */ +, _closePane = function (pane, setHandles) { + var + $P = $Ps[pane] + , s = state[pane] + ; + _hidePane(pane); + s.isClosed = true; + s.isVisible = false; + if (setHandles) setAsClosed(pane); + } + + /** + * Close the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being closed, ie: north, south, east, or west + * @param {boolean=} [force=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [skipCallback=false] + */ +, close = function (evt_or_pane, force, noAnimation, skipCallback) { + var pane = evtPane.call(this, evt_or_pane); + if (pane === "center") return; // validate + // if pane has been initialized, but NOT the complete layout, close pane instantly + if (!state.initialized && $Ps[pane]) { + _closePane(pane, true); // INIT pane as closed + return; + } + if (!isInitialized()) return; + + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing, isHiding, wasSliding; + + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.closable && !s.isShowing && !s.isHiding) // invalid request // (!o.resizable && !o.closable) ??? + || (!force && s.isClosed && !s.isShowing) // already closed + ) return queueNext(); + + // onclose_start callback - will CANCEL hide if returns false + // SKIP if just 'showing' a hidden pane as 'closed' + var abort = !s.isShowing && false === _runCallbacks("onclose_start", pane); + + // transfer logic vars to temp vars + isShowing = s.isShowing; + isHiding = s.isHiding; + wasSliding = s.isSliding; + // now clear the logic vars (REQUIRED before aborting) + delete s.isShowing; + delete s.isHiding; + + if (abort) return queueNext(); + + doFX = !noAnimation && !s.isClosed && (o.fxName_close != "none"); + s.isMoving = true; + s.isClosed = true; + s.isVisible = false; + // update isHidden BEFORE sizing panes + if (isHiding) s.isHidden = true; + else if (isShowing) s.isHidden = false; + + if (s.isSliding) // pane is being closed, so UNBIND trigger events + bindStopSlidingEvents(pane, false); // will set isSliding=false + else // resize panes adjacent to this one + sizeMidPanes(_c[pane].dir === "horz" ? "" : "center", false); // false = NOT skipCallback + + // if this pane has a resizer bar, move it NOW - before animation + setAsClosed(pane); + + // CLOSE THE PANE + if (doFX) { // animate the close + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.hide( o.fxName_close, o.fxSettings_close, o.fxSpeed_close, function () { + lockPaneForFX(pane, false); // undo + if (s.isClosed) close_2(); + queueNext(); + }); + } + else { // hide the pane without animation + _hidePane(pane); + close_2(); + queueNext(); + }; + }); + + // SUBROUTINE + function close_2 () { + s.isMoving = false; + bindStartSlidingEvents(pane, true); // will enable if o.slidable = true + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane ); + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad)) { + // onclose callback - UNLESS just 'showing' a hidden pane as 'closed' + if (!isShowing) _runCallbacks("onclose_end", pane); + // onhide OR onshow callback + if (isShowing) _runCallbacks("onshow_end", pane); + if (isHiding) _runCallbacks("onhide_end", pane); + } + } + } + + /** + * @param {string} pane The pane just closed, ie: north, south, east, or west + */ +, setAsClosed = function (pane) { + if (!$Rs[pane]) return; // handles not initialized yet! + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _sliding= "-sliding" + , _closed = "-closed" + ; + $R + .css(side, sC.inset[side]) // move the resizer + .removeClass( rClass+_open +" "+ rClass+_pane+_open ) + .removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + .addClass( rClass+_closed +" "+ rClass+_pane+_closed ) + ; + // handle already-hidden panes in case called by swap() or a similar method + if (s.isHidden) $R.hide(); // hide resizer-bar + + // DISABLE 'resizing' when closed - do this BEFORE bindStartSlidingEvents? + if (o.resizable && $.layout.plugins.draggable) + $R + .draggable("disable") + .removeClass("ui-state-disabled") // do NOT apply disabled styling - not suitable here + .css("cursor", "default") + .attr("title","") + ; + + // if pane has a toggler button, adjust that too + if ($T) { + $T + .removeClass( tClass+_open +" "+ tClass+_pane+_open ) + .addClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .attr("title", o.tips.Open) // may be blank + ; + // toggler-content - if exists + $T.children(".content-open").hide(); + $T.children(".content-closed").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, false); + + if (state.initialized) { + // resize 'length' and position togglers for adjacent panes + sizeHandles(); + } + } + + /** + * Open the specified pane (animation optional), and resize all other panes as needed + * + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + * @param {boolean=} [slide=false] + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [noAlert=false] + */ +, open = function (evt_or_pane, slide, noAnimation, noAlert) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , c = _c[pane] + , doFX, isShowing + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + + if ( !$P + || (!o.resizable && !o.closable && !s.isShowing) // invalid request + || (s.isVisible && !s.isSliding) // already open + ) return queueNext(); + + // pane can ALSO be unhidden by just calling show(), so handle this scenario + if (s.isHidden && !s.isShowing) { + queueNext(); // call before show() because it needs the queue free + show(pane, true); + return; + } + + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else + // make sure there is enough space available to open the pane + setSizeLimits(pane, slide); + + // onopen_start callback - will CANCEL open if returns false + var cbReturn = _runCallbacks("onopen_start", pane); + + if (cbReturn === "abort") + return queueNext(); + + // update pane-state again in case options were changed in onopen_start + if (cbReturn !== "NC") // NC = "No Callback" + setSizeLimits(pane, slide); + + if (s.minSize > s.maxSize) { // INSUFFICIENT ROOM FOR PANE TO OPEN! + syncPinBtns(pane, false); // make sure pin-buttons are reset + if (!noAlert && o.tips.noRoomToOpen) + alert(o.tips.noRoomToOpen); + return queueNext(); // ABORT + } + + if (slide) // START Sliding - will set isSliding=true + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (s.isSliding) // PIN PANE (stop sliding) - open pane 'normally' instead + bindStopSlidingEvents(pane, false); // UNBIND trigger events - will set isSliding=false + else if (o.slidable) + bindStartSlidingEvents(pane, false); // UNBIND trigger events + + s.noRoom = false; // will be reset by makePaneFit if 'noRoom' + makePaneFit(pane); + + // transfer logic var to temp var + isShowing = s.isShowing; + // now clear the logic var + delete s.isShowing; + + doFX = !noAnimation && s.isClosed && (o.fxName_open != "none"); + s.isMoving = true; + s.isVisible = true; + s.isClosed = false; + // update isHidden BEFORE sizing panes - WHY??? Old? + if (isShowing) s.isHidden = false; + + if (doFX) { // ANIMATE + // mask adjacent panes with objects + lockPaneForFX(pane, true); // need to set left/top so animation will work + $P.show( o.fxName_open, o.fxSettings_open, o.fxSpeed_open, function() { + lockPaneForFX(pane, false); // undo + if (s.isVisible) open_2(); // continue + queueNext(); + }); + } + else { // no animation + _showPane(pane);// just show pane and... + open_2(); // continue + queueNext(); + }; + }); + + // SUBROUTINE + function open_2 () { + s.isMoving = false; + + // cure iframe display issues + _fixIframe(pane); + + // NOTE: if isSliding, then other panes are NOT 'resized' + if (!s.isSliding) { // resize all panes adjacent to this one + sizeMidPanes(_c[pane].dir=="vert" ? "center" : "", false); // false = NOT skipCallback + } + + // set classes, position handles and execute callbacks... + setAsOpen(pane); + }; + + } + + /** + * @param {string} pane The pane just opened, ie: north, south, east, or west + * @param {boolean=} [skipCallback=false] + */ +, setAsOpen = function (pane, skipCallback) { + var + $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , o = options[pane] + , s = state[pane] + , side = _c[pane].side + , rClass = o.resizerClass + , tClass = o.togglerClass + , _pane = "-"+ pane // used for classNames + , _open = "-open" + , _closed = "-closed" + , _sliding= "-sliding" + ; + $R + .css(side, sC.inset[side] + getPaneSize(pane)) // move the resizer + .removeClass( rClass+_closed +" "+ rClass+_pane+_closed ) + .addClass( rClass+_open +" "+ rClass+_pane+_open ) + ; + if (s.isSliding) + $R.addClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + else // in case 'was sliding' + $R.removeClass( rClass+_sliding +" "+ rClass+_pane+_sliding ) + + removeHover( 0, $R ); // remove hover classes + if (o.resizable && $.layout.plugins.draggable) + $R .draggable("enable") + .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + else if (!s.isSliding) + $R.css("cursor", "default"); // n-resize, s-resize, etc + + // if pane also has a toggler button, adjust that too + if ($T) { + $T .removeClass( tClass+_closed +" "+ tClass+_pane+_closed ) + .addClass( tClass+_open +" "+ tClass+_pane+_open ) + .attr("title", o.tips.Close); // may be blank + removeHover( 0, $T ); // remove hover classes + // toggler-content - if exists + $T.children(".content-closed").hide(); + $T.children(".content-open").css("display","block"); + } + + // sync any 'pin buttons' + syncPinBtns(pane, !s.isSliding); + + // update pane-state dimensions - BEFORE resizing content + $.extend(s, elDims($P)); + + if (state.initialized) { + // resize resizer & toggler sizes for all panes + sizeHandles(); + // resize content every time pane opens - to be sure + sizeContent(pane, true); // true = remeasure headers/footers, even if 'pane.isMoving' + } + + if (!skipCallback && (state.initialized || o.triggerEventsOnLoad) && $P.is(":visible")) { + // onopen callback + _runCallbacks("onopen_end", pane); + // onshow callback - TODO: should this be here? + if (s.isShowing) _runCallbacks("onshow_end", pane); + + // ALSO call onresize because layout-size *may* have changed while pane was closed + if (state.initialized) + _runCallbacks("onresize_end", pane); + } + + // TODO: Somehow sizePane("north") is being called after this point??? + } + + + /** + * slideOpen / slideClose / slideToggle + * + * Pass-though methods for sliding + */ +, slideOpen = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , s = state[pane] + , delay = options[pane].slideDelay_open + ; + if (pane === "center") return; // validate + // prevent event from triggering on NEW resizer binding created below + if (evt) evt.stopImmediatePropagation(); + + if (s.isClosed && evt && evt.type === "mouseenter" && delay > 0) + // trigger = mouseenter - use a delay + timer.set(pane+"_openSlider", open_NOW, delay); + else + open_NOW(); // will unbind events if is already open + + /** + * SUBROUTINE for timed open + */ + function open_NOW () { + if (!s.isClosed) // skip if no longer closed! + bindStopSlidingEvents(pane, true); // BIND trigger events to close sliding-pane + else if (!s.isMoving) + open(pane, true); // true = slide - open() will handle binding + }; + } + +, slideClose = function (evt_or_pane) { + if (!isInitialized()) return; + var evt = evtObj(evt_or_pane) + , pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + , delay = s.isMoving ? 1000 : 300 // MINIMUM delay - option may override + ; + if (pane === "center") return; // validate + if (s.isClosed || s.isResizing) + return; // skip if already closed OR in process of resizing + else if (o.slideTrigger_close === "click") + close_NOW(); // close immediately onClick + else if (o.preventQuickSlideClose && s.isMoving) + return; // handle Chrome quick-close on slide-open + else if (o.preventPrematureSlideClose && evt && $.layout.isMouseOverElem(evt, $Ps[pane])) + return; // handle incorrect mouseleave trigger, like when over a SELECT-list in IE + else if (evt) // trigger = mouseleave - use a delay + // 1 sec delay if 'opening', else .3 sec + timer.set(pane+"_closeSlider", close_NOW, max(o.slideDelay_close, delay)); + else // called programically + close_NOW(); + + /** + * SUBROUTINE for timed close + */ + function close_NOW () { + if (s.isClosed) // skip 'close' if already closed! + bindStopSlidingEvents(pane, false); // UNBIND trigger events - TODO: is this needed here? + else if (!s.isMoving) + close(pane); // close will handle unbinding + }; + } + + /** + * @param {(string|Object)} evt_or_pane The pane being opened, ie: north, south, east, or west + */ +, slideToggle = function (evt_or_pane) { + var pane = evtPane.call(this, evt_or_pane); + toggle(pane, true); + } + + + /** + * Must set left/top on East/South panes so animation will work properly + * + * @param {string} pane The pane to lock, 'east' or 'south' - any other is ignored! + * @param {boolean} doLock true = set left/top, false = remove + */ +, lockPaneForFX = function (pane, doLock) { + var $P = $Ps[pane] + , s = state[pane] + , o = options[pane] + , z = options.zIndexes + ; + if (doLock) { + showMasks( pane, { animation: true, objectsOnly: true }); + $P.css({ zIndex: z.pane_animate }); // overlay all elements during animation + if (pane=="south") + $P.css({ top: sC.inset.top + sC.innerHeight - $P.outerHeight() }); + else if (pane=="east") + $P.css({ left: sC.inset.left + sC.innerWidth - $P.outerWidth() }); + } + else { // animation DONE - RESET CSS + hideMasks(); + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + if (pane=="south") + $P.css({ top: "auto" }); + // if pane is positioned 'off-screen', then DO NOT screw with it! + else if (pane=="east" && !$P.css("left").match(/\-99999/)) + $P.css({ left: "auto" }); + // fix anti-aliasing in IE - only needed for animations that change opacity + if (browser.msie && o.fxOpacityFix && o.fxName_open != "slide" && $P.css("filter") && $P.css("opacity") == 1) + $P[0].style.removeAttribute('filter'); + } + } + + + /** + * Toggle sliding functionality of a specific pane on/off by adding removing 'slide open' trigger + * + * @see open(), close() + * @param {string} pane The pane to enable/disable, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable sliding? + */ +, bindStartSlidingEvents = function (pane, enable) { + var o = options[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , evtName = o.slideTrigger_open.toLowerCase() + ; + if (!$R || (enable && !o.slidable)) return; + + // make sure we have a valid event + if (evtName.match(/mouseover/)) + evtName = o.slideTrigger_open = "mouseenter"; + else if (!evtName.match(/(click|dblclick|mouseenter)/)) + evtName = o.slideTrigger_open = "click"; + + // must remove double-click-toggle when using dblclick-slide + if (o.resizerDblClickToggle && evtName.match(/click/)) { + $R[enable ? "unbind" : "bind"]('dblclick.'+ sID, toggle) + } + + $R + // add or remove event + [enable ? "bind" : "unbind"](evtName +'.'+ sID, slideOpen) + // set the appropriate cursor & title/tip + .css("cursor", enable ? o.sliderCursor : "default") + .attr("title", enable ? o.tips.Slide : "") + ; + } + + /** + * Add or remove 'mouseleave' events to 'slide close' when pane is 'sliding' open or closed + * Also increases zIndex when pane is sliding open + * See bindStartSlidingEvents for code to control 'slide open' + * + * @see slideOpen(), slideClose() + * @param {string} pane The pane to process, 'north', 'south', etc. + * @param {boolean} enable Enable or Disable events? + */ +, bindStopSlidingEvents = function (pane, enable) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , z = options.zIndexes + , evtName = o.slideTrigger_close.toLowerCase() + , action = (enable ? "bind" : "unbind") + , $P = $Ps[pane] + , $R = $Rs[pane] + ; + timer.clear(pane+"_closeSlider"); // just in case + + if (enable) { + s.isSliding = true; + state.panesSliding[pane] = true; + // remove 'slideOpen' event from resizer + // ALSO will raise the zIndex of the pane & resizer + bindStartSlidingEvents(pane, false); + } + else { + s.isSliding = false; + delete state.panesSliding[pane]; + } + + // RE/SET zIndex - increases when pane is sliding-open, resets to normal when not + $P.css("zIndex", enable ? z.pane_sliding : z.pane_normal); + $R.css("zIndex", enable ? z.pane_sliding+2 : z.resizer_normal); // NOTE: mask = pane_sliding+1 + + // make sure we have a valid event + if (!evtName.match(/(click|mouseleave)/)) + evtName = o.slideTrigger_close = "mouseleave"; // also catches 'mouseout' + + // add/remove slide triggers + $R[action](evtName, slideClose); // base event on resize + // need extra events for mouseleave + if (evtName === "mouseleave") { + // also close on pane.mouseleave + $P[action]("mouseleave."+ sID, slideClose); + // cancel timer when mouse moves between 'pane' and 'resizer' + $R[action]("mouseenter."+ sID, cancelMouseOut); + $P[action]("mouseenter."+ sID, cancelMouseOut); + } + + if (!enable) + timer.clear(pane+"_closeSlider"); + else if (evtName === "click" && !o.resizable) { + // IF pane is not resizable (which already has a cursor and tip) + // then set the a cursor & title/tip on resizer when sliding + $R.css("cursor", enable ? o.sliderCursor : "default"); + $R.attr("title", enable ? o.tips.Close : ""); // use Toggler-tip, eg: "Close Pane" + } + + // SUBROUTINE for mouseleave timer clearing + function cancelMouseOut (evt) { + timer.clear(pane+"_closeSlider"); + evt.stopPropagation(); + } + } + + + /** + * Hides/closes a pane if there is insufficient room - reverses this when there is room again + * MUST have already called setSizeLimits() before calling this method + * + * @param {string} pane The pane being resized + * @param {boolean=} [isOpening=false] Called from onOpen? + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, makePaneFit = function (pane, isOpening, skipCallback, force) { + var o = options[pane] + , s = state[pane] + , c = _c[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isSidePane = c.dir==="vert" + , hasRoom = false + ; + // special handling for center & east/west panes + if (pane === "center" || (isSidePane && s.noVerticalRoom)) { + // see if there is enough room to display the pane + // ERROR: hasRoom = s.minHeight <= s.maxHeight && (isSidePane || s.minWidth <= s.maxWidth); + hasRoom = (s.maxHeight >= 0); + if (hasRoom && s.noRoom) { // previously hidden due to noRoom, so show now + _showPane(pane); + if ($R) $R.show(); + s.isVisible = true; + s.noRoom = false; + if (isSidePane) s.noVerticalRoom = false; + _fixIframe(pane); + } + else if (!hasRoom && !s.noRoom) { // not currently hidden, so hide now + _hidePane(pane); + if ($R) $R.hide(); + s.isVisible = false; + s.noRoom = true; + } + } + + // see if there is enough room to fit the border-pane + if (pane === "center") { + // ignore center in this block + } + else if (s.minSize <= s.maxSize) { // pane CAN fit + hasRoom = true; + if (s.size > s.maxSize) // pane is too big - shrink it + sizePane(pane, s.maxSize, skipCallback, true, force); // true = noAnimation + else if (s.size < s.minSize) // pane is too small - enlarge it + sizePane(pane, s.minSize, skipCallback, true, force); // true = noAnimation + // need s.isVisible because new pseudoClose method keeps pane visible, but off-screen + else if ($R && s.isVisible && $P.is(":visible")) { + // make sure resizer-bar is positioned correctly + // handles situation where nested layout was 'hidden' when initialized + var pos = s.size + sC.inset[c.side]; + if ($.layout.cssNum( $R, c.side ) != pos) $R.css( c.side, pos ); + } + + // if was previously hidden due to noRoom, then RESET because NOW there is room + if (s.noRoom) { + // s.noRoom state will be set by open or show + if (s.wasOpen && o.closable) { + if (o.autoReopen) + open(pane, false, true, true); // true = noAnimation, true = noAlert + else // leave the pane closed, so just update state + s.noRoom = false; + } + else + show(pane, s.wasOpen, true, true); // true = noAnimation, true = noAlert + } + } + else { // !hasRoom - pane CANNOT fit + if (!s.noRoom) { // pane not set as noRoom yet, so hide or close it now... + s.noRoom = true; // update state + s.wasOpen = !s.isClosed && !s.isSliding; + if (s.isClosed){} // SKIP + else if (o.closable) // 'close' if possible + close(pane, true, true); // true = force, true = noAnimation + else // 'hide' pane if cannot just be closed + hide(pane, true); // true = noAnimation + } + } + } + + + /** + * manualSizePane is an exposed flow-through method allowing extra code when pane is 'manually resized' + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, manualSizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , o = options[pane] + , s = state[pane] + // if resizing callbacks have been delayed and resizing is now DONE, force resizing to complete... + , forceResize = force || (o.livePaneResizing && !s.isResizing) + ; + if (pane === "center") return; // validate + // ANY call to manualSizePane disables autoResize - ie, percentage sizing + s.autoResize = false; + // flow-through... + sizePane(pane, size, skipCallback, noAnimation, forceResize); // will animate resize if option enabled + } + + /** + * sizePane is called only by internal methods whenever a pane needs to be resized + * + * @param {(string|Object)} evt_or_pane The pane being resized + * @param {number} size The *desired* new size for this pane - will be validated + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [noAnimation=false] + * @param {boolean=} [force=false] Force resizing even if does not seem necessary + */ +, sizePane = function (evt_or_pane, size, skipCallback, noAnimation, force) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) // probably NEVER called from event? + , o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , side = _c[pane].side + , dimName = _c[pane].sizeType.toLowerCase() + , skipResizeWhileDragging = s.isResizing && !o.triggerEventsDuringLiveResize + , doFX = noAnimation !== true && o.animatePaneSizing + , oldSize, newSize + ; + if (pane === "center") return; // validate + // QUEUE in case another action/animation is in progress + $N.queue(function( queueNext ){ + // calculate 'current' min/max sizes + setSizeLimits(pane); // update pane-state + oldSize = s.size; + size = _parseSize(pane, size); // handle percentages & auto + size = max(size, _parseSize(pane, o.minSize)); + size = min(size, s.maxSize); + if (size < s.minSize) { // not enough room for pane! + queueNext(); // call before makePaneFit() because it needs the queue free + makePaneFit(pane, false, skipCallback); // will hide or close pane + return; + } + + // IF newSize is same as oldSize, then nothing to do - abort + if (!force && size === oldSize) + return queueNext(); + + s.newSize = size; + + // onresize_start callback CANNOT cancel resizing because this would break the layout! + if (!skipCallback && state.initialized && s.isVisible) + _runCallbacks("onresize_start", pane); + + // resize the pane, and make sure its visible + newSize = cssSize(pane, size); + + if (doFX && $P.is(":visible")) { // ANIMATE + var fx = $.layout.effects.size[pane] || $.layout.effects.size.all + , easing = o.fxSettings_size.easing || fx.easing + , z = options.zIndexes + , props = {}; + props[ dimName ] = newSize +'px'; + s.isMoving = true; + // overlay all elements during animation + $P.css({ zIndex: z.pane_animate }) + .show().animate( props, o.fxSpeed_size, easing, function(){ + // reset zIndex after animation + $P.css({ zIndex: (s.isSliding ? z.pane_sliding : z.pane_normal) }); + s.isMoving = false; + delete s.newSize; + sizePane_2(); // continue + queueNext(); + }); + } + else { // no animation + $P.css( dimName, newSize ); // resize pane + delete s.newSize; + // if pane is visible, then + if ($P.is(":visible")) + sizePane_2(); // continue + else { + // pane is NOT VISIBLE, so just update state data... + // when pane is *next opened*, it will have the new size + s.size = size; // update state.size + //$.extend(s, elDims($P)); // update state dimensions - CANNOT do this when not visible! } + } + queueNext(); + }; + + }); + + // SUBROUTINE + function sizePane_2 () { + /* Panes are sometimes not sized precisely in some browsers!? + * This code will resize the pane up to 3 times to nudge the pane to the correct size + */ + var actual = dimName==='width' ? $P.outerWidth() : $P.outerHeight() + , tries = [{ + pane: pane + , count: 1 + , target: size + , actual: actual + , correct: (size === actual) + , attempt: size + , cssSize: newSize + }] + , lastTry = tries[0] + , thisTry = {} + , msg = 'Inaccurate size after resizing the '+ pane +'-pane.' + ; + while ( !lastTry.correct ) { + thisTry = { pane: pane, count: lastTry.count+1, target: size }; + + if (lastTry.actual > size) + thisTry.attempt = max(0, lastTry.attempt - (lastTry.actual - size)); + else // lastTry.actual < size + thisTry.attempt = max(0, lastTry.attempt + (size - lastTry.actual)); + + thisTry.cssSize = cssSize(pane, thisTry.attempt); + $P.css( dimName, thisTry.cssSize ); + + thisTry.actual = dimName=='width' ? $P.outerWidth() : $P.outerHeight(); + thisTry.correct = (size === thisTry.actual); + + // log attempts and alert the user of this *non-fatal error* (if showDebugMessages) + if ( tries.length === 1) { + _log(msg, false, true); + _log(lastTry, false, true); + } + _log(thisTry, false, true); + // after 4 tries, is as close as its gonna get! + if (tries.length > 3) break; + + tries.push( thisTry ); + lastTry = tries[ tries.length - 1 ]; + } + // END TESTING CODE + + // update pane-state dimensions + s.size = size; + $.extend(s, elDims($P)); + + if (s.isVisible && $P.is(":visible")) { + // reposition the resizer-bar + if ($R) $R.css( side, size + sC.inset[side] ); + // resize the content-div + sizeContent(pane); + } + + if (!skipCallback && !skipResizeWhileDragging && state.initialized && s.isVisible) + _runCallbacks("onresize_end", pane); + + // resize all the adjacent panes, and adjust their toggler buttons + // when skipCallback passed, it means the controlling method will handle 'other panes' + if (!skipCallback) { + // also no callback if live-resize is in progress and NOT triggerEventsDuringLiveResize + if (!s.isSliding) sizeMidPanes(_c[pane].dir=="horz" ? "" : "center", skipResizeWhileDragging, force); + sizeHandles(); + } + + // if opposite-pane was autoClosed, see if it can be autoOpened now + var altPane = _c.oppositeEdge[pane]; + if (size < oldSize && state[ altPane ].noRoom) { + setSizeLimits( altPane ); + makePaneFit( altPane, false, skipCallback ); + } + + // DEBUG - ALERT user/developer so they know there was a sizing problem + if (tries.length > 1) + _log(msg +'\nSee the Error Console for details.', true, true); + } + } + + /** + * @see initPanes(), sizePane(), resizeAll(), open(), close(), hide() + * @param {(Array.|string)} panes The pane(s) being resized, comma-delmited string + * @param {boolean=} [skipCallback=false] Should the onresize callback be run? + * @param {boolean=} [force=false] + */ +, sizeMidPanes = function (panes, skipCallback, force) { + panes = (panes ? panes : "east,west,center").split(","); + + $.each(panes, function (i, pane) { + if (!$Ps[pane]) return; // NO PANE - skip + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , isCenter= (pane=="center") + , hasRoom = true + , CSS = {} + // if pane is not visible, show it invisibly NOW rather than for *each call* in this script + , visCSS = $.layout.showInvisibly($P) + + , newCenter = calcNewCenterPaneDims() + ; + + // update pane-state dimensions + $.extend(s, elDims($P)); + + if (pane === "center") { + if (!force && s.isVisible && newCenter.width === s.outerWidth && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // set state for makePaneFit() logic + $.extend(s, cssMinDims(pane), { + maxWidth: newCenter.width + , maxHeight: newCenter.height + }); + CSS = newCenter; + s.newWidth = CSS.width; + s.newHeight = CSS.height; + // convert OUTER width/height to CSS width/height + CSS.width = cssW($P, CSS.width); + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, CSS.height); + hasRoom = CSS.width >= 0 && CSS.height >= 0; // height >= 0 = ALWAYS TRUE NOW + + // during layout init, try to shrink east/west panes to make room for center + if (!state.initialized && o.minWidth > newCenter.width) { + var + reqPx = o.minWidth - s.outerWidth + , minE = options.east.minSize || 0 + , minW = options.west.minSize || 0 + , sizeE = state.east.size + , sizeW = state.west.size + , newE = sizeE + , newW = sizeW + ; + if (reqPx > 0 && state.east.isVisible && sizeE > minE) { + newE = max( sizeE-minE, sizeE-reqPx ); + reqPx -= sizeE-newE; + } + if (reqPx > 0 && state.west.isVisible && sizeW > minW) { + newW = max( sizeW-minW, sizeW-reqPx ); + reqPx -= sizeW-newW; + } + // IF we found enough extra space, then resize the border panes as calculated + if (reqPx === 0) { + if (sizeE && sizeE != minE) + sizePane('east', newE, true, true, force); // true = skipCallback/noAnimation - initPanes will handle when done + if (sizeW && sizeW != minW) + sizePane('west', newW, true, true, force); // true = skipCallback/noAnimation + // now start over! + sizeMidPanes('center', skipCallback, force); + $P.css(visCSS); + return; // abort this loop + } + } + } + else { // for east and west, set only the height, which is same as center height + // set state.min/maxWidth/Height for makePaneFit() logic + if (s.isVisible && !s.noVerticalRoom) + $.extend(s, elDims($P), cssMinDims(pane)) + if (!force && !s.noVerticalRoom && newCenter.height === s.outerHeight) { + $P.css(visCSS); + return true; // SKIP - pane already the correct size + } + // east/west have same top, bottom & height as center + CSS.top = newCenter.top; + CSS.bottom = newCenter.bottom; + s.newSize = newCenter.height + // NEW - allow pane to extend 'below' visible area rather than hide it + CSS.height = cssH($P, newCenter.height); + s.maxHeight = CSS.height; + hasRoom = (s.maxHeight >= 0); // ALWAYS TRUE NOW + if (!hasRoom) s.noVerticalRoom = true; // makePaneFit() logic + } + + if (hasRoom) { + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_start", pane); + + $P.css(CSS); // apply the CSS to pane + if (pane !== "center") + sizeHandles(pane); // also update resizer length + if (s.noRoom && !s.isClosed && !s.isHidden) + makePaneFit(pane); // will re-open/show auto-closed/hidden pane + if (s.isVisible) { + $.extend(s, elDims($P)); // update pane dimensions + if (state.initialized) sizeContent(pane); // also resize the contents, if exists + } + } + else if (!s.noRoom && s.isVisible) // no room for pane + makePaneFit(pane); // will hide or close pane + + // reset visibility, if necessary + $P.css(visCSS); + + delete s.newSize; + delete s.newWidth; + delete s.newHeight; + + if (!s.isVisible) + return true; // DONE - next pane + + /* + * Extra CSS for IE6 or IE7 in Quirks-mode - add 'width' to NORTH/SOUTH panes + * Normally these panes have only 'left' & 'right' positions so pane auto-sizes + * ALSO required when pane is an IFRAME because will NOT default to 'full width' + * TODO: Can I use width:100% for a north/south iframe? + * TODO: Sounds like a job for $P.outerWidth( sC.innerWidth ) SETTER METHOD + */ + if (pane === "center") { // finished processing midPanes + var fix = browser.isIE6 || !browser.boxModel; + if ($Ps.north && (fix || state.north.tagName=="IFRAME")) + $Ps.north.css("width", cssW($Ps.north, sC.innerWidth)); + if ($Ps.south && (fix || state.south.tagName=="IFRAME")) + $Ps.south.css("width", cssW($Ps.south, sC.innerWidth)); + } + + // resizeAll passes skipCallback because it triggers callbacks after ALL panes are resized + if (!skipCallback && state.initialized) + _runCallbacks("onresize_end", pane); + }); + } + + + /** + * @see window.onresize(), callbacks or custom code + * @param {(Object|boolean)=} evt_or_refresh If 'true', then also reset pane-positioning + */ +, resizeAll = function (evt_or_refresh) { + var oldW = sC.innerWidth + , oldH = sC.innerHeight + ; + // stopPropagation if called by trigger("layoutdestroy") - use evtPane utility + evtPane(evt_or_refresh); + + // cannot size layout when 'container' is hidden or collapsed + if (!$N.is(":visible")) return; + + if (!state.initialized) { + _initLayoutElements(); + return; // no need to resize since we just initialized! + } + + if (evt_or_refresh === true && $.isPlainObject(options.outset)) { + // update container CSS in case outset option has changed + $N.css( options.outset ); + } + // UPDATE container dimensions + $.extend(sC, elDims( $N, options.inset )); + if (!sC.outerHeight) return; + + // if 'true' passed, refresh pane & handle positioning too + if (evt_or_refresh === true) { + setPanePosition(); + } + + // onresizeall_start will CANCEL resizing if returns false + // state.container has already been set, so user can access this info for calcuations + if (false === _runCallbacks("onresizeall_start")) return false; + + var // see if container is now 'smaller' than before + shrunkH = (sC.innerHeight < oldH) + , shrunkW = (sC.innerWidth < oldW) + , $P, o, s + ; + // NOTE special order for sizing: S-N-E-W + $.each(["south","north","east","west"], function (i, pane) { + if (!$Ps[pane]) return; // no pane - SKIP + o = options[pane]; + s = state[pane]; + if (s.autoResize && s.size != o.size) // resize pane to original size set in options + sizePane(pane, o.size, true, true, true); // true=skipCallback/noAnimation/forceResize + else { + setSizeLimits(pane); + makePaneFit(pane, false, true, true); // true=skipCallback/forceResize + } + }); + + sizeMidPanes("", true, true); // true=skipCallback/forceResize + sizeHandles(); // reposition the toggler elements + + // trigger all individual pane callbacks AFTER layout has finished resizing + $.each(_c.allPanes, function (i, pane) { + $P = $Ps[pane]; + if (!$P) return; // SKIP + if (state[pane].isVisible) // undefined for non-existent panes + _runCallbacks("onresize_end", pane); // callback - if exists + }); + + _runCallbacks("onresizeall_end"); + //_triggerLayoutEvent(pane, 'resizeall'); + } + + /** + * Whenever a pane resizes or opens that has a nested layout, trigger resizeAll + * + * @param {(string|Object)} evt_or_pane The pane just resized or opened + */ +, resizeChildren = function (evt_or_pane, skipRefresh) { + var pane = evtPane.call(this, evt_or_pane); + + if (!options[pane].resizeChildren) return; + + // ensure the pane-children are up-to-date + if (!skipRefresh) refreshChildren( pane ); + var pC = children[pane]; + if ($.isPlainObject( pC )) { + // resize one or more children + $.each( pC, function (key, child) { + if (!child.destroyed) child.resizeAll(); + }); + } + } + + /** + * IF pane has a content-div, then resize all elements inside pane to fit pane-height + * + * @param {(string|Object)} evt_or_panes The pane(s) being resized + * @param {boolean=} [remeasure=false] Should the content (header/footer) be remeasured? + */ +, sizeContent = function (evt_or_panes, remeasure) { + if (!isInitialized()) return; + + var panes = evtPane.call(this, evt_or_panes); + panes = panes ? panes.split(",") : _c.allPanes; + + $.each(panes, function (idx, pane) { + var + $P = $Ps[pane] + , $C = $Cs[pane] + , o = options[pane] + , s = state[pane] + , m = s.content // m = measurements + ; + if (!$P || !$C || !$P.is(":visible")) return true; // NOT VISIBLE - skip + + // if content-element was REMOVED, update OR remove the pointer + if (!$C.length) { + initContent(pane, false); // false = do NOT sizeContent() - already there! + if (!$C) return; // no replacement element found - pointer have been removed + } + + // onsizecontent_start will CANCEL resizing if returns false + if (false === _runCallbacks("onsizecontent_start", pane)) return; + + // skip re-measuring offsets if live-resizing + if ((!s.isMoving && !s.isResizing) || o.liveContentResizing || remeasure || m.top == undefined) { + _measure(); + // if any footers are below pane-bottom, they may not measure correctly, + // so allow pane overflow and re-measure + if (m.hiddenFooters > 0 && $P.css("overflow") === "hidden") { + $P.css("overflow", "visible"); + _measure(); // remeasure while overflowing + $P.css("overflow", "hidden"); + } + } + // NOTE: spaceAbove/Below *includes* the pane paddingTop/Bottom, but not pane.borders + var newH = s.innerHeight - (m.spaceAbove - s.css.paddingTop) - (m.spaceBelow - s.css.paddingBottom); + + if (!$C.is(":visible") || m.height != newH) { + // size the Content element to fit new pane-size - will autoHide if not enough room + setOuterHeight($C, newH, true); // true=autoHide + m.height = newH; // save new height + }; + + if (state.initialized) + _runCallbacks("onsizecontent_end", pane); + + function _below ($E) { + return max(s.css.paddingBottom, (parseInt($E.css("marginBottom"), 10) || 0)); + }; + + function _measure () { + var + ignore = options[pane].contentIgnoreSelector + , $Fs = $C.nextAll().not(".ui-layout-mask").not(ignore || ":lt(0)") // not :lt(0) = ALL + , $Fs_vis = $Fs.filter(':visible') + , $F = $Fs_vis.filter(':last') + ; + m = { + top: $C[0].offsetTop + , height: $C.outerHeight() + , numFooters: $Fs.length + , hiddenFooters: $Fs.length - $Fs_vis.length + , spaceBelow: 0 // correct if no content footer ($E) + } + m.spaceAbove = m.top; // just for state - not used in calc + m.bottom = m.top + m.height; + if ($F.length) + //spaceBelow = (LastFooter.top + LastFooter.height) [footerBottom] - Content.bottom + max(LastFooter.marginBottom, pane.paddingBotom) + m.spaceBelow = ($F[0].offsetTop + $F.outerHeight()) - m.bottom + _below($F); + else // no footer - check marginBottom on Content element itself + m.spaceBelow = _below($C); + }; + }); + } + + + /** + * Called every time a pane is opened, closed, or resized to slide the togglers to 'center' and adjust their length if necessary + * + * @see initHandles(), open(), close(), resizeAll() + * @param {(string|Object)=} evt_or_panes The pane(s) being resized + */ +, sizeHandles = function (evt_or_panes) { + var panes = evtPane.call(this, evt_or_panes) + panes = panes ? panes.split(",") : _c.borderPanes; + + $.each(panes, function (i, pane) { + var + o = options[pane] + , s = state[pane] + , $P = $Ps[pane] + , $R = $Rs[pane] + , $T = $Ts[pane] + , $TC + ; + if (!$P || !$R) return; + + var + dir = _c[pane].dir + , _state = (s.isClosed ? "_closed" : "_open") + , spacing = o["spacing"+ _state] + , togAlign = o["togglerAlign"+ _state] + , togLen = o["togglerLength"+ _state] + , paneLen + , left + , offset + , CSS = {} + ; + + if (spacing === 0) { + $R.hide(); + return; + } + else if (!s.noRoom && !s.isHidden) // skip if resizer was hidden for any reason + $R.show(); // in case was previously hidden + + // Resizer Bar is ALWAYS same width/height of pane it is attached to + if (dir === "horz") { // north/south + //paneLen = $P.outerWidth(); // s.outerWidth || + paneLen = sC.innerWidth; // handle offscreen-panes + s.resizerLength = paneLen; + left = $.layout.cssNum($P, "left") + $R.css({ + width: cssW($R, paneLen) // account for borders & padding + , height: cssH($R, spacing) // ditto + , left: left > -9999 ? left : sC.inset.left // handle offscreen-panes + }); + } + else { // east/west + paneLen = $P.outerHeight(); // s.outerHeight || + s.resizerLength = paneLen; + $R.css({ + height: cssH($R, paneLen) // account for borders & padding + , width: cssW($R, spacing) // ditto + , top: sC.inset.top + getPaneSize("north", true) // TODO: what if no North pane? + //, top: $.layout.cssNum($Ps["center"], "top") + }); + } + + // remove hover classes + removeHover( o, $R ); + + if ($T) { + if (togLen === 0 || (s.isSliding && o.hideTogglerOnSlide)) { + $T.hide(); // always HIDE the toggler when 'sliding' + return; + } + else + $T.show(); // in case was previously hidden + + if (!(togLen > 0) || togLen === "100%" || togLen > paneLen) { + togLen = paneLen; + offset = 0; + } + else { // calculate 'offset' based on options.PANE.togglerAlign_open/closed + if (isStr(togAlign)) { + switch (togAlign) { + case "top": + case "left": offset = 0; + break; + case "bottom": + case "right": offset = paneLen - togLen; + break; + case "middle": + case "center": + default: offset = round((paneLen - togLen) / 2); // 'default' catches typos + } + } + else { // togAlign = number + var x = parseInt(togAlign, 10); // + if (togAlign >= 0) offset = x; + else offset = paneLen - togLen + x; // NOTE: x is negative! + } + } + + if (dir === "horz") { // north/south + var width = cssW($T, togLen); + $T.css({ + width: width // account for borders & padding + , height: cssH($T, spacing) // ditto + , left: offset // TODO: VERIFY that toggler positions correctly for ALL values + , top: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginLeft", round((width-$TC.outerWidth())/2)); // could be negative + }); + } + else { // east/west + var height = cssH($T, togLen); + $T.css({ + height: height // account for borders & padding + , width: cssW($T, spacing) // ditto + , top: offset // POSITION the toggler + , left: 0 + }); + // CENTER the toggler content SPAN + $T.children(".content").each(function(){ + $TC = $(this); + $TC.css("marginTop", round((height-$TC.outerHeight())/2)); // could be negative + }); + } + + // remove ALL hover classes + removeHover( 0, $T ); + } + + // DONE measuring and sizing this resizer/toggler, so can be 'hidden' now + if (!state.initialized && (o.initHidden || s.isHidden)) { + $R.hide(); + if ($T) $T.hide(); + } + }); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableClosable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + , o = options[pane] + ; + if (!$T) return; + o.closable = true; + $T .bind("click."+ sID, function(evt){ evt.stopPropagation(); toggle(pane); }) + .css("visibility", "visible") + .css("cursor", "pointer") + .attr("title", state[pane].isClosed ? o.tips.Open : o.tips.Close) // may be blank + .show(); + } + /** + * @param {(string|Object)} evt_or_pane + * @param {boolean=} [hide=false] + */ +, disableClosable = function (evt_or_pane, hide) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $T = $Ts[pane] + ; + if (!$T) return; + options[pane].closable = false; + // is closable is disable, then pane MUST be open! + if (state[pane].isClosed) open(pane, false, true); + $T .unbind("."+ sID) + .css("visibility", hide ? "hidden" : "visible") // instead of hide(), which creates logic issues + .css("cursor", "default") + .attr("title", ""); + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].slidable = true; + if (state[pane].isClosed) + bindStartSlidingEvents(pane, true); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableSlidable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R) return; + options[pane].slidable = false; + if (state[pane].isSliding) + close(pane, false, true); + else { + bindStartSlidingEvents(pane, false); + $R .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + } + + + /** + * @param {(string|Object)} evt_or_pane + */ +, enableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + , o = options[pane] + ; + if (!$R || !$R.data('draggable')) return; + o.resizable = true; + $R.draggable("enable"); + if (!state[pane].isClosed) + $R .css("cursor", o.resizerCursor) + .attr("title", o.tips.Resize); + } + /** + * @param {(string|Object)} evt_or_pane + */ +, disableResizable = function (evt_or_pane) { + if (!isInitialized()) return; + var pane = evtPane.call(this, evt_or_pane) + , $R = $Rs[pane] + ; + if (!$R || !$R.data('draggable')) return; + options[pane].resizable = false; + $R .draggable("disable") + .css("cursor", "default") + .attr("title", ""); + removeHover(null, $R[0]); // in case currently hovered + } + + + /** + * Move a pane from source-side (eg, west) to target-side (eg, east) + * If pane exists on target-side, move that to source-side, ie, 'swap' the panes + * + * @param {(string|Object)} evt_or_pane1 The pane/edge being swapped + * @param {string} pane2 ditto + */ +, swapPanes = function (evt_or_pane1, pane2) { + if (!isInitialized()) return; + var pane1 = evtPane.call(this, evt_or_pane1); + // change state.edge NOW so callbacks can know where pane is headed... + state[pane1].edge = pane2; + state[pane2].edge = pane1; + // run these even if NOT state.initialized + if (false === _runCallbacks("onswap_start", pane1) + || false === _runCallbacks("onswap_start", pane2) + ) { + state[pane1].edge = pane1; // reset + state[pane2].edge = pane2; + return; + } + + var + oPane1 = copy( pane1 ) + , oPane2 = copy( pane2 ) + , sizes = {} + ; + sizes[pane1] = oPane1 ? oPane1.state.size : 0; + sizes[pane2] = oPane2 ? oPane2.state.size : 0; + + // clear pointers & state + $Ps[pane1] = false; + $Ps[pane2] = false; + state[pane1] = {}; + state[pane2] = {}; + + // ALWAYS remove the resizer & toggler elements + if ($Ts[pane1]) $Ts[pane1].remove(); + if ($Ts[pane2]) $Ts[pane2].remove(); + if ($Rs[pane1]) $Rs[pane1].remove(); + if ($Rs[pane2]) $Rs[pane2].remove(); + $Rs[pane1] = $Rs[pane2] = $Ts[pane1] = $Ts[pane2] = false; + + // transfer element pointers and data to NEW Layout keys + move( oPane1, pane2 ); + move( oPane2, pane1 ); + + // cleanup objects + oPane1 = oPane2 = sizes = null; + + // make panes 'visible' again + if ($Ps[pane1]) $Ps[pane1].css(_c.visible); + if ($Ps[pane2]) $Ps[pane2].css(_c.visible); + + // fix any size discrepancies caused by swap + resizeAll(); + + // run these even if NOT state.initialized + _runCallbacks("onswap_end", pane1); + _runCallbacks("onswap_end", pane2); + + return; + + function copy (n) { // n = pane + var + $P = $Ps[n] + , $C = $Cs[n] + ; + return !$P ? false : { + pane: n + , P: $P ? $P[0] : false + , C: $C ? $C[0] : false + , state: $.extend(true, {}, state[n]) + , options: $.extend(true, {}, options[n]) + } + }; + + function move (oPane, pane) { + if (!oPane) return; + var + P = oPane.P + , C = oPane.C + , oldPane = oPane.pane + , c = _c[pane] + // save pane-options that should be retained + , s = $.extend(true, {}, state[pane]) + , o = options[pane] + // RETAIN side-specific FX Settings - more below + , fx = { resizerCursor: o.resizerCursor } + , re, size, pos + ; + $.each("fxName,fxSpeed,fxSettings".split(","), function (i, k) { + fx[k +"_open"] = o[k +"_open"]; + fx[k +"_close"] = o[k +"_close"]; + fx[k +"_size"] = o[k +"_size"]; + }); + + // update object pointers and attributes + $Ps[pane] = $(P) + .data({ + layoutPane: Instance[pane] // NEW pointer to pane-alias-object + , layoutEdge: pane + }) + .css(_c.hidden) + .css(c.cssReq) + ; + $Cs[pane] = C ? $(C) : false; + + // set options and state + options[pane] = $.extend(true, {}, oPane.options, fx); + state[pane] = $.extend(true, {}, oPane.state); + + // change classNames on the pane, eg: ui-layout-pane-east ==> ui-layout-pane-west + re = new RegExp(o.paneClass +"-"+ oldPane, "g"); + P.className = P.className.replace(re, o.paneClass +"-"+ pane); + + // ALWAYS regenerate the resizer & toggler elements + initHandles(pane); // create the required resizer & toggler + + // if moving to different orientation, then keep 'target' pane size + if (c.dir != _c[oldPane].dir) { + size = sizes[pane] || 0; + setSizeLimits(pane); // update pane-state + size = max(size, state[pane].minSize); + // use manualSizePane to disable autoResize - not useful after panes are swapped + manualSizePane(pane, size, true, true); // true/true = skipCallback/noAnimation + } + else // move the resizer here + $Rs[pane].css(c.side, sC.inset[c.side] + (state[pane].isVisible ? getPaneSize(pane) : 0)); + + + // ADD CLASSNAMES & SLIDE-BINDINGS + if (oPane.state.isVisible && !s.isVisible) + setAsOpen(pane, true); // true = skipCallback + else { + setAsClosed(pane); + bindStartSlidingEvents(pane, true); // will enable events IF option is set + } + + // DESTROY the object + oPane = null; + }; + } + + + /** + * INTERNAL method to sync pin-buttons when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), setAsOpen(), setAsClosed() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns = function (pane, doPin) { + if ($.layout.plugins.buttons) + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(Instance, $(selector), pane, doPin); + }); + } + +; // END var DECLARATIONS + + /** + * Capture keys when enableCursorHotkey - toggle pane if hotkey pressed + * + * @see document.keydown() + */ + function keyDown (evt) { + if (!evt) return true; + var code = evt.keyCode; + if (code < 33) return true; // ignore special keys: ENTER, TAB, etc + + var + PANE = { + 38: "north" // Up Cursor - $.ui.keyCode.UP + , 40: "south" // Down Cursor - $.ui.keyCode.DOWN + , 37: "west" // Left Cursor - $.ui.keyCode.LEFT + , 39: "east" // Right Cursor - $.ui.keyCode.RIGHT + } + , ALT = evt.altKey // no worky! + , SHIFT = evt.shiftKey + , CTRL = evt.ctrlKey + , CURSOR = (CTRL && code >= 37 && code <= 40) + , o, k, m, pane + ; + + if (CURSOR && options[PANE[code]].enableCursorHotkey) // valid cursor-hotkey + pane = PANE[code]; + else if (CTRL || SHIFT) // check to see if this matches a custom-hotkey + $.each(_c.borderPanes, function (i, p) { // loop each pane to check its hotkey + o = options[p]; + k = o.customHotkey; + m = o.customHotkeyModifier; // if missing or invalid, treated as "CTRL+SHIFT" + if ((SHIFT && m=="SHIFT") || (CTRL && m=="CTRL") || (CTRL && SHIFT)) { // Modifier matches + if (k && code === (isNaN(k) || k <= 9 ? k.toUpperCase().charCodeAt(0) : k)) { // Key matches + pane = p; + return false; // BREAK + } + } + }); + + // validate pane + if (!pane || !$Ps[pane] || !options[pane].closable || state[pane].isHidden) + return true; + + toggle(pane); + + evt.stopPropagation(); + evt.returnValue = false; // CANCEL key + return false; + }; + + +/* + * ###################################### + * UTILITY METHODS + * called externally or by initButtons + * ###################################### + */ + + /** + * Change/reset a pane overflow setting & zIndex to allow popups/drop-downs to work + * + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function allowOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + ; + + // if pane is already raised, then reset it before doing it again! + // this would happen if allowOverflow is attached to BOTH the pane and an element + if (s.cssSaved) + resetOverflow(pane); // reset previous CSS before continuing + + // if pane is raised by sliding or resizing, or its closed, then abort + if (s.isSliding || s.isResizing || s.isClosed) { + s.cssSaved = false; + return; + } + + var + newCSS = { zIndex: (options.zIndexes.resizer_normal + 1) } + , curCSS = {} + , of = $P.css("overflow") + , ofX = $P.css("overflowX") + , ofY = $P.css("overflowY") + ; + // determine which, if any, overflow settings need to be changed + if (of != "visible") { + curCSS.overflow = of; + newCSS.overflow = "visible"; + } + if (ofX && !ofX.match(/(visible|auto)/)) { + curCSS.overflowX = ofX; + newCSS.overflowX = "visible"; + } + if (ofY && !ofY.match(/(visible|auto)/)) { + curCSS.overflowY = ofX; + newCSS.overflowY = "visible"; + } + + // save the current overflow settings - even if blank! + s.cssSaved = curCSS; + + // apply new CSS to raise zIndex and, if necessary, make overflow 'visible' + $P.css( newCSS ); + + // make sure the zIndex of all other panes is normal + $.each(_c.allPanes, function(i, p) { + if (p != pane) resetOverflow(p); + }); + + }; + /** + * @param {Object=} [el] (optional) Can also be 'bound' to a click, mouseOver, or other event + */ + function resetOverflow (el) { + if (!isInitialized()) return; + if (this && this.tagName) el = this; // BOUND to element + var $P; + if (isStr(el)) + $P = $Ps[el]; + else if ($(el).data("layoutRole")) + $P = $(el); + else + $(el).parents().each(function(){ + if ($(this).data("layoutRole")) { + $P = $(this); + return false; // BREAK + } + }); + if (!$P || !$P.length) return; // INVALID + + var + pane = $P.data("layoutEdge") + , s = state[pane] + , CSS = s.cssSaved || {} + ; + // reset the zIndex + if (!s.isSliding && !s.isResizing) + $P.css("zIndex", options.zIndexes.pane_normal); + + // reset Overflow - if necessary + $P.css( CSS ); + + // clear var + s.cssSaved = false; + }; + +/* + * ##################### + * CREATE/RETURN LAYOUT + * ##################### + */ + + // validate that container exists + var $N = $(this).eq(0); // FIRST matching Container element + if (!$N.length) { + return _log( options.errors.containerMissing ); + }; + + // Users retrieve Instance of a layout with: $N.layout() OR $N.data("layout") + // return the Instance-pointer if layout has already been initialized + if ($N.data("layoutContainer") && $N.data("layout")) + return $N.data("layout"); // cached pointer + + // init global vars + var + $Ps = {} // Panes x5 - set in initPanes() + , $Cs = {} // Content x5 - set in initPanes() + , $Rs = {} // Resizers x4 - set in initHandles() + , $Ts = {} // Togglers x4 - set in initHandles() + , $Ms = $([]) // Masks - up to 2 masks per pane (IFRAME + DIV) + // aliases for code brevity + , sC = state.container // alias for easy access to 'container dimensions' + , sID = state.id // alias for unique layout ID/namespace - eg: "layout435" + ; + + // create Instance object to expose data & option Properties, and primary action Methods + var Instance = { + // layout data + options: options // property - options hash + , state: state // property - dimensions hash + // object pointers + , container: $N // property - object pointers for layout container + , panes: $Ps // property - object pointers for ALL Panes: panes.north, panes.center + , contents: $Cs // property - object pointers for ALL Content: contents.north, contents.center + , resizers: $Rs // property - object pointers for ALL Resizers, eg: resizers.north + , togglers: $Ts // property - object pointers for ALL Togglers, eg: togglers.north + // border-pane open/close + , hide: hide // method - ditto + , show: show // method - ditto + , toggle: toggle // method - pass a 'pane' ("north", "west", etc) + , open: open // method - ditto + , close: close // method - ditto + , slideOpen: slideOpen // method - ditto + , slideClose: slideClose // method - ditto + , slideToggle: slideToggle // method - ditto + // pane actions + , setSizeLimits: setSizeLimits // method - pass a 'pane' - update state min/max data + , _sizePane: sizePane // method -intended for user by plugins only! + , sizePane: manualSizePane // method - pass a 'pane' AND an 'outer-size' in pixels or percent, or 'auto' + , sizeContent: sizeContent // method - pass a 'pane' + , swapPanes: swapPanes // method - pass TWO 'panes' - will swap them + , showMasks: showMasks // method - pass a 'pane' OR list of panes - default = all panes with mask option set + , hideMasks: hideMasks // method - ditto' + // pane element methods + , initContent: initContent // method - ditto + , addPane: addPane // method - pass a 'pane' + , removePane: removePane // method - pass a 'pane' to remove from layout, add 'true' to delete the pane-elem + , createChildren: createChildren // method - pass a 'pane' and (optional) layout-options (OVERRIDES options[pane].children + , refreshChildren: refreshChildren // method - pass a 'pane' and a layout-instance + // special pane option setting + , enableClosable: enableClosable // method - pass a 'pane' + , disableClosable: disableClosable // method - ditto + , enableSlidable: enableSlidable // method - ditto + , disableSlidable: disableSlidable // method - ditto + , enableResizable: enableResizable // method - ditto + , disableResizable: disableResizable// method - ditto + // utility methods for panes + , allowOverflow: allowOverflow // utility - pass calling element (this) + , resetOverflow: resetOverflow // utility - ditto + // layout control + , destroy: destroy // method - no parameters + , initPanes: isInitialized // method - no parameters + , resizeAll: resizeAll // method - no parameters + // callback triggering + , runCallbacks: _runCallbacks // method - pass evtName & pane (if a pane-event), eg: trigger("onopen", "west") + // alias collections of options, state and children - created in addPane and extended elsewhere + , hasParentLayout: false // set by initContainer() + , children: children // pointers to child-layouts, eg: Instance.children.west.layoutName + , north: false // alias group: { name: pane, pane: $Ps[pane], options: options[pane], state: state[pane], children: children[pane] } + , south: false // ditto + , west: false // ditto + , east: false // ditto + , center: false // ditto + }; + + // create the border layout NOW + if (_create() === 'cancel') // onload_start callback returned false to CANCEL layout creation + return null; + else // true OR false -- if layout-elements did NOT init (hidden or do not exist), can auto-init later + return Instance; // return the Instance object + +} + + +})( jQuery ); + + + + +/** + * jquery.layout.state 1.2 + * $Date: 2014-08-30 08:00:00 (Sat, 30 Aug 2014) $ + * + * Copyright (c) 2014 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.4.0 or higher + * @requires: $.ui.cookie (above) + * + * @see: http://groups.google.com/group/jquery-ui-layout + */ +;(function ($) { + +if (!$.layout) return; + + +/** + * UI COOKIE UTILITY + * + * A $.cookie OR $.ui.cookie namespace *should be standard*, but until then... + * This creates $.ui.cookie so Layout does not need the cookie.jquery.js plugin + * NOTE: This utility is REQUIRED by the layout.state plugin + * + * Cookie methods in Layout are created as part of State Management + */ +if (!$.ui) $.ui = {}; +$.ui.cookie = { + + // cookieEnabled is not in DOM specs, but DOES works in all browsers,including IE6 + acceptsCookies: !!navigator.cookieEnabled + +, read: function (name) { + var + c = document.cookie + , cs = c ? c.split(';') : [] + , pair, data, i + ; + for (i=0; pair=cs[i]; i++) { + data = $.trim(pair).split('='); // name=value => [ name, value ] + if (data[0] == name) // found the layout cookie + return decodeURIComponent(data[1]); + } + return null; + } + +, write: function (name, val, cookieOpts) { + var params = "" + , date = "" + , clear = false + , o = cookieOpts || {} + , x = o.expires || null + , t = $.type(x) + ; + if (t === "date") + date = x; + else if (t === "string" && x > 0) { + x = parseInt(x,10); + t = "number"; + } + if (t === "number") { + date = new Date(); + if (x > 0) + date.setDate(date.getDate() + x); + else { + date.setFullYear(1970); + clear = true; + } + } + if (date) params += ";expires="+ date.toUTCString(); + if (o.path) params += ";path="+ o.path; + if (o.domain) params += ";domain="+ o.domain; + if (o.secure) params += ";secure"; + document.cookie = name +"="+ (clear ? "" : encodeURIComponent( val )) + params; // write or clear cookie + } + +, clear: function (name) { + $.ui.cookie.write(name, "", {expires: -1}); + } + +}; +// if cookie.jquery.js is not loaded, create an alias to replicate it +// this may be useful to other plugins or code dependent on that plugin +if (!$.cookie) $.cookie = function (k, v, o) { + var C = $.ui.cookie; + if (v === null) + C.clear(k); + else if (v === undefined) + return C.read(k); + else + C.write(k, v, o); +}; + + + +/** + * State-management options stored in options.stateManagement, which includes a .cookie hash + * Default options saves ALL KEYS for ALL PANES, ie: pane.size, pane.isClosed, pane.isHidden + * + * // STATE/COOKIE OPTIONS + * @example $(el).layout({ + stateManagement: { + enabled: true + , stateKeys: "east.size,west.size,east.isClosed,west.isClosed" + , cookie: { name: "appLayout", path: "/" } + } + }) + * @example $(el).layout({ stateManagement__enabled: true }) // enable auto-state-management using cookies + * @example $(el).layout({ stateManagement__cookie: { name: "appLayout", path: "/" } }) + * @example $(el).layout({ stateManagement__cookie__name: "appLayout", stateManagement__cookie__path: "/" }) + * + * // STATE/COOKIE METHODS + * @example myLayout.saveCookie( "west.isClosed,north.size,south.isHidden", {expires: 7} ); + * @example myLayout.loadCookie(); + * @example myLayout.deleteCookie(); + * @example var JSON = myLayout.readState(); // CURRENT Layout State + * @example var JSON = myLayout.readCookie(); // SAVED Layout State (from cookie) + * @example var JSON = myLayout.state.stateData; // LAST LOADED Layout State (cookie saved in layout.state hash) + * + * CUSTOM STATE-MANAGEMENT (eg, saved in a database) + * @example var JSON = myLayout.readState( "west.isClosed,north.size,south.isHidden" ); + * @example myLayout.loadState( JSON ); + */ + +// tell Layout that the state plugin is available +$.layout.plugins.stateManagement = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.stateManagement = { + enabled: false // true = enable state-management, even if not using cookies +, autoSave: true // Save a state-cookie when page exits? +, autoLoad: true // Load the state-cookie when Layout inits? +, animateLoad: true // animate panes when loading state into an active layout +, includeChildren: true // recurse into child layouts to include their state as well + // List state-data to save - must be pane-specific +, stateKeys: "north.size,south.size,east.size,west.size,"+ + "north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ + "north.isHidden,south.isHidden,east.isHidden,west.isHidden" +, cookie: { + name: "" // If not specified, will use Layout.name, else just "Layout" + , domain: "" // blank = current domain + , path: "" // blank = current page, "/" = entire website + , expires: "" // 'days' to keep cookie - leave blank for 'session cookie' + , secure: false + } +}; + +// Set stateManagement as a 'layout-option', NOT a 'pane-option' +$.layout.optionsMap.layout.push("stateManagement"); +// Update config so layout does not move options into the pane-default branch (panes) +$.layout.config.optionRootKeys.push("stateManagement"); + +/* + * State Management methods + */ +$.layout.state = { + + /** + * Get the current layout state and save it to a cookie + * + * myLayout.saveCookie( keys, cookieOpts ) + * + * @param {Object} inst + * @param {(string|Array)=} keys + * @param {Object=} cookieOpts + */ + saveCookie: function (inst, keys, cookieOpts) { + var o = inst.options + , sm = o.stateManagement + , oC = $.extend(true, {}, sm.cookie, cookieOpts || null) + , data = inst.state.stateData = inst.readState( keys || sm.stateKeys ) // read current panes-state + ; + $.ui.cookie.write( oC.name || o.name || "Layout", $.layout.state.encodeJSON(data), oC ); + return $.extend(true, {}, data); // return COPY of state.stateData data + } + + /** + * Remove the state cookie + * + * @param {Object} inst + */ +, deleteCookie: function (inst) { + var o = inst.options; + $.ui.cookie.clear( o.stateManagement.cookie.name || o.name || "Layout" ); + } + + /** + * Read & return data from the cookie - as JSON + * + * @param {Object} inst + */ +, readCookie: function (inst) { + var o = inst.options; + var c = $.ui.cookie.read( o.stateManagement.cookie.name || o.name || "Layout" ); + // convert cookie string back to a hash and return it + return c ? $.layout.state.decodeJSON(c) : {}; + } + + /** + * Get data from the cookie and USE IT to loadState + * + * @param {Object} inst + */ +, loadCookie: function (inst) { + var c = $.layout.state.readCookie(inst); // READ the cookie + if (c && !$.isEmptyObject( c )) { + inst.state.stateData = $.extend(true, {}, c); // SET state.stateData + inst.loadState(c); // LOAD the retrieved state + } + return c; + } + + /** + * Update layout options from the cookie, if one exists + * + * @param {Object} inst + * @param {Object=} stateData + * @param {boolean=} animate + */ +, loadState: function (inst, data, opts) { + if (!$.isPlainObject( data ) || $.isEmptyObject( data )) return; + + // normalize data & cache in the state object + data = inst.state.stateData = $.layout.transformData( data ); // panes = default subkey + + // add missing/default state-restore options + var smo = inst.options.stateManagement; + opts = $.extend({ + animateLoad: false //smo.animateLoad + , includeChildren: smo.includeChildren + }, opts ); + + if (!inst.state.initialized) { + /* + * layout NOT initialized, so just update its options + */ + // MUST remove pane.children keys before applying to options + // use a copy so we don't remove keys from original data + var o = $.extend(true, {}, data); + //delete o.center; // center has no state-data - only children + $.each($.layout.config.allPanes, function (idx, pane) { + if (o[pane]) delete o[pane].children; + }); + // update CURRENT layout-options with saved state data + $.extend(true, inst.options, o); + } + else { + /* + * layout already initialized, so modify layout's configuration + */ + var noAnimate = !opts.animateLoad + , o, c, h, state, open + ; + $.each($.layout.config.borderPanes, function (idx, pane) { + o = data[ pane ]; + if (!$.isPlainObject( o )) return; // no key, skip pane + + s = o.size; + c = o.initClosed; + h = o.initHidden; + ar = o.autoResize + state = inst.state[pane]; + open = state.isVisible; + + // reset autoResize + if (ar) + state.autoResize = ar; + // resize BEFORE opening + if (!open) + inst._sizePane(pane, s, false, false, false); // false=skipCallback/noAnimation/forceResize + // open/close as necessary - DO NOT CHANGE THIS ORDER! + if (h === true) inst.hide(pane, noAnimate); + else if (c === true) inst.close(pane, false, noAnimate); + else if (c === false) inst.open (pane, false, noAnimate); + else if (h === false) inst.show (pane, false, noAnimate); + // resize AFTER any other actions + if (open) + inst._sizePane(pane, s, false, false, noAnimate); // animate resize if option passed + }); + + /* + * RECURSE INTO CHILD-LAYOUTS + */ + if (opts.includeChildren) { + var paneStateChildren, childState; + $.each(inst.children, function (pane, paneChildren) { + paneStateChildren = data[pane] ? data[pane].children : 0; + if (paneStateChildren && paneChildren) { + $.each(paneChildren, function (stateKey, child) { + childState = paneStateChildren[stateKey]; + if (child && childState) + child.loadState( childState ); + }); + } + }); + } + } + } + + /** + * Get the *current layout state* and return it as a hash + * + * @param {Object=} inst // Layout instance to get state for + * @param {object=} [opts] // State-Managements override options + */ +, readState: function (inst, opts) { + // backward compatility + if ($.type(opts) === 'string') opts = { keys: opts }; + if (!opts) opts = {}; + var sm = inst.options.stateManagement + , ic = opts.includeChildren + , recurse = ic !== undefined ? ic : sm.includeChildren + , keys = opts.stateKeys || sm.stateKeys + , alt = { isClosed: 'initClosed', isHidden: 'initHidden' } + , state = inst.state + , panes = $.layout.config.allPanes + , data = {} + , pair, pane, key, val + , ps, pC, child, array, count, branch + ; + if ($.isArray(keys)) keys = keys.join(","); + // convert keys to an array and change delimiters from '__' to '.' + keys = keys.replace(/__/g, ".").split(','); + // loop keys and create a data hash + for (var i=0, n=keys.length; i < n; i++) { + pair = keys[i].split("."); + pane = pair[0]; + key = pair[1]; + if ($.inArray(pane, panes) < 0) continue; // bad pane! + val = state[ pane ][ key ]; + if (val == undefined) continue; + if (key=="isClosed" && state[pane]["isSliding"]) + val = true; // if sliding, then *really* isClosed + ( data[pane] || (data[pane]={}) )[ alt[key] ? alt[key] : key ] = val; + } + + // recurse into the child-layouts for each pane + if (recurse) { + $.each(panes, function (idx, pane) { + pC = inst.children[pane]; + ps = state.stateData[pane]; + if ($.isPlainObject( pC ) && !$.isEmptyObject( pC )) { + // ensure a key exists for this 'pane', eg: branch = data.center + branch = data[pane] || (data[pane] = {}); + if (!branch.children) branch.children = {}; + $.each( pC, function (key, child) { + // ONLY read state from an initialize layout + if ( child.state.initialized ) + branch.children[ key ] = $.layout.state.readState( child ); + // if we have PREVIOUS (onLoad) state for this child-layout, KEEP IT! + else if ( ps && ps.children && ps.children[ key ] ) { + branch.children[ key ] = $.extend(true, {}, ps.children[ key ] ); + } + }); + } + }); + } + + return data; + } + + /** + * Stringify a JSON hash so can save in a cookie or db-field + */ +, encodeJSON: function (json) { + var local = window.JSON || {}; + return (local.stringify || stringify)(json); + + function stringify (h) { + var D=[], i=0, k, v, t // k = key, v = value + , a = $.isArray(h) + ; + for (k in h) { + v = h[k]; + t = typeof v; + if (t == 'string') // STRING - add quotes + v = '"'+ v +'"'; + else if (t == 'object') // SUB-KEY - recurse into it + v = parse(v); + D[i++] = (!a ? '"'+ k +'":' : '') + v; + } + return (a ? '[' : '{') + D.join(',') + (a ? ']' : '}'); + }; + } + + /** + * Convert stringified JSON back to a hash object + * @see $.parseJSON(), adding in jQuery 1.4.1 + */ +, decodeJSON: function (str) { + try { return $.parseJSON ? $.parseJSON(str) : window["eval"]("("+ str +")") || {}; } + catch (e) { return {}; } + } + + +, _create: function (inst) { + var s = $.layout.state + , o = inst.options + , sm = o.stateManagement + ; + // ADD State-Management plugin methods to inst + $.extend( inst, { + // readCookie - update options from cookie - returns hash of cookie data + readCookie: function () { return s.readCookie(inst); } + // deleteCookie + , deleteCookie: function () { s.deleteCookie(inst); } + // saveCookie - optionally pass keys-list and cookie-options (hash) + , saveCookie: function (keys, cookieOpts) { return s.saveCookie(inst, keys, cookieOpts); } + // loadCookie - readCookie and use to loadState() - returns hash of cookie data + , loadCookie: function () { return s.loadCookie(inst); } + // loadState - pass a hash of state to use to update options + , loadState: function (stateData, opts) { s.loadState(inst, stateData, opts); } + // readState - returns hash of current layout-state + , readState: function (keys) { return s.readState(inst, keys); } + // add JSON utility methods too... + , encodeJSON: s.encodeJSON + , decodeJSON: s.decodeJSON + }); + + // init state.stateData key, even if plugin is initially disabled + inst.state.stateData = {}; + + // autoLoad MUST BE one of: data-array, data-hash, callback-function, or TRUE + if ( !sm.autoLoad ) return; + + // When state-data exists in the autoLoad key USE IT, + // even if stateManagement.enabled == false + if ($.isPlainObject( sm.autoLoad )) { + if (!$.isEmptyObject( sm.autoLoad )) { + inst.loadState( sm.autoLoad ); + } + } + else if ( sm.enabled ) { + // update the options from cookie or callback + // if options is a function, call it to get stateData + if ($.isFunction( sm.autoLoad )) { + var d = {}; + try { + d = sm.autoLoad( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + if (d && $.isPlainObject( d ) && !$.isEmptyObject( d )) + inst.loadState(d); + } + else // any other truthy value will trigger loadCookie + inst.loadCookie(); + } + } + +, _unload: function (inst) { + var sm = inst.options.stateManagement; + if (sm.enabled && sm.autoSave) { + // if options is a function, call it to save the stateData + if ($.isFunction( sm.autoSave )) { + try { + sm.autoSave( inst, inst.state, inst.options, inst.options.name || '' ); // try to get data from fn + } catch (e) {} + } + else // any truthy value will trigger saveCookie + inst.saveCookie(); + } + } + +}; + +// add state initialization method to Layout's onCreate array of functions +$.layout.onCreate.push( $.layout.state._create ); +$.layout.onUnload.push( $.layout.state._unload ); + +})( jQuery ); + + + +/** + * @preserve jquery.layout.buttons 1.0 + * $Date: 2011-07-16 08:00:00 (Sat, 16 July 2011) $ + * + * Copyright (c) 2011 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @dependancies: UI Layout 1.3.0.rc30.1 or higher + * + * @support: http://groups.google.com/group/jquery-ui-layout + * + * Docs: [ to come ] + * Tips: [ to come ] + */ +;(function ($) { + +if (!$.layout) return; + + +// tell Layout that the state plugin is available +$.layout.plugins.buttons = true; + +// Add State-Management options to layout.defaults +$.layout.defaults.autoBindCustomButtons = false; +// Set stateManagement as a layout-option, NOT a pane-option +$.layout.optionsMap.layout.push("autoBindCustomButtons"); + +var lang = $.layout.language; + +/* + * Button methods + */ +$.layout.buttons = { + // set data used by multiple methods below + config: { + borderPanes: "north,south,west,east" + } + + /** + * Searches for .ui-layout-button-xxx elements and auto-binds them as layout-buttons + * + * @see _create() + */ +, init: function (inst) { + var pre = "ui-layout-button-" + , layout = inst.options.name || "" + , name; + $.each("toggle,open,close,pin,toggle-slide,open-slide".split(","), function (i, action) { + $.each($.layout.buttons.config.borderPanes.split(","), function (ii, pane) { + $("."+pre+action+"-"+pane).each(function(){ + // if button was previously 'bound', data.layoutName was set, but is blank if layout has no 'name' + name = $(this).data("layoutName") || $(this).attr("layoutName"); + if (name == undefined || name === layout) + inst.bindButton(this, action, pane); + }); + }); + }); + } + + /** + * Helper function to validate params received by addButton utilities + * + * Two classes are added to the element, based on the buttonClass... + * The type of button is appended to create the 2nd className: + * - ui-layout-button-pin + * - ui-layout-pane-button-toggle + * - ui-layout-pane-button-open + * - ui-layout-pane-button-close + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @return {Array.} If both params valid, the element matching 'selector' in a jQuery wrapper - otherwise returns null + */ +, get: function (inst, selector, pane, action) { + var $E = $(selector) + , o = inst.options + , err = o.showErrorMessages + ; + if (!$E.length) { // element not found + if (err) alert(lang.errButton + lang.selector +": "+ selector); + } + else if ($.layout.buttons.config.borderPanes.indexOf(pane) === -1) { // invalid 'pane' sepecified + if (err) alert(lang.errButton + lang.pane +": "+ pane); + $E = $(""); // NO BUTTON + } + else { // VALID + var btn = o[pane].buttonClass +"-"+ action; + $E .addClass( btn +" "+ btn +"-"+ pane ) + .data("layoutName", o.name); // add layout identifier - even if blank! + } + return $E; + } + + + /** + * NEW syntax for binding layout-buttons - will eventually replace addToggle, addOpen, etc. + * + * @param {(string|!Object)} sel jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} action + * @param {string} pane + */ +, bind: function (inst, sel, action, pane) { + var _ = $.layout.buttons; + switch (action.toLowerCase()) { + case "toggle": _.addToggle (inst, sel, pane); break; + case "open": _.addOpen (inst, sel, pane); break; + case "close": _.addClose (inst, sel, pane); break; + case "pin": _.addPin (inst, sel, pane); break; + case "toggle-slide": _.addToggle (inst, sel, pane, true); break; + case "open-slide": _.addOpen (inst, sel, pane, true); break; + } + return inst; + } + + /** + * Add a custom Toggler button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addToggle: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "toggle") + .click(function(evt){ + inst.toggle(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Open button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + * @param {boolean=} slide true = slide-open, false = pin-open + */ +, addOpen: function (inst, selector, pane, slide) { + $.layout.buttons.get(inst, selector, pane, "open") + .attr("title", lang.Open) + .click(function (evt) { + inst.open(pane, !!slide); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Close button for a pane + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the button is for: 'north', 'south', etc. + */ +, addClose: function (inst, selector, pane) { + $.layout.buttons.get(inst, selector, pane, "close") + .attr("title", lang.Close) + .click(function (evt) { + inst.close(pane); + evt.stopPropagation(); + }); + return inst; + } + + /** + * Add a custom Pin button for a pane + * + * Four classes are added to the element, based on the paneClass for the associated pane... + * Assuming the default paneClass and the pin is 'up', these classes are added for a west-pane pin: + * - ui-layout-pane-pin + * - ui-layout-pane-west-pin + * - ui-layout-pane-pin-up + * - ui-layout-pane-west-pin-up + * + * @param {(string|!Object)} selector jQuery selector (or element) for button, eg: ".ui-layout-north .toggle-button" + * @param {string} pane Name of the pane the pin is for: 'north', 'south', etc. + */ +, addPin: function (inst, selector, pane) { + var $E = $.layout.buttons.get(inst, selector, pane, "pin"); + if ($E.length) { + var s = inst.state[pane]; + $E.click(function (evt) { + $.layout.buttons.setPinState(inst, $(this), pane, (s.isSliding || s.isClosed)); + if (s.isSliding || s.isClosed) inst.open( pane ); // change from sliding to open + else inst.close( pane ); // slide-closed + evt.stopPropagation(); + }); + // add up/down pin attributes and classes + $.layout.buttons.setPinState(inst, $E, pane, (!s.isClosed && !s.isSliding)); + // add this pin to the pane data so we can 'sync it' automatically + // PANE.pins key is an array so we can store multiple pins for each pane + s.pins.push( selector ); // just save the selector string + } + return inst; + } + + /** + * Change the class of the pin button to make it look 'up' or 'down' + * + * @see addPin(), syncPins() + * @param {Array.} $Pin The pin-span element in a jQuery wrapper + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin true = set the pin 'down', false = set it 'up' + */ +, setPinState: function (inst, $Pin, pane, doPin) { + var updown = $Pin.attr("pin"); + if (updown && doPin === (updown=="down")) return; // already in correct state + var + pin = inst.options[pane].buttonClass +"-pin" + , side = pin +"-"+ pane + , UP = pin +"-up "+ side +"-up" + , DN = pin +"-down "+side +"-down" + ; + $Pin + .attr("pin", doPin ? "down" : "up") // logic + .attr("title", doPin ? lang.Unpin : lang.Pin) + .removeClass( doPin ? UP : DN ) + .addClass( doPin ? DN : UP ) + ; + } + + /** + * INTERNAL function to sync 'pin buttons' when pane is opened or closed + * Unpinned means the pane is 'sliding' - ie, over-top of the adjacent panes + * + * @see open(), close() + * @param {string} pane These are the params returned to callbacks by layout() + * @param {boolean} doPin True means set the pin 'down', False means 'up' + */ +, syncPinBtns: function (inst, pane, doPin) { + // REAL METHOD IS _INSIDE_ LAYOUT - THIS IS HERE JUST FOR REFERENCE + $.each(state[pane].pins, function (i, selector) { + $.layout.buttons.setPinState(inst, $(selector), pane, doPin); + }); + } + + +, _load: function (inst) { + // ADD Button methods to Layout Instance + $.extend( inst, { + bindButton: function (selector, action, pane) { return $.layout.buttons.bind(inst, selector, action, pane); } + // DEPRECATED METHODS... + , addToggleBtn: function (selector, pane, slide) { return $.layout.buttons.addToggle(inst, selector, pane, slide); } + , addOpenBtn: function (selector, pane, slide) { return $.layout.buttons.addOpen(inst, selector, pane, slide); } + , addCloseBtn: function (selector, pane) { return $.layout.buttons.addClose(inst, selector, pane); } + , addPinBtn: function (selector, pane) { return $.layout.buttons.addPin(inst, selector, pane); } + }); + + // init state array to hold pin-buttons + for (var i=0; i<4; i++) { + var pane = $.layout.buttons.config.borderPanes[i]; + inst.state[pane].pins = []; + } + + // auto-init buttons onLoad if option is enabled + if ( inst.options.autoBindCustomButtons ) + $.layout.buttons.init(inst); + } + +, _unload: function (inst) { + // TODO: unbind all buttons??? + } + +}; + +// add initialization method to Layout's onLoad array of functions +$.layout.onLoad.push( $.layout.buttons._load ); +//$.layout.onUnload.push( $.layout.buttons._unload ); + +})( jQuery ); + + + + +/** + * jquery.layout.browserZoom 1.0 + * $Date: 2011-12-29 08:00:00 (Thu, 29 Dec 2011) $ + * + * Copyright (c) 2012 + * Kevin Dalman (http://allpro.net) + * + * Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + * and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + * + * @requires: UI Layout 1.3.0.rc30.1 or higher + * + * @see: http://groups.google.com/group/jquery-ui-layout + * + * TODO: Extend logic to handle other problematic zooming in browsers + * TODO: Add hotkey/mousewheel bindings to _instantly_ respond to these zoom event + */ +(function ($) { + +// tell Layout that the plugin is available +$.layout.plugins.browserZoom = true; + +$.layout.defaults.browserZoomCheckInterval = 1000; +$.layout.optionsMap.layout.push("browserZoomCheckInterval"); + +/* + * browserZoom methods + */ +$.layout.browserZoom = { + + _init: function (inst) { + // abort if browser does not need this check + if ($.layout.browserZoom.ratio() !== false) + $.layout.browserZoom._setTimer(inst); + } + +, _setTimer: function (inst) { + // abort if layout destroyed or browser does not need this check + if (inst.destroyed) return; + var o = inst.options + , s = inst.state + // don't need check if inst has parentLayout, but check occassionally in case parent destroyed! + // MINIMUM 100ms interval, for performance + , ms = inst.hasParentLayout ? 5000 : Math.max( o.browserZoomCheckInterval, 100 ) + ; + // set the timer + setTimeout(function(){ + if (inst.destroyed || !o.resizeWithWindow) return; + var d = $.layout.browserZoom.ratio(); + if (d !== s.browserZoom) { + s.browserZoom = d; + inst.resizeAll(); + } + // set a NEW timeout + $.layout.browserZoom._setTimer(inst); + } + , ms ); + } + +, ratio: function () { + var w = window + , s = screen + , d = document + , dE = d.documentElement || d.body + , b = $.layout.browser + , v = b.version + , r, sW, cW + ; + // we can ignore all browsers that fire window.resize event onZoom + if (!b.msie || v > 8) + return false; // don't need to track zoom + if (s.deviceXDPI && s.systemXDPI) // syntax compiler hack + return calc(s.deviceXDPI, s.systemXDPI); + // everything below is just for future reference! + if (b.webkit && (r = d.body.getBoundingClientRect)) + return calc((r.left - r.right), d.body.offsetWidth); + if (b.webkit && (sW = w.outerWidth)) + return calc(sW, w.innerWidth); + if ((sW = s.width) && (cW = dE.clientWidth)) + return calc(sW, cW); + return false; // no match, so cannot - or don't need to - track zoom + + function calc (x,y) { return (parseInt(x,10) / parseInt(y,10) * 100).toFixed(); } + } + +}; +// add initialization method to Layout's onLoad array of functions +$.layout.onReady.push( $.layout.browserZoom._init ); + + +})( jQuery ); + + + + +/** + * UI Layout Plugin: Slide-Offscreen Animation + * + * Prevent panes from being 'hidden' so that an iframes/objects + * does not reload/refresh when pane 'opens' again. + * This plug-in adds a new animation called "slideOffscreen". + * It is identical to the normal "slide" effect, but avoids hiding the element + * + * Requires Layout 1.3.0.RC30.1 or later for Close offscreen + * Requires Layout 1.3.0.RC30.5 or later for Hide, initClosed & initHidden offscreen + * + * Version: 1.1 - 2012-11-18 + * Author: Kevin Dalman (kevin@jquery-dev.com) + * @preserve jquery.layout.slideOffscreen-1.1.js + */ +;(function ($) { + +// Add a new "slideOffscreen" effect +if ($.effects) { + + // add an option so initClosed and initHidden will work + $.layout.defaults.panes.useOffscreenClose = false; // user must enable when needed + /* set the new animation as the default for all panes + $.layout.defaults.panes.fxName = "slideOffscreen"; + */ + + if ($.layout.plugins) + $.layout.plugins.effects.slideOffscreen = true; + + // dupe 'slide' effect defaults as new effect defaults + $.layout.effects.slideOffscreen = $.extend(true, {}, $.layout.effects.slide); + + // add new effect to jQuery UI + $.effects.slideOffscreen = function(o) { + return this.queue(function(){ + + var fx = $.effects + , opt = o.options + , $el = $(this) + , pane = $el.data('layoutEdge') + , state = $el.data('parentLayout').state + , dist = state[pane].size + , s = this.style + , props = ['top','bottom','left','right'] + // Set options + , mode = fx.setMode($el, opt.mode || 'show') // Set Mode + , show = (mode == 'show') + , dir = opt.direction || 'left' // Default Direction + , ref = (dir == 'up' || dir == 'down') ? 'top' : 'left' + , pos = (dir == 'up' || dir == 'left') + , offscrn = $.layout.config.offscreenCSS || {} + , keyLR = $.layout.config.offscreenReset + , keyTB = 'offscreenResetTop' // only used internally + , animation = {} + ; + // Animation settings + animation[ref] = (show ? (pos ? '+=' : '-=') : (pos ? '-=' : '+=')) + dist; + + if (show) { // show() animation, so save top/bottom but retain left/right set when 'hidden' + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + + // set the top or left offset in preparation for animation + // Note: ALL animations work by shifting the top or left edges + if (pos) { // top (north) or left (west) + $el.css(ref, isNaN(dist) ? "-" + dist : -dist); // Shift outside the left/top edge + } + else { // bottom (south) or right (east) - shift all the way across container + if (dir === 'right') + $el.css({ left: state.container.layoutWidth, right: 'auto' }); + else // dir === bottom + $el.css({ top: state.container.layoutHeight, bottom: 'auto' }); + } + // restore the left/right setting if is a top/bottom animation + if (ref === 'top') + $el.css( $el.data( keyLR ) || {} ); + } + else { // hide() animation, so save ALL CSS + $el.data(keyTB, { top: s.top, bottom: s.bottom }); + $el.data(keyLR, { left: s.left, right: s.right }); + } + + // Animate + $el.show().animate(animation, { queue: false, duration: o.duration, easing: opt.easing, complete: function(){ + // Restore top/bottom + if ($el.data( keyTB )) + $el.css($el.data( keyTB )).removeData( keyTB ); + if (show) // Restore left/right too + $el.css($el.data( keyLR ) || {}).removeData( keyLR ); + else // Move the pane off-screen (left: -99999, right: 'auto') + $el.css( offscrn ); + + if (o.callback) o.callback.apply(this, arguments); // Callback + $el.dequeue(); + }}); + + }); + }; + +} + +})( jQuery ); diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..782799d Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png new file mode 100644 index 0000000..60a3676 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_flat_55_fbec88_40x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png new file mode 100644 index 0000000..ce04795 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_glass_75_d0e5f5_1x400.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png new file mode 100644 index 0000000..3ba80ea Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_55_3c73bb_1x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png new file mode 100644 index 0000000..cd1ecd4 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_highlight-hard_85_5e9ed0_1x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png new file mode 100644 index 0000000..f4024bd Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_0_ffffff_1x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png new file mode 100644 index 0000000..e4d107b Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-hard_100_f5f8f9_1x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png new file mode 100644 index 0000000..04ae618 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-bg_inset-soft_95_f2c8b7_1x100.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png new file mode 100644 index 0000000..8d2b7e5 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_217bc0_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..84b601b Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_2e83ff_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png new file mode 100644 index 0000000..570e22c Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_3e8d36_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png new file mode 100644 index 0000000..5dff3f9 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_469bdd_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..ed5b6b0 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_cd0a0a_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png new file mode 100644 index 0000000..9b46228 Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_d8e7f3_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000..4f624bb Binary files /dev/null and b/web/target/portal-web/resources/primefaces-comaco-theme/images/ui-icons_ffffff_256x240.png differ diff --git a/web/target/portal-web/resources/primefaces-comaco-theme/theme.css b/web/target/portal-web/resources/primefaces-comaco-theme/theme.css new file mode 100644 index 0000000..1adcb60 --- /dev/null +++ b/web/target/portal-web/resources/primefaces-comaco-theme/theme.css @@ -0,0 +1 @@ +/*! jQuery UI - v1.9.2 - 2013-09-08* http://jqueryui.com* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande%2CLucida%20Sans%2CArial%2Csans-serif&fwDefault=bold&fsDefault=8pt&cornerRadius=5px&bgColorHeader=%233c73bb&bgTextureHeader=highlight_hard&bgImgOpacityHeader=55&borderColorHeader=%235c9ccc&fcHeader=%23ffffff&iconColorHeader=%23d8e7f3&bgColorContent=%23ffffff&bgTextureContent=inset_hard&bgImgOpacityContent=0&borderColorContent=%23a6c9e2&fcContent=%23222222&iconColorContent=%23469bdd&bgColorDefault=%235e9ed0&bgTextureDefault=highlight_hard&bgImgOpacityDefault=85&borderColorDefault=%23c5dbec&fcDefault=%23ffffff&iconColorDefault=%23ffffff&bgColorHover=%23d0e5f5&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=%2379b7e7&fcHover=%231d5987&iconColorHover=%23217bc0&bgColorActive=%23f5f8f9&bgTextureActive=inset_hard&bgImgOpacityActive=100&borderColorActive=%2379b7e7&fcActive=%236fa925&iconColorActive=%233e8d36&bgColorHighlight=%23fbec88&bgTextureHighlight=flat&bgImgOpacityHighlight=55&borderColorHighlight=%23fad42e&fcHighlight=%23363636&iconColorHighlight=%232e83ff&bgColorError=%23f2c8b7&bgTextureError=inset_soft&bgImgOpacityError=95&borderColorError=%23cd0a0a&fcError=%23cd0a0a&iconColorError=%23cd0a0a&bgColorOverlay=%23aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=%23aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px* Copyright 2013 jQuery Foundation and other contributors; Licensed MIT *//* Layout helpers----------------------------------*/.ui-helper-hidden { display: none; }.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }.ui-helper-clearfix:after { clear: both; }.ui-helper-clearfix { zoom: 1; }.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }/* Interaction Cues----------------------------------*/.ui-state-disabled { cursor: default !important; }/* Icons----------------------------------*//* states and images */.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }/* Misc visuals----------------------------------*//* Overlays */.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }.ui-resizable { position: relative;}.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-noicons { padding-left: .7em; }.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }.ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default;}/* workarounds */* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */.ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /*button text element */.ui-button .ui-button-text { display: block; line-height: 1.4; }.ui-button-text-only .ui-button-text { padding: .4em 1em; }.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }/* no icon support for input elements, provide padding by default */input.ui-button { padding: .4em 1em; }/*button icon element(s) */.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }/*button sets*/.ui-buttonset { margin-right: 7px; }.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }/* workarounds */button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }.ui-datepicker .ui-datepicker-prev { left:2px; }.ui-datepicker .ui-datepicker-next { right:2px; }.ui-datepicker .ui-datepicker-prev-hover { left:1px; }.ui-datepicker .ui-datepicker-next-hover { right:1px; }.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }.ui-datepicker select.ui-datepicker-month-year {width: 100%;}.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%;}.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }.ui-datepicker td { border: 0; padding: 1px; }.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }/* with multiple calendars */.ui-datepicker.ui-datepicker-multi { width:auto; }.ui-datepicker-multi .ui-datepicker-group { float:left; }.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }/* RTL support */.ui-datepicker-rtl { direction: rtl; }.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }.ui-datepicker-rtl .ui-datepicker-group { float:right; }.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */.ui-datepicker-cover { position: absolute; /*must have*/ z-index: -1; /*must have*/ filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/}.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }.ui-draggable .ui-dialog-titlebar { cursor: move; }.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }.ui-menu .ui-menu { margin-top: -3px; position: absolute; }.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }.ui-menu .ui-state-disabled a { cursor: default; }/* icon support */.ui-menu-icons { position: relative; }.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }/* left-aligned */.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }/* right-aligned */.ui-menu .ui-menu-icon { position: static; float: right; }.ui-progressbar { height:2em; text-align: left; overflow: hidden; }.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }.ui-slider-horizontal { height: .8em; }.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }.ui-slider-horizontal .ui-slider-range-min { left: 0; }.ui-slider-horizontal .ui-slider-range-max { right: 0; }.ui-slider-vertical { width: .8em; height: 100px; }.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }.ui-slider-vertical .ui-slider-range-min { bottom: 0; }.ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */.ui-spinner-up { top: 0; }.ui-spinner-down { bottom: 0; }/* TR overrides */.ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position:-65px -16px;}.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }.ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa;}/* Fades and background-images don't work well together in IE6, drop the image */* html .ui-tooltip { background-image: none;}body .ui-tooltip { border-width: 2px; }/* Component containers----------------------------------*/.ui-widget { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 8pt; }.ui-widget .ui-widget { font-size: 1em; }.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande,Lucida Sans,Arial,sans-serif; font-size: 1em; }.ui-widget-content { border: 1px solid #a6c9e2; background: #ffffff url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_0_ffffff_1x100.png']}") 50% bottom repeat-x; color: #222222; }.ui-widget-content a { color: #222222; }.ui-widget-header { border: 1px solid #5c9ccc; background: #3c73bb url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_55_3c73bb_1x100.png']}") 50% 50% repeat-x; color: #ffffff; font-weight: bold; }.ui-widget-header a { color: #ffffff; }/* Interaction states----------------------------------*/.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #5e9ed0 url("#{resource['primefaces-comaco-theme:images/ui-bg_highlight-hard_85_5e9ed0_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #ffffff; }.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #ffffff; text-decoration: none; }.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url("#{resource['primefaces-comaco-theme:images/ui-bg_glass_75_d0e5f5_1x400.png']}") 50% 50% repeat-x; font-weight: bold; color: #1d5987; }.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #1d5987; text-decoration: none; }.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-hard_100_f5f8f9_1x100.png']}") 50% 50% repeat-x; font-weight: bold; color: #6fa925; }.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #6fa925; text-decoration: none; }/* Interaction Cues----------------------------------*/.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fad42e; background: #fbec88 url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_55_fbec88_40x100.png']}") 50% 50% repeat-x; color: #363636; }.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #f2c8b7 url("#{resource['primefaces-comaco-theme:images/ui-bg_inset-soft_95_f2c8b7_1x100.png']}") 50% bottom repeat-x; color: #cd0a0a; }.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 *//* Icons----------------------------------*//* states and images */.ui-icon { width: 16px; height: 16px; background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-content .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_469bdd_256x240.png']}"); }.ui-widget-header .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_d8e7f3_256x240.png']}"); }.ui-state-default .ui-icon { background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_ffffff_256x240.png']}"); }.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_217bc0_256x240.png']}"); }.ui-state-active .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_3e8d36_256x240.png']}"); }.ui-state-highlight .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_2e83ff_256x240.png']}"); }.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url("#{resource['primefaces-comaco-theme:images/ui-icons_cd0a0a_256x240.png']}"); }/* positioning */.ui-icon-carat-1-n { background-position: 0 0; }.ui-icon-carat-1-ne { background-position: -16px 0; }.ui-icon-carat-1-e { background-position: -32px 0; }.ui-icon-carat-1-se { background-position: -48px 0; }.ui-icon-carat-1-s { background-position: -64px 0; }.ui-icon-carat-1-sw { background-position: -80px 0; }.ui-icon-carat-1-w { background-position: -96px 0; }.ui-icon-carat-1-nw { background-position: -112px 0; }.ui-icon-carat-2-n-s { background-position: -128px 0; }.ui-icon-carat-2-e-w { background-position: -144px 0; }.ui-icon-triangle-1-n { background-position: 0 -16px; }.ui-icon-triangle-1-ne { background-position: -16px -16px; }.ui-icon-triangle-1-e { background-position: -32px -16px; }.ui-icon-triangle-1-se { background-position: -48px -16px; }.ui-icon-triangle-1-s { background-position: -64px -16px; }.ui-icon-triangle-1-sw { background-position: -80px -16px; }.ui-icon-triangle-1-w { background-position: -96px -16px; }.ui-icon-triangle-1-nw { background-position: -112px -16px; }.ui-icon-triangle-2-n-s { background-position: -128px -16px; }.ui-icon-triangle-2-e-w { background-position: -144px -16px; }.ui-icon-arrow-1-n { background-position: 0 -32px; }.ui-icon-arrow-1-ne { background-position: -16px -32px; }.ui-icon-arrow-1-e { background-position: -32px -32px; }.ui-icon-arrow-1-se { background-position: -48px -32px; }.ui-icon-arrow-1-s { background-position: -64px -32px; }.ui-icon-arrow-1-sw { background-position: -80px -32px; }.ui-icon-arrow-1-w { background-position: -96px -32px; }.ui-icon-arrow-1-nw { background-position: -112px -32px; }.ui-icon-arrow-2-n-s { background-position: -128px -32px; }.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }.ui-icon-arrow-2-e-w { background-position: -160px -32px; }.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }.ui-icon-arrowstop-1-n { background-position: -192px -32px; }.ui-icon-arrowstop-1-e { background-position: -208px -32px; }.ui-icon-arrowstop-1-s { background-position: -224px -32px; }.ui-icon-arrowstop-1-w { background-position: -240px -32px; }.ui-icon-arrowthick-1-n { background-position: 0 -48px; }.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }.ui-icon-arrowthick-1-e { background-position: -32px -48px; }.ui-icon-arrowthick-1-se { background-position: -48px -48px; }.ui-icon-arrowthick-1-s { background-position: -64px -48px; }.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }.ui-icon-arrowthick-1-w { background-position: -96px -48px; }.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }.ui-icon-arrow-4 { background-position: 0 -80px; }.ui-icon-arrow-4-diag { background-position: -16px -80px; }.ui-icon-extlink { background-position: -32px -80px; }.ui-icon-newwin { background-position: -48px -80px; }.ui-icon-refresh { background-position: -64px -80px; }.ui-icon-shuffle { background-position: -80px -80px; }.ui-icon-transfer-e-w { background-position: -96px -80px; }.ui-icon-transferthick-e-w { background-position: -112px -80px; }.ui-icon-folder-collapsed { background-position: 0 -96px; }.ui-icon-folder-open { background-position: -16px -96px; }.ui-icon-document { background-position: -32px -96px; }.ui-icon-document-b { background-position: -48px -96px; }.ui-icon-note { background-position: -64px -96px; }.ui-icon-mail-closed { background-position: -80px -96px; }.ui-icon-mail-open { background-position: -96px -96px; }.ui-icon-suitcase { background-position: -112px -96px; }.ui-icon-comment { background-position: -128px -96px; }.ui-icon-person { background-position: -144px -96px; }.ui-icon-print { background-position: -160px -96px; }.ui-icon-trash { background-position: -176px -96px; }.ui-icon-locked { background-position: -192px -96px; }.ui-icon-unlocked { background-position: -208px -96px; }.ui-icon-bookmark { background-position: -224px -96px; }.ui-icon-tag { background-position: -240px -96px; }.ui-icon-home { background-position: 0 -112px; }.ui-icon-flag { background-position: -16px -112px; }.ui-icon-calendar { background-position: -32px -112px; }.ui-icon-cart { background-position: -48px -112px; }.ui-icon-pencil { background-position: -64px -112px; }.ui-icon-clock { background-position: -80px -112px; }.ui-icon-disk { background-position: -96px -112px; }.ui-icon-calculator { background-position: -112px -112px; }.ui-icon-zoomin { background-position: -128px -112px; }.ui-icon-zoomout { background-position: -144px -112px; }.ui-icon-search { background-position: -160px -112px; }.ui-icon-wrench { background-position: -176px -112px; }.ui-icon-gear { background-position: -192px -112px; }.ui-icon-heart { background-position: -208px -112px; }.ui-icon-star { background-position: -224px -112px; }.ui-icon-link { background-position: -240px -112px; }.ui-icon-cancel { background-position: 0 -128px; }.ui-icon-plus { background-position: -16px -128px; }.ui-icon-plusthick { background-position: -32px -128px; }.ui-icon-minus { background-position: -48px -128px; }.ui-icon-minusthick { background-position: -64px -128px; }.ui-icon-close { background-position: -80px -128px; }.ui-icon-closethick { background-position: -96px -128px; }.ui-icon-key { background-position: -112px -128px; }.ui-icon-lightbulb { background-position: -128px -128px; }.ui-icon-scissors { background-position: -144px -128px; }.ui-icon-clipboard { background-position: -160px -128px; }.ui-icon-copy { background-position: -176px -128px; }.ui-icon-contact { background-position: -192px -128px; }.ui-icon-image { background-position: -208px -128px; }.ui-icon-video { background-position: -224px -128px; }.ui-icon-script { background-position: -240px -128px; }.ui-icon-alert { background-position: 0 -144px; }.ui-icon-info { background-position: -16px -144px; }.ui-icon-notice { background-position: -32px -144px; }.ui-icon-help { background-position: -48px -144px; }.ui-icon-check { background-position: -64px -144px; }.ui-icon-bullet { background-position: -80px -144px; }.ui-icon-radio-on { background-position: -96px -144px; }.ui-icon-radio-off { background-position: -112px -144px; }.ui-icon-pin-w { background-position: -128px -144px; }.ui-icon-pin-s { background-position: -144px -144px; }.ui-icon-play { background-position: 0 -160px; }.ui-icon-pause { background-position: -16px -160px; }.ui-icon-seek-next { background-position: -32px -160px; }.ui-icon-seek-prev { background-position: -48px -160px; }.ui-icon-seek-end { background-position: -64px -160px; }.ui-icon-seek-start { background-position: -80px -160px; }/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */.ui-icon-seek-first { background-position: -80px -160px; }.ui-icon-stop { background-position: -96px -160px; }.ui-icon-eject { background-position: -112px -160px; }.ui-icon-volume-off { background-position: -128px -160px; }.ui-icon-volume-on { background-position: -144px -160px; }.ui-icon-power { background-position: 0 -176px; }.ui-icon-signal-diag { background-position: -16px -176px; }.ui-icon-signal { background-position: -32px -176px; }.ui-icon-battery-0 { background-position: -48px -176px; }.ui-icon-battery-1 { background-position: -64px -176px; }.ui-icon-battery-2 { background-position: -80px -176px; }.ui-icon-battery-3 { background-position: -96px -176px; }.ui-icon-circle-plus { background-position: 0 -192px; }.ui-icon-circle-minus { background-position: -16px -192px; }.ui-icon-circle-close { background-position: -32px -192px; }.ui-icon-circle-triangle-e { background-position: -48px -192px; }.ui-icon-circle-triangle-s { background-position: -64px -192px; }.ui-icon-circle-triangle-w { background-position: -80px -192px; }.ui-icon-circle-triangle-n { background-position: -96px -192px; }.ui-icon-circle-arrow-e { background-position: -112px -192px; }.ui-icon-circle-arrow-s { background-position: -128px -192px; }.ui-icon-circle-arrow-w { background-position: -144px -192px; }.ui-icon-circle-arrow-n { background-position: -160px -192px; }.ui-icon-circle-zoomin { background-position: -176px -192px; }.ui-icon-circle-zoomout { background-position: -192px -192px; }.ui-icon-circle-check { background-position: -208px -192px; }.ui-icon-circlesmall-plus { background-position: 0 -208px; }.ui-icon-circlesmall-minus { background-position: -16px -208px; }.ui-icon-circlesmall-close { background-position: -32px -208px; }.ui-icon-squaresmall-plus { background-position: -48px -208px; }.ui-icon-squaresmall-minus { background-position: -64px -208px; }.ui-icon-squaresmall-close { background-position: -80px -208px; }.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }.ui-icon-grip-solid-vertical { background-position: -32px -224px; }.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }.ui-icon-grip-diagonal-se { background-position: -80px -224px; }/* Misc visuals----------------------------------*//* Corner radius */.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; }.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }/* Overlays */.ui-widget-overlay { background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); }.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("#{resource['primefaces-comaco-theme:images/ui-bg_flat_0_aaaaaa_40x100.png']}") 50% 50% repeat-x; opacity: .3; filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } \ No newline at end of file