Commit b13de830f4368c659412739435ccbb1e49056e5e

Authored by andre.guimaraes
0 parents
Exists in master

Commit inicial

Showing 52 changed files with 5699 additions and 0 deletions   Show diff stats
.gitignore 0 → 100644
  1 +++ a/.gitignore
... ... @@ -0,0 +1,128 @@
  1 +#---------------------------------------#
  2 +# Project Ignores #
  3 +#---------------------------------------#
  4 +
  5 +
  6 +# Maven
  7 +target/
  8 +pom.xml.tag
  9 +pom.xml.releaseBackup
  10 +pom.xml.versionsBackup
  11 +pom.xml.next
  12 +release.properties
  13 +dependency-reduced-pom.xml
  14 +buildNumber.properties
  15 +.mvn/timing.properties
  16 +
  17 +!/.mvn/wrapper/maven-wrapper.jar
  18 +
  19 +# Compiled class file
  20 +*.class
  21 +
  22 +# Mobile Tools for Java (J2ME)
  23 +.mtj.tmp/
  24 +
  25 +# Package Files
  26 +*.jar
  27 +*.war
  28 +*.ear
  29 +*.zip
  30 +*.tar.gz
  31 +*.rar
  32 +
  33 +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
  34 +hs_err_pid*
  35 +
  36 +# misc
  37 +*.log
  38 +log/
  39 +logs/
  40 +
  41 +
  42 +#---------------------------------------#
  43 +# IDEs & Editors Ignores #
  44 +#---------------------------------------#
  45 +
  46 +# Sublime Text
  47 +/*.sublime*
  48 +.sublime-gulp.cache
  49 +
  50 +# VS Code
  51 +/.vscode
  52 +
  53 +# JetBrains IDEs
  54 +.idea/
  55 +*.iml
  56 +
  57 +# Eclipse
  58 +.project
  59 +.classpath
  60 +.settings
  61 +.tern-project
  62 +
  63 +# Netbeans
  64 +nbactions*.xml
  65 +nb-configuration*.xml
  66 +
  67 +# BlueJ
  68 +*.ctxt
  69 +
  70 +
  71 +#---------------------------------------#
  72 +# General Ignores #
  73 +#---------------------------------------#
  74 +
  75 +*~
  76 +*.orig
  77 +.vagrant
  78 +
  79 +
  80 +#---------------------------------------#
  81 +# Linux Ignores #
  82 +#---------------------------------------#
  83 +
  84 +# KDE directory preferences
  85 +.directory
  86 +
  87 +
  88 +#---------------------------------------#
  89 +# OSX Ignores #
  90 +#---------------------------------------#
  91 +
  92 +.DS_Store
  93 +.AppleDouble
  94 +.LSOverride
  95 +.localized
  96 +
  97 +# Icon must end with two \r
  98 +Icon
  99 +
  100 +
  101 +# Thumbnails
  102 +._*
  103 +
  104 +# Files that might appear on external disk
  105 +.Spotlight-V100
  106 +.Trashes
  107 +
  108 +# Directories potentially created on remote AFP share
  109 +.AppleDB
  110 +.AppleDesktop
  111 +Network Trash Folder
  112 +Temporary Items
  113 +.apdisk
  114 +
  115 +
  116 +#---------------------------------------#
  117 +# Windows Ignores #
  118 +#---------------------------------------#
  119 +
  120 +# Windows image file caches
  121 +Thumbs.db
  122 +ehthumbs.db
  123 +
  124 +# Folder config file
  125 +Desktop.ini
  126 +
  127 +# Recycle Bin used on file shares
  128 +$RECYCLE.BIN/
0 129 \ No newline at end of file
... ...
pom.xml 0 → 100644
  1 +++ a/pom.xml
... ... @@ -0,0 +1,108 @@
  1 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  2 + <modelVersion>4.0.0</modelVersion>
  3 + <groupId>br.gov.ans</groupId>
  4 + <artifactId>templates-web</artifactId>
  5 + <version>1.0</version>
  6 + <packaging>war</packaging>
  7 + <name>templates-web</name>
  8 + <description>Portal de administração de templates</description>
  9 +
  10 +
  11 + <properties>
  12 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  13 + <version.resteasy>3.1.1.Final</version.resteasy>
  14 + <version.jsf>2.2.12</version.jsf>
  15 + </properties>
  16 +
  17 + <build>
  18 + <plugins>
  19 + <plugin>
  20 + <groupId>org.apache.maven.plugins</groupId>
  21 + <artifactId>maven-compiler-plugin</artifactId>
  22 + <version>3.1</version>
  23 + <configuration>
  24 + <source>1.8</source>
  25 + <target>1.8</target>
  26 + </configuration>
  27 + </plugin>
  28 + </plugins>
  29 + </build>
  30 +
  31 + <dependencies>
  32 + <!-- JSF -->
  33 + <dependency>
  34 + <groupId>com.sun.faces</groupId>
  35 + <artifactId>jsf-api</artifactId>
  36 + <version>${version.jsf}</version>
  37 + </dependency>
  38 +
  39 + <dependency>
  40 + <groupId>com.sun.faces</groupId>
  41 + <artifactId>jsf-impl</artifactId>
  42 + <version>${version.jsf}</version>
  43 + </dependency>
  44 +
  45 + <dependency>
  46 + <groupId>org.primefaces</groupId>
  47 + <artifactId>primefaces</artifactId>
  48 + <version>6.0</version>
  49 + </dependency>
  50 +
  51 + <dependency>
  52 + <groupId>commons-fileupload</groupId>
  53 + <artifactId>commons-fileupload</artifactId>
  54 + <version>1.3.2</version>
  55 + </dependency>
  56 +
  57 + <dependency>
  58 + <groupId>org.omnifaces</groupId>
  59 + <artifactId>omnifaces</artifactId>
  60 + <version>2.6.1</version>
  61 + </dependency>
  62 +
  63 + <!-- SERVLET -->
  64 + <dependency>
  65 + <groupId>javax.servlet</groupId>
  66 + <artifactId>javax.servlet-api</artifactId>
  67 + <scope>provided</scope>
  68 + <version>3.0.1</version>
  69 + </dependency>
  70 +
  71 + <!-- CDI -->
  72 + <dependency>
  73 + <groupId>org.jboss.weld</groupId>
  74 + <artifactId>weld-core</artifactId>
  75 + <version>2.2.15.Final</version>
  76 + <scope>provided</scope>
  77 + </dependency>
  78 +
  79 + <!-- EJB -->
  80 + <dependency>
  81 + <groupId>org.jboss.ejb3</groupId>
  82 + <artifactId>jboss-ejb3-api</artifactId>
  83 + <scope>provided</scope>
  84 + <version>3.1.0</version>
  85 + </dependency>
  86 +
  87 + <!-- COMMONS -->
  88 + <dependency>
  89 + <groupId>org.apache.commons</groupId>
  90 + <artifactId>commons-lang3</artifactId>
  91 + <version>3.5</version>
  92 + </dependency>
  93 +
  94 + <!-- REST -->
  95 + <dependency>
  96 + <groupId>org.jboss.resteasy</groupId>
  97 + <artifactId>resteasy-jaxrs</artifactId>
  98 + <version>${version.resteasy}</version>
  99 + </dependency>
  100 +
  101 + <!-- JAVAX SECURITY -->
  102 + <dependency>
  103 + <groupId>javax.security.jacc</groupId>
  104 + <artifactId>javax.security.jacc-api</artifactId>
  105 + <version>1.5</version>
  106 + </dependency>
  107 + </dependencies>
  108 +</project>
0 109 \ No newline at end of file
... ...
src/main/java/br/gov/ans/exceptions/BusinessException.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/exceptions/BusinessException.java
... ... @@ -0,0 +1,18 @@
  1 +package br.gov.ans.exceptions;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class BusinessException extends Exception implements Serializable{
  6 +
  7 + private static final long serialVersionUID = 1L;
  8 +
  9 + private String message;
  10 +
  11 + public BusinessException(String message){
  12 + this.message = message;
  13 + }
  14 +
  15 + public String getMessage() {
  16 + return message;
  17 + }
  18 +}
... ...
src/main/java/br/gov/ans/exceptions/CustomExceptionHandler.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/exceptions/CustomExceptionHandler.java
... ... @@ -0,0 +1,66 @@
  1 +package br.gov.ans.exceptions;
  2 +
  3 +import java.util.Iterator;
  4 +
  5 +import javax.faces.FacesException;
  6 +import javax.faces.application.NavigationHandler;
  7 +import javax.faces.context.ExceptionHandler;
  8 +import javax.faces.context.ExceptionHandlerWrapper;
  9 +import javax.faces.context.FacesContext;
  10 +import javax.faces.context.Flash;
  11 +import javax.faces.event.ExceptionQueuedEvent;
  12 +import javax.faces.event.ExceptionQueuedEventContext;
  13 +
  14 +import org.jboss.logging.Logger;
  15 +
  16 +public class CustomExceptionHandler extends ExceptionHandlerWrapper {
  17 +
  18 + private ExceptionHandler wrapped;
  19 +
  20 + private static final Logger log = Logger.getLogger(CustomExceptionHandler.class);
  21 +
  22 + public CustomExceptionHandler(ExceptionHandler wrapped) {
  23 + this.wrapped = wrapped;
  24 + }
  25 +
  26 + @Override
  27 + public ExceptionHandler getWrapped() {
  28 + return wrapped;
  29 + }
  30 +
  31 + @SuppressWarnings("rawtypes")
  32 + @Override
  33 + public void handle() throws FacesException {
  34 + Iterator iterator = getUnhandledExceptionQueuedEvents().iterator();
  35 +
  36 + while (iterator.hasNext()) {
  37 + ExceptionQueuedEvent event = (ExceptionQueuedEvent) iterator.next();
  38 + ExceptionQueuedEventContext context = (ExceptionQueuedEventContext) event.getSource();
  39 +
  40 + Throwable throwable = context.getException();
  41 +
  42 + FacesContext fc = FacesContext.getCurrentInstance();
  43 +
  44 + try {
  45 + log.error(throwable, throwable);
  46 +
  47 + Flash flash = fc.getExternalContext().getFlash();
  48 +
  49 + flash.put("errorDetails", throwable.getMessage());
  50 +
  51 + NavigationHandler navigationHandler = fc.getApplication().getNavigationHandler();
  52 +
  53 + navigationHandler.handleNavigation(fc, null,"/erros/error?faces-redirect=true");
  54 +
  55 + fc.renderResponse();
  56 +
  57 + } finally {
  58 + iterator.remove();
  59 + }
  60 + }
  61 +
  62 + // Let the parent handle the rest
  63 + getWrapped().handle();
  64 + }
  65 +
  66 +}
... ...
src/main/java/br/gov/ans/exceptions/CustomExceptionHandlerFactory.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/exceptions/CustomExceptionHandlerFactory.java
... ... @@ -0,0 +1,20 @@
  1 +package br.gov.ans.exceptions;
  2 +
  3 +import javax.faces.context.ExceptionHandler;
  4 +import javax.faces.context.ExceptionHandlerFactory;
  5 +
  6 +public class CustomExceptionHandlerFactory extends ExceptionHandlerFactory {
  7 + private ExceptionHandlerFactory parent;
  8 +
  9 + public CustomExceptionHandlerFactory(ExceptionHandlerFactory parent) {
  10 + this.parent = parent;
  11 + }
  12 +
  13 + @Override
  14 + public ExceptionHandler getExceptionHandler() {
  15 + ExceptionHandler result = new CustomExceptionHandler(parent.getExceptionHandler());
  16 +
  17 + return result;
  18 + }
  19 +
  20 +}
... ...
src/main/java/br/gov/ans/exceptions/ErrorMessage.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/exceptions/ErrorMessage.java
... ... @@ -0,0 +1,48 @@
  1 +package br.gov.ans.exceptions;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +import javax.ws.rs.core.Response.Status;
  6 +
  7 +public class ErrorMessage implements Serializable{
  8 +
  9 + private String code;
  10 + private String error;
  11 +
  12 + public ErrorMessage(){
  13 +
  14 + }
  15 +
  16 + public ErrorMessage(String error) {
  17 + this.error = error;
  18 + }
  19 +
  20 + public ErrorMessage(String code, String error) {
  21 + super();
  22 + this.code = code;
  23 + this.error = error;
  24 + }
  25 +
  26 + public ErrorMessage(Status code, String error) {
  27 + super();
  28 + this.code = String.valueOf(code.getStatusCode());
  29 + this.error = error;
  30 + }
  31 +
  32 + public String getCode() {
  33 + return code;
  34 + }
  35 +
  36 + public void setCode(String code) {
  37 + this.code = code;
  38 + }
  39 +
  40 + public String getError() {
  41 + return error;
  42 + }
  43 +
  44 + public void setError(String error) {
  45 + this.error = error;
  46 + }
  47 +
  48 +}
... ...
src/main/java/br/gov/ans/factories/ClientRestFactory.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/ClientRestFactory.java
... ... @@ -0,0 +1,61 @@
  1 +package br.gov.ans.factories;
  2 +
  3 +import java.util.Properties;
  4 +
  5 +import javax.enterprise.context.ApplicationScoped;
  6 +import javax.enterprise.inject.Produces;
  7 +import javax.enterprise.inject.spi.Annotated;
  8 +import javax.enterprise.inject.spi.InjectionPoint;
  9 +import javax.inject.Inject;
  10 +import javax.security.jacc.PolicyContext;
  11 +import javax.security.jacc.PolicyContextException;
  12 +import javax.servlet.http.HttpServletRequest;
  13 +import javax.ws.rs.client.Client;
  14 +import javax.ws.rs.client.ClientBuilder;
  15 +
  16 +import br.gov.ans.factories.qualifiers.Autenticado;
  17 +import br.gov.ans.factories.qualifiers.PropertiesInfo;
  18 +import br.gov.ans.factories.qualifiers.Server;
  19 +import br.gov.ans.utils.Authenticator;
  20 +
  21 +
  22 +public class ClientRestFactory {
  23 +
  24 + @Inject
  25 + @Server
  26 + @PropertiesInfo(file="ws-users.properties")
  27 + @ApplicationScoped
  28 + private Properties properties;
  29 +
  30 +
  31 + /**
  32 + * Produtor de cliente Rest
  33 + * Qualifier @Auntenticado: utilizá-lo para autenticação
  34 + *
  35 + *
  36 + * @param injectionPoint
  37 + * @return
  38 + * @throws PolicyContextException
  39 + */
  40 +
  41 + @Produces
  42 + public Client produceClient(InjectionPoint injectionPoint) throws PolicyContextException{
  43 + Annotated annotated = injectionPoint.getAnnotated();
  44 + Autenticado a = annotated.getAnnotation(Autenticado.class);
  45 +
  46 + if(a != null){
  47 + String user = properties.getProperty(a.value()+".user");
  48 + String password = properties.getProperty(a.value()+".password");
  49 +
  50 + HttpServletRequest request = (HttpServletRequest) PolicyContext.getContext(HttpServletRequest.class.getName());
  51 + if(request.getUserPrincipal() != null){
  52 + user += "@"+request.getUserPrincipal().getName();
  53 + }
  54 +
  55 + return ClientBuilder.newClient().register(new Authenticator(user, password));
  56 + } else{
  57 + return ClientBuilder.newClient();
  58 + }
  59 + }
  60 +
  61 +}
... ...
src/main/java/br/gov/ans/factories/LoggerFactory.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/LoggerFactory.java
... ... @@ -0,0 +1,18 @@
  1 +package br.gov.ans.factories;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +import javax.enterprise.inject.Produces;
  6 +import javax.enterprise.inject.spi.InjectionPoint;
  7 +
  8 +import org.jboss.logging.Logger;
  9 +
  10 +public class LoggerFactory implements Serializable {
  11 +
  12 + private static final long serialVersionUID = 1L;
  13 +
  14 + @Produces
  15 + public Logger produceLogger(InjectionPoint injectionPoint){
  16 + return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
  17 + }
  18 +}
... ...
src/main/java/br/gov/ans/factories/PropertiesFactory.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/PropertiesFactory.java
... ... @@ -0,0 +1,38 @@
  1 +package br.gov.ans.factories;
  2 +
  3 +import java.io.IOException;
  4 +import java.util.Properties;
  5 +
  6 +import javax.enterprise.inject.spi.Annotated;
  7 +import javax.enterprise.inject.spi.InjectionPoint;
  8 +
  9 +import org.apache.commons.lang3.StringUtils;
  10 +
  11 +import br.gov.ans.factories.qualifiers.PropertiesInfo;
  12 +
  13 +
  14 +public abstract class PropertiesFactory {
  15 +
  16 + protected Properties produceProperties(InjectionPoint injectionPoint) throws IOException{
  17 + Annotated annotated = injectionPoint.getAnnotated();
  18 + PropertiesInfo info = annotated.getAnnotation(PropertiesInfo.class);
  19 +
  20 + return getProperties(info.file());
  21 + }
  22 +
  23 + protected String produceProperty(InjectionPoint injectionPoint) throws IOException{
  24 + Annotated annotated = injectionPoint.getAnnotated();
  25 + PropertiesInfo info = annotated.getAnnotation(PropertiesInfo.class);
  26 +
  27 + if(StringUtils.isBlank(info.key())){
  28 + return null;
  29 + }
  30 +
  31 + Properties props = getProperties(info.file());
  32 +
  33 + return props.getProperty(info.key());
  34 + }
  35 +
  36 + abstract Properties getProperties(String file) throws IOException;
  37 +
  38 +}
0 39 \ No newline at end of file
... ...
src/main/java/br/gov/ans/factories/PropertiesFactoryLocal.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/PropertiesFactoryLocal.java
... ... @@ -0,0 +1,48 @@
  1 +package br.gov.ans.factories;
  2 +
  3 +import java.io.IOException;
  4 +import java.io.Serializable;
  5 +import java.util.Properties;
  6 +
  7 +import javax.enterprise.context.ApplicationScoped;
  8 +import javax.enterprise.inject.Default;
  9 +import javax.enterprise.inject.Produces;
  10 +import javax.enterprise.inject.spi.InjectionPoint;
  11 +
  12 +import br.gov.ans.factories.qualifiers.Local;
  13 +
  14 +
  15 +
  16 +/**
  17 + * Obtém propriedades locais.
  18 + *
  19 + */
  20 +@ApplicationScoped
  21 +public class PropertiesFactoryLocal extends PropertiesFactory implements Serializable {
  22 +
  23 + private static final long serialVersionUID = 1L;
  24 +
  25 + @Produces
  26 + @Local @Default
  27 + @Override
  28 + public Properties produceProperties(InjectionPoint injectionPoint) throws IOException{
  29 + return super.produceProperties(injectionPoint);
  30 + }
  31 +
  32 + @Produces
  33 + @Local @Default
  34 + @Override
  35 + public String produceProperty(InjectionPoint injectionPoint) throws IOException{
  36 + return super.produceProperty(injectionPoint);
  37 + }
  38 +
  39 + @Override
  40 + protected Properties getProperties(String file) throws IOException{
  41 + Properties props = new Properties();
  42 +
  43 + props.load(PropertiesFactoryLocal.class.getClassLoader().getResourceAsStream(file));
  44 +
  45 + return props;
  46 + }
  47 +
  48 +}
0 49 \ No newline at end of file
... ...
src/main/java/br/gov/ans/factories/PropertiesFactoryServer.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/PropertiesFactoryServer.java
... ... @@ -0,0 +1,50 @@
  1 +package br.gov.ans.factories;
  2 +
  3 +import java.io.FileInputStream;
  4 +import java.io.IOException;
  5 +import java.io.Serializable;
  6 +import java.util.Properties;
  7 +
  8 +import javax.enterprise.context.ApplicationScoped;
  9 +import javax.enterprise.inject.Produces;
  10 +import javax.enterprise.inject.spi.InjectionPoint;
  11 +
  12 +import br.gov.ans.factories.qualifiers.Server;
  13 +
  14 +
  15 +
  16 +/**
  17 + * Obtém propriedades externas do jboss.
  18 + *
  19 + */
  20 +
  21 +@ApplicationScoped
  22 +public class PropertiesFactoryServer extends PropertiesFactory implements Serializable {
  23 +
  24 + private static final long serialVersionUID = 1L;
  25 +
  26 + private static final String SERVER_PATH = System.getProperty("jboss.home.dir") + "/ans/properties/";
  27 +
  28 + @Produces
  29 + @Server
  30 + public Properties produceProperties(InjectionPoint injectionPoint) throws IOException{
  31 + return super.produceProperties(injectionPoint);
  32 + }
  33 +
  34 + @Produces
  35 + @Server
  36 + public String produceProperty(InjectionPoint injectionPoint) throws IOException{
  37 + return super.produceProperty(injectionPoint);
  38 + }
  39 +
  40 + @Override
  41 + protected Properties getProperties(String file) throws IOException{
  42 + Properties props = new Properties();
  43 +
  44 + FileInputStream f = new FileInputStream(SERVER_PATH + file);
  45 + props.load(f);
  46 +
  47 + return props;
  48 + }
  49 +
  50 +}
0 51 \ No newline at end of file
... ...
src/main/java/br/gov/ans/factories/qualifiers/Autenticado.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/qualifiers/Autenticado.java
... ... @@ -0,0 +1,18 @@
  1 +package br.gov.ans.factories.qualifiers;
  2 +
  3 +import java.lang.annotation.ElementType;
  4 +import java.lang.annotation.Retention;
  5 +import java.lang.annotation.RetentionPolicy;
  6 +import java.lang.annotation.Target;
  7 +
  8 +
  9 +@Retention(RetentionPolicy.RUNTIME)
  10 +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
  11 +public @interface Autenticado {
  12 +
  13 + /**
  14 + * Prefixo da chave registrada no arquivo ws-users.properties no JBoss.
  15 + * @return
  16 + */
  17 + String value();
  18 +}
... ...
src/main/java/br/gov/ans/factories/qualifiers/Local.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/qualifiers/Local.java
... ... @@ -0,0 +1,15 @@
  1 +package br.gov.ans.factories.qualifiers;
  2 +
  3 +import java.lang.annotation.ElementType;
  4 +import java.lang.annotation.Retention;
  5 +import java.lang.annotation.RetentionPolicy;
  6 +import java.lang.annotation.Target;
  7 +
  8 +import javax.inject.Qualifier;
  9 +
  10 +@Qualifier
  11 +@Retention(RetentionPolicy.RUNTIME)
  12 +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
  13 +public @interface Local {
  14 +
  15 +}
... ...
src/main/java/br/gov/ans/factories/qualifiers/PropertiesInfo.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/qualifiers/PropertiesInfo.java
... ... @@ -0,0 +1,13 @@
  1 +package br.gov.ans.factories.qualifiers;
  2 +
  3 +import java.lang.annotation.Retention;
  4 +import java.lang.annotation.RetentionPolicy;
  5 +import java.lang.annotation.Target;
  6 +import java.lang.annotation.ElementType;
  7 +
  8 +@Retention(RetentionPolicy.RUNTIME)
  9 +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
  10 +public @interface PropertiesInfo {
  11 + String file();
  12 + String key() default "";
  13 +}
... ...
src/main/java/br/gov/ans/factories/qualifiers/Server.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/factories/qualifiers/Server.java
... ... @@ -0,0 +1,15 @@
  1 +package br.gov.ans.factories.qualifiers;
  2 +
  3 +import java.lang.annotation.ElementType;
  4 +import java.lang.annotation.Retention;
  5 +import java.lang.annotation.RetentionPolicy;
  6 +import java.lang.annotation.Target;
  7 +
  8 +import javax.inject.Qualifier;
  9 +
  10 +@Qualifier
  11 +@Retention(RetentionPolicy.RUNTIME)
  12 +@Target({ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
  13 +public @interface Server {
  14 +
  15 +}
... ...
src/main/java/br/gov/ans/templates/clients/ClientTemplatesBroker.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/clients/ClientTemplatesBroker.java
... ... @@ -0,0 +1,152 @@
  1 +package br.gov.ans.templates.clients;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.HashMap;
  5 +import java.util.List;
  6 +
  7 +import javax.enterprise.context.ApplicationScoped;
  8 +import javax.inject.Inject;
  9 +import javax.ws.rs.client.Client;
  10 +import javax.ws.rs.client.Entity;
  11 +import javax.ws.rs.core.GenericType;
  12 +import javax.ws.rs.core.MediaType;
  13 +import javax.ws.rs.core.Response;
  14 +import javax.ws.rs.core.Response.Status.Family;
  15 +
  16 +import org.jboss.logging.Logger;
  17 +
  18 +import br.gov.ans.exceptions.BusinessException;
  19 +import br.gov.ans.exceptions.ErrorMessage;
  20 +import br.gov.ans.factories.qualifiers.Autenticado;
  21 +import br.gov.ans.factories.qualifiers.PropertiesInfo;
  22 +import br.gov.ans.factories.qualifiers.Server;
  23 +import br.gov.ans.templates.mb.CriacaoTemplate;
  24 +import br.gov.ans.templates.modelo.Template;
  25 +import br.gov.ans.templates.modelo.Versao;
  26 +
  27 +public class ClientTemplatesBroker implements Serializable{
  28 +
  29 + private static final long serialVersionUID = 1L;
  30 +
  31 + @Inject
  32 + @Server
  33 + @ApplicationScoped
  34 + @PropertiesInfo(file="services.properties", key="templates.broker.uri")
  35 + private String uri;
  36 +
  37 + @Inject
  38 + @Autenticado("templates.web")
  39 + private transient Client cliente;
  40 +
  41 + @Inject
  42 + private Logger logger;
  43 +
  44 + public HashMap<String, Object> getTemplates(String filtro, int qtdRegistros, int pagina) throws Exception{
  45 + Response response = cliente.target(uri).path("templates")
  46 + .queryParam("filtro", filtro)
  47 + .queryParam("itens", qtdRegistros)
  48 + .queryParam("pag", pagina)
  49 + .property("Accept", MediaType.APPLICATION_JSON).request().buildGet().invoke();
  50 +
  51 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  52 + errorHandling(response);
  53 + }
  54 +
  55 + HashMap<String, Object> map = new HashMap<String, Object>();
  56 +
  57 + String totalRegistros = response.getHeaderString("total_registros");
  58 + map.put("totalRegistros", totalRegistros);
  59 +
  60 + List<Template> templates = response.readEntity(new GenericType<List<Template>>(){});
  61 + map.put("templates", templates);
  62 +
  63 + response.close();
  64 +
  65 + return map;
  66 + }
  67 +
  68 + public String getCorpoTemplate(String identificador) throws Exception{
  69 + Response response = cliente.target(uri).path("templates")
  70 + .path(identificador)
  71 + .path("corpo")
  72 + .request().buildGet().invoke();
  73 +
  74 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  75 + errorHandling(response);
  76 + }
  77 +
  78 + String corpo = response.readEntity(String.class);
  79 +
  80 + return corpo;
  81 + }
  82 +
  83 + public void criarTemplate(Template template) throws Exception{
  84 + CriacaoTemplate novoTemplate = new CriacaoTemplate(template);
  85 +
  86 + Response response = cliente.target(uri).path("templates")
  87 + .request().buildPost(Entity.json(novoTemplate)).invoke();
  88 +
  89 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  90 + errorHandling(response);
  91 + }
  92 +
  93 + response.close();
  94 + }
  95 +
  96 + public void excluirTemplate(String identificador) throws Exception{
  97 + Response response = cliente.target(uri).path("templates")
  98 + .path(identificador)
  99 + .request().buildDelete().invoke();
  100 +
  101 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  102 + errorHandling(response);
  103 + }
  104 +
  105 + response.close();
  106 + }
  107 +
  108 + public void atualizarTemplate(String identificador, Template template) throws Exception{
  109 + CriacaoTemplate novoTemplate = new CriacaoTemplate(template);
  110 +
  111 + Response response = cliente.target(uri).path("templates")
  112 + .path(identificador)
  113 + .request().buildPut(Entity.json(novoTemplate)).invoke();
  114 +
  115 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  116 + errorHandling(response);
  117 + }
  118 +
  119 + response.close();
  120 + }
  121 +
  122 + public List<Versao> getVersoes(String identificador) throws Exception{
  123 + Response response = cliente.target(uri).path("templates")
  124 + .path(identificador)
  125 + .path("versoes")
  126 + .request().buildGet().invoke();
  127 +
  128 + if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL){
  129 + errorHandling(response);
  130 + }
  131 +
  132 + List<Versao> versoes = response.readEntity(new GenericType<List<Versao>>(){});
  133 +
  134 + response.close();
  135 +
  136 + return versoes;
  137 + }
  138 +
  139 + public void errorHandling(Response response) throws Exception{
  140 + if(!response.getHeaderString("Content-Type").equals(MediaType.APPLICATION_JSON)){
  141 + logger.error(response.readEntity(String.class));
  142 +
  143 + response.close();
  144 + throw new Exception("Erro ao utilizar o templates.broker.");
  145 + }
  146 +
  147 + ErrorMessage erro = response.readEntity(ErrorMessage.class);
  148 + response.close();
  149 +
  150 + throw new BusinessException(erro.getError());
  151 + }
  152 +}
... ...
src/main/java/br/gov/ans/templates/mb/ANSBean.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/mb/ANSBean.java
... ... @@ -0,0 +1,88 @@
  1 +package br.gov.ans.templates.mb;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +import javax.faces.application.FacesMessage;
  6 +import javax.faces.application.FacesMessage.Severity;
  7 +import javax.faces.context.ExternalContext;
  8 +import javax.faces.context.FacesContext;
  9 +import javax.servlet.http.HttpServletRequest;
  10 +import javax.servlet.http.HttpServletResponse;
  11 +import javax.servlet.http.HttpSession;
  12 +
  13 +import org.primefaces.context.RequestContext;
  14 +import org.primefaces.util.MessageFactory;
  15 +
  16 +
  17 +public class ANSBean implements Serializable{
  18 +
  19 + private static final long serialVersionUID = 1L;
  20 +
  21 + public void exibirMensagemErroGenerica(){
  22 + FacesMessage message = MessageFactory.getMessage("erro.generico", FacesMessage.SEVERITY_ERROR, null);
  23 + getFacesContext().addMessage(null, message);
  24 + }
  25 +
  26 + public void exibirMensagemSucessoGenerica(){
  27 + FacesMessage message = MessageFactory.getMessage("sucesso.generico", FacesMessage.SEVERITY_INFO, null);
  28 + getFacesContext().addMessage(null, message);
  29 + }
  30 +
  31 + public void exibirMensagemSucesso(String bundleKey){
  32 + FacesMessage message = MessageFactory.getMessage(bundleKey, FacesMessage.SEVERITY_INFO, null);
  33 + getFacesContext().addMessage(null, message);
  34 + }
  35 +
  36 + public void exibirMensagemErro(String bundleKey){
  37 + FacesMessage message = MessageFactory.getMessage(bundleKey, FacesMessage.SEVERITY_ERROR, null);
  38 + getFacesContext().addMessage(null, message);
  39 + }
  40 +
  41 + public void exibirMensagemAviso(String bundleKey){
  42 + FacesMessage message = MessageFactory.getMessage(bundleKey, FacesMessage.SEVERITY_WARN, null);
  43 + getFacesContext().addMessage(null, message);
  44 + }
  45 +
  46 + public void exibirMensagemErroException(Exception ex){
  47 + FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), "");
  48 + getFacesContext().addMessage(null, message);
  49 + }
  50 +
  51 + public void exibirMensagemParametrizada(String bundleKey, Severity severity, String messageName, Object[] params){
  52 + FacesMessage message = MessageFactory.getMessage(bundleKey, severity, params);
  53 + FacesContext.getCurrentInstance().addMessage(messageName, message);
  54 + }
  55 +
  56 + protected FacesContext getFacesContext(){
  57 + return FacesContext.getCurrentInstance();
  58 + }
  59 +
  60 + protected ExternalContext getExternalContext(){
  61 + return getFacesContext().getExternalContext();
  62 + }
  63 +
  64 + protected HttpSession getSession(boolean createIfInvalid){
  65 + return (HttpSession) getExternalContext().getSession(createIfInvalid);
  66 + }
  67 +
  68 + protected HttpServletRequest getRequest(){
  69 + return (HttpServletRequest) getExternalContext().getRequest();
  70 + }
  71 +
  72 + protected HttpServletResponse getResponse(){
  73 + return (HttpServletResponse) getExternalContext().getResponse();
  74 + }
  75 +
  76 + public RequestContext getRequestContext(){
  77 + return RequestContext.getCurrentInstance();
  78 + }
  79 +
  80 + public String getMessageFromBundle(String bundleKey){
  81 + FacesContext context = FacesContext.getCurrentInstance();
  82 + return context.getApplication().evaluateExpressionGet(context, "#{msg['"+bundleKey+"']}", String.class);
  83 + }
  84 +
  85 + public String getUsuarioLogado(){
  86 + return getExternalContext().getUserPrincipal().getName();
  87 + }
  88 +}
... ...
src/main/java/br/gov/ans/templates/mb/CriacaoTemplate.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/mb/CriacaoTemplate.java
... ... @@ -0,0 +1,90 @@
  1 +package br.gov.ans.templates.mb;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +import javax.xml.bind.annotation.XmlRootElement;
  7 +
  8 +@XmlRootElement
  9 +public class CriacaoTemplate implements Serializable{
  10 + private String nome;
  11 + private String descricao;
  12 + private Boolean restrito;
  13 + private String exemplo;
  14 + private String corpo;
  15 + private String responsavel;
  16 + private Date data;
  17 +
  18 + public CriacaoTemplate(){
  19 + }
  20 +
  21 + public CriacaoTemplate(br.gov.ans.templates.modelo.Template template){
  22 + setNome(template.getNome());
  23 + setDescricao(template.getDescricao());
  24 + setRestrito(template.getRestrito());
  25 + setExemplo(template.getExemplo());
  26 + setCorpo(new String(template.getCorpo()));
  27 + setResponsavel(template.getResponsavel());
  28 + setData(template.getDataCadastro());
  29 + }
  30 +
  31 + public String getNome() {
  32 + return nome;
  33 + }
  34 +
  35 + public void setNome(String nome) {
  36 + this.nome = nome;
  37 + }
  38 +
  39 + public String getDescricao() {
  40 + return descricao;
  41 + }
  42 +
  43 + public void setDescricao(String descricao) {
  44 + this.descricao = descricao;
  45 + }
  46 +
  47 + public Boolean getRestrito() {
  48 + if(restrito == null){
  49 + return false;
  50 + }
  51 +
  52 + return restrito;
  53 + }
  54 +
  55 + public void setRestrito(Boolean restrito) {
  56 + this.restrito = restrito;
  57 + }
  58 +
  59 + public String getExemplo() {
  60 + return exemplo;
  61 + }
  62 +
  63 + public void setExemplo(String exemplo) {
  64 + this.exemplo = exemplo;
  65 + }
  66 +
  67 + public String getCorpo() {
  68 + return corpo;
  69 + }
  70 +
  71 + public void setCorpo(String corpo) {
  72 + this.corpo = corpo;
  73 + }
  74 +
  75 + public String getResponsavel() {
  76 + return responsavel;
  77 + }
  78 +
  79 + public void setResponsavel(String responsavel) {
  80 + this.responsavel = responsavel;
  81 + }
  82 +
  83 + public Date getData() {
  84 + return data;
  85 + }
  86 +
  87 + public void setData(Date data) {
  88 + this.data = data;
  89 + }
  90 +}
... ...
src/main/java/br/gov/ans/templates/mb/SessionBean.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/mb/SessionBean.java
... ... @@ -0,0 +1,37 @@
  1 +package br.gov.ans.templates.mb;
  2 +
  3 +import java.io.Serializable;
  4 +import java.text.SimpleDateFormat;
  5 +import java.util.Date;
  6 +
  7 +import javax.faces.bean.SessionScoped;
  8 +import javax.inject.Named;
  9 +
  10 +@Named
  11 +@SessionScoped
  12 +public class SessionBean extends ANSBean implements Serializable{
  13 +
  14 + private static final long serialVersionUID = 1L;
  15 +
  16 + private String usuarioLogado;
  17 +
  18 + public SessionBean(){
  19 + this.usuarioLogado = getExternalContext().getUserPrincipal().getName();
  20 + }
  21 +
  22 + public String getDataAtual(){
  23 + SimpleDateFormat dtHr = new SimpleDateFormat( "EEEE, d' de 'MMMM' de 'yyyy" );
  24 + return dtHr.format( new Date( System.currentTimeMillis() ) );
  25 + }
  26 +
  27 + public String logout() {
  28 + getSession(false).invalidate();
  29 +
  30 + return "/pages/gerenciar_templates.xhtml?faces-redirect=true";
  31 + }
  32 +
  33 + public String getUsuarioLogado() {
  34 + return usuarioLogado;
  35 + }
  36 +
  37 +}
... ...
src/main/java/br/gov/ans/templates/mb/TemplatesBean.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/mb/TemplatesBean.java
... ... @@ -0,0 +1,291 @@
  1 +package br.gov.ans.templates.mb;
  2 +
  3 +import java.io.ByteArrayInputStream;
  4 +import java.io.IOException;
  5 +import java.io.InputStream;
  6 +import java.io.Serializable;
  7 +import java.text.DateFormat;
  8 +import java.text.SimpleDateFormat;
  9 +import java.util.HashMap;
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +import javax.annotation.PostConstruct;
  14 +import javax.ejb.Stateful;
  15 +import javax.inject.Inject;
  16 +import javax.inject.Named;
  17 +
  18 +import org.apache.commons.io.IOUtils;
  19 +import org.apache.commons.lang3.StringUtils;
  20 +import org.jboss.logging.Logger;
  21 +import org.omnifaces.cdi.ViewScoped;
  22 +import org.primefaces.model.DefaultStreamedContent;
  23 +import org.primefaces.model.LazyDataModel;
  24 +import org.primefaces.model.SortOrder;
  25 +import org.primefaces.model.StreamedContent;
  26 +import org.primefaces.model.UploadedFile;
  27 +
  28 +import br.gov.ans.exceptions.BusinessException;
  29 +import br.gov.ans.templates.clients.ClientTemplatesBroker;
  30 +import br.gov.ans.templates.modelo.Template;
  31 +import br.gov.ans.templates.modelo.Versao;
  32 +
  33 +@Named
  34 +@Stateful
  35 +@ViewScoped
  36 +public class TemplatesBean extends ANSBean implements Serializable{
  37 +
  38 + private static final long serialVersionUID = 1L;
  39 +
  40 + @Inject
  41 + private Logger logger;
  42 +
  43 + @Inject
  44 + private transient ClientTemplatesBroker templatesBroker;
  45 +
  46 + DateFormat formatter = new SimpleDateFormat("ddMMyyyyhhmm");
  47 +
  48 + private String filtro;
  49 + private String identificadorTemplateEditado;
  50 + private String historicoSelecionado;
  51 +
  52 + private List<Versao> versoes;
  53 + private List<Template> templates;
  54 + private LazyDataModel<Template> model;
  55 +
  56 + private Template template;
  57 +
  58 + private int qtdRegistros;
  59 +
  60 + private UploadedFile arquivoTemplate;
  61 +
  62 + @PostConstruct
  63 + public void init(){
  64 + model = new LazyDataModel<Template>() {
  65 + private static final long serialVersionUID = 1L;
  66 +
  67 + @SuppressWarnings("unchecked")
  68 + @Override
  69 + public List<Template> load(int first, int pageSize, String sortField, SortOrder sortOrder,
  70 + Map<String, Object> filters) {
  71 +
  72 + int numeroPagina = (first / pageSize) + 1;
  73 +
  74 + try {
  75 + HashMap<String, Object> map = templatesBroker.getTemplates(filtro, pageSize, numeroPagina);
  76 +
  77 + templates = (List<Template>) map.get("templates");
  78 + qtdRegistros = Integer.parseInt(map.get("totalRegistros").toString());
  79 +
  80 + setRowCount(qtdRegistros);
  81 + } catch (Exception ex) {
  82 + templates = null;
  83 + logger.error(ex, ex);
  84 + exibirMensagemErro(ex.getMessage());
  85 + }
  86 +
  87 + return templates;
  88 + }
  89 + };
  90 +
  91 + novoTemplate();
  92 + }
  93 +
  94 + public void novoTemplate(){
  95 + template = new Template();
  96 + template.setResponsavel(getUsuarioLogado());
  97 + }
  98 +
  99 + public void editarTemplate(Template template){
  100 + this.template = template;
  101 + this.template.setResponsavel(getUsuarioLogado());
  102 +
  103 + this.identificadorTemplateEditado = template.getNome();
  104 + }
  105 +
  106 + public void salvar(){
  107 + try {
  108 + validarTemplate(template);
  109 +
  110 + template.setCorpo(getCorpoArquivo());
  111 +
  112 + templatesBroker.criarTemplate(template);
  113 +
  114 + getRequestContext().execute("PF('templateDialog').hide();");
  115 +
  116 + exibirMensagemSucesso("sucesso.template.criado");
  117 + novoTemplate();
  118 + }catch(IOException ex){
  119 + logger.error(ex, ex);
  120 + exibirMensagemErro("erro.carregar.arquivo.template");
  121 + }catch (Exception ex) {
  122 + logger.error(ex, ex);
  123 + exibirMensagemErroException(ex);
  124 + }
  125 + }
  126 +
  127 + public void getHistoricoTemplate(String identificador){
  128 + this.historicoSelecionado = identificador;
  129 +
  130 + try {
  131 + this.versoes = templatesBroker.getVersoes(identificador);
  132 + } catch (Exception ex) {
  133 + logger.error(ex, ex);
  134 + exibirMensagemErroException(ex);
  135 + }
  136 + }
  137 +
  138 + public void atualizarTemplate(){
  139 + try {
  140 + validarTemplate(template);
  141 +
  142 + if(arquivoTemplate != null && StringUtils.isNotBlank(arquivoTemplate.getFileName())){
  143 + template.setCorpo(getCorpoArquivo());
  144 + }else{
  145 + exibirMensagemAviso("aviso.arquivo.template.nao.anexado");
  146 + }
  147 +
  148 + templatesBroker.atualizarTemplate(identificadorTemplateEditado, template);
  149 +
  150 + getRequestContext().execute("PF('editTemplateDialog').hide();");
  151 +
  152 + exibirMensagemSucesso("sucesso.template.atualizado");
  153 + } catch (Exception ex) {
  154 + logger.error(ex, ex);
  155 + exibirMensagemErroException(ex);
  156 + }
  157 + }
  158 +
  159 + public void atualizarCorpoTemplate(){
  160 + try {
  161 + templatesBroker.atualizarTemplate(template.getNome(), template);
  162 +
  163 + getRequestContext().execute("PF('editCorpoDialog').hide();");
  164 +
  165 + exibirMensagemSucesso("sucesso.template.atualizado");
  166 + } catch (Exception ex) {
  167 + logger.error(ex, ex);
  168 + exibirMensagemErroException(ex);
  169 + }
  170 + }
  171 +
  172 + public void validarTemplate(Template template) throws BusinessException{
  173 + if(StringUtils.isBlank(template.getNome())){
  174 + throw new BusinessException(getMessageFromBundle("erro.identificador.obrigatorio"));
  175 + }
  176 +
  177 + if(StringUtils.isBlank(template.getDescricao())){
  178 + throw new BusinessException(getMessageFromBundle("erro.descricao.obrigatoria"));
  179 + }
  180 +
  181 + if(StringUtils.isBlank(template.getExemplo())){
  182 + throw new BusinessException(getMessageFromBundle("erro.exemplo.obrigatorio"));
  183 + }
  184 + }
  185 +
  186 + public String getCorpoArquivo() throws IOException, BusinessException{
  187 + if(arquivoTemplate == null){
  188 + throw new BusinessException(getMessageFromBundle("erro.arquivo.obrigatorio"));
  189 + }
  190 +
  191 + if(arquivoTemplate.getSize() < 1L){
  192 + throw new BusinessException(getMessageFromBundle("erro.arquivo.template.vazio"));
  193 + }
  194 +
  195 + return IOUtils.toString(arquivoTemplate.getInputstream());
  196 + }
  197 +
  198 + public StreamedContent downloadTemplate(String identificador){
  199 + try{
  200 + String corpoTemplate = templatesBroker.getCorpoTemplate(identificador);
  201 +
  202 + InputStream inputStram = new ByteArrayInputStream(corpoTemplate.getBytes());
  203 +
  204 + return new DefaultStreamedContent(inputStram, "application/octet-stream", identificador +".mustache");
  205 + }catch (Exception ex) {
  206 + logger.error(ex, ex);
  207 + exibirMensagemErroException(ex);
  208 + return null;
  209 + }
  210 + }
  211 +
  212 + public void excluirTemplate(String identificador){
  213 + try {
  214 + templatesBroker.excluirTemplate(identificador);
  215 + exibirMensagemSucesso("sucesso.template.excluido");
  216 + } catch (Exception ex) {
  217 + logger.error(ex, ex);
  218 + exibirMensagemErroException(ex);
  219 + }
  220 + }
  221 +
  222 + public StreamedContent downloadVersao(Versao versao){
  223 + try{
  224 + InputStream inputStram = new ByteArrayInputStream(versao.getCorpo());
  225 +
  226 + return new DefaultStreamedContent(inputStram, "application/octet-stream", historicoSelecionado+"_"+formatter.format(versao.getData()) +".mustache");
  227 + }catch (Exception ex) {
  228 + logger.error(ex, ex);
  229 + exibirMensagemErroException(ex);
  230 + return null;
  231 + }
  232 + }
  233 +
  234 + public void limparListaVersoes(){
  235 + this.historicoSelecionado = null;
  236 + this.versoes = null;
  237 + }
  238 +
  239 + public String getFiltro() {
  240 + return filtro;
  241 + }
  242 +
  243 + public void setFiltro(String filtro) {
  244 + this.filtro = filtro;
  245 + }
  246 +
  247 + public LazyDataModel<Template> getModel() {
  248 + return model;
  249 + }
  250 +
  251 + public void setModel(LazyDataModel<Template> model) {
  252 + this.model = model;
  253 + }
  254 +
  255 + public Template getTemplate() {
  256 + return template;
  257 + }
  258 +
  259 + public void setTemplate(Template template) {
  260 + this.template = template;
  261 + }
  262 +
  263 + public UploadedFile getArquivoTemplate() {
  264 + return arquivoTemplate;
  265 + }
  266 +
  267 + public void setArquivoTemplate(UploadedFile arquivoTemplate) {
  268 + this.arquivoTemplate = arquivoTemplate;
  269 + }
  270 +
  271 + public String getIdentificadorTemplateEditado() {
  272 + return identificadorTemplateEditado;
  273 + }
  274 +
  275 + public void setIdentificadorTemplateEditado(String identificadorTemplateEditado) {
  276 + this.identificadorTemplateEditado = identificadorTemplateEditado;
  277 + }
  278 +
  279 + public List<Versao> getVersoes() {
  280 + return versoes;
  281 + }
  282 +
  283 + public void setVersoes(List<Versao> versoes) {
  284 + this.versoes = versoes;
  285 + }
  286 +
  287 + public String getHistoricoSelecionado() {
  288 + return historicoSelecionado;
  289 + }
  290 +
  291 +}
... ...
src/main/java/br/gov/ans/templates/modelo/CriacaoTemplate.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/modelo/CriacaoTemplate.java
... ... @@ -0,0 +1,90 @@
  1 +package br.gov.ans.templates.modelo;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +import javax.xml.bind.annotation.XmlRootElement;
  7 +
  8 +@XmlRootElement
  9 +public class CriacaoTemplate implements Serializable{
  10 + private String nome;
  11 + private String descricao;
  12 + private Boolean restrito;
  13 + private String exemplo;
  14 + private String corpo;
  15 + private String responsavel;
  16 + private Date data;
  17 +
  18 + public CriacaoTemplate(){
  19 + }
  20 +
  21 + public CriacaoTemplate(br.gov.ans.templates.modelo.Template template){
  22 + setNome(template.getNome());
  23 + setDescricao(template.getDescricao());
  24 + setRestrito(template.getRestrito());
  25 + setExemplo(template.getExemplo());
  26 + setCorpo(new String(template.getCorpo()));
  27 + setResponsavel(template.getResponsavel());
  28 + setData(template.getDataCadastro());
  29 + }
  30 +
  31 + public String getNome() {
  32 + return nome;
  33 + }
  34 +
  35 + public void setNome(String nome) {
  36 + this.nome = nome;
  37 + }
  38 +
  39 + public String getDescricao() {
  40 + return descricao;
  41 + }
  42 +
  43 + public void setDescricao(String descricao) {
  44 + this.descricao = descricao;
  45 + }
  46 +
  47 + public Boolean getRestrito() {
  48 + if(restrito == null){
  49 + return false;
  50 + }
  51 +
  52 + return restrito;
  53 + }
  54 +
  55 + public void setRestrito(Boolean restrito) {
  56 + this.restrito = restrito;
  57 + }
  58 +
  59 + public String getExemplo() {
  60 + return exemplo;
  61 + }
  62 +
  63 + public void setExemplo(String exemplo) {
  64 + this.exemplo = exemplo;
  65 + }
  66 +
  67 + public String getCorpo() {
  68 + return corpo;
  69 + }
  70 +
  71 + public void setCorpo(String corpo) {
  72 + this.corpo = corpo;
  73 + }
  74 +
  75 + public String getResponsavel() {
  76 + return responsavel;
  77 + }
  78 +
  79 + public void setResponsavel(String responsavel) {
  80 + this.responsavel = responsavel;
  81 + }
  82 +
  83 + public Date getData() {
  84 + return data;
  85 + }
  86 +
  87 + public void setData(Date data) {
  88 + this.data = data;
  89 + }
  90 +}
... ...
src/main/java/br/gov/ans/templates/modelo/Template.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/modelo/Template.java
... ... @@ -0,0 +1,88 @@
  1 +package br.gov.ans.templates.modelo;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +public class Template implements Serializable{
  7 +
  8 + private String nome;
  9 +
  10 + private String descricao;
  11 +
  12 + private Boolean restrito;
  13 +
  14 + private String exemplo;
  15 +
  16 + private String corpo;
  17 +
  18 + private String responsavel;
  19 +
  20 + private Date dataCadastro;
  21 +
  22 + private Date dataExclusao;
  23 +
  24 + public String getNome() {
  25 + return nome;
  26 + }
  27 +
  28 + public void setNome(String nome) {
  29 + this.nome = nome;
  30 + }
  31 +
  32 + public String getDescricao() {
  33 + return descricao;
  34 + }
  35 +
  36 + public void setDescricao(String descricao) {
  37 + this.descricao = descricao;
  38 + }
  39 +
  40 + public Boolean getRestrito() {
  41 + return restrito;
  42 + }
  43 +
  44 + public void setRestrito(Boolean restrito) {
  45 + this.restrito = restrito;
  46 + }
  47 +
  48 + public String getExemplo() {
  49 + return exemplo;
  50 + }
  51 +
  52 + public void setExemplo(String exemplo) {
  53 + this.exemplo = exemplo;
  54 + }
  55 +
  56 + public String getCorpo() {
  57 + return corpo;
  58 + }
  59 +
  60 + public void setCorpo(String corpo) {
  61 + this.corpo = corpo;
  62 + }
  63 +
  64 + public String getResponsavel() {
  65 + return responsavel;
  66 + }
  67 +
  68 + public void setResponsavel(String responsavel) {
  69 + this.responsavel = responsavel;
  70 + }
  71 +
  72 + public Date getDataCadastro() {
  73 + return dataCadastro;
  74 + }
  75 +
  76 + public void setDataCadastro(Date dataCadastro) {
  77 + this.dataCadastro = dataCadastro;
  78 + }
  79 +
  80 + public Date getDataExclusao() {
  81 + return dataExclusao;
  82 + }
  83 +
  84 + public void setDataExclusao(Date dataExclusao) {
  85 + this.dataExclusao = dataExclusao;
  86 + }
  87 +
  88 +}
... ...
src/main/java/br/gov/ans/templates/modelo/Versao.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/templates/modelo/Versao.java
... ... @@ -0,0 +1,89 @@
  1 +package br.gov.ans.templates.modelo;
  2 +
  3 +import java.io.Serializable;
  4 +import java.util.Date;
  5 +
  6 +public class Versao implements Serializable{
  7 +
  8 + private String responsavel;
  9 + private Date data;
  10 + private String descricao;
  11 +
  12 + private String exemplo;
  13 + private byte[] corpo;
  14 +
  15 + public String getResponsavel() {
  16 + return responsavel;
  17 + }
  18 +
  19 + public void setResponsavel(String usuario) {
  20 + this.responsavel = usuario;
  21 + }
  22 +
  23 + public Date getData() {
  24 + return data;
  25 + }
  26 +
  27 + public void setData(Date data) {
  28 + this.data = data;
  29 + }
  30 +
  31 + public String getDescricao() {
  32 + return descricao;
  33 + }
  34 +
  35 + public void setDescricao(String descricao) {
  36 + this.descricao = descricao;
  37 + }
  38 +
  39 + public String getExemplo() {
  40 + return exemplo;
  41 + }
  42 +
  43 + public void setExemplo(String exemplo) {
  44 + this.exemplo = exemplo;
  45 + }
  46 +
  47 + public byte[] getCorpo() {
  48 + return corpo;
  49 + }
  50 +
  51 + public void setCorpo(byte[] corpo) {
  52 + this.corpo = corpo;
  53 + }
  54 +
  55 + public int getHash(){
  56 + return hashCode();
  57 + }
  58 +
  59 + @Override
  60 + public int hashCode() {
  61 + final int prime = 31;
  62 + int result = 1;
  63 + result = prime * result + ((data == null) ? 0 : data.hashCode());
  64 + result = prime * result + ((responsavel == null) ? 0 : responsavel.hashCode());
  65 + return result;
  66 + }
  67 +
  68 + @Override
  69 + public boolean equals(Object obj) {
  70 + if (this == obj)
  71 + return true;
  72 + if (obj == null)
  73 + return false;
  74 + if (getClass() != obj.getClass())
  75 + return false;
  76 + Versao other = (Versao) obj;
  77 + if (data == null) {
  78 + if (other.data != null)
  79 + return false;
  80 + } else if (!data.equals(other.data))
  81 + return false;
  82 + if (responsavel == null) {
  83 + if (other.responsavel != null)
  84 + return false;
  85 + } else if (!responsavel.equals(other.responsavel))
  86 + return false;
  87 + return true;
  88 + }
  89 +}
... ...
src/main/java/br/gov/ans/utils/Authenticator.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/utils/Authenticator.java
... ... @@ -0,0 +1,38 @@
  1 +package br.gov.ans.utils;
  2 +
  3 +import java.io.IOException;
  4 +import java.io.Serializable;
  5 +import java.io.UnsupportedEncodingException;
  6 +
  7 +import javax.ws.rs.client.ClientRequestContext;
  8 +import javax.ws.rs.client.ClientRequestFilter;
  9 +import javax.ws.rs.core.MultivaluedMap;
  10 +import javax.xml.bind.DatatypeConverter;
  11 +
  12 +public class Authenticator implements ClientRequestFilter, Serializable {
  13 +
  14 + private final String user;
  15 + private final String password;
  16 +
  17 + public Authenticator(String user, String password) {
  18 + this.user = user;
  19 + this.password = password;
  20 + }
  21 +
  22 + public void filter(ClientRequestContext requestContext) throws IOException {
  23 + MultivaluedMap<String, Object> headers = requestContext.getHeaders();
  24 + final String basicAuthentication = getBasicAuthentication();
  25 + headers.add("Authorization", basicAuthentication);
  26 +
  27 + }
  28 +
  29 + private String getBasicAuthentication() {
  30 + String token = this.user + ":" + this.password;
  31 + try {
  32 + return "BASIC " + DatatypeConverter.printBase64Binary(token.getBytes("UTF-8"));
  33 + } catch (UnsupportedEncodingException ex) {
  34 + throw new IllegalStateException("Cannot encode with UTF-8", ex);
  35 + }
  36 + }
  37 +
  38 +}
0 39 \ No newline at end of file
... ...
src/main/java/br/gov/ans/utils/HttpHeadersUtil.java 0 → 100644
  1 +++ a/src/main/java/br/gov/ans/utils/HttpHeadersUtil.java
... ... @@ -0,0 +1,41 @@
  1 +package br.gov.ans.utils;
  2 +
  3 +import javax.servlet.http.HttpServletRequest;
  4 +import javax.ws.rs.core.HttpHeaders;
  5 +import javax.ws.rs.core.MediaType;
  6 +
  7 +import org.apache.commons.lang3.StringUtils;
  8 +import org.jboss.logging.Logger;
  9 +
  10 +public class HttpHeadersUtil {
  11 +
  12 + private static Logger logger = Logger.getLogger(HttpHeadersUtil.class);
  13 +
  14 + public static String getAcceptType(HttpHeaders headers){
  15 + try{
  16 + String accept = headers.getRequestHeader("Accept").get(0);
  17 +
  18 + if(!StringUtils.isBlank(accept)&& StringUtils.contains(accept, MediaType.APPLICATION_XML)){
  19 + return MediaType.APPLICATION_XML;
  20 + }
  21 + }catch(Exception e){
  22 + logger.warn("Não foi encontrado o campo Accept na requisição, respondendo com JSON.");
  23 + }
  24 +
  25 + return MediaType.APPLICATION_JSON;
  26 + }
  27 +
  28 + public static String getAcceptType(HttpServletRequest request){
  29 + try{
  30 + String accept = request.getHeader("Accept");
  31 +
  32 + if(!StringUtils.isBlank(accept)&& StringUtils.contains(accept, MediaType.APPLICATION_XML)){
  33 + return MediaType.APPLICATION_XML;
  34 + }
  35 + }catch(Exception e){
  36 + logger.warn("Não foi encontrado o campo Accept na requisição, respondendo com JSON.");
  37 + }
  38 +
  39 + return MediaType.APPLICATION_JSON;
  40 + }
  41 +}
... ...
src/main/resources/labels.properties 0 → 100644
  1 +++ a/src/main/resources/labels.properties
... ... @@ -0,0 +1,43 @@
  1 +label.acoes = Ações
  2 +label.ans = ANS - Agência Nacional de Saúde Suplementar
  3 +label.arquivo = Arquivo
  4 +label.atencao = Atenção:
  5 +label.cadastrar = Cadastrar
  6 +label.cadastro = Cadastro
  7 +label.cadastro.autor = Cadastrar Autor
  8 +label.cadastro.livros = Cadastrar Livro
  9 +label.cancelar = Cancelar
  10 +label.data = Data
  11 +label.descricao = Descrição
  12 +label.download = Download
  13 +label.editar = Editar
  14 +label.email = E-mail
  15 +label.excluir = Excluir
  16 +label.exemplo = Exemplo
  17 +label.filtrar = Filtrar
  18 +label.filtro = Filtro
  19 +label.id = Id
  20 +label.identificador = Identificador
  21 +label.login = Login
  22 +label.nome = Nome
  23 +label.pesquisa = Pesquisa
  24 +label.pesquisar = Pesquisar
  25 +label.responsavel = Responsável
  26 +label.restrito = Restrito
  27 +label.salvar = Salvar
  28 +label.sair = Sair
  29 +label.templates = Templates
  30 +label.tipo = Tipo
  31 +label.usuario = usuário
  32 +label.versao = V_1.0
  33 +
  34 +label.sim = Sim
  35 +label.nao = Não
  36 +
  37 +label.criar.novo.template = Criar novo template
  38 +label.edicao.rapida = Edição rápida
  39 +label.editar.template = Editar template
  40 +label.gerenciar.templates = Gerenciar Templates
  41 +label.historico = Histórico
  42 +label.novo.template = Novo Template
  43 +label.versoes.anteriores.template = Versões anteriores do template
0 44 \ No newline at end of file
... ...
src/main/resources/messages.properties 0 → 100644
  1 +++ a/src/main/resources/messages.properties
... ... @@ -0,0 +1,35 @@
  1 +confirmacao.sair = Deseja realmente sair?
  2 +erro.403 = Voce não possui acesso a esta aplicação.
  3 +erro.404 = Página não encontrada.
  4 +erro.500 = Erro interno do servidor, tente mais tarde.
  5 +erro.captcha.invalido = Captcha incorreto.
  6 +erro.captcha.obrigatorio = Captcha obrigatório.
  7 +erro.generico = Ocorreu um erro no sistema.
  8 +erro.inesperado = Ocorreu um erro inesperado no sistema, tente mais tarde.
  9 +
  10 +aviso.arquivo.template.nao.anexado = Não foi anexado um arquivo com o conteúdo do template, o conteúdo não será alterado.
  11 +
  12 +erro.arquivo.obrigatorio = O arquivo com o conteúdo do template precisa ser anexado.
  13 +erro.arquivo.template.vazio = O arquivo não pode ser vazio.
  14 +erro.carregar.arquivo.template = Ocorreu um erro ao carregar o arquivo do template, verifique o arquivo anexado.
  15 +erro.descricao.obrigatoria = É obrigatório incluir uma descrição para o template.
  16 +erro.exemplo.obrigatorio = É obrigatório informar um exemplo de preenchimento do template.
  17 +erro.identificador.obrigatorio = O identificador é obrigatório.
  18 +erro.listar.templates = Erro aos listar os templates.
  19 +
  20 +sucesso.template.atualizado = Template atualizado com sucesso.
  21 +sucesso.template.criado = Template criado com sucesso.
  22 +sucesso.template.excluido = Template excluído com sucesso.
  23 +
  24 +mensagem.bem-vindo = Bem-vindo ao Sistema de Administração de Templates.
  25 +mensagem.sem.registros = Não há registros.
  26 +
  27 +primefaces.password.INVALID_MATCH = Senhas não conferem.
  28 +primefaces.password.INVALID_MATCH_detail = Senhas não conferem.
  29 +
  30 +title.erro.inesperado = Administração de Templates - erro inesperado
  31 +title.erro.templates.broker = Erro ao acessar a camada de serviços
  32 +title.sistema = Administração de Templates
  33 +
  34 +validacao.campo.obrigatorio = Campo Obrigatório.
  35 +validacao.cpf.invalido = CPF inválido.
0 36 \ No newline at end of file
... ...
src/main/webapp/WEB-INF/.faces-config.xml.jsfdia 0 → 100644
  1 +++ a/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia
... ... @@ -0,0 +1,2 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<PROCESS model-entity="JSFProcess"/>
... ...
src/main/webapp/WEB-INF/beans.xml 0 → 100644
  1 +++ a/src/main/webapp/WEB-INF/beans.xml
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0"?>
  2 +<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
  4 + bean-discovery-mode="all">
  5 +</beans>
... ...
src/main/webapp/WEB-INF/faces-config.xml 0 → 100644
  1 +++ a/src/main/webapp/WEB-INF/faces-config.xml
... ... @@ -0,0 +1,28 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<faces-config
  3 + xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  4 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5 + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
  6 + version="2.2">
  7 +
  8 + <application>
  9 + <message-bundle>labels</message-bundle>
  10 + <resource-bundle>
  11 + <base-name>labels</base-name>
  12 + <var>lb</var>
  13 + </resource-bundle>
  14 +
  15 + <message-bundle>messages</message-bundle>
  16 + <resource-bundle>
  17 + <base-name>messages</base-name>
  18 + <var>msg</var>
  19 + </resource-bundle>
  20 + </application>
  21 +
  22 +<!-- <factory> -->
  23 +<!-- <exception-handler-factory> -->
  24 +<!-- br.gov.ans.exceptions.CustomExceptionHandlerFactory -->
  25 +<!-- </exception-handler-factory> -->
  26 +<!-- </factory> -->
  27 +
  28 +</faces-config>
... ...
src/main/webapp/WEB-INF/jboss-web.xml 0 → 100644
  1 +++ a/src/main/webapp/WEB-INF/jboss-web.xml
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<jboss-web>
  3 + <security-domain>ans-form-auth</security-domain>
  4 + <context-root>/templates</context-root>
  5 +</jboss-web>
... ...
src/main/webapp/WEB-INF/web.xml 0 → 100644
  1 +++ a/src/main/webapp/WEB-INF/web.xml
... ... @@ -0,0 +1,65 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  5 + <display-name>templates</display-name>
  6 +
  7 + <context-param>
  8 + <param-name>javax.faces.PROJECT_STAGE</param-name>
  9 + <param-value>Development</param-value>
  10 + </context-param>
  11 +
  12 + <context-param>
  13 + <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
  14 + <param-value>false</param-value>
  15 + </context-param>
  16 +
  17 + <context-param>
  18 + <param-name>primefaces.FONT_AWESOME</param-name>
  19 + <param-value>true</param-value>
  20 + </context-param>
  21 +
  22 + <servlet>
  23 + <servlet-name>Faces Servlet</servlet-name>
  24 + <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  25 + <load-on-startup>1</load-on-startup>
  26 + </servlet>
  27 + <servlet-mapping>
  28 + <servlet-name>Faces Servlet</servlet-name>
  29 + <url-pattern>*.xhtml</url-pattern>
  30 + </servlet-mapping>
  31 +
  32 + <welcome-file-list>
  33 + <welcome-file>pages/gerenciar_templates.xhtml</welcome-file>
  34 + </welcome-file-list>
  35 +
  36 + <login-config>
  37 + <auth-method>FORM</auth-method>
  38 + <form-login-config>
  39 + <form-login-page>/login.jsp</form-login-page>
  40 + <form-error-page>/login.jsp</form-error-page>
  41 + </form-login-config>
  42 + </login-config>
  43 +
  44 + <security-constraint>
  45 + <display-name>Camada de serviços referentes aos templates</display-name>
  46 + <web-resource-collection>
  47 + <web-resource-name>Todos os serviços</web-resource-name>
  48 + <url-pattern>/pages/*</url-pattern>
  49 + <http-method>GET</http-method>
  50 + <http-method>POST</http-method>
  51 + <http-method>HEAD</http-method>
  52 + <http-method>PUT</http-method>
  53 + <http-method>OPTIONS</http-method>
  54 + <http-method>TRACE</http-method>
  55 + <http-method>DELETE</http-method>
  56 + </web-resource-collection>
  57 + <auth-constraint>
  58 + <role-name>usuario_interno</role-name>
  59 + </auth-constraint>
  60 + </security-constraint>
  61 +
  62 + <security-role>
  63 + <role-name>usuario_interno</role-name>
  64 + </security-role>
  65 +</web-app>
0 66 \ No newline at end of file
... ...
src/main/webapp/login.jsp 0 → 100644
  1 +++ a/src/main/webapp/login.jsp
... ... @@ -0,0 +1,81 @@
  1 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  2 +
  3 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4 +<html lang="pt-BR">
  5 + <head>
  6 + <meta name="description" content="ANS">
  7 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  8 + <meta http-equiv="pragma" content="no-cache">
  9 + <meta name="keywords" content="ANS, Agência Nacional de Saúde Suplementar" lang="pt-BR">
  10 + <meta http-equiv="content-language" content="pt-BR">
  11 +
  12 + <title>ANS - Agência Nacional de Saúde Suplementar</title>
  13 +
  14 + <link type="text/css" rel="stylesheet" href="/ans-idp/javax.faces.resource/theme.css.xhtml?ln=primefaces-aristo">
  15 + <link type="text/css" rel="stylesheet" href="/ans-idp/javax.faces.resource/primefaces.css.xhtml?ln=primefaces&amp;v=5.2">
  16 + <link type="text/css" rel="stylesheet" href="https://www.ans.gov.br/templates/templateans/css/bootstrap.min.css" />
  17 + <link type="text/css" rel="stylesheet" href="https://www.ans.gov.br/templates/templateans/css/style.css" />
  18 + <link type="text/css" rel="stylesheet" href="https://www.ans.gov.br/images/PrimeFaces/css/style-prime-custom-ans.css" />
  19 + <link rel="icon" href="https://www.ans.gov.br/images/marcas/favicon.ico" type="image/x-icon" />
  20 +
  21 + </head>
  22 +
  23 + <body onload="document.form.j_username.focus()">
  24 + <div class="topoAreaRestritaOperadoras-ans" id="top-box">
  25 + <div style="margin-top:27px">
  26 + <div class="marca-po-ans">
  27 + <img src="https://www.ans.gov.br/images/marcas/logo-ans-sem-slogan.png" width="230" height="46" alt="ANS - Agência Nacional de Saúde Suplementar" />
  28 + </div>
  29 + <div class="left-po-ans titulo-principal-po-ans">
  30 + Administração de Templates
  31 + </div>
  32 + </div>
  33 + </div>
  34 +
  35 + <div class="clear-po-ans">
  36 + <br />
  37 + <hr style="border-bottom:none; border-top:1px solid #097189;" class="ui-separator ui-state-default ui-corner-all" />
  38 + </div>
  39 +
  40 + <div class="topoAreaRestritaOperadoras-ans">
  41 +
  42 + <div id="element-box" class="login">
  43 +
  44 + <div class="centralizaLogin-ans" style="position:absolute; width:300px; margin-left:-150px; left:50%; height: 350px;">
  45 + <h1>Login</h1>
  46 + <input type="hidden" value="0.1.2" />
  47 + <p>Informe seu usuário e senha para acessar a aplicação.</p>
  48 +
  49 + <div class="alert alert-alerta" id="system-message" style="display:<%= (session.getAttribute("ans.login.erro")!=null) ? "block" : "none" %>">
  50 + <p><b>Erro</b></p>
  51 + <p><%= session.getAttribute("ans.login.erro") %></p>
  52 + </div>
  53 +
  54 + <% session.setAttribute("ans.login.erro", null); %>
  55 +
  56 + <br />
  57 + <div id="section-box" class="boxcinza-ans">
  58 + <form name="form" method="POST" action="<%= response.encodeURL("j_security_check") %>" id="form-login">
  59 +
  60 + <div class="form-group">
  61 + <label id="mod-login-username-lbl" for="mod-login-username">Usuário</label>
  62 + <input name="j_username" id="mod-login-username" type="text"
  63 + class="form-control campoTexto ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all"
  64 + size="20">
  65 + </div>
  66 + <div class="form-group">
  67 + <label id="mod-login-password-lbl" for="mod-login-password">Senha</label>
  68 + <input name="j_password" id="mod-login-password" type="password"
  69 + class="form-control campoTexto" size="20">
  70 + </div>
  71 +
  72 + <input type="submit" value="Acessar" id="botao"
  73 + class="btn btn-primary btn-block" />
  74 +
  75 + </form>
  76 + </div>
  77 + </div>
  78 + <div id="lock"></div>
  79 + </div>
  80 + </body>
  81 +</html>
... ...
src/main/webapp/pages/gerenciar_templates.xhtml 0 → 100644
  1 +++ a/src/main/webapp/pages/gerenciar_templates.xhtml
... ... @@ -0,0 +1,213 @@
  1 +<?xml version="1.0" encoding="ISO-8859-1" ?>
  2 +<ui:composition
  3 + xmlns="http://www.w3.org/1999/xhtml"
  4 + xmlns:h="http://java.sun.com/jsf/html"
  5 + xmlns:f="http://java.sun.com/jsf/core"
  6 + xmlns:ui="http://java.sun.com/jsf/facelets"
  7 + xmlns:p="http://primefaces.org/ui"
  8 + template="/template/template.xhtml">
  9 +
  10 + <ui:define name="corpo">
  11 +
  12 +
  13 + <h:form id="formCentral" enctype="multipart/form-data" >
  14 + <h2>#{lb['label.gerenciar.templates']}</h2>
  15 +
  16 + <br/>
  17 +
  18 + <p:commandButton value="#{lb['label.novo.template']}" actionListener="#{templatesBean.novoTemplate}" oncomplete="PF('templateDialog').show()"
  19 + title="#{lb['label.criar.novo.template']}" update=":formNovo:msgDialog,:formEditar:editTemplateDialog,:formNovo" />
  20 + <br/>
  21 + <br/>
  22 +
  23 + <h:panelGrid id="tblFiltro" columns="3" cellpadding="5"
  24 + cellspacing="7" border="0">
  25 + <h:outputText value="#{lb['label.login']} / #{lb['label.nome']}:" />
  26 + <p:inputText id="filtro" value="#{templatesBean.filtro}" size="50" />
  27 + <p:commandButton id="filtrarTemplates" update="tbTemplates" value="#{lb['label.filtrar']}" />
  28 + </h:panelGrid>
  29 +
  30 + <br/>
  31 +
  32 + <p:dataTable value="#{templatesBean.model}" var="template" id="tbTemplates" emptyMessage="#{msg['mensagem.sem.registros']}" rows="10" paginator="true"
  33 + paginatorPosition="bottom" lazy="true">
  34 + <p:column width="30%">
  35 + <f:facet name="header">
  36 + <h:outputText value="#{lb['label.identificador']}" />
  37 + </f:facet>
  38 + <h:outputText value="#{template.nome}" />
  39 + </p:column>
  40 + <p:column>
  41 + <f:facet name="header">
  42 + <h:outputText value="#{lb['label.descricao']}" />
  43 + </f:facet>
  44 + <h:outputText value="#{template.descricao}" />
  45 + </p:column>
  46 + <p:column width="15%">
  47 + <f:facet name="header">
  48 + <h:outputText value="#{lb['label.responsavel']}" />
  49 + </f:facet>
  50 + <h:outputText value="#{template.responsavel}" />
  51 + </p:column>
  52 + <p:column width="10%">
  53 + <f:facet name="header">
  54 + <h:outputText value="#{lb['label.acoes']}" />
  55 + </f:facet>
  56 +
  57 + <p:menuButton value="Opções">
  58 + <p:menuitem value="#{lb['label.editar']}" update=":formEditar:editTemplateDialog" icon="fa fa-pencil" ajax="true"
  59 + oncomplete="PF('editTemplateDialog').show()" actionListener="#{templatesBean.editarTemplate(template)}" />
  60 +
  61 + <p:menuitem value="#{lb['label.edicao.rapida']}" actionListener="#{templatesBean.editarTemplate(template)}" update=":formEditarCorpo:editCorpoDialog"
  62 + icon="fa fa-wrench" ajax="true" oncomplete="PF('editCorpoDialog').show()" />
  63 +
  64 + <p:menuitem value="#{lb['label.download']}" ajax="false" icon="fa fa-download">
  65 + <p:fileDownload value="#{templatesBean.downloadTemplate(template.nome)}" />
  66 + </p:menuitem>
  67 +
  68 + <p:menuitem value="#{lb['label.historico']}" icon="fa fa-history" actionListener="#{templatesBean.getHistoricoTemplate(template.nome)}"
  69 + oncomplete="PF('historicoDialog').show()" update=":formHistorico:historicoDialog" ajax="true" />
  70 +
  71 + <p:menuitem value="#{lb['label.excluir']}" actionListener="#{templatesBean.excluirTemplate(template.nome)}" update="tbTemplates, :mensagem"
  72 + ajax="false" icon="fa fa-trash" immediate="true"/>
  73 + </p:menuButton>
  74 + </p:column>
  75 + </p:dataTable>
  76 + </h:form>
  77 +
  78 + <h:form id="formNovo" enctype="multipart/form-data">
  79 + <p:dialog header="#{lb['label.criar.novo.template']}" width="700" widgetVar="templateDialog" resizable="false" id="templateDialog"
  80 + showEffect="fade" modal="true">
  81 + <br/>
  82 + <p:messages id="msgDialog" showDetail="false" autoUpdate="false" />
  83 +
  84 +<!-- <h:form id="formNovo" enctype="multipart/form-data"> -->
  85 + <h:panelGrid id="display" columns="2" cellpadding="5" cellspacing="7" border="0" >
  86 + <h:outputText value="#{lb['label.identificador']}:" />
  87 + <p:inputText id="identificador" value="#{templatesBean.template.nome}" size="78">
  88 + <p:ajax/>
  89 + </p:inputText>
  90 +
  91 + <h:outputText value="#{lb['label.descricao']}:" />
  92 + <p:inputTextarea id="descricao" value="#{templatesBean.template.descricao}" cols="80" />
  93 +
  94 + <h:outputText value="#{lb['label.exemplo']}:" />
  95 + <p:inputTextarea id="exemplo" value="#{templatesBean.template.exemplo}" cols="80" rows="10" />
  96 +
  97 + <h:outputText value="#{lb['label.restrito']}:" />
  98 + <p:selectBooleanCheckbox id="restrito" value="#{templatesBean.template.restrito}" />
  99 +
  100 + <h:outputText value="#{lb['label.arquivo']}:" />
  101 + <p:fileUpload id="novoTemplateArquivo" value="#{templatesBean.arquivoTemplate}" label="Upload" mode="simple" skinSimple="true" />
  102 +
  103 + <br/>
  104 + <h:panelGrid id="botoesDlg" columns="2" cellspacing="7" style="margin:0 auto;">
  105 + <h:commandButton id="novoTemplateButton" actionListener="#{templatesBean.salvar()}" value="Salvar" >
  106 + <f:ajax execute=":formNovo :formNovo:novoTemplateArquivo" render=":formNovo:msgDialog :formCentral:tbTemplates" />
  107 + </h:commandButton>
  108 +
  109 + <p:commandButton oncomplete="PF('templateDialog').hide()" value="#{lb['label.cancelar']}" update=":formCentral:tbTemplates" />
  110 + </h:panelGrid>
  111 + <br/>
  112 + </h:panelGrid>
  113 +<!-- </h:form> -->
  114 + </p:dialog>
  115 + </h:form>
  116 +
  117 + <h:form id="formEditar" enctype="multipart/form-data">
  118 + <p:dialog header="#{lb['label.editar.template']}" width="700" widgetVar="editTemplateDialog" resizable="false" id="editTemplateDialog"
  119 + showEffect="fade" modal="true">
  120 + <br/>
  121 + <p:messages id="msgEditDialog" showDetail="false" autoUpdate="false" />
  122 +<!-- <h:form id="formEditar" enctype="multipart/form-data"> -->
  123 + <h:panelGrid id="editTemplate" columns="2" cellpadding="5" cellspacing="7" border="0">
  124 + <h:outputText value="#{lb['label.identificador']}:" />
  125 + <p:inputText id="editNome" value="#{templatesBean.template.nome}" size="78" />
  126 +
  127 + <h:outputText value="#{lb['label.descricao']}:" />
  128 + <p:inputTextarea value="#{templatesBean.template.descricao}" cols="80" />
  129 +
  130 + <h:outputText value="#{lb['label.exemplo']}:" />
  131 + <p:inputTextarea value="#{templatesBean.template.exemplo}" cols="80" rows="10" />
  132 +
  133 + <h:outputText value="#{lb['label.restrito']}:" />
  134 + <p:selectBooleanCheckbox value="#{templatesBean.template.restrito}" />
  135 +
  136 + <h:outputText value="#{lb['label.arquivo']}:" />
  137 + <p:fileUpload id="arquivoTemplateAtualizado" value="#{templatesBean.arquivoTemplate}" label="Upload" mode="simple" skinSimple="true" />
  138 +
  139 + <br/>
  140 + <h:panelGrid columns="2" cellspacing="7" style="margin:0 auto;">
  141 + <h:commandButton actionListener="#{templatesBean.atualizarTemplate()}" value="Salvar" >
  142 + <f:ajax execute=":formEditar :formEditar:arquivoTemplateAtualizado" render=":formEditar:msgDialog :formCentral:tbTemplates" />
  143 + </h:commandButton>
  144 +
  145 + <p:commandButton oncomplete="PF('editTemplateDialog').hide()" value="#{lb['label.cancelar']}" update=":formCentral:tbTemplates" />
  146 + </h:panelGrid>
  147 + <br/>
  148 + </h:panelGrid>
  149 +<!-- </h:form> -->
  150 + </p:dialog>
  151 + </h:form>
  152 + <h:form id="formEditarCorpo" enctype="multipart/form-data">
  153 + <p:dialog header="#{lb['label.edicao.rapida']}" position="center top" width="70%" height="80%" widgetVar="editCorpoDialog" resizable="false" id="editCorpoDialog"
  154 + showEffect="fade" modal="true">
  155 + <br/>
  156 + <p:messages id="msgEditCorpoDialog" showDetail="false" autoUpdate="false" />
  157 +<!-- <h:form id="formEditarCorpo" enctype="multipart/form-data"> -->
  158 + <p:editor value="#{templatesBean.template.corpo}" height="600"/>
  159 +
  160 + <br/>
  161 + <h:panelGrid columns="2" cellspacing="7" style="margin:0 auto;">
  162 + <h:commandButton actionListener="#{templatesBean.atualizarCorpoTemplate()}" value="Salvar" >
  163 + <f:ajax execute=":formEditarCorpo" render=":formEditarCorpo:msgEditCorpoDialog :formCentral:tbTemplates" />
  164 + </h:commandButton>
  165 +
  166 + <p:commandButton oncomplete="PF('editCorpoDialog').hide()" value="#{lb['label.cancelar']}" update=":formCentral:tbTemplates" />
  167 + </h:panelGrid>
  168 +<!-- </h:form> -->
  169 + </p:dialog>
  170 + </h:form>
  171 +
  172 + <h:form id="formHistorico">
  173 + <p:dialog header="#{lb['label.historico']}" width="700" widgetVar="historicoDialog" resizable="false" id="historicoDialog"
  174 + showEffect="fade" modal="true" >
  175 + <br/>
  176 + <p:messages id="msgHistoricoDialog" showDetail="false" autoUpdate="false" />
  177 +
  178 + <h2>#{lb['label.versoes.anteriores.template']} #{templatesBean.historicoSelecionado}.</h2>
  179 +
  180 + <br/>
  181 +<!-- <h:form id="formHistorico" > -->
  182 + <p:dataTable value="#{templatesBean.versoes}" var="versao" id="tbHistorico" emptyMessage="#{msg['mensagem.sem.registros']}" rows="10" paginator="true"
  183 + paginatorPosition="bottom">
  184 + <p:column width="30%">
  185 + <f:facet name="header">
  186 + <h:outputText value="#{lb['label.data']}" />
  187 + </f:facet>
  188 + <h:outputText value="#{versao.data}">
  189 + <f:convertDateTime pattern="dd/MM/yyyy HH:mm" />
  190 + </h:outputText>
  191 + </p:column>
  192 + <p:column width="30%">
  193 + <f:facet name="header">
  194 + <h:outputText value="#{lb['label.responsavel']}" />
  195 + </f:facet>
  196 + <h:outputText value="#{versao.responsavel}" />
  197 + </p:column>
  198 + <p:column width="30%">
  199 + <f:facet name="header">
  200 + <h:outputText value="#{lb['label.acoes']}" />
  201 + </f:facet>
  202 +
  203 + <p:commandButton id="downloadVersao" icon="fa fa-download" value="#{lb['label.download']}" ajax="false">
  204 + <p:fileDownload value="#{templatesBean.downloadVersao(versao)}" />
  205 + </p:commandButton>
  206 + </p:column>
  207 + </p:dataTable>
  208 +<!-- </h:form> -->
  209 + </p:dialog>
  210 + </h:form>
  211 +<!-- </h:form> -->
  212 + </ui:define>
  213 +</ui:composition>
0 214 \ No newline at end of file
... ...
src/main/webapp/pages/home.xhtml 0 → 100644
  1 +++ a/src/main/webapp/pages/home.xhtml
... ... @@ -0,0 +1,12 @@
  1 +<ui:composition
  2 + xmlns="http://www.w3.org/1999/xhtml"
  3 + xmlns:h="http://java.sun.com/jsf/html"
  4 + xmlns:f="http://java.sun.com/jsf/core"
  5 + xmlns:ui="http://java.sun.com/jsf/facelets"
  6 + xmlns:p="http://primefaces.org/ui"
  7 + template="/template/template.xhtml">
  8 +
  9 + <ui:define name="corpo">
  10 + <h2>#{msg['mensagem.bem-vindo']}</h2>
  11 + </ui:define>
  12 +</ui:composition>
0 13 \ No newline at end of file
... ...
src/main/webapp/pages/includes/menu.xhtml 0 → 100644
  1 +++ a/src/main/webapp/pages/includes/menu.xhtml
... ... @@ -0,0 +1,23 @@
  1 +<ui:composition xmlns="http://www.w3.org/1999/xhtml"
  2 + xmlns:h="http://java.sun.com/jsf/html"
  3 + xmlns:ui="http://java.sun.com/jsf/facelets"
  4 + xmlns:f="http://java.sun.com/jsf/core"
  5 + xmlns:p="http://primefaces.org/ui"
  6 + xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">
  7 +
  8 + <h:form id="menuForm">
  9 + <div class="clear-po-ans"/>
  10 + <div id="barLogout">
  11 + <div>
  12 + <span>
  13 + <h:outputText value="#{sessionBean.dataAtual}" />
  14 + </span> |
  15 + <p:outputLabel id="lbUsuario" value="#{lb['label.usuario']}:" />
  16 + <span>
  17 + <h:outputText value="#{sessionBean.usuarioLogado}" />
  18 + </span> |
  19 + <h:commandLink id="confirmaSair" action="#{sessionBean.logout}" value="#{lb['label.sair']}" />
  20 + </div>
  21 + </div>
  22 + </h:form>
  23 +</ui:composition>
0 24 \ No newline at end of file
... ...
src/main/webapp/resources/css/css_login.css 0 → 100644
  1 +++ a/src/main/webapp/resources/css/css_login.css
... ... @@ -0,0 +1,107 @@
  1 +@CHARSET "ISO-8859-1";
  2 +
  3 +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input,
  4 +button, textarea, p, blockquote, th, td {
  5 + margin: 0;
  6 + padding: 0;
  7 + resize: none;
  8 + font-family: Arial, tahoma, Geneva, sans-serif;
  9 + font-size: 13px;
  10 +}
  11 +
  12 +#box-login {
  13 + margin: 0 auto;
  14 + margin-top: 105px;
  15 + padding: 5px;
  16 + width: 400px;
  17 +}
  18 +
  19 +#box-login .header {
  20 + height:20px;
  21 + background: #3c899d;
  22 + width:98%;
  23 + padding: 5px;
  24 + line-height:20px;
  25 + vertical-align:middle;
  26 + font-size: 15px;
  27 + border-top-left-radius: 3px;
  28 + border-top-right-radius: 3px;
  29 + -webkit-border-top-left-radius: 3px;
  30 + -webkit-border-top-right-radius: 3px;
  31 + -moz-border-radius-topleft: 3px;
  32 + -moz-border-radius-topright: 3px;
  33 +}
  34 +
  35 +#box-login .header label {
  36 + color: #FFFFFF;
  37 + font-weight: bold;
  38 + margin-left: 5px;
  39 +}
  40 +
  41 +#box-login .body {
  42 + width: 100%;
  43 + height: 100px;
  44 + border: 1px solid #999999;
  45 + border-top-width: 0;
  46 + padding-top: 20px;
  47 + padding-bottom: 5px;
  48 +}
  49 +
  50 +#box-login form {
  51 + margin-left: 5px;
  52 + width: 100%;
  53 + height: 100%;
  54 +}
  55 +
  56 +/* Label Form*/
  57 +#box-login form label {
  58 + display: block;
  59 + float: left;
  60 + text-align: right;
  61 + margin-right: 5px;
  62 + margin-top: 1px;
  63 + width: 20%;
  64 +}
  65 +
  66 +#box-login form input[type="text"], #box-login form input[type="password"] {
  67 + display: block;
  68 + margin-left: 10px;
  69 + margin-bottom: 10px;
  70 + width: 70%;
  71 + border: 1px solid #C0C0C0;
  72 + font-size: 15px;
  73 +}
  74 +
  75 +#box-login input[type="submit"] {
  76 + -moz-border-radius: 5px;
  77 + -webkit-border-radius: 5px;
  78 + border-radius: 5px;
  79 + padding: 6px 8px;
  80 + display: block;
  81 + font-family: Arial, tahoma, Geneva, sans-serif;
  82 + border: 1px solid #CCCCCC;
  83 + color: #FFFFFF;
  84 + font-weight: bold;
  85 + margin: 10px 0 0 295px;
  86 + background: -moz-linear-gradient(top, #8bba59 0%, #498207 100%); /* FF3.6+ */
  87 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8bba59), color-stop(100%,#498207)); /* Chrome,Safari4+ */
  88 + background: -webkit-linear-gradient(top, #8bba59 0%,#498207 100%); /* Chrome10+,Safari5.1+ */
  89 + background: -o-linear-gradient(top, #8bba59 0%,#498207 100%); /* Opera 11.10+ */
  90 + background: -ms-linear-gradient(top, #8bba59 0%,#498207 100%); /* IE10+ */
  91 + background: linear-gradient(to bottom, #8bba59 0%,#498207 100%); /* W3C */
  92 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8bba59', endColorstr='#498207',GradientType=0 ); /* IE6-9 */
  93 +}
  94 +
  95 +#box-login input[type="submit"]:hover {
  96 + background: -moz-linear-gradient(top, #a2ce65 0%, #649b1b 100%); /* FF3.6+ */
  97 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a2ce65), color-stop(100%,#649b1b)); /* Chrome,Safari4+ */
  98 + background: -webkit-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Chrome10+,Safari5.1+ */
  99 + background: -o-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Opera 11.10+ */
  100 + background: -ms-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* IE10+ */
  101 + background: linear-gradient(to bottom, #a2ce65 0%,#649b1b 100%); /* W3C */
  102 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a2ce65', endColorstr='#649b1b',GradientType=0 ); /* IE6-9 */
  103 +}
  104 +
  105 +#box-login input[type="submit"]:active {
  106 + background: #79A02E !important;
  107 +}
0 108 \ No newline at end of file
... ...
src/main/webapp/resources/css/css_menu.css 0 → 100644
  1 +++ a/src/main/webapp/resources/css/css_menu.css
... ... @@ -0,0 +1,30 @@
  1 +@CHARSET "ISO-8859-1";
  2 +
  3 +div#barLogout {
  4 + border-bottom: 1px solid #DEDEDE;
  5 + text-align: right;
  6 + width: 100%;
  7 + margin-bottom: 10px;
  8 +}
  9 +
  10 +div#barLogout div {
  11 + overflow: hidden;
  12 + padding: 5px 10px;
  13 +}
  14 +
  15 +label#lbUsuario {
  16 + font-weight: bold;
  17 +}
  18 +
  19 +div#barLogout a {
  20 + text-decoration: none;
  21 + color: #438DA0;
  22 +}
  23 +
  24 +div#barLogout a:hover {
  25 + text-decoration: underline;
  26 +}
  27 +
  28 +meumenu .ui-menu-child {
  29 + width: 200px !important;
  30 +}
... ...
src/main/webapp/resources/css/estilo.css 0 → 100644
  1 +++ a/src/main/webapp/resources/css/estilo.css
... ... @@ -0,0 +1,1152 @@
  1 +@CHARSET "ISO-8859-1";
  2 +
  3 +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input,
  4 +button, textarea, p, blockquote, th, td {
  5 + margin: 0;
  6 + padding: 0;
  7 + resize: none;
  8 +}
  9 +
  10 +body {
  11 + font-family: 'Arial', tahoma, Geneva, sans-serif;
  12 + font-size: 12px !important;
  13 + color: #6D6D6D;
  14 + background-color: #FFFFFF;
  15 +}
  16 +
  17 +/* ================================================ Geral ============================================ */
  18 +.ui-widget {
  19 + background: #FFFFFF;
  20 +}
  21 +
  22 +.ui-widget-overlay{
  23 + background-color: gray;
  24 + opacity: 0.4;
  25 +}
  26 +
  27 +.ui-tooltip {
  28 + padding: 5px 6px 3px 6px;
  29 + border: 1px solid #767676;
  30 + -moz-border-radius: 3px;
  31 + -webkit-border-radius: 3px;
  32 + border-radius: 3px;
  33 + color: #000000;
  34 + font-size: 11px;
  35 + background: -moz-linear-gradient(top, #ffffff 0%, #e4e5f0 100%); /* FF3.6+ */
  36 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#e4e5f0)); /* Chrome,Safari4+ */
  37 + background: -webkit-linear-gradient(top, #ffffff 0%,#e4e5f0 100%); /* Chrome10+,Safari5.1+ */
  38 + background: -o-linear-gradient(top, #ffffff 0%,#e4e5f0 100%); /* Opera 11.10+ */
  39 + background: -ms-linear-gradient(top, #ffffff 0%,#e4e5f0 100%); /* IE10+ */
  40 + background: linear-gradient(to bottom, #ffffff 0%,#e4e5f0 100%); /* W3C */
  41 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e4e5f0',GradientType=0 ); /* IE6-9 */
  42 +}
  43 +
  44 +a.ui-state-hover {
  45 + padding: 1px !important;
  46 + border:0 none !important;
  47 + text-decoration: none !important;
  48 + font-weight: normal;
  49 + }
  50 +}
  51 +
  52 +/* =========================================== Estilos padrões ======================================= */
  53 +.ui-radiobutton-box, .ui-chkbox-box, .ui-selectcheckboxmenu-header,
  54 +.ui-orderlist-caption, .ui-selectonemenu-trigger, .ui-selectcheckboxmenu-trigger {
  55 + background: -moz-linear-gradient(top, #f2f2f2 1%, #c5c5c5 100%); /* FF3.6+ */
  56 + background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,#f2f2f2), color-stop(100%,#c5c5c5)); /* Chrome,Safari4+ */
  57 + background: -webkit-linear-gradient(top, #f2f2f2 1%,#c5c5c5 100%); /* Chrome10+,Safari5.1+ */
  58 + background: -o-linear-gradient(top, #f2f2f2 1%,#c5c5c5 100%); /* Opera 11.10+ */
  59 + background: -ms-linear-gradient(top, #f2f2f2 1%,#c5c5c5 100%); /* IE10+ */
  60 + background: linear-gradient(to bottom, #f2f2f2 1%,#c5c5c5 100%); /* W3C */
  61 +}
  62 +
  63 +.ui-button, .ui-datepicker button, .ui-selectonemenu-item, .ui-selectlistbox-item, .ui-fieldset-legend,
  64 +.ui-orderlist-item {
  65 + -moz-border-radius: 5px;
  66 + -webkit-border-radius: 5px;
  67 + border-radius: 5px;
  68 +}
  69 +
  70 +.ui-inputfield, .ui-radiobutton, .ui-chkbox-box, .ui-datepicker, .ui-selectonemenu,
  71 +.ui-selectonemenu-panel, .ui-selectonemenu-trigger, .ui-selectmanymenu,
  72 +.ui-selectcheckboxmenu, .ui-selectcheckboxmenu-trigger, .ui-selectcheckboxmenu-header,
  73 +.ui-selectcheckboxmenu-panel, .ui-orderlist-list, .ui-orderlist-caption {
  74 + border: 1px solid #C0C0C0;
  75 + color: #6D6D6D;
  76 +}
  77 +
  78 +.ui-dialog-titlebar, .ui-datepicker-header,
  79 +.ui-datatable thead th, .ui-treetable thead th, .ui-datatable .ui-paginator, .ui-datatable-header{
  80 + color: #FFFFFF;
  81 + font-weight: bold;
  82 + background: -moz-linear-gradient(top, #4ea6b2 0%, #00728e 100%); /* FF3.6+ */
  83 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4ea6b2), color-stop(100%,#00728e)); /* Chrome,Safari4+ */
  84 + background: -webkit-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Chrome10+,Safari5.1+ */
  85 + background: -o-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Opera 11.10+ */
  86 + background: -ms-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* IE10+ */
  87 + background: linear-gradient(to bottom, #4ea6b2 0%,#00728e 100%); /* W3C */
  88 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4ea6b2', endColorstr='#00728e',GradientType=0 ); /* IE6-9 */
  89 +
  90 +}
  91 +
  92 +/* ============================================ InputText ============================================= */
  93 +.ui-inputfield {
  94 + padding: 2px !important;
  95 + background-color: #FFFFFF;
  96 +}
  97 +
  98 +/* ============================================ InputText ============================================= */
  99 +.ui-menubar,.ui-menuitem, .ui-menuitem-active {
  100 + font-weight: bold;
  101 + color: #FFFFFF;
  102 +
  103 + background: -moz-linear-gradient(top, #4ea6b2 0%, #00728e 100%); /* FF3.6+ */
  104 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4ea6b2), color-stop(100%,#00728e)); /* Chrome,Safari4+ */
  105 + background: -webkit-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Chrome10+,Safari5.1+ */
  106 + background: -o-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Opera 11.10+ */
  107 + background: -ms-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* IE10+ */
  108 + background: linear-gradient(to bottom, #4ea6b2 0%,#00728e 100%); /* W3C */
  109 + text-decoration:none; !important
  110 +}
  111 +
  112 +.ui-menuitem-text {
  113 + font-weight: bold;
  114 + color: #FFFFFF;
  115 +}
  116 +
  117 +/* ====================================== Radiobutton e Checkbox ====================================== */
  118 +.ui-radiobutton {
  119 + border-radius: 10px;
  120 +}
  121 +
  122 +.ui-chkbox {
  123 + background-color: transparent;
  124 +}
  125 +
  126 +.ui-chkbox-box {
  127 + border-radius: 2px;
  128 +}
  129 +
  130 +/* ============================================= Datapicker =========================================== */
  131 +.ui-datepicker {
  132 + padding: 3px;
  133 +}
  134 +
  135 +.ui-datepicker .ui-corner-all, .ui-datepicker-title {
  136 + padding: 1px;
  137 +}
  138 +
  139 +.ui-datepicker .ui-corner-all a {
  140 + top: 1px;
  141 + right: 0px;
  142 + padding: 1px !important;
  143 +}
  144 +
  145 +.ui-datepicker .ui-datepicker-prev {
  146 + left: 1px;
  147 +}
  148 +
  149 +.ui-datepicker table {
  150 + border: 1px solid #D9D9D9;
  151 + margin-bottom: 0px;
  152 + margin-top: 2px;
  153 +}
  154 +
  155 +.ui-datepicker table thead {
  156 + border-bottom: 1px solid #D9D9D9;
  157 + margin-bottom: 0px;
  158 +}
  159 +
  160 +.ui-datepicker th {
  161 + padding: 2px 0;
  162 +}
  163 +
  164 +.ui-datepicker .ui-datepicker-title select {
  165 + margin-left: 1.5px;
  166 + margin-right: 1.5px;
  167 + width: 45%;
  168 +}
  169 +
  170 +.ui-datepicker-other-month {
  171 + background: #FFFFFF;
  172 +}
  173 +
  174 +.ui-datepicker-week-end {
  175 + background: #EEEEEE;
  176 +}
  177 +
  178 +.ui-datepicker-today {
  179 + background-color: #F0F3D7;
  180 + font-weight: bold;
  181 +}
  182 +
  183 +.ui-datepicker td a {
  184 + text-align: center;
  185 + color: #6D6D6D;
  186 + border: 1px solid #70B8D6;
  187 + padding: 4px 0 3px 0 !important;
  188 +}
  189 +
  190 +.ui-datepicker td span {
  191 + text-align: center;
  192 +}
  193 +
  194 +.ui-datepicker td a:hover {
  195 + background-color: #09A3AD;
  196 + font-weight: bold;
  197 + color: #FFFFFF;
  198 +}
  199 +
  200 +.ui-datepicker-current-day a {
  201 + background-color: #09A3AD;
  202 + font-weight: bold;
  203 + color: #FFFFFF !important;
  204 +}
  205 +
  206 +.ui-datepicker-buttonpane {
  207 + background-color: #EEEEEE;
  208 + height: 22px;
  209 + margin: 2px 0 -1px 0 !important;
  210 + padding: 2px !important;
  211 +}
  212 +
  213 +.ui-datepicker button {
  214 + height: 22px;
  215 + font-size: 11px;
  216 +}
  217 +
  218 +/* ==================================== CommandButton ou CommandLink ================================== */
  219 +.ui-button, .ui-datepicker button {
  220 + padding: 0;
  221 + display: inline-block;
  222 + font-family: Arial, tahoma, Geneva, sans-serif;
  223 + border: 1px solid #CCCCCC;
  224 + color: #FFFFFF;
  225 + font-weight: bold;
  226 + margin-right: 0;
  227 + background: -moz-linear-gradient(top, #8bba59 0%, #498207 100%); /* FF3.6+ */
  228 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8bba59), color-stop(100%,#498207)); /* Chrome,Safari4+ */
  229 + background: -webkit-linear-gradient(top, #8bba59 0%,#498207 100%); /* Chrome10+,Safari5.1+ */
  230 + background: -o-linear-gradient(top, #8bba59 0%,#498207 100%); /* Opera 11.10+ */
  231 + background: -ms-linear-gradient(top, #8bba59 0%,#498207 100%); /* IE10+ */
  232 + background: linear-gradient(to bottom, #8bba59 0%,#498207 100%); /* W3C */
  233 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8bba59', endColorstr='#498207',GradientType=0 ); /* IE6-9 */
  234 +}
  235 +
  236 +.ui-datepicker button {
  237 + margin: 0px !important;
  238 +}
  239 +
  240 +.ui-button:hover, .ui-datepicker button:hover {
  241 + background: -moz-linear-gradient(top, #a2ce65 0%, #649b1b 100%); /* FF3.6+ */
  242 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a2ce65), color-stop(100%,#649b1b)); /* Chrome,Safari4+ */
  243 + background: -webkit-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Chrome10+,Safari5.1+ */
  244 + background: -o-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Opera 11.10+ */
  245 + background: -ms-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* IE10+ */
  246 + background: linear-gradient(to bottom, #a2ce65 0%,#649b1b 100%); /* W3C */
  247 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a2ce65', endColorstr='#649b1b',GradientType=0 ); /* IE6-9 */
  248 +}
  249 +
  250 +.ui-button:active, .ui-datepicker button:active {
  251 + background: #79A02E !important;
  252 +}
  253 +
  254 +.ui-commandlink {
  255 + background: transparent;
  256 + border: 0 !important;
  257 +}
  258 +
  259 +/* =========================== Comportamento padrão dos conjuntos de componentes ===================== */
  260 +.ui-selectoneradio label, .ui-selectmanycheckbox label {
  261 + margin: 4px 10px 0 3px;
  262 +}
  263 +
  264 +.ui-selectonemenu-label, .ui-selectcheckboxmenu-label {
  265 + line-height: 16px;
  266 +}
  267 +
  268 +/* ============================================ SelectOneMenu ========================================= */
  269 +.ui-selectonemenu {
  270 + padding: 0px 1px;
  271 +}
  272 +
  273 +.ui-selectonemenu-item:hover {
  274 + background: #79A12E;
  275 + color: #FFFFFF;
  276 + padding: 3px 5px;
  277 + text-align: left;
  278 + white-space: nowrap;
  279 +}
  280 +
  281 +/* ========================================== SelectManyMenu ========================================== */
  282 +.ui-selectmanymenu {
  283 + overflow: auto;
  284 + padding: 2px;
  285 + line-height: 18px;
  286 +}
  287 +
  288 +.ui-selectmanymenu .ui-state-hover {
  289 + background: #79A12E;
  290 + color: #FFFFFF;
  291 +}
  292 +
  293 +.ui-selectmanymenu .ui-selectlistbox-item {
  294 + padding-left: 5px;
  295 +}
  296 +
  297 +.ui-selectonelistbox .ui-selectlistbox-item, li.ui-state-highlight {
  298 + background: #58A9BE;
  299 + color: #FFFFFF;
  300 +}
  301 +
  302 +/* ======================================== SelectManyCheckbox ======================================== */
  303 +.ui-selectcheckboxmenu-label-container {
  304 + text-decoration: none;
  305 +}
  306 +
  307 +.ui-selectcheckboxmenu .ui-selectcheckboxmenu-label {
  308 + color: #6D6D6D;
  309 + padding-right: 28px;
  310 +}
  311 +
  312 +.ui-selectcheckboxmenu-items {
  313 + margin-top: -2px;
  314 + padding-left: 1px;
  315 +}
  316 +
  317 +.ui-selectcheckboxmenu-panel {
  318 + padding: 2px;
  319 +}
  320 +
  321 +.ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-list-item label {
  322 + margin-bottom: -2px;
  323 + padding-left: 22px;
  324 +}
  325 +
  326 +/* ============================================== Fildset ============================================= */
  327 +.ui-fieldset {
  328 + background: #F7F7F7;
  329 + border: 1px solid #CCCCCC;
  330 + margin-bottom: 10px;
  331 +}
  332 +
  333 +.ui-fieldset-legend {
  334 + font-weight: bold;
  335 + border: 1px solid #EEEEEE;
  336 +}
  337 +
  338 +.ui-fieldset .ui-toolbar {
  339 + margin-top: 10px;
  340 +}
  341 +
  342 +.ui-fieldset .ui-toolbar-group-left, .ui-fieldset .ui-toolbar-group-right {
  343 + padding-left: 7px;
  344 + padding-right: 7px;
  345 +}
  346 +
  347 +/* =============================================== Panel ============================================== */
  348 +.ui-panel-title {
  349 + font-weight: bold;
  350 + color: #FFFFFF;
  351 +}
  352 +
  353 +.ui-panel-titlebar {
  354 + background: -moz-linear-gradient(top, #4ea6b2 0%, #00728e 100%); /* FF3.6+ */
  355 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4ea6b2), color-stop(100%,#00728e)); /* Chrome,Safari4+ */
  356 + background: -webkit-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Chrome10+,Safari5.1+ */
  357 + background: -o-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* Opera 11.10+ */
  358 + background: -ms-linear-gradient(top, #4ea6b2 0%,#00728e 100%); /* IE10+ */
  359 + background: linear-gradient(to bottom, #4ea6b2 0%,#00728e 100%); /* W3C */
  360 +}
  361 +
  362 +/* ============================================== TabView ============================================= */
  363 +.ui-tabs-nav li a {
  364 + color: #6D6D6D;
  365 + font-weight: bold;
  366 + background: #F7F7F7;
  367 + margin-right: 5px;
  368 + border: 1px solid #CCCCCC;
  369 + -webkit-border-top-left-radius: 5px;
  370 + -webkit-border-top-right-radius: 5px;
  371 + -moz-border-radius-topleft: 5px;
  372 + -moz-border-radius-topright: 5px;
  373 + border-top-left-radius: 5px;
  374 + border-top-right-radius: 5px;
  375 +}
  376 +
  377 +li.ui-tabs-selected a {
  378 + background: #FFFFFF;
  379 + border-bottom: 1px solid #FFFFFF;
  380 + margin-bottom: -3px;
  381 +}
  382 +
  383 +.ui-tabs .ui-tabs-panel {
  384 + margin-top: -1px;
  385 + border: 1px solid #CCCCCC;
  386 +}
  387 +
  388 +/* ============================================= DataTable ============================================ */
  389 +.ui-datatable table, .ui-treetable table {
  390 + border-collapse: separate;
  391 + border-spacing: 0;
  392 +}
  393 +
  394 +.ui-datatable thead th, .ui-treetable thead th {
  395 + border: 1px solid #669999;
  396 + border-left-width: 0;
  397 + border-bottom-width: 0;
  398 + white-space: normal;
  399 + line-height: 20px;
  400 +}
  401 +
  402 +.ui-datatable thead tr:first-child th:first-child, .ui-treetable thead th:first-child {
  403 + border-left-width: 1px;
  404 + -webkit-border-top-left-radius: 5px;
  405 + -moz-border-radius-topleft: 5px;
  406 + border-top-left-radius: 5px;
  407 +}
  408 +
  409 +.ui-datatable thead tr:first-child th:last-child, .ui-treetable thead th:last-child {
  410 + -webkit-border-top-right-radius: 5px;
  411 + -moz-border-radius-topright: 5px;
  412 + border-top-right-radius: 5px;
  413 +}
  414 +
  415 +.ui-datatable div:nth-child(2) thead tr:first-child th:first-child {
  416 + -webkit-border-top-left-radius: 0px;
  417 + -moz-border-radius-topleft: 0px;
  418 + border-top-left-radius: 0px;
  419 +}
  420 +
  421 +.ui-datatable div:nth-child(2) thead tr:first-child th:last-child {
  422 + -webkit-border-top-right-radius: 0px;
  423 + -moz-border-radius-topright: 0px;
  424 + border-top-right-radius: 0px;
  425 +}
  426 +
  427 +.ui-datatable-even:hover, .ui-datatable-odd:hover {
  428 + color: #79A02E;
  429 + background: #FFFFDD;
  430 +}
  431 +
  432 +.ui-datatable-even {
  433 + background: #FFFFFF;
  434 + line-height: 26px;
  435 +}
  436 +
  437 +.ui-datatable-odd {
  438 + background: #F9F9F9;
  439 + line-height: 26px;
  440 +}
  441 +
  442 +.ui-datatable-even.ui-state-highlight, .ui-datatable-odd.ui-state-highlight {
  443 + color: #79A02E;
  444 + background: #EEEECC;
  445 +}
  446 +
  447 +.ui-datatable tbody td, .ui-treetable tbody td {
  448 + border: solid #CDCBCB;
  449 + border-width: 0 1px 1px 0;
  450 + text-align: left;
  451 + white-space: normal;
  452 +}
  453 +
  454 +.ui-datatable tbody td:first-child, .ui-treetable tbody td:first-child {
  455 + border-left-width: 1px;
  456 +}
  457 +
  458 +.ui-paginator {
  459 + -webkit-border-radius: 0 0 5px 5px;
  460 + -moz-border-radius: 0 0 5px 5px;
  461 + border-radius: 0 0 5px 5px;
  462 + border: 1px solid #669999;
  463 +}
  464 +
  465 +.ui-paginator-top {
  466 + -webkit-border-radius: 5px 5px 0 0;
  467 + -moz-border-radius: 5px 5px 0 0;
  468 + border-radius: 5px 5px 0 0;
  469 + border-bottom-width: 0;
  470 +}
  471 +
  472 +.ui-paginator-page {
  473 + vertical-align: middle;
  474 +}
  475 +
  476 +.ui-paginator-pages .ui-state-active {
  477 + background: #B4C135;
  478 +}
  479 +
  480 +.ui-paginator-current {
  481 + padding: 5px !important;
  482 + float: right;
  483 +}
  484 +
  485 +.ui-paginator-jtp-select {
  486 + margin: 1px 0 2px 0;
  487 +}
  488 +
  489 +.ui-datatable .ui-selectonemenu, .ui-datatable .ui-inputmask, .ui-datatable .ui-datalist {
  490 + background: transparent;
  491 + border: 1px solid transparent;
  492 +}
  493 +
  494 +.ui-datatable .ui-selectonemenu .ui-selectonemenu-trigger {
  495 + display: none;
  496 +}
  497 +
  498 +.ui-datatable .ui-inputtext:focus, .ui-datatable .ui-selectonemenu.ui-state-focus, .ui-datatable .ui-inputmask.ui-state-focus,
  499 +.ui-datatable .ui-datalist:focus {
  500 + border: 1px solid #C0C0C0;
  501 + background: #FFFFFF;
  502 +}
  503 +
  504 +.ui-datatable .ui-selectonemenu.ui-state-focus .ui-selectonemenu-trigger {
  505 + display: block;
  506 +}
  507 +
  508 +.ui-selection-column {
  509 + width: 18px;
  510 +}
  511 +
  512 +.ui-chkbox-all {
  513 + margin: 0 0 2px 0 !important;
  514 +}
  515 +
  516 +
  517 +/* ============================================== Toolbar ============================================= */
  518 +.ui-toolbar {
  519 + background-color: transparent;
  520 + padding: 0;
  521 +}
  522 +
  523 +.ui-toolbar-group-left .ui-button, .ui-toolbar-group-left a {
  524 + margin-right: 10px !important;
  525 +}
  526 +
  527 +.ui-toolbar-group-right .ui-button, .ui-toolbar-group-right a {
  528 + margin-left: 10px !important;
  529 +}
  530 +
  531 +/* ============================================= OrderList ============================================ */
  532 +.ui-orderlist-item:hover {
  533 + background: #79A02E;
  534 + color: #FFFFFF;
  535 +}
  536 +
  537 +.ui-orderlist-caption {
  538 + font-weight: bold;
  539 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
  540 +}
  541 +
  542 +.ui-orderlist-controls {
  543 + padding: 0 5px;
  544 + }
  545 +
  546 + /* ============================================== Editor ============================================= */
  547 + .ui-editor {
  548 + margin: 0 auto;
  549 + border: 1px solid #CCCCCC;
  550 + }
  551 +
  552 + /* ============================================ Fileupload ============================================ */
  553 +.ans-fileUploadSimple .ui-fileupload {
  554 + background: transparent;
  555 + float:left;
  556 +}
  557 +
  558 +.ans-fileUploadSimple .fileupload-buttonbar {
  559 + padding: 0;
  560 +}
  561 +
  562 +.ans-fileUploadSimple .fileupload-content {
  563 + display: none;
  564 +}
  565 +
  566 +.ans-fileUploadSimple .ui-icon-plusthick {
  567 + background-position: -224px -48px;
  568 +}
  569 +
  570 +.ans-fileUploadSimple-label {
  571 + clear: both;
  572 + border: 1px solid #C0C0C0;
  573 + border-left: 0;
  574 + -webkit-border-bottom-right-radius: 5px;
  575 + -webkit-border-top-right-radius: 5px;
  576 + -moz-border-radius-bottomright: 5px;
  577 + -moz-border-radius-topright: 5px;
  578 + border-bottom-right-radius: 5px;
  579 + border-top-right-radius: 5px;
  580 + font-weight: bold;
  581 + position: relative;
  582 + top: 7px;
  583 + left: -6px;
  584 + padding: 6px 10px;
  585 + white-space: nowrap;
  586 +}
  587 +
  588 +/* =========================================== Growl e Message ======================================== */
  589 +.ui-growl-item.ui-severity-info, .ui-messages-info, .ui-message-info {
  590 + color: #333333;
  591 + border: 1px solid #30AADE;
  592 + background: -moz-linear-gradient(top, #a1d8f1 57%, #40bbef 100%); /* FF3.6+ */
  593 + background: -webkit-gradient(linear, left top, left bottom, color-stop(57%,#a1d8f1), color-stop(100%,#40bbef)); /* Chrome,Safari4+ */
  594 + background: -webkit-linear-gradient(top, #a1d8f1 57%,#40bbef 100%); /* Chrome10+,Safari5.1+ */
  595 + background: -o-linear-gradient(top, #a1d8f1 57%,#40bbef 100%); /* Opera 11.10+ */
  596 + background: -ms-linear-gradient(top, #a1d8f1 57%,#40bbef 100%); /* IE10+ */
  597 + background: linear-gradient(to bottom, #a1d8f1 57%,#40bbef 100%); /* W3C */
  598 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a1d8f1', endColorstr='#40bbef',GradientType=0 ); /* IE6-9 */
  599 +}
  600 +
  601 +.ui-growl-item.ui-severity-error, .ui-messages-error, .ui-message-error {
  602 + color: #FFFFFF;
  603 + border: 1px solid #993300;
  604 + background: -moz-linear-gradient(top, #dd946c 53%, #e2501f 100%); /* FF3.6+ */
  605 + background: -webkit-gradient(linear, left top, left bottom, color-stop(53%,#dd946c), color-stop(100%,#e2501f)); /* Chrome,Safari4+ */
  606 + background: -webkit-linear-gradient(top, #dd946c 53%,#e2501f 100%); /* Chrome10+,Safari5.1+ */
  607 + background: -o-linear-gradient(top, #dd946c 53%,#e2501f 100%); /* Opera 11.10+ */
  608 + background: -ms-linear-gradient(top, #dd946c 53%,#e2501f 100%); /* IE10+ */
  609 + background: linear-gradient(to bottom, #dd946c 53%,#e2501f 100%); /* W3C */
  610 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dd946c', endColorstr='#e2501f',GradientType=0 ); /* IE6-9 */
  611 +}
  612 +
  613 +.ui-growl-item.ui-severity-warn, .ui-messages-warn, .ui-message-warn {
  614 + color: #993300;
  615 + border: 1px solid #CCCCCC;
  616 + background: #f9e069; /* Old browsers */
  617 + background: -moz-linear-gradient(top, #f9e069 57%, #ddbc00 100%); /* FF3.6+ */
  618 + background: -webkit-gradient(linear, left top, left bottom, color-stop(57%,#f9e069), color-stop(100%,#ddbc00)); /* Chrome,Safari4+ */
  619 + background: -webkit-linear-gradient(top, #f9e069 57%,#ddbc00 100%); /* Chrome10+,Safari5.1+ */
  620 + background: -o-linear-gradient(top, #f9e069 57%,#ddbc00 100%); /* Opera 11.10+ */
  621 + background: -ms-linear-gradient(top, #f9e069 57%,#ddbc00 100%); /* IE10+ */
  622 + background: linear-gradient(to bottom, #f9e069 57%,#ddbc00 100%); /* W3C */
  623 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9e069', endColorstr='#ddbc00',GradientType=0 ); /* IE6-9 */
  624 +}
  625 +
  626 +.ui-growl-item-fatal, .ui-messages-fatal, .ui-message-fatal {
  627 + background: #eeeeee; /* Old browsers */
  628 + background: -moz-linear-gradient(top, #eeeeee 0%, #bbbbbb 100%); /* FF3.6+ */
  629 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eeeeee), color-stop(100%,#bbbbbb)); /* Chrome,Safari4+ */
  630 + background: -webkit-linear-gradient(top, #eeeeee 0%,#bbbbbb 100%); /* Chrome10+,Safari5.1+ */
  631 + background: -o-linear-gradient(top, #eeeeee 0%,#bbbbbb 100%); /* Opera 11.10+ */
  632 + background: -ms-linear-gradient(top, #eeeeee 0%,#bbbbbb 100%); /* IE10+ */
  633 + background: linear-gradient(to bottom, #eeeeee 0%,#bbbbbb 100%); /* W3C */
  634 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#bbbbbb',GradientType=0 ); /* IE6-9 */
  635 +}
  636 +
  637 +/* =============================================== Growl =============================================== */
  638 + .ui-growl {
  639 + background-color: transparent;
  640 +}
  641 +
  642 +.ui-growl-item-container {
  643 + margin-top: 10px;
  644 + background-color: #FFFFFF;
  645 +}
  646 +
  647 +.ui-growl-icon-close.ui-icon-closethick {
  648 + background-position: -97px -129px;
  649 + right: 5px;
  650 +}
  651 +
  652 +.ui-growl-icon-close.ui-icon {
  653 + border-radius: 10px;
  654 + background-color: #FFFFFF;
  655 + border: 1px solid #C0C0C0;
  656 + width: 15px;
  657 + height: 15px;
  658 +}
  659 +
  660 +.ui-growl-item-container {
  661 + opacity: 1;
  662 + margin-bottom: 0;
  663 +}
  664 +
  665 +/* ============================================== Message ============================================= */
  666 +.ui-messages-info-icon, .ui-messages-warn-icon, .ui-messages-error-icon, .ui-messages-fatal-icon {
  667 + margin-top: -6px;
  668 +}
  669 +
  670 +.ui-messages .ui-icon-close {
  671 + border-radius: 10px;
  672 + background-color: #FFFFFF;
  673 + width: 17px;
  674 + border: 1px solid #C0C0C0;
  675 +}
  676 +
  677 +.ui-messages .ui-messages-close {
  678 + margin-right: -7px;
  679 + margin-top: -7px;
  680 +}
  681 +
  682 +/* ============================================= Status ============================================== */
  683 +.ui-state-error {
  684 + border-color: #FF0000 !important;
  685 +}
  686 +
  687 +.ui-state-disabled, .ui-state-disabled label, .ui-state-disabled:hover, .ui-state-disabled:active {
  688 + background: #EEEEEE !important;
  689 + color: #999999 !important;
  690 + text-shadow: 2px !important;
  691 +}
  692 +
  693 +.ui-datatable .ui-inputfield.ui-state-disabled, .ui-datatable .ui-state-disabled label,
  694 +.ui-paginator span.ui-state-disabled {
  695 + background: transparent !important;
  696 + color: #6D6D6D !important;
  697 +}
  698 +
  699 +.ui-datatable-even.ui-state-disabled {
  700 + background: #FFFFFF !important;
  701 +}
  702 +
  703 +.ui-datatable-odd.ui-state-disabled {
  704 + background: #F9F9F9 !important;
  705 +}
  706 +
  707 +.ui-datepicker-other-month.ui-state-disabled {
  708 + background: #FFFFFF !important;
  709 +}
  710 +
  711 +.ui-datepicker-week-end.ui-state-disabled {
  712 + background: #EEEEEE !important;
  713 +}
  714 +
  715 +.ui-datepicker .ui-corner-all.ui-state-disabled {
  716 + background: transparent !important;
  717 +}
  718 +
  719 +/* ============================================== Ícones ============================================== */
  720 +.ui-icon {
  721 + height: 16px;
  722 + width: 16px;
  723 + background-repeat: no-repeat;
  724 + display: block;
  725 + overflow: hidden;
  726 + text-indent: -99999px;
  727 + background-image: url(#{resource['/images/icons_1.png']});
  728 +}
  729 +
  730 +.ui-button .ui-icon, .ui-dialog-titlebar-icon .ui-icon, .ui-datepicker .ui-corner-all .ui-icon {
  731 + background-image: url(#{resource['/images/icons_2.png']});
  732 +}
  733 +
  734 +.ui-state-disabled .ui-icon, .ui-paginator .ui-icon {
  735 + background-image: url(#{resource['/images/icons_3.png']});
  736 +}
  737 +
  738 +.ui-state-error .ui-icon {
  739 + background-image: url(#{resource['/images/icons_4.png']});
  740 +}
  741 +
  742 +.ui-paginator .ui-state-disabled .ui-icon, .ui-datepicker .ui-corner-all .ui-state-disabled .ui-icon {
  743 + background-image: url(#{resource['/images/icons_1.png']});
  744 +}
  745 +
  746 +/* ===================================== Posicionamento dos Ícones ==================================== */
  747 +.ui-icon-carat-1-n { background-position: 0 0 }
  748 +.ui-icon-carat-1-ne { background-position: -16px 0 }
  749 +.ui-icon-carat-1-e { background-position: -32px 0 }
  750 +.ui-icon-carat-1-se { background-position: -48px 0 }
  751 +.ui-icon-carat-1-s { background-position: -64px 0 }
  752 +.ui-icon-carat-1-sw { background-position: -80px 0 }
  753 +.ui-icon-carat-1-w { background-position: -96px 0 }
  754 +.ui-icon-carat-1-nw { background-position: -112px 0 }
  755 +.ui-icon-carat-2-n-s { background-position: -128px 0 }
  756 +.ui-icon-carat-2-e-w { background-position: -144px 0 }
  757 +.ui-icon-triangle-1-n { background-position: 0 -16px }
  758 +.ui-icon-triangle-1-ne { background-position: -16px -16px }
  759 +.ui-icon-triangle-1-e { background-position: -32px -16px }
  760 +.ui-icon-triangle-1-se { background-position: -48px -16px }
  761 +.ui-icon-triangle-1-s { background-position: -64px -16px }
  762 +.ui-icon-triangle-1-sw { background-position: -80px -16px }
  763 +.ui-icon-triangle-1-w { background-position: -96px -16px }
  764 +.ui-icon-triangle-1-nw { background-position: -112px -16px }
  765 +.ui-icon-triangle-2-n-s { background-position: -128px -16px }
  766 +.ui-icon-triangle-2-e-w { background-position: -144px -16px }
  767 +.ui-icon-arrow-1-n { background-position: 0 -32px }
  768 +.ui-icon-arrow-1-ne { background-position: -16px -32px }
  769 +.ui-icon-arrow-1-e { background-position: -32px -32px }
  770 +.ui-icon-arrow-1-se { background-position: -48px -32px }
  771 +.ui-icon-arrow-1-s { background-position: -64px -32px }
  772 +.ui-icon-arrow-1-sw { background-position: -80px -32px }
  773 +.ui-icon-arrow-1-w { background-position: -96px -32px }
  774 +.ui-icon-arrow-1-nw { background-position: -112px -32px }
  775 +.ui-icon-arrow-2-n-s { background-position: -128px -32px }
  776 +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px }
  777 +.ui-icon-arrow-2-e-w { background-position: -160px -32px }
  778 +.ui-icon-arrow-2-se-nw { background-position: -176px -32px }
  779 +.ui-icon-arrowstop-1-n { background-position: -192px -32px }
  780 +.ui-icon-arrowstop-1-e { background-position: -208px -32px }
  781 +.ui-icon-arrowstop-1-s { background-position: -224px -32px }
  782 +.ui-icon-arrowstop-1-w { background-position: -240px -32px }
  783 +.ui-icon-arrowthick-1-n { background-position: 0 -48px }
  784 +.ui-icon-arrowthick-1-ne { background-position: -16px -48px }
  785 +.ui-icon-arrowthick-1-e { background-position: -32px -48px }
  786 +.ui-icon-arrowthick-1-se { background-position: -48px -48px }
  787 +.ui-icon-arrowthick-1-s { background-position: -64px -48px }
  788 +.ui-icon-arrowthick-1-sw { background-position: -80px -48px }
  789 +.ui-icon-arrowthick-1-w { background-position: -96px -48px }
  790 +.ui-icon-arrowthick-1-nw { background-position: -112px -48px }
  791 +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px }
  792 +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px }
  793 +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px }
  794 +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px }
  795 +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px }
  796 +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px }
  797 +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px }
  798 +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px }
  799 +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px }
  800 +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px }
  801 +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px }
  802 +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px }
  803 +.ui-icon-arrowreturn-1-w { background-position: -64px -64px }
  804 +.ui-icon-arrowreturn-1-n { background-position: -80px -64px }
  805 +.ui-icon-arrowreturn-1-e { background-position: -96px -64px }
  806 +.ui-icon-arrowreturn-1-s { background-position: -112px -64px }
  807 +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px }
  808 +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px }
  809 +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px }
  810 +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px }
  811 +.ui-icon-arrow-4 { background-position: 0 -80px }
  812 +.ui-icon-arrow-4-diag { background-position: -16px -80px }
  813 +.ui-icon-extlink { background-position: -32px -80px }
  814 +.ui-icon-newwin { background-position: -48px -80px }
  815 +.ui-icon-refresh { background-position: -64px -80px }
  816 +.ui-icon-shuffle { background-position: -80px -80px }
  817 +.ui-icon-transfer-e-w { background-position: -96px -80px }
  818 +.ui-icon-transferthick-e-w { background-position: -112px -80px }
  819 +.ui-icon-folder-collapsed { background-position: 0 -96px }
  820 +.ui-icon-folder-open { background-position: -16px -96px }
  821 +.ui-icon-document { background-position: -32px -96px }
  822 +.ui-icon-document-b { background-position: -48px -96px }
  823 +.ui-icon-note { background-position: -64px -96px }
  824 +.ui-icon-mail-closed { background-position: -80px -96px }
  825 +.ui-icon-mail-open { background-position: -96px -96px }
  826 +.ui-icon-suitcase { background-position: -112px -96px }
  827 +.ui-icon-comment { background-position: -128px -96px }
  828 +.ui-icon-person { background-position: -144px -96px }
  829 +.ui-icon-print { background-position: -160px -96px }
  830 +.ui-icon-trash { background-position: -176px -96px }
  831 +.ui-icon-locked { background-position: -192px -96px }
  832 +.ui-icon-unlocked { background-position: -208px -96px }
  833 +.ui-icon-bookmark { background-position: -224px -96px }
  834 +.ui-icon-tag { background-position: -240px -96px }
  835 +.ui-icon-home { background-position: 0 -112px }
  836 +.ui-icon-flag { background-position: -16px -112px }
  837 +.ui-icon-calendar { background-position: -32px -112px }
  838 +.ui-icon-cart { background-position: -48px -112px }
  839 +.ui-icon-pencil { background-position: -64px -112px }
  840 +.ui-icon-clock { background-position: -80px -112px }
  841 +.ui-icon-disk { background-position: -96px -112px }
  842 +.ui-icon-calculator { background-position: -112px -112px }
  843 +.ui-icon-zoomin { background-position: -128px -112px }
  844 +.ui-icon-zoomout { background-position: -144px -112px }
  845 +.ui-icon-search { background-position: -160px -112px }
  846 +.ui-icon-wrench { background-position: -176px -112px }
  847 +.ui-icon-gear { background-position: -192px -112px }
  848 +.ui-icon-heart { background-position: -208px -112px }
  849 +.ui-icon-star { background-position: -224px -112px }
  850 +.ui-icon-link { background-position: -240px -112px }
  851 +.ui-icon-cancel { background-position: 0 -128px }
  852 +.ui-icon-plus { background-position: -16px -128px }
  853 +.ui-icon-plusthick { background-position: -32px -128px }
  854 +.ui-icon-minus { background-position: -48px -128px }
  855 +.ui-icon-minusthick { background-position: -64px -128px }
  856 +.ui-icon-close { background-position: -80px -128px }
  857 +.ui-icon-closethick { background-position: -96px -128px }
  858 +.ui-icon-key { background-position: -112px -128px }
  859 +.ui-icon-lightbulb { background-position: -128px -128px }
  860 +.ui-icon-scissors { background-position: -144px -128px }
  861 +.ui-icon-clipboard { background-position: -160px -128px }
  862 +.ui-icon-copy { background-position: -176px -128px }
  863 +.ui-icon-contact { background-position: -192px -128px }
  864 +.ui-icon-image { background-position: -208px -128px }
  865 +.ui-icon-video { background-position: -224px -128px }
  866 +.ui-icon-script { background-position: -240px -128px }
  867 +.ui-icon-alert { background-position: 0 -144px }
  868 +.ui-icon-info { background-position: -16px -144px }
  869 +.ui-icon-notice { background-position: -32px -144px }
  870 +.ui-icon-help { background-position: -48px -144px }
  871 +.ui-icon-check { background-position: -64px -144px }
  872 +.ui-icon-bullet { background-position: -80px -144px }
  873 +.ui-icon-radio-on { background-position: -96px -144px }
  874 +.ui-icon-radio-off { background-position: -112px -144px }
  875 +.ui-icon-pin-w { background-position: -128px -144px }
  876 +.ui-icon-pin-s { background-position: -144px -144px }
  877 +.ui-icon-play { background-position: 0 -160px }
  878 +.ui-icon-pause { background-position: -16px -160px }
  879 +.ui-icon-seek-next { background-position: -32px -160px }
  880 +.ui-icon-seek-prev { background-position: -48px -160px }
  881 +.ui-icon-seek-end { background-position: -64px -160px }
  882 +.ui-icon-seek-start { background-position: -80px -160px }
  883 +.ui-icon-seek-first { background-position: -80px -160px }
  884 +.ui-icon-stop { background-position: -96px -160px }
  885 +.ui-icon-eject { background-position: -112px -160px }
  886 +.ui-icon-volume-off { background-position: -128px -160px }
  887 +.ui-icon-volume-on { background-position: -144px -160px }
  888 +.ui-icon-power { background-position: 0 -176px }
  889 +.ui-icon-signal-diag { background-position: -16px -176px }
  890 +.ui-icon-signal { background-position: -32px -176px }
  891 +.ui-icon-battery-0 { background-position: -48px -176px }
  892 +.ui-icon-battery-1 { background-position: -64px -176px }
  893 +.ui-icon-battery-2 { background-position: -80px -176px }
  894 +.ui-icon-battery-3 { background-position: -96px -176px }
  895 +.ui-icon-circle-plus { background-position: 0 -192px }
  896 +.ui-icon-circle-minus { background-position: -16px -192px }
  897 +.ui-icon-circle-close { background-position: -32px -192px}
  898 +.ui-icon-circle-triangle-e { background-position: -48px -192px }
  899 +.ui-icon-circle-triangle-s { background-position: -64px -192px }
  900 +.ui-icon-circle-triangle-w { background-position: -80px -192px }
  901 +.ui-icon-circle-triangle-n { background-position: -96px -192px }
  902 +.ui-icon-circle-arrow-e { background-position: -112px -192px }
  903 +.ui-icon-circle-arrow-s { background-position: -128px -192px }
  904 +.ui-icon-circle-arrow-w { background-position: -144px -192px }
  905 +.ui-icon-circle-arrow-n { background-position: -160px -192px }
  906 +.ui-icon-circle-zoomin { background-position: -176px -192px }
  907 +.ui-icon-circle-zoomout { background-position: -192px -192px }
  908 +.ui-icon-circle-check { background-position: -208px -192px }
  909 +.ui-icon-circlesmall-plus { background-position: 0 -208px }
  910 +.ui-icon-circlesmall-minus { background-position: -16px -208px }
  911 +.ui-icon-circlesmall-close { background-position: -32px -208px }
  912 +.ui-icon-squaresmall-plus { background-position: -48px -208px }
  913 +.ui-icon-squaresmall-minus { background-position: -64px -208px }
  914 +.ui-icon-squaresmall-close { background-position: -80px -208px }
  915 +.ui-icon-grip-dotted-vertical { background-position: 0 -224px }
  916 +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px }
  917 +.ui-icon-grip-solid-vertical { background-position: -32px -224px }
  918 +.ui-icon-grip-solid-horizontal { background-position: -48px -224px }
  919 +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px }
  920 +.ui-icon-grip-diagonal-se { background-position: -80px -224px }
  921 +
  922 +/* ==================================================================================================== */
  923 +/* ========================================= CSS Específicos ========================================== */
  924 +/* ==================================================================================================== */
  925 +
  926 +/* =========================================== Utilitários ============================================ */
  927 +.ans-warnText {
  928 + color: #FF0000;
  929 + font-weight: bold;
  930 +}
  931 +
  932 +.ans-dlgFieldset {
  933 + margin-top: 6px;
  934 + margin-bottom: 6px;
  935 +}
  936 +
  937 +.ans-firstFocus {
  938 + position:absolute;
  939 + top:-9999px;
  940 +}
  941 +
  942 +.ans-toolbarBottomFixed {
  943 + background: none repeat scroll 0 0 #FFFFFF;
  944 + border: 1px solid #DEDEDE;
  945 + bottom: 0;
  946 + left: 0;
  947 + padding: 2px 0 2px 24px;
  948 + position: fixed;
  949 + width: 100%;
  950 + height: 31px;
  951 + z-index: 2;
  952 +}
  953 +
  954 +/* Início dos estilos para content de botôes que não são toolbar */
  955 +.ans-divBtnField {
  956 + display: inline-block;
  957 + position: relative;
  958 + left: 4px;
  959 + top: 2px;
  960 + margin-top: -5px;
  961 +}
  962 +
  963 +.ans-divBtnField .ui-commandlink {
  964 + color: #438DA0;
  965 + position: relative;
  966 + top: -2px;
  967 + text-decoration: none;
  968 +}
  969 +
  970 +.ans-divBtnField .ui-commandlink:hover {
  971 + text-decoration: underline;
  972 +}
  973 +
  974 +.ans-tdOptions {
  975 + width: 1px;
  976 +}
  977 +
  978 +.ans-tdOptions > div {
  979 + white-space: nowrap;
  980 + margin-left: 5px;
  981 + text-align: center;
  982 +}
  983 +
  984 +.ans-tdOptions > div button, .ans-divBtnField button, .ans-btnSmall {
  985 + width: 26px;
  986 + height: 26px;
  987 + margin-right: 2px;
  988 +}
  989 +
  990 +.ans-tdOptions > div img, .ans-divBtnField img {
  991 + margin-right: 2px;
  992 + height: 21px;
  993 +}
  994 +
  995 +.ans-tdOptions > div button, .ans-btnSmall, .ans-tdOptions > div img {
  996 + margin-right: 5px;
  997 +}
  998 +/* Fim dos estilos para content de botôes que não são toolbar */
  999 +
  1000 +/* ========================= Formulario Tabless Structure e Tabelas Alinhadas ========================= */
  1001 +.ans-divForm {
  1002 + display: inline-block;
  1003 + vertical-align: top;
  1004 +}
  1005 +
  1006 +.ans-divGrid {
  1007 + display: inherit;
  1008 +}
  1009 +
  1010 +.ans-divGrid.multiGrid {
  1011 + display: inline-block;
  1012 + float: left;
  1013 +}
  1014 +
  1015 +.ans-divRow {
  1016 + display: table-row;
  1017 +}
  1018 +
  1019 +.ui-fieldset .ans-divForm, .ui-fieldset .ans-divGrid {
  1020 + padding-left: 7px;
  1021 + padding-right: 7px;
  1022 +}
  1023 +
  1024 +.ans-divInnerForm {
  1025 + display: table-cell;
  1026 + vertical-align: bottom;
  1027 + padding-right: 10px;
  1028 +}
  1029 +
  1030 +.ans-divForm .ans-spacerForm {
  1031 + height: 44px;
  1032 +}
  1033 +
  1034 +.ans-divForm .ui-outputlabel {
  1035 + margin-top: 7px;
  1036 + margin-bottom: 2px;
  1037 +}
  1038 +
  1039 +.ans-divForm .ui-outputlabel.ans-preposition {
  1040 + display: inline-block;
  1041 + margin: 0 5px;
  1042 +}
  1043 +
  1044 +.ans-divForm .ui-outputlabel:after, .ans-divGrid .ui-outputlabel:after {
  1045 + content: ":";
  1046 +}
  1047 +
  1048 +.ans-divForm .ui-outputlabel.ans-required:after, .ans-divGrid .ui-outputlabel.ans-required:after {
  1049 + content: "*:";
  1050 +}
  1051 +
  1052 +.ans-divForm .ui-outputlabel.ans-preposition:after {
  1053 + content: "a";
  1054 +}
  1055 +
  1056 +.ans-divForm .ui-chkbox {
  1057 + background-color: transparent;
  1058 +}
  1059 +
  1060 +.ans-divForm .ui-chkbox-box {
  1061 + margin: 10px 2px 10px 0;
  1062 + position: relative;
  1063 + top: 10px;
  1064 +}
  1065 +
  1066 +.ans-divForm .ans-alignField .ui-chkbox-box {
  1067 + top: 14px;
  1068 +}
  1069 +
  1070 +.ans-divInnerForm .ui-chkbox-box {
  1071 + top: 2px;
  1072 + margin: 0;
  1073 +}
  1074 +
  1075 +.ans-divForm .ui-chkbox-icon {
  1076 + display: table;
  1077 +}
  1078 +
  1079 +.ans-divForm .ui-chkbox-label, .ans-chkbox .ui-chkbox-label {
  1080 + float: none;
  1081 + position: relative;
  1082 + top: -4px;
  1083 +}
  1084 +
  1085 +.ans-divInnerForm .ui-chkbox-label {
  1086 + top: -2px;
  1087 +}
  1088 +
  1089 +.ans-divForm .ans-alignField .ui-chkbox-label {
  1090 + top: 0px;
  1091 +}
  1092 +
  1093 +.ans-divForm .ui-outputlabel, .ans-divForm .ans-spacerForm, .ans-divForm .ui-selectcheckboxmenu,
  1094 +.ans-divForm .ui-chkbox {
  1095 + display: block;
  1096 +}
  1097 +
  1098 +.ans-divGrid label {
  1099 + padding-bottom: 2px;
  1100 + padding-left: 7px;
  1101 + font-weight: bold;
  1102 + display: block;
  1103 +}
  1104 +
  1105 +.ans-divGrid .ui-toolbar-group-left, .ans-divGrid .ui-toolbar-group-right {
  1106 + padding-left: 0;
  1107 + padding-right: 0px;
  1108 +}
  1109 +
  1110 +.ans-divGrid .ui-toolbar {
  1111 + margin-top: 3px;
  1112 + margin-bottom: 3px;
  1113 +}
  1114 +
  1115 +/* ======================================= Dialog de Confirmação ====================================== */
  1116 +.ans-dlgConfirm .ui-dialog-content {
  1117 + overflow: hidden;
  1118 +}
  1119 +
  1120 +.ans-dlgConfirm .ui-toolbar {
  1121 + margin-top: 10px;
  1122 + text-align: center;
  1123 +}
  1124 +
  1125 +.ans-dlgConfirm .ui-toolbar > div {
  1126 + float: none;
  1127 +}
  1128 +
  1129 +/* ====================================== Variações de Datatable ====================================== */
  1130 +
  1131 +.ans-checkSelect .ui-datatable-even {
  1132 + color: #6D6D6D;
  1133 + background: #FFFFFF;
  1134 +}
  1135 +
  1136 +.ans-checkSelect .ui-datatable-odd {
  1137 + color: #6D6D6D;
  1138 + background: #F9F9F9;
  1139 +}
  1140 +
  1141 +
  1142 +
  1143 +
  1144 +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
  1145 + text-shadow: none; !important
  1146 +}
  1147 +
  1148 +.ui-growl {
  1149 + top: 45%;
  1150 + left: 40%;
  1151 +}
  1152 +
... ...
src/main/webapp/resources/css/login.css 0 → 100644
  1 +++ a/src/main/webapp/resources/css/login.css
... ... @@ -0,0 +1,105 @@
  1 +@CHARSET "ISO-8859-1";
  2 +
  3 +body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input,
  4 +button, textarea, p, blockquote, th, td {
  5 + margin: 0;
  6 + padding: 0;
  7 + resize: none;
  8 + font-family: Arial, tahoma, Geneva, sans-serif;
  9 + font-size: 13px;
  10 +}
  11 +
  12 +#box-login {
  13 + margin: 0 auto;
  14 + margin-top: 85px;
  15 + padding: 5px;
  16 + width: 400px;
  17 +}
  18 +
  19 +#box-login .header {
  20 + height:20px;
  21 + background: #3c899d;
  22 + width:98%;
  23 + padding: 5px;
  24 + line-height:20px;
  25 + vertical-align:middle;
  26 + font-size: 15px;
  27 + border-top-left-radius: 3px;
  28 + border-top-right-radius: 3px;
  29 + -webkit-border-top-left-radius: 3px;
  30 + -webkit-border-top-right-radius: 3px;
  31 + -moz-border-radius-topleft: 3px;
  32 + -moz-border-radius-topright: 3px;
  33 +}
  34 +
  35 +#box-login .header label {
  36 + color: #FFFFFF;
  37 + font-weight: bold;
  38 + margin-left: 5px;
  39 +}
  40 +
  41 +#box-login .body {
  42 + width: 100%;
  43 + border: 1px solid #999999;
  44 + border-top-width: 0;
  45 + padding-top: 20px;
  46 + padding-bottom: 5px;
  47 +}
  48 +
  49 +#box-login form {
  50 + width: 100%;
  51 + height: 100%;
  52 +}
  53 +
  54 +/* Label Form*/
  55 +#box-login form label {
  56 + display: block;
  57 + float: left;
  58 + text-align: right;
  59 + margin-right: 5px;
  60 + margin-top: 1px;
  61 + width: 20%;
  62 +}
  63 +
  64 +#box-login form input[type="text"], #box-login form input[type="password"] {
  65 + display: block;
  66 + margin-left: 10px;
  67 + margin-bottom: 10px;
  68 + width: 70%;
  69 + border: 1px solid #C0C0C0;
  70 + font-size: 15px;
  71 +}
  72 +
  73 +#box-login input[type="submit"] {
  74 + -moz-border-radius: 5px;
  75 + -webkit-border-radius: 5px;
  76 + border-radius: 5px;
  77 + padding: 6px 8px;
  78 + display: block;
  79 + font-family: Arial, tahoma, Geneva, sans-serif;
  80 + border: 1px solid #CCCCCC;
  81 + color: #FFFFFF;
  82 + font-weight: bold;
  83 + margin: 10px 0 0 295px;
  84 + background: -moz-linear-gradient(top, #8bba59 0%, #498207 100%); /* FF3.6+ */
  85 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8bba59), color-stop(100%,#498207)); /* Chrome,Safari4+ */
  86 + background: -webkit-linear-gradient(top, #8bba59 0%,#498207 100%); /* Chrome10+,Safari5.1+ */
  87 + background: -o-linear-gradient(top, #8bba59 0%,#498207 100%); /* Opera 11.10+ */
  88 + background: -ms-linear-gradient(top, #8bba59 0%,#498207 100%); /* IE10+ */
  89 + background: linear-gradient(to bottom, #8bba59 0%,#498207 100%); /* W3C */
  90 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8bba59', endColorstr='#498207',GradientType=0 ); /* IE6-9 */
  91 +}
  92 +
  93 +#box-login input[type="submit"]:hover {
  94 + background: -moz-linear-gradient(top, #a2ce65 0%, #649b1b 100%); /* FF3.6+ */
  95 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a2ce65), color-stop(100%,#649b1b)); /* Chrome,Safari4+ */
  96 + background: -webkit-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Chrome10+,Safari5.1+ */
  97 + background: -o-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* Opera 11.10+ */
  98 + background: -ms-linear-gradient(top, #a2ce65 0%,#649b1b 100%); /* IE10+ */
  99 + background: linear-gradient(to bottom, #a2ce65 0%,#649b1b 100%); /* W3C */
  100 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a2ce65', endColorstr='#649b1b',GradientType=0 ); /* IE6-9 */
  101 +}
  102 +
  103 +#box-login input[type="submit"]:active {
  104 + background: #79A02E !important;
  105 +}
0 106 \ No newline at end of file
... ...
src/main/webapp/resources/css/theme.css 0 → 100644
  1 +++ a/src/main/webapp/resources/css/theme.css
... ... @@ -0,0 +1,2069 @@
  1 +/** jQuery UI CSS Framework 1.8.9** Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Theming/API** To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px*/
  2 +
  3 +
  4 +/* Component containers----------------------------------*/
  5 +.ui-widget {
  6 + font-family: Arial, Helvetica;
  7 + font-size: .9em;
  8 +}
  9 +
  10 +.ui-widget {
  11 + font-size:.9em;
  12 +}
  13 +body, .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
  14 + font-family: Arial, Helvetica;
  15 + font-size:1em;
  16 +}
  17 +.ui-widget-content {
  18 + border:1px solid #dddddd;
  19 + background:#ffffff;
  20 + color:#333333;
  21 +}
  22 +.ui-widget-content a {
  23 + color:#333333;
  24 +}
  25 +.ui-widget-header {
  26 + border:1px solid #eeeeee;
  27 + background:#f5f5f5;
  28 + color:#333333;
  29 + font-weight:bold;
  30 +}
  31 +.ui-widget-header a {
  32 + color:#333333;
  33 +}/* Interaction states ----------------------------------*/
  34 +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
  35 + color:#333333;
  36 + text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);
  37 + cursor:pointer;
  38 + background-color:#f5f5f5;
  39 +*background-color:#e6e6e6;
  40 + background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);
  41 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  42 + background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);
  43 + background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);
  44 + background-image:linear-gradient(top, #ffffff, #e6e6e6);
  45 + background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);
  46 + background-repeat:repeat-x;
  47 + border:1px solid #cccccc;
  48 +*border:0;
  49 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  50 + border-color:#e6e6e6 #e6e6e6 #bfbfbf;
  51 + border-bottom-color:#b3b3b3;
  52 + -webkit-border-radius:4px;
  53 + -moz-border-radius:4px;
  54 + border-radius:4px;
  55 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
  56 +filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  57 +*zoom:1;
  58 + -webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  59 + -moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  60 + box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  61 +}
  62 +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
  63 + background-color:#e6e6e6;
  64 +*background-color:#d9d9d9;
  65 +}
  66 +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
  67 + background-color:#cccccc \9;
  68 +}
  69 +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover {
  70 + color:#333333;
  71 + text-decoration:none;
  72 + background-color:#e6e6e6;
  73 +*background-color:#d9d9d9;/* Buttons in IE7 don't get borders, so darken on hover */
  74 + background-position:0 -15px;
  75 + -webkit-transition:background-position 0.1s linear;
  76 + -moz-transition:background-position 0.1s linear;
  77 + -ms-transition:background-position 0.1s linear;
  78 + -o-transition:background-position 0.1s linear;
  79 + transition:background-position 0.1s linear;
  80 +}
  81 +.ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus {
  82 + outline:thin dotted #333;
  83 + outline:5px auto -webkit-focus-ring-color;
  84 + outline-offset:-2px;
  85 +}
  86 +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
  87 + background-color:#e6e6e6;
  88 + background-color:#d9d9d9 \9;
  89 + background-image:none;
  90 + outline:0;
  91 + -webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  92 + -moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  93 + box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
  94 +}
  95 +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
  96 + cursor:default;
  97 + background-color:#e6e6e6;
  98 + background-image:none;
  99 + opacity:0.65;
  100 + filter:alpha(opacity=65);
  101 + -webkit-box-shadow:none;
  102 + -moz-box-shadow:none;
  103 + box-shadow:none;
  104 +}
  105 +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
  106 + border-color:#ccc;
  107 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  108 +}/* Interaction Cues----------------------------------*/
  109 +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {
  110 + color:#ffffff;
  111 + text-decoration:none;
  112 + background-color:#0088cc;
  113 + background-color:#0081c2;
  114 + background-position:0px;
  115 + background-image:-moz-linear-gradient(top, #0088cc, #0077b3);
  116 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  117 + background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);
  118 + background-image:-o-linear-gradient(top, #0088cc, #0077b3);
  119 + background-image:linear-gradient(to bottom, #0088cc, #0077b3);
  120 + background-repeat:repeat-x;
  121 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  122 +}
  123 +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a {
  124 + color:#ffffff;
  125 +}
  126 +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {
  127 + border:1px solid #eed3d7;
  128 + background:#f2dede 50% 50% repeat-x;
  129 + color:#b94a48;
  130 +}
  131 +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a {
  132 + color:#b94a48;
  133 +}
  134 +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text {
  135 + color:#b94a48;
  136 +}
  137 +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary {
  138 + font-weight:bold;
  139 +}
  140 +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary {
  141 + opacity:.7;
  142 + filter:Alpha(Opacity=70);
  143 + font-weight:normal;
  144 +}
  145 +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
  146 + opacity:.35;
  147 + filter:Alpha(Opacity=35);
  148 + background-image:none;
  149 +}/* Icons----------------------------------*//* states and images */
  150 +.ui-icon {
  151 + width:16px;
  152 + height:16px;
  153 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  154 +}
  155 +.ui-widget-content .ui-icon {
  156 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  157 +}
  158 +.ui-widget-header .ui-icon {
  159 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  160 +}
  161 +.ui-state-default .ui-icon {
  162 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/:images/ui-icons_333333_256x240.png");
  163 +}
  164 +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {
  165 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  166 +}
  167 +.ui-state-active .ui-icon {
  168 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  169 +}
  170 +.ui-state-highlight .ui-icon {
  171 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  172 +}
  173 +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {
  174 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  175 +}/* positioning */
  176 +.ui-icon-carat-1-n {
  177 + background-position:0 0;
  178 +}
  179 +.ui-icon-carat-1-ne {
  180 + background-position:-16px 0;
  181 +}
  182 +.ui-icon-carat-1-e {
  183 + background-position:-32px 0;
  184 +}
  185 +.ui-icon-carat-1-se {
  186 + background-position:-48px 0;
  187 +}
  188 +.ui-icon-carat-1-s {
  189 + background-position:-64px 0;
  190 +}
  191 +.ui-icon-carat-1-sw {
  192 + background-position:-80px 0;
  193 +}
  194 +.ui-icon-carat-1-w {
  195 + background-position:-96px 0;
  196 +}
  197 +.ui-icon-carat-1-nw {
  198 + background-position:-112px 0;
  199 +}
  200 +.ui-icon-carat-2-n-s {
  201 + background-position:-128px 0;
  202 +}
  203 +.ui-icon-carat-2-e-w {
  204 + background-position:-144px 0;
  205 +}
  206 +.ui-icon-triangle-1-n {
  207 + background-position:0 -16px;
  208 +}
  209 +.ui-icon-triangle-1-ne {
  210 + background-position:-16px -16px;
  211 +}
  212 +.ui-icon-triangle-1-e {
  213 + background-position:-32px -16px;
  214 +}
  215 +.ui-icon-triangle-1-se {
  216 + background-position:-48px -16px;
  217 +}
  218 +.ui-icon-triangle-1-s {
  219 + background-position:-64px -16px;
  220 +}
  221 +.ui-icon-triangle-1-sw {
  222 + background-position:-80px -16px;
  223 +}
  224 +.ui-icon-triangle-1-w {
  225 + background-position:-96px -16px;
  226 +}
  227 +.ui-icon-triangle-1-nw {
  228 + background-position:-112px -16px;
  229 +}
  230 +.ui-icon-triangle-2-n-s {
  231 + background-position:-128px -16px;
  232 +}
  233 +.ui-icon-triangle-2-e-w {
  234 + background-position:-144px -16px;
  235 +}
  236 +.ui-icon-arrow-1-n {
  237 + background-position:0 -32px;
  238 +}
  239 +.ui-icon-arrow-1-ne {
  240 + background-position:-16px -32px;
  241 +}
  242 +.ui-icon-arrow-1-e {
  243 + background-position:-32px -32px;
  244 +}
  245 +.ui-icon-arrow-1-se {
  246 + background-position:-48px -32px;
  247 +}
  248 +.ui-icon-arrow-1-s {
  249 + background-position:-64px -32px;
  250 +}
  251 +.ui-icon-arrow-1-sw {
  252 + background-position:-80px -32px;
  253 +}
  254 +.ui-icon-arrow-1-w {
  255 + background-position:-96px -32px;
  256 +}
  257 +.ui-icon-arrow-1-nw {
  258 + background-position:-112px -32px;
  259 +}
  260 +.ui-icon-arrow-2-n-s {
  261 + background-position:-128px -32px;
  262 +}
  263 +.ui-icon-arrow-2-ne-sw {
  264 + background-position:-144px -32px;
  265 +}
  266 +.ui-icon-arrow-2-e-w {
  267 + background-position:-160px -32px;
  268 +}
  269 +.ui-icon-arrow-2-se-nw {
  270 + background-position:-176px -32px;
  271 +}
  272 +.ui-icon-arrowstop-1-n {
  273 + background-position:-192px -32px;
  274 +}
  275 +.ui-icon-arrowstop-1-e {
  276 + background-position:-208px -32px;
  277 +}
  278 +.ui-icon-arrowstop-1-s {
  279 + background-position:-224px -32px;
  280 +}
  281 +.ui-icon-arrowstop-1-w {
  282 + background-position:-240px -32px;
  283 +}
  284 +.ui-icon-arrowthick-1-n {
  285 + background-position:0 -48px;
  286 +}
  287 +.ui-icon-arrowthick-1-ne {
  288 + background-position:-16px -48px;
  289 +}
  290 +.ui-icon-arrowthick-1-e {
  291 + background-position:-32px -48px;
  292 +}
  293 +.ui-icon-arrowthick-1-se {
  294 + background-position:-48px -48px;
  295 +}
  296 +.ui-icon-arrowthick-1-s {
  297 + background-position:-64px -48px;
  298 +}
  299 +.ui-icon-arrowthick-1-sw {
  300 + background-position:-80px -48px;
  301 +}
  302 +.ui-icon-arrowthick-1-w {
  303 + background-position:-96px -48px;
  304 +}
  305 +.ui-icon-arrowthick-1-nw {
  306 + background-position:-112px -48px;
  307 +}
  308 +.ui-icon-arrowthick-2-n-s {
  309 + background-position:-128px -48px;
  310 +}
  311 +.ui-icon-arrowthick-2-ne-sw {
  312 + background-position:-144px -48px;
  313 +}
  314 +.ui-icon-arrowthick-2-e-w {
  315 + background-position:-160px -48px;
  316 +}
  317 +.ui-icon-arrowthick-2-se-nw {
  318 + background-position:-176px -48px;
  319 +}
  320 +.ui-icon-arrowthickstop-1-n {
  321 + background-position:-192px -48px;
  322 +}
  323 +.ui-icon-arrowthickstop-1-e {
  324 + background-position:-208px -48px;
  325 +}
  326 +.ui-icon-arrowthickstop-1-s {
  327 + background-position:-224px -48px;
  328 +}
  329 +.ui-icon-arrowthickstop-1-w {
  330 + background-position:-240px -48px;
  331 +}
  332 +.ui-icon-arrowreturnthick-1-w {
  333 + background-position:0 -64px;
  334 +}
  335 +.ui-icon-arrowreturnthick-1-n {
  336 + background-position:-16px -64px;
  337 +}
  338 +.ui-icon-arrowreturnthick-1-e {
  339 + background-position:-32px -64px;
  340 +}
  341 +.ui-icon-arrowreturnthick-1-s {
  342 + background-position:-48px -64px;
  343 +}
  344 +.ui-icon-arrowreturn-1-w {
  345 + background-position:-64px -64px;
  346 +}
  347 +.ui-icon-arrowreturn-1-n {
  348 + background-position:-80px -64px;
  349 +}
  350 +.ui-icon-arrowreturn-1-e {
  351 + background-position:-96px -64px;
  352 +}
  353 +.ui-icon-arrowreturn-1-s {
  354 + background-position:-112px -64px;
  355 +}
  356 +.ui-icon-arrowrefresh-1-w {
  357 + background-position:-128px -64px;
  358 +}
  359 +.ui-icon-arrowrefresh-1-n {
  360 + background-position:-144px -64px;
  361 +}
  362 +.ui-icon-arrowrefresh-1-e {
  363 + background-position:-160px -64px;
  364 +}
  365 +.ui-icon-arrowrefresh-1-s {
  366 + background-position:-176px -64px;
  367 +}
  368 +.ui-icon-arrow-4 {
  369 + background-position:0 -80px;
  370 +}
  371 +.ui-icon-arrow-4-diag {
  372 + background-position:-16px -80px;
  373 +}
  374 +.ui-icon-extlink {
  375 + background-position:-32px -80px;
  376 +}
  377 +.ui-icon-newwin {
  378 + background-position:-48px -80px;
  379 +}
  380 +.ui-icon-refresh {
  381 + background-position:-64px -80px;
  382 +}
  383 +.ui-icon-shuffle {
  384 + background-position:-80px -80px;
  385 +}
  386 +.ui-icon-transfer-e-w {
  387 + background-position:-96px -80px;
  388 +}
  389 +.ui-icon-transferthick-e-w {
  390 + background-position:-112px -80px;
  391 +}
  392 +.ui-icon-folder-collapsed {
  393 + background-position:0 -96px;
  394 +}
  395 +.ui-icon-folder-open {
  396 + background-position:-16px -96px;
  397 +}
  398 +.ui-icon-document {
  399 + background-position:-32px -96px;
  400 +}
  401 +.ui-icon-document-b {
  402 + background-position:-48px -96px;
  403 +}
  404 +.ui-icon-note {
  405 + background-position:-64px -96px;
  406 +}
  407 +.ui-icon-mail-closed {
  408 + background-position:-80px -96px;
  409 +}
  410 +.ui-icon-mail-open {
  411 + background-position:-96px -96px;
  412 +}
  413 +.ui-icon-suitcase {
  414 + background-position:-112px -96px;
  415 +}
  416 +.ui-icon-comment {
  417 + background-position:-128px -96px;
  418 +}
  419 +.ui-icon-person {
  420 + background-position:-144px -96px;
  421 +}
  422 +.ui-icon-print {
  423 + background-position:-160px -96px;
  424 +}
  425 +.ui-icon-trash {
  426 + background-position:-176px -96px;
  427 +}
  428 +.ui-icon-locked {
  429 + background-position:-192px -96px;
  430 +}
  431 +.ui-icon-unlocked {
  432 + background-position:-208px -96px;
  433 +}
  434 +.ui-icon-bookmark {
  435 + background-position:-224px -96px;
  436 +}
  437 +.ui-icon-tag {
  438 + background-position:-240px -96px;
  439 +}
  440 +.ui-icon-home {
  441 + background-position:0 -112px;
  442 +}
  443 +.ui-icon-flag {
  444 + background-position:-16px -112px;
  445 +}
  446 +.ui-icon-calendar {
  447 + background-position:-32px -112px;
  448 +}
  449 +.ui-icon-cart {
  450 + background-position:-48px -112px;
  451 +}
  452 +.ui-icon-pencil {
  453 + background-position:-64px -112px;
  454 +}
  455 +.ui-icon-clock {
  456 + background-position:-80px -112px;
  457 +}
  458 +.ui-icon-disk {
  459 + background-position:-96px -112px;
  460 +}
  461 +.ui-icon-calculator {
  462 + background-position:-112px -112px;
  463 +}
  464 +.ui-icon-zoomin {
  465 + background-position:-128px -112px;
  466 +}
  467 +.ui-icon-zoomout {
  468 + background-position:-144px -112px;
  469 +}
  470 +.ui-icon-search {
  471 + background-position:-160px -112px;
  472 +}
  473 +.ui-icon-wrench {
  474 + background-position:-176px -112px;
  475 +}
  476 +.ui-icon-gear {
  477 + background-position:-192px -112px;
  478 +}
  479 +.ui-icon-heart {
  480 + background-position:-208px -112px;
  481 +}
  482 +.ui-icon-star {
  483 + background-position:-224px -112px;
  484 +}
  485 +.ui-icon-link {
  486 + background-position:-240px -112px;
  487 +}
  488 +.ui-icon-cancel {
  489 + background-position:0 -128px;
  490 +}
  491 +.ui-icon-plus {
  492 + background-position:-16px -128px;
  493 +}
  494 +.ui-icon-plusthick {
  495 + background-position:-32px -128px;
  496 +}
  497 +.ui-icon-minus {
  498 + background-position:-48px -128px;
  499 +}
  500 +.ui-icon-minusthick {
  501 + background-position:-64px -128px;
  502 +}
  503 +.ui-icon-close {
  504 + background-position:-80px -128px;
  505 +}
  506 +.ui-icon-closethick {
  507 + background-position:-96px -128px;
  508 +}
  509 +.ui-icon-key {
  510 + background-position:-112px -128px;
  511 +}
  512 +.ui-icon-lightbulb {
  513 + background-position:-128px -128px;
  514 +}
  515 +.ui-icon-scissors {
  516 + background-position:-144px -128px;
  517 +}
  518 +.ui-icon-clipboard {
  519 + background-position:-160px -128px;
  520 +}
  521 +.ui-icon-copy {
  522 + background-position:-176px -128px;
  523 +}
  524 +.ui-icon-contact {
  525 + background-position:-192px -128px;
  526 +}
  527 +.ui-icon-image {
  528 + background-position:-208px -128px;
  529 +}
  530 +.ui-icon-video {
  531 + background-position:-224px -128px;
  532 +}
  533 +.ui-icon-script {
  534 + background-position:-240px -128px;
  535 +}
  536 +.ui-icon-alert {
  537 + background-position:0 -144px;
  538 +}
  539 +.ui-icon-info {
  540 + background-position:-16px -144px;
  541 +}
  542 +.ui-icon-notice {
  543 + background-position:-32px -144px;
  544 +}
  545 +.ui-icon-help {
  546 + background-position:-48px -144px;
  547 +}
  548 +.ui-icon-check {
  549 + background-position:-64px -144px;
  550 +}
  551 +.ui-icon-bullet {
  552 + background-position:-80px -144px;
  553 +}
  554 +.ui-icon-radio-off {
  555 + background-position:-96px -144px;
  556 +}
  557 +.ui-icon-radio-on {
  558 + background-position:-112px -144px;
  559 +}
  560 +.ui-icon-pin-w {
  561 + background-position:-128px -144px;
  562 +}
  563 +.ui-icon-pin-s {
  564 + background-position:-144px -144px;
  565 +}
  566 +.ui-icon-play {
  567 + background-position:0 -160px;
  568 +}
  569 +.ui-icon-pause {
  570 + background-position:-16px -160px;
  571 +}
  572 +.ui-icon-seek-next {
  573 + background-position:-32px -160px;
  574 +}
  575 +.ui-icon-seek-prev {
  576 + background-position:-48px -160px;
  577 +}
  578 +.ui-icon-seek-end {
  579 + background-position:-64px -160px;
  580 +}
  581 +.ui-icon-seek-start {
  582 + background-position:-80px -160px;
  583 +}/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
  584 +.ui-icon-seek-first {
  585 + background-position:-80px -160px;
  586 +}
  587 +.ui-icon-stop {
  588 + background-position:-96px -160px;
  589 +}
  590 +.ui-icon-eject {
  591 + background-position:-112px -160px;
  592 +}
  593 +.ui-icon-volume-off {
  594 + background-position:-128px -160px;
  595 +}
  596 +.ui-icon-volume-on {
  597 + background-position:-144px -160px;
  598 +}
  599 +.ui-icon-power {
  600 + background-position:0 -176px;
  601 +}
  602 +.ui-icon-signal-diag {
  603 + background-position:-16px -176px;
  604 +}
  605 +.ui-icon-signal {
  606 + background-position:-32px -176px;
  607 +}
  608 +.ui-icon-battery-0 {
  609 + background-position:-48px -176px;
  610 +}
  611 +.ui-icon-battery-1 {
  612 + background-position:-64px -176px;
  613 +}
  614 +.ui-icon-battery-2 {
  615 + background-position:-80px -176px;
  616 +}
  617 +.ui-icon-battery-3 {
  618 + background-position:-96px -176px;
  619 +}
  620 +.ui-icon-circle-plus {
  621 + background-position:0 -192px;
  622 +}
  623 +.ui-icon-circle-minus {
  624 + background-position:-16px -192px;
  625 +}
  626 +.ui-icon-circle-close {
  627 + background-position:-32px -192px;
  628 +}
  629 +.ui-icon-circle-triangle-e {
  630 + background-position:-48px -192px;
  631 +}
  632 +.ui-icon-circle-triangle-s {
  633 + background-position:-64px -192px;
  634 +}
  635 +.ui-icon-circle-triangle-w {
  636 + background-position:-80px -192px;
  637 +}
  638 +.ui-icon-circle-triangle-n {
  639 + background-position:-96px -192px;
  640 +}
  641 +.ui-icon-circle-arrow-e {
  642 + background-position:-112px -192px;
  643 +}
  644 +.ui-icon-circle-arrow-s {
  645 + background-position:-128px -192px;
  646 +}
  647 +.ui-icon-circle-arrow-w {
  648 + background-position:-144px -192px;
  649 +}
  650 +.ui-icon-circle-arrow-n {
  651 + background-position:-160px -192px;
  652 +}
  653 +.ui-icon-circle-zoomin {
  654 + background-position:-176px -192px;
  655 +}
  656 +.ui-icon-circle-zoomout {
  657 + background-position:-192px -192px;
  658 +}
  659 +.ui-icon-circle-check {
  660 + background-position:-208px -192px;
  661 +}
  662 +.ui-icon-circlesmall-plus {
  663 + background-position:0 -208px;
  664 +}
  665 +.ui-icon-circlesmall-minus {
  666 + background-position:-16px -208px;
  667 +}
  668 +.ui-icon-circlesmall-close {
  669 + background-position:-32px -208px;
  670 +}
  671 +.ui-icon-squaresmall-plus {
  672 + background-position:-48px -208px;
  673 +}
  674 +.ui-icon-squaresmall-minus {
  675 + background-position:-64px -208px;
  676 +}
  677 +.ui-icon-squaresmall-close {
  678 + background-position:-80px -208px;
  679 +}
  680 +.ui-icon-grip-dotted-vertical {
  681 + background-position:0 -224px;
  682 +}
  683 +.ui-icon-grip-dotted-horizontal {
  684 + background-position:-16px -224px;
  685 +}
  686 +.ui-icon-grip-solid-vertical {
  687 + background-position:-32px -224px;
  688 +}
  689 +.ui-icon-grip-solid-horizontal {
  690 + background-position:-48px -224px;
  691 +}
  692 +.ui-icon-gripsmall-diagonal-se {
  693 + background-position:-64px -224px;
  694 +}
  695 +.ui-icon-grip-diagonal-se {
  696 + background-position:-80px -224px;
  697 +}/* Misc visuals----------------------------------*//* Corner radius */
  698 +.ui-corner-tl {
  699 + -moz-border-radius-topleft:4px;
  700 + -webkit-border-top-left-radius:4px;
  701 + border-top-left-radius:4px;
  702 +}
  703 +.ui-corner-tr {
  704 + -moz-border-radius-topright:4px;
  705 + -webkit-border-top-right-radius:4px;
  706 + border-top-right-radius:4px;
  707 +}
  708 +.ui-corner-bl {
  709 + -moz-border-radius-bottomleft:4px;
  710 + -webkit-border-bottom-left-radius:4px;
  711 + border-bottom-left-radius:4px;
  712 +}
  713 +.ui-corner-br {
  714 + -moz-border-radius-bottomright:4px;
  715 + -webkit-border-bottom-right-radius:4px;
  716 + border-bottom-right-radius:4px;
  717 +}
  718 +.ui-corner-top {
  719 + -moz-border-radius-topleft:4px;
  720 + -webkit-border-top-left-radius:4px;
  721 + border-top-left-radius:4px;
  722 + -moz-border-radius-topright:4px;
  723 + -webkit-border-top-right-radius:4px;
  724 + border-top-right-radius:4px;
  725 +}
  726 +.ui-corner-bottom {
  727 + -moz-border-radius-bottomleft:4px;
  728 + -webkit-border-bottom-left-radius:4px;
  729 + border-bottom-left-radius:4px;
  730 + -moz-border-radius-bottomright:4px;
  731 + -webkit-border-bottom-right-radius:4px;
  732 + border-bottom-right-radius:4px;
  733 +}
  734 +.ui-corner-right {
  735 + -moz-border-radius-topright:4px;
  736 + -webkit-border-top-right-radius:4px;
  737 + border-top-right-radius:4px;
  738 + -moz-border-radius-bottomright:4px;
  739 + -webkit-border-bottom-right-radius:4px;
  740 + border-bottom-right-radius:4px;
  741 +}
  742 +.ui-corner-left {
  743 + -moz-border-radius-topleft:4px;
  744 + -webkit-border-top-left-radius:4px;
  745 + border-top-left-radius:4px;
  746 + -moz-border-radius-bottomleft:4px;
  747 + -webkit-border-bottom-left-radius:4px;
  748 + border-bottom-left-radius:4px;
  749 +}
  750 +.ui-corner-all {
  751 + -moz-border-radius:4px;
  752 + -webkit-border-radius:4px;
  753 + border-radius:4px;
  754 +}/* Overlays */
  755 +.ui-widget-overlay {
  756 + background:#000000;
  757 + opacity:.80;
  758 + filter:Alpha(Opacity=80);
  759 +}
  760 +.ui-widget-shadow {
  761 + margin:-7px 0 0 -7px;
  762 + padding:7px;
  763 + background:#000000;
  764 + opacity:.30;
  765 + filter:Alpha(Opacity=30);
  766 + -moz-border-radius:8px;
  767 + -webkit-border-radius:8px;
  768 + border-radius:8px;
  769 +}/* PrimeFaces Extensions */
  770 +.ui-inputfield, .ui-widget-content .ui-inputfield, .ui-widget-header .ui-inputfield {
  771 + cursor:text;
  772 + background:none #ffffff;
  773 + border:1px solid #cccccc;
  774 + -webkit-border-radius:3px;
  775 + -moz-border-radius:3px;
  776 + border-radius:3px;
  777 + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);
  778 + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);
  779 + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);
  780 + -webkit-transition:border linear 0.2s, box-shadow linear 0.2s;
  781 + -moz-transition:border linear 0.2s, box-shadow linear 0.2s;
  782 + -ms-transition:border linear 0.2s, box-shadow linear 0.2s;
  783 + -o-transition:border linear 0.2s, box-shadow linear 0.2s;
  784 + transition:border linear 0.2s, box-shadow linear 0.2s;
  785 +}
  786 +.ui-inputfield.ui-state-focus, .ui-widget-content .ui-inputfield.ui-state-focus, .ui-widget-header .ui-inputfield.ui-state-focus {
  787 + border-color:rgba(82, 168, 236, 0.8);
  788 + outline:0;
  789 + outline:thin dotted \9;/* IE6-9 */
  790 + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  791 + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  792 + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
  793 +}
  794 +.ui-inputfield.ui-state-error, .ui-widget-header .ui-inputfield.ui-state-error, .ui-widget-content .ui-inputfield.ui-state-error {
  795 + color:#333333;
  796 + border:1px solid #eed3d7;
  797 +}/** TabView **/
  798 +.ui-tabs.ui-widget-content {
  799 + background:transparent none;
  800 + border:0;
  801 + border-radius:0;
  802 +}
  803 +.ui-tabs .ui-tabs-nav.ui-widget-header {
  804 + background:transparent none;
  805 + border-radius:0;
  806 +}
  807 +.ui-tabs .ui-tabs-nav.ui-widget-header li {
  808 + line-height:18px;
  809 + background:transparent none;
  810 + border:1px solid #DDDDDD;
  811 + box-shadow:none;
  812 + border-radius:0;
  813 +}
  814 +.ui-tabs .ui-tabs-nav.ui-widget-header li a {
  815 + line-height:18px;
  816 + padding-bottom:8px;
  817 + padding-top:8px;
  818 + color:#0088CC;
  819 + font-weight:normal;
  820 + border:0px none;
  821 +}
  822 +.ui-tabs .ui-tabs-nav.ui-widget-header li.ui-state-hover {
  823 + text-decoration:none;
  824 + background-color:#eeeeee;
  825 + border-color:#eeeeee #eeeeee #dddddd;
  826 + color:#005580;
  827 +}
  828 +.ui-tabs .ui-tabs-nav.ui-widget-header li.ui-state-active {
  829 + background-color:#FFFFFF;
  830 + border-style:solid;
  831 + border-width:1px;
  832 + color:#555555;
  833 + cursor:default;
  834 +}
  835 +.ui-tabs .ui-tabs-nav li .ui-icon {
  836 + margin:0.6em 0.2em 0 0 !important;
  837 +}
  838 +.ui-tabs.ui-tabs-top .ui-tabs-nav.ui-widget-header {
  839 + border-bottom:1px solid #DDDDDD;
  840 +}
  841 +.ui-tabs.ui-tabs-top {
  842 + border-bottom:1px solid #DDDDDD;
  843 +}
  844 +.ui-tabs.ui-tabs-top .ui-tabs-nav.ui-widget-header li.ui-state-active {
  845 + border-color:#DDDDDD #DDDDDD transparent #DDDDDD;
  846 +}
  847 +.ui-tabs.ui-tabs-top .ui-tabs-nav.ui-widget-header li {
  848 + border-radius:4px 4px 0 0;
  849 +}
  850 +.ui-tabs.ui-tabs-top .ui-tabs-nav.ui-widget-header li.ui-state-active {
  851 + margin-bottom:-1px;
  852 +}
  853 +.ui-tabs.ui-tabs-bottom .ui-tabs-nav.ui-widget-header {
  854 + border-top:1px solid #DDDDDD;
  855 +}
  856 +.ui-tabs.ui-tabs-bottom {
  857 + border-top:1px solid #DDDDDD;
  858 +}
  859 +.ui-tabs.ui-tabs-bottom .ui-tabs-nav.ui-widget-header li.ui-state-active {
  860 + border-color:transparent #DDDDDD #DDDDDD #DDDDDD;
  861 +}
  862 +.ui-tabs.ui-tabs-bottom .ui-tabs-nav.ui-widget-header li {
  863 + border-radius:0 0 4px 4px;
  864 +}
  865 +.ui-tabs.ui-tabs-bottom .ui-tabs-nav.ui-widget-header li.ui-state-active {
  866 + margin-top:-1px;
  867 +}
  868 +.ui-tabs.ui-tabs-left .ui-tabs-nav.ui-widget-header {
  869 + border-right:1px solid #DDDDDD;
  870 +}
  871 +.ui-tabs.ui-tabs-left {
  872 + border-right:1px solid #DDDDDD;
  873 +}
  874 +.ui-tabs.ui-tabs-left .ui-tabs-nav.ui-widget-header li.ui-state-active {
  875 + border-color:#DDDDDD transparent #DDDDDD #DDDDDD;
  876 +}
  877 +.ui-tabs.ui-tabs-left .ui-tabs-nav.ui-widget-header li {
  878 + border-radius:4px 0 0 4px;
  879 +}
  880 +.ui-tabs.ui-tabs-left .ui-tabs-nav.ui-widget-header li.ui-state-active {
  881 + margin-right:-1px;
  882 +}
  883 +.ui-tabs.ui-tabs-right .ui-tabs-nav.ui-widget-header {
  884 + border-left:1px solid #DDDDDD;
  885 +}
  886 +.ui-tabs.ui-tabs-right {
  887 + border-left:1px solid #DDDDDD;
  888 +}
  889 +.ui-tabs.ui-tabs-right .ui-tabs-nav.ui-widget-header li.ui-state-active {
  890 + border-color:#DDDDDD #DDDDDD #DDDDDD transparent;
  891 +}
  892 +.ui-tabs.ui-tabs-right .ui-tabs-nav.ui-widget-header li {
  893 + border-radius:0 4px 4px 0;
  894 +}
  895 +.ui-tabs.ui-tabs-right .ui-tabs-nav.ui-widget-header li.ui-state-active {
  896 + margin-left:-1px;
  897 +}/** AccordionPanel **/
  898 +.ui-accordion .ui-accordion-header {
  899 + background:transparent;
  900 + box-shadow:none;
  901 +}
  902 +.ui-accordion .ui-accordion-header.ui-state-default {
  903 + margin-bottom:2px;
  904 + border:1px solid #E5E5E5;
  905 +}
  906 +.ui-accordion .ui-accordion-header.ui-state-active {
  907 + margin-bottom:1px;
  908 +}
  909 +.ui-accordion .ui-accordion-header .ui-icon {
  910 + display:none;
  911 +}
  912 +.ui-accordion .ui-accordion-header.ui-state-default a {
  913 + padding:8px 15px;
  914 + color:#0088CC;
  915 +}
  916 +.ui-accordion .ui-accordion-header a:hover {
  917 + color:#005580;
  918 +}
  919 +.ui-accordion .ui-accordion-content.ui-widget-content {
  920 + padding:9px 15px;
  921 +}/* Breadcrumb */
  922 +.ui-breadcrumb {
  923 + padding:7px 14px;
  924 + margin:0 0 18px;
  925 + list-style:none;
  926 + background-color:#fbfbfb;
  927 + background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);
  928 + background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);
  929 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));
  930 + background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);
  931 + background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);
  932 + background-image:linear-gradient(top, #ffffff, #f5f5f5);
  933 + background-repeat:repeat-x;
  934 + border:1px solid #ddd;
  935 + -webkit-border-radius:3px;
  936 + -moz-border-radius:3px;
  937 + border-radius:3px;
  938 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
  939 + -webkit-box-shadow:inset 0 1px 0 #ffffff;
  940 + -moz-box-shadow:inset 0 1px 0 #ffffff;
  941 + box-shadow:inset 0 1px 0 #ffffff;
  942 +}
  943 +.ui-breadcrumb li {
  944 + display:inline-block;
  945 +*display:inline;
  946 + text-shadow:0 1px 0 #ffffff;
  947 +*zoom:1;
  948 +}
  949 +.ui-breadcrumb .divider {
  950 + padding:0 5px;
  951 + color:#999999;
  952 +}
  953 +.ui-breadcrumb a {
  954 + color:#0088CC;
  955 + font-weight:normal;
  956 +}/* ProgressBar */
  957 +.ui-progressbar.ui-widget-content {
  958 + height:18px;
  959 + margin-bottom:18px;
  960 + overflow:hidden;
  961 + background-color:#f7f7f7;
  962 + background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);
  963 + background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);
  964 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
  965 + background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
  966 + background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);
  967 + background-image:linear-gradient(top, #f5f5f5, #f9f9f9);
  968 + background-repeat:repeat-x;
  969 + -webkit-border-radius:4px;
  970 + -moz-border-radius:4px;
  971 + border-radius:4px;
  972 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
  973 + -webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);
  974 + -moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);
  975 + box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);
  976 +}
  977 +.ui-progressbar .ui-progressbar-value.ui-widget-header {
  978 + height:18px;
  979 + font-size:12px;
  980 + color:#ffffff;
  981 + text-align:center;
  982 + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);
  983 + border:0 none;
  984 + margin:0;
  985 + background-color:#0e90d2;
  986 + background-image:-moz-linear-gradient(top, #149bdf, #0480be);
  987 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
  988 + background-image:-webkit-linear-gradient(top, #149bdf, #0480be);
  989 + background-image:-o-linear-gradient(top, #149bdf, #0480be);
  990 + background-image:linear-gradient(top, #149bdf, #0480be);
  991 + background-image:-ms-linear-gradient(top, #149bdf, #0480be);
  992 + background-repeat:repeat-x;
  993 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
  994 + -webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  995 + -moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  996 + box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  997 + -webkit-box-sizing:border-box;
  998 + -moz-box-sizing:border-box;
  999 + -ms-box-sizing:border-box;
  1000 + box-sizing:border-box;
  1001 + -webkit-transition:width 0.6s ease;
  1002 + -moz-transition:width 0.6s ease;
  1003 + -ms-transition:width 0.6s ease;
  1004 + -o-transition:width 0.6s ease;
  1005 + transition:width 0.6s ease;
  1006 +}/** Dialog **/
  1007 +.ui-dialog.ui-widget-content,
  1008 + {
  1009 + background-color:#ffffff;
  1010 + border:1px solid #999;
  1011 + border:1px solid rgba(0, 0, 0, 0.3);
  1012 +*border:1px solid #999;
  1013 + -webkit-border-radius:6px;
  1014 + -moz-border-radius:6px;
  1015 + border-radius:6px;
  1016 + -webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);
  1017 + -moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);
  1018 + box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);
  1019 + -webkit-background-clip:padding-box;
  1020 + -moz-background-clip:padding-box;
  1021 + background-clip:padding-box;
  1022 +}
  1023 +.ui-dialog.ui-widget-content .ui-dialog-titlebar {
  1024 + padding:9px 15px;
  1025 + border-bottom:1px solid #eee;
  1026 + background-color:#ffffff;
  1027 +}
  1028 +.ui-dialog.ui-widget-content .ui-dialog-title {
  1029 + font-size:24px;
  1030 +}
  1031 +.ui-dialog.ui-widget-content .ui-dialog-content {
  1032 + padding:15px;
  1033 + font-size:14px;
  1034 +}
  1035 +.ui-dialog.ui-widget-content .ui-dialog-titlebar-close {
  1036 + margin-top:10px;
  1037 +}
  1038 +.ui-dialog.ui-widget-content .ui-dialog-titlebar-close:hover, .ui-dialog.ui-widget-content .ui-dialog-titlebar-close:focus, .ui-dialog.ui-widget-content .ui-dialog-titlebar-minimize:hover, .ui-dialog.ui-widget-content .ui-dialog-titlebar-minimize:focus, .ui-dialog.ui-widget-content .ui-dialog-titlebar-maximize:hover, .ui-dialog.ui-widget-content .ui-dialog-titlebar-maximize:focus {
  1039 + padding:1px;
  1040 +}/** DataTable **/
  1041 +.ui-datatable-odd {
  1042 + background-color:#F9F9F9
  1043 +}/** TabMenu **/
  1044 +.ui-tabmenu {
  1045 +*position:relative;
  1046 +*z-index:2;
  1047 + margin-bottom:20px;
  1048 + overflow:visible;
  1049 + color:#555555;
  1050 +}
  1051 +.ui-tabmenu .ui-tabmenu-nav.ui-widget-header {
  1052 + min-height:38px;
  1053 + padding:0 20px;
  1054 + background-color:#f5f5f5;
  1055 +*background-color:#e6e6e6;
  1056 + background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);
  1057 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  1058 + background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);
  1059 + background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);
  1060 + background-image:linear-gradient(top, #ffffff, #e6e6e6);
  1061 + background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);
  1062 + background-repeat:repeat-x;
  1063 +}
  1064 +.ui-tabmenu .ui-tabmenu-nav .ui-tabmenuitem.ui-state-default {
  1065 + padding:5px 10px;
  1066 + color:#555555;
  1067 + text-decoration:none;
  1068 + text-shadow:0 1px 0 #ffffff;
  1069 + border:0 none;
  1070 + top:0;
  1071 + margin:0;
  1072 + font-weight:normal;
  1073 + -webkit-border-radius:0px;
  1074 + -moz-border-radius:0px;
  1075 + border-radius:0px;
  1076 +}/** Toolbar **/
  1077 +.ui-toolbar.ui-widget-header {
  1078 + background-color:#fafafa;
  1079 + background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);
  1080 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
  1081 + background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);
  1082 + background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);
  1083 + background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);
  1084 + background-repeat:repeat-x;
  1085 + border:1px solid #d4d4d4;
  1086 +}/** **/
  1087 +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary {
  1088 + color:#ffffff;
  1089 + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);
  1090 + background-color:#006dcc;
  1091 +*background-color:#0044cc;
  1092 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
  1093 + background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);
  1094 + background-image:-o-linear-gradient(top, #0088cc, #0044cc);
  1095 + background-image:linear-gradient(to bottom, #0088cc, #0044cc);
  1096 + background-image:-moz-linear-gradient(top, #0088cc, #0044cc);
  1097 + background-repeat:repeat-x;
  1098 + border-color:#0044cc #0044cc #002a80;
  1099 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  1100 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  1101 +filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  1102 +}
  1103 +.ui-priority-primary:hover, .ui-priority-primary:active, .ui-priority-primary.active, .ui-priority-primary.disabled, .ui-priority-primary[disabled] {
  1104 + color:#ffffff;
  1105 + background-color:#0044cc;
  1106 +*background-color:#003bb3;
  1107 +}
  1108 +.ui-priority-primary:active, .ui-priority-primary.active {
  1109 + background-color:#003399 \9;
  1110 +}/** Menu **/
  1111 +.ui-menu.ui-widget {
  1112 + min-width:160px;
  1113 + padding:5px 0;
  1114 + background-color:#ffffff;
  1115 + border:1px solid #ccc;
  1116 + border:1px solid rgba(0, 0, 0, 0.2);
  1117 +*border-right-width:2px;
  1118 +*border-bottom-width:2px;
  1119 + -webkit-border-radius:6px;
  1120 + -moz-border-radius:6px;
  1121 + border-radius:6px;
  1122 + -webkit-background-clip:padding-box;
  1123 + -moz-background-clip:padding;
  1124 + background-clip:padding-box;
  1125 +}
  1126 +.ui-menu.ui-widget a {
  1127 + display:block;
  1128 + clear:both;
  1129 + font-weight:normal;
  1130 + color:#333333;
  1131 + white-space:nowrap;
  1132 +}
  1133 +.ui-menu.ui-widget li.ui-corner-all, .ui-menu.ui-widget a.ui-corner-all {
  1134 + -webkit-border-radius:0;
  1135 + -moz-border-radius:0;
  1136 + border-radius:0;
  1137 +}
  1138 +
  1139 +.ui-menu.ui-widget li > .ui-menuitem-link {
  1140 + padding:0.3em 0;
  1141 + width:100%;
  1142 + border-width:1px 0px;
  1143 +}
  1144 +.ui-menu.ui-widget .ui-menu-list .ui-widget-header {
  1145 + border-width:1px 0px;
  1146 + width:100%;
  1147 +}
  1148 +.ui-menu.ui-widget li > .ui-menuitem-link.ui-state-hover {
  1149 + color:#ffffff;
  1150 + text-decoration:none;
  1151 + background-color:#0088cc;
  1152 + background-color:#0081c2;
  1153 + background-position:0px;
  1154 + background-image:-moz-linear-gradient(top, #0088cc, #0077b3);
  1155 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  1156 + background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);
  1157 + background-image:-o-linear-gradient(top, #0088cc, #0077b3);
  1158 + background-image:linear-gradient(to bottom, #0088cc, #0077b3);
  1159 + background-repeat:repeat-x;
  1160 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  1161 +}
  1162 +.ui-menu.ui-widget li > .ui-menuitem-link.ui-state-hover .ui-icon {
  1163 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1164 +}
  1165 +.ui-menu.ui-widget .ui-separator {
  1166 + height:1px;
  1167 + overflow:hidden;
  1168 + background-color:#e5e5e5;
  1169 + border:0 none;
  1170 + border-bottom:1px solid #ffffff;
  1171 + -webkit-box-shadow:none;
  1172 + -moz-box-shadow:none;
  1173 + box-shadow:none;
  1174 + -webkit-border-radius:0;
  1175 + -moz-border-radius:0;
  1176 + border-radius:0;
  1177 +}
  1178 +.ui-menu.ui-widget .ui-menuitem-link .ui-menuitem-icon {
  1179 + margin-left:0.3em;
  1180 + margin-right:-0.2em;
  1181 +}
  1182 +.ui-menu.ui-widget .ui-menuitem-link .ui-menuitem-text {
  1183 + margin-left:0.4em;
  1184 +}
  1185 +.ui-shadow {
  1186 + -webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2) !important;
  1187 + -moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2) !important;
  1188 + box-shadow:0 5px 10px rgba(0, 0, 0, 0.2) !important;
  1189 +}
  1190 +.ui-menu.ui-slidemenu .ui-shadow {
  1191 + -webkit-box-shadow:none !important;
  1192 + -moz-box-shadow:none !important;
  1193 + box-shadow:none !important;
  1194 +}
  1195 +.ui-panelmenu .ui-panelmenu-header a {
  1196 + color:#0088CC;
  1197 +}
  1198 +.ui-buttonset .ui-state-default {
  1199 + -webkit-border-radius:0;
  1200 + -moz-border-radius:0;
  1201 + border-radius:0;
  1202 +}
  1203 +.ui-buttonset .ui-corner-left.ui-state-default {
  1204 + -moz-border-radius-topleft:4px;
  1205 + -webkit-border-top-left-radius:4px;
  1206 + border-top-left-radius:4px;
  1207 + -moz-border-radius-bottomleft:4px;
  1208 + -webkit-border-bottom-left-radius:4px;
  1209 + border-bottom-left-radius:4px;
  1210 +}
  1211 +.ui-buttonset .ui-corner-right.ui-state-default {
  1212 + -moz-border-radius-topright:4px;
  1213 + -webkit-border-top-right-radius:4px;
  1214 + border-top-right-radius:4px;
  1215 + -moz-border-radius-bottomright:4px;
  1216 + -webkit-border-bottom-right-radius:4px;
  1217 + border-bottom-right-radius:4px;
  1218 +}/** MenuBar **/
  1219 +.ui-menu.ui-menubar {
  1220 + padding-right:20px;
  1221 + padding-left:10px;
  1222 + background-color:#fafafa;
  1223 + background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);
  1224 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
  1225 + background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);
  1226 + background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);
  1227 + background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);
  1228 + background-repeat:repeat-x;
  1229 + border:1px solid #d4d4d4;
  1230 + -webkit-border-radius:4px;
  1231 + -moz-border-radius:4px;
  1232 + border-radius:4px;
  1233 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
  1234 + -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);
  1235 + -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);
  1236 + box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);
  1237 +}
  1238 +.ui-menu.ui-menubar .ui-menu-parent .ui-menu-child {
  1239 + padding:5px 0;
  1240 +}
  1241 +
  1242 +
  1243 +/* Overrides CSS para o padrao visual Portal ANS 2014 */
  1244 +
  1245 +body {
  1246 + margin:0;
  1247 + padding:0;
  1248 +}
  1249 +
  1250 +.ui-icon {
  1251 + width:16px;
  1252 + height:16px;
  1253 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1254 +}
  1255 +.ui-widget-content .ui-icon {
  1256 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1257 +}
  1258 +.ui-widget-header .ui-icon {
  1259 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1260 +}
  1261 +.ui-state-default .ui-icon {
  1262 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1263 +}
  1264 +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {
  1265 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1266 +}
  1267 +.ui-state-active .ui-icon {
  1268 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1269 +}
  1270 +.ui-state-highlight .ui-icon {
  1271 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1272 +}
  1273 +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {
  1274 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1275 +}
  1276 +
  1277 +.ans-header {
  1278 + width: 100%;
  1279 + height: 100px;
  1280 +}
  1281 +
  1282 +.ans-header img {
  1283 + width: 309px;
  1284 + height: 75px;
  1285 + float: left;
  1286 + margin-top:15px;
  1287 + margin-left: 25px;
  1288 +}
  1289 +
  1290 +.ans-header-titulo {
  1291 + float: left;
  1292 + margin: 42px 0 0 50px;
  1293 +}
  1294 +
  1295 +.ans-titulo-sistemas {
  1296 + font-family: 'helvetica_57_condensed', Arial, Helvetica; font-size: 24px; color: #79a12f; font-weight:normal;
  1297 +}
  1298 +
  1299 +.ans-barra-sistemas-logout {float:right; clear: both; margin:1em 2em 1em 1em; font-size:.9em;}
  1300 +.ans-corpo-admp {
  1301 + width:97%;
  1302 + margin:auto;
  1303 +}
  1304 +
  1305 +h1 {
  1306 + font-size:1.76em;
  1307 + color:#79a12f;
  1308 + font-weight:bold;
  1309 +}
  1310 +
  1311 +h2 {
  1312 + font-size:1.2em;
  1313 + color:#79a12f;
  1314 + font-weight:bold;
  1315 +}
  1316 +h3 {
  1317 + font-size:1.07em;
  1318 + color:#6d6d6d;
  1319 + font-weight:bold;
  1320 +}
  1321 +h4 {
  1322 + font-size:1em;
  1323 + color:#6d6d6d;
  1324 + font-weight:bold;
  1325 +}
  1326 +h5 {
  1327 + font-size:1em;
  1328 + color:#6d6d6d;
  1329 + font-weight:normal;
  1330 +}
  1331 +h6 {
  1332 + font-size:0.85em;
  1333 + color:#6d6d6d;
  1334 + font-style:italic;
  1335 +}
  1336 +h1, h2, h3 {
  1337 + margin-top:.2em;
  1338 +}
  1339 +
  1340 +a,
  1341 +.ui-commandlink,
  1342 +.ui-tabs.ui-widget.ui-widget-content.ui-corner-all.ui-hidden-container.ui-tabs-top a
  1343 +{
  1344 + color:#235f6e;
  1345 + text-decoration: none;
  1346 +}
  1347 +
  1348 +.ui-breadcrumb {
  1349 + padding:7px 14px;
  1350 + margin:0 0 18px;
  1351 + list-style:none;
  1352 + background-color:#fff;
  1353 + background-image:-moz-linear-gradient(top, #ffffff, #ffffff);
  1354 + background-image:-ms-linear-gradient(top, #ffffff, #ffffff);
  1355 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff));
  1356 + background-image:-webkit-linear-gradient(top, #ffffff, #ffffff);
  1357 + background-image:-o-linear-gradient(top, #ffffff, #ffffff);
  1358 + background-image:linear-gradient(top, #ffffff, #ffffff);
  1359 + background-repeat:repeat-x;
  1360 + border:1px solid #ffffff;
  1361 + -webkit-border-radius:3px;
  1362 + -moz-border-radius:3px;
  1363 + border-radius:3px;
  1364 +filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0);
  1365 + -webkit-box-shadow:inset 0 1px 0 #ffffff;
  1366 + -moz-box-shadow:inset 0 1px 0 #ffffff;
  1367 + box-shadow:inset 0 1px 0 #ffffff;
  1368 +}
  1369 +
  1370 +.ui-breadcrumb {
  1371 + padding: 7px 0px;
  1372 +}
  1373 +
  1374 +.ui-breadcrumb .ui-menuitem-link.ui-corner-all.ui-icon.ui-icon-home {
  1375 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1376 + margin:5px;
  1377 +}
  1378 +
  1379 +
  1380 +.ui-breadcrumb .ui-breadcrumb-chevron.ui-icon.ui-icon-triangle-1-e {
  1381 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1382 + margin:5px;
  1383 +}
  1384 +.ui-breadcrumb span.ui-menuitem-text {
  1385 + color:#235f6e;
  1386 + font-weight:normal;
  1387 +}
  1388 +
  1389 +a:hover,
  1390 +.ui-commandlink:hover {
  1391 + color:#235f6e;
  1392 + text-decoration: underline;
  1393 +}
  1394 +
  1395 +.ui-tabs-panels {
  1396 + background-color:#fff;
  1397 +}
  1398 +
  1399 +.ui-inputtext:focus,
  1400 +.ui-inputfield:focus,
  1401 +.ui-inputfield.ui-inputtext.ui-widget.ui-state-default.ui-corner-all:focus,
  1402 +.ui-autocomplete-multiple-container.ui-widget.ui-inputfield.ui-state-default.ui-corner-all.ui-state-focus,
  1403 +.ui-selectlistbox-filter.ui-inputfield.ui-widget.ui-state-default.ui-corner-all.ui-state-focus
  1404 + {
  1405 + border-color: #6a9327;
  1406 + outline: 0;
  1407 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 153, 51, 0.6);
  1408 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 153, 51, 0.6);
  1409 +}
  1410 +
  1411 +.ui-button,
  1412 +.ui-button-text-icon-left,
  1413 +.ui-state-highlight,
  1414 +.ui-widget-content .ui-state-highlight,
  1415 +.ui-widget-header .ui-state-highlight,
  1416 +.ui-chkbox-icon,
  1417 +.ui-slider-handle.ui-state-default,
  1418 +.ui-inputswitch-handle.ui-state-default,
  1419 +.ui-paginator-page.ui-state-default.ui-corner-all,
  1420 +.ui-paginator-next.ui-state-default.ui-corner-all,
  1421 +.ui-paginator-last.ui-state-default.ui-corner-all,
  1422 +.ui-treenode-content.ui-tree-selectable.ui-state-default.ui-corner-all,
  1423 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only,
  1424 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-icon-left,
  1425 +.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-all,
  1426 +.ui-selectonemenu-trigger.ui-state-default.ui-corner-right,
  1427 +.ui-log-header.ui-widget-header.ui-helper-clearfix.ui-draggable-handle,
  1428 +.ui-fieldset-legend.ui-corner-all.ui-state-default,
  1429 +.ui-notificationbar.ui-widget.ui-widget-content.top,
  1430 +.ui-panel-titlebar-icon.ui-corner-all.ui-state-default,
  1431 +.ui-state-default.ui-lightbox-nav-left.ui-corner-right.ui-helper-hidden,
  1432 +.ui-state-default.ui-lightbox-nav-right.ui-corner-left.ui-helper-hidden,
  1433 +.ui-icon-closethick,
  1434 +.ui-commandlink.ui-widget,
  1435 +.ui-paginator-first.ui-state-default.ui-corner-all,
  1436 +.ui-paginator-prev.ui-state-default.ui-corner-all,
  1437 +.ui-selectcheckboxmenu-trigger.ui-state-default.ui-corner-right,
  1438 +.ui-selectcheckboxmenu-header.ui-helper-clearfix,
  1439 +.ui-menu.ui-menu-dynamic .ui-menuitem.ui-widget.ui-corner-all,
  1440 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-icon-only,
  1441 +.ui-widget.ui-panelmenu-header.ui-state-default.ui-corner-all a,
  1442 +.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-left,
  1443 +.ui-datepicker-header.ui-widget-header.ui-helper-clearfix,
  1444 +.ui-datepicker-header.ui-widget-header.ui-helper-clearfix.ui-corner-right,
  1445 +.ui-timepicker-div .ui-widget-header.ui-helper-clearfix.ui-corner-all
  1446 +{
  1447 + color: #ffffff;
  1448 + background-color: #79A12F;
  1449 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1450 + cursor:pointer;
  1451 + *background-color:#79A12F;
  1452 + background-image:-ms-linear-gradient(top, #79A12F, #79A12F);
  1453 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#79A12F), to(#79A12F));
  1454 + background-image:-webkit-linear-gradient(top, #79A12F, #79A12F);
  1455 + background-image:-o-linear-gradient(top, #79A12F, #79A12F);
  1456 + background-image:linear-gradient(top, #79A12F, #79A12F);
  1457 + background-image:-moz-linear-gradient(top, #79A12F, #79A12F);
  1458 + background-repeat:repeat-x;
  1459 + border:1px solid #79A02E;
  1460 + *border:0;
  1461 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  1462 + border-color:#79A02E #79A02E #79A02E;
  1463 + border-bottom-color:#79A02E;
  1464 + -webkit-border-radius:4px;
  1465 + -moz-border-radius:4px;
  1466 + border-radius:4px;
  1467 + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#79A02E', endColorstr='#79A02E', GradientType=0);
  1468 + filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  1469 + *zoom:1;
  1470 + -webkit-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1471 + -moz-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1472 + box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1473 + font-weight:normal;
  1474 +}
  1475 +
  1476 +.ui-button:hover,
  1477 +.ui-button:focus,
  1478 +.ui-button:active,
  1479 +.ui-autocomplete-list-item:hover,
  1480 +.ui-slider-handle:hover,
  1481 +.ui-inputswitch-handle:hover,
  1482 +.ui-paginator-page.ui-state-default.ui-state-active.ui-corner-all,
  1483 +.ui-paginator-first.ui-state-default.ui-corner-all.ui-state-disabled,
  1484 +.ui-paginator-prev.ui-state-default.ui-corner-all.ui-state-disabled,
  1485 +.ui-paginator-page.ui-state-default.ui-corner-all:hover,
  1486 +.ui-paginator-next.ui-state-default.ui-corner-all:hover,
  1487 +.ui-paginator-last.ui-state-default.ui-corner-all:hover,
  1488 +.ui-picklist-item.ui-corner-all.ui-sortable-handle.ui-state-hover,
  1489 +.ui-orderlist-item.ui-corner-all.ui-sortable-handle.ui-state-hover,
  1490 +.ui-datepicker-next.ui-corner-all,
  1491 +.ui-datepicker-prev.ui-corner-all,
  1492 +.ui-datepicker-days-cell-over.ui-datepicker-current-day.ui-datepicker-today .ui-state-default.ui-state-highlight.ui-state-active,
  1493 +.ui-datepicker-days-cell-over.ui-datepicker-today .ui-state-default.ui-state-highlight,
  1494 +.ui-datepicker-current-day .ui-state-default.ui-state-active,
  1495 +.ui-selectonemenu-item.ui-selectonemenu-list-item.ui-corner-all:hover,
  1496 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-icon-left:hover,
  1497 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only:hover,
  1498 +.ui-log-button:hover,
  1499 +.ui-selectlistbox-item.ui-corner-all.ui-state-hover:hover,
  1500 +.ui-dialog-titlebar-icon.ui-dialog-titlebar-close.ui-corner-all,
  1501 +.ui-fieldset-legend.ui-corner-all.ui-state-default:hover,
  1502 +.ui-panel-titlebar-icon.ui-corner-all.ui-state-default:hover,
  1503 +.ui-commandlink.ui-widget:hover,
  1504 +.ui-selectcheckboxmenu-close.ui-corner-all:hover,
  1505 +.ui-multiselectlistbox-item.ui-state-hover,
  1506 +.ui-menu.ui-menu-dynamic .ui-menuitem.ui-widget.ui-corner-all:hover,
  1507 +.ui-tagcloud.ui-widget.ui-widget-content.ui-corner-all a:hover,
  1508 +.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-icon-only:hover,
  1509 +.ui-widget.ui-panelmenu-header.ui-state-default.ui-state-active.ui-corner-top a,
  1510 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-state-active
  1511 + {
  1512 + color: #ffffff;
  1513 + background-color: #658B1E;
  1514 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1515 + cursor:pointer;
  1516 + *background-color:#658B1E;
  1517 + background-image:-ms-linear-gradient(top, #658B1E, #658B1E);
  1518 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#658B1E), to(#658B1E));
  1519 + background-image:-webkit-linear-gradient(top, #658B1E, #658B1E);
  1520 + background-image:-o-linear-gradient(top, #658B1E, #658B1E);
  1521 + background-image:linear-gradient(top, #658B1E, #658B1E);
  1522 + background-image:-moz-linear-gradient(top, #658B1E, #658B1E);
  1523 + background-repeat:repeat-x;
  1524 + border:1px solid #79A02E;
  1525 + *border:0;
  1526 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  1527 + border-color:#79A02E #79A02E #79A02E;
  1528 + border-bottom-color:#79A02E;
  1529 + -webkit-border-radius:4px;
  1530 + -moz-border-radius:4px;
  1531 + border-radius:4px;
  1532 + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#79A02E', endColorstr='#79A02E', GradientType=0);
  1533 + filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  1534 + *zoom:1;
  1535 + -webkit-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1536 + -moz-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1537 + box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1538 +}
  1539 +
  1540 +.ContentSideSections.Implementation .ui-commandlink.ui-widget {
  1541 + padding:4px;
  1542 + background-image: none;
  1543 +}
  1544 +
  1545 +.ui-commandlink.ui-widget a {
  1546 + padding:4px;
  1547 +}
  1548 +
  1549 +.ui-commandlink.ui-widget, .ui-commandlink.ui-widget:hover, td.ui-commandlink.ui-widget a td.ui-commandlink.ui-widget a {
  1550 + width:16px;
  1551 + height:16px;
  1552 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1553 +}
  1554 +
  1555 +.ui-radiobutton-icon, .ui-chkbox-icon {
  1556 + color: #ffffff;
  1557 + background-color: #ffffff !important;
  1558 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1559 + cursor:pointer;
  1560 + *background-color:#ffffff !important;
  1561 + background-image:-ms-linear-gradient(top, #ffffff, #ffffff);
  1562 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff));
  1563 + background-image:-webkit-linear-gradient(top, #ffffff, #ffffff);
  1564 + background-image:-o-linear-gradient(top, #ffffff, #ffffff);
  1565 + background-image:linear-gradient(top, #ffffff, #ffffff);
  1566 + background-image:-moz-linear-gradient(top, #ffffff, #ffffff);
  1567 + background-repeat:repeat-x;
  1568 + border:1px solid #79A02E;
  1569 + *border:1;
  1570 + border-color:rgba(121, 160, 46, 0.1) rgba(121, 160, 46, 0.1) rgba(121, 160, 46, 0.25);
  1571 + border-color:#79A02E #79A02E #79A02E;
  1572 + border-bottom-color:#79A02E;
  1573 + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#79A02E', endColorstr='#79A02E', GradientType=0);
  1574 + filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  1575 + *zoom:1;
  1576 + -webkit-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1577 + -moz-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1578 + box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1579 + font-weight:normal;
  1580 +}
  1581 +
  1582 +.ui-radiobutton-icon {
  1583 + margin-left:0 !important;
  1584 +}
  1585 +
  1586 +.ui-radiobutton-icon.ui-icon.ui-icon-bullet {
  1587 + backgorund-color:#79A02E;
  1588 +}
  1589 +
  1590 +.ui-menu.ui-menubar.ui-megamenu.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix,
  1591 +.ui-widget-content.ui-menu-list.ui-corner-all.ui-helper-clearfix.ui-menu-child.ui-shadow,
  1592 +.ui-menu.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix
  1593 + {
  1594 + background-color: #097189 !important;
  1595 + color: #fff;
  1596 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1597 + font-weight:normal;
  1598 + -webkit-border-radius:0px;
  1599 + -moz-border-radius:0px;
  1600 + border-radius:0px;
  1601 + background-color:none !important;
  1602 + background-image:none !important;
  1603 +}
  1604 +
  1605 +
  1606 +.ui-datatable th,
  1607 +.ui-datagrid-header.ui-widget-header.ui-corner-top,
  1608 +.ui-datalist-header.ui-widget-header.ui-corner-top,
  1609 +.ui-datascroller-header.ui-widget-header.ui-corner-top,
  1610 +.ui-state-default.ui-resizable-column,
  1611 +.ui-menu-list.ui-helper-reset li.ui-widget-header.ui-corner-all,
  1612 +.ui-fieldset.ui-widget.ui-widget-content.ui-corner-all.ui-hidden-container.ui-droppable .ui-datatable-tablewrapper th
  1613 +{
  1614 + background-color: #3c899d !important;
  1615 + color: #fff;
  1616 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1617 + font-weight:normal;
  1618 + -webkit-border-radius:0px;
  1619 + -moz-border-radius:0px;
  1620 + border-radius:0px;
  1621 + background-color:none !important;
  1622 + background-image:none !important;
  1623 +}
  1624 +
  1625 +.ui-widget-header.ui-corner-all h3 {
  1626 + color:#ffffff;
  1627 +}
  1628 +
  1629 +.ui-menuitem-link.ui-submenu-link.ui-corner-all.ui-state-hover,
  1630 +.ui-menuitem-link.ui-corner-all.ui-state-hover
  1631 + {
  1632 + background-color: #3c899d !important;
  1633 + color: #fff;
  1634 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1635 + font-weight:normal;
  1636 + -webkit-border-radius:0px;
  1637 + -moz-border-radius:0px;
  1638 + border-radius:0px;
  1639 + background-color:none !important;
  1640 + background-image:none !important;
  1641 + *zoom:1;
  1642 + -webkit-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1643 + -moz-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1644 + box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1645 + font-weight:normal;
  1646 +}
  1647 +
  1648 +.ui-menuitem-text {
  1649 + color:#ffffff;
  1650 +}
  1651 +
  1652 +.ui-datagrid .ui-paginator {
  1653 + font-weight:normal;
  1654 +}
  1655 +
  1656 +.ui-paginator.ui-paginator-top.ui-widget-header,
  1657 +.ui-paginator.ui-paginator-bottom.ui-widget-header.ui-corner-bottom,
  1658 +.ui-treetable-header.ui-widget-header.ui-corner-top {
  1659 + background-color:#fff;
  1660 +}
  1661 +
  1662 +.ui-accordion-header.ui-helper-reset.ui-state-default.ui-state-active.ui-corner-top,
  1663 +.ui-accordion-header.ui-helper-reset.ui-state-default.ui-corner-all {
  1664 + color: #235F6E;
  1665 + background-color: #F5F5F5;
  1666 + border-color: #DDD;
  1667 + padding: 0.5em 0.5em 0.5em 1.2em;
  1668 +}
  1669 +
  1670 +.ui-accordion-content.ui-helper-reset.ui-widget-content {
  1671 + color: #333;
  1672 + background-color: #FFFFFF;
  1673 + border-color: #DDD;
  1674 +}
  1675 +
  1676 +.ui-messages-error.ui-corner-all,
  1677 +.ui-message.ui-message-error.ui-widget.ui-corner-all.ui-message-icon-only.ui-helper-clearfix,
  1678 +.ui-log-header.ui-widget-header.ui-helper-clearfix.ui-draggable-handle,
  1679 +.ui-log.ui-widget.ui-widget-content.ui-corner-all.ui-draggable,
  1680 +.ui-log-button:hover,
  1681 +.ui-password-panel.ui-widget.ui-state-highlight.ui-corner-all.ui-helper-hidden.ui-password-panel-inline,
  1682 +.ui-password-panel.ui-widget.ui-state-highlight.ui-corner-all.ui-helper-hidden.ui-password-panel-overlay.ui-shadow,
  1683 +.ui-carousel.ui-widget.ui-widget-content.ui-corner-all,
  1684 +.ui-panel.ui-widget.ui-widget-content.ui-corner-all,
  1685 +.ui-datagrid.ui-widget,
  1686 +.ui-datagrid-header.ui-widget-header.ui-corner-top,
  1687 +.ui-paginator.ui-paginator-bottom.ui-widget-header.ui-corner-bottom,
  1688 +.ui-paginator.ui-paginator-top.ui-widget-header.ui-corner-top,
  1689 +.fc-agendaWeek-button.ui-button.ui-state-default,
  1690 +.fc-day.ui-widget-content.fc-thu.fc-today.ui-state-highlight,
  1691 +.fc-day-grid-event.fc-event.fc-start.fc-end.fc-draggable,
  1692 +.fc-day-grid-event.fc-event.fc-not-start.fc-end.fc-draggable,
  1693 +.fc-day-grid-event.fc-event.fc-start.fc-not-end.fc-draggable,
  1694 +.ui-tree-container,
  1695 +.ui-treetable-header.ui-widget-header.ui-corner-top {
  1696 + -webkit-border-radius:0px;
  1697 + -moz-border-radius:0px;
  1698 + border-radius:0px;
  1699 +}
  1700 +
  1701 +.fc-month-button.ui-button.ui-state-default.ui-corner-left, .fc-prev-button.ui-button.ui-state-default.ui-corner-left {
  1702 + -webkit-border-top-right-radius:0px;
  1703 + -moz-border-top-right-radius:0px;
  1704 + border-top-right-radius:0px;
  1705 + -webkit-border-bottom-right-radius:0px;
  1706 + -moz-border-bottom-right-radius:0px;
  1707 + border-bottom-right-radius:0px;
  1708 +}
  1709 +
  1710 +
  1711 +.fc-agendaDay-button.ui-button.ui-state-default.ui-corner-right, .fc-next-button.ui-button.ui-state-default.ui-corner-right {
  1712 + -webkit-border-top-left-radius:0px;
  1713 + -moz-border-top-left-radius:0px;
  1714 + border-top-left-radius:0px;
  1715 + -webkit-border-bottom-left-radius:0px;
  1716 + -moz-border-bottom-left-radius:0px;
  1717 + border-bottom-left-radius:0px;
  1718 +}
  1719 +
  1720 +.ui-dialog-titlebar.ui-widget-header.ui-helper-clearfix.ui-corner-top.ui-draggable-handle {
  1721 + color: #ffffff;
  1722 + background-color: #79A12F;
  1723 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1724 + cursor:pointer;
  1725 + *background-color:#79A12F;
  1726 + background-image:-ms-linear-gradient(top, #79A12F, #79A12F);
  1727 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#79A12F), to(#79A12F));
  1728 + background-image:-webkit-linear-gradient(top, #79A12F, #79A12F);
  1729 + background-image:-o-linear-gradient(top, #79A12F, #79A12F);
  1730 + background-image:linear-gradient(top, #79A12F, #79A12F);
  1731 + background-image:-moz-linear-gradient(top, #79A12F, #79A12F);
  1732 + background-repeat:repeat-x;
  1733 + border:1px solid #79A02E;
  1734 +}
  1735 +
  1736 +.ui-separator.ui-state-default.ui-corner-all {
  1737 + border:0 none;
  1738 + border-top-color: #DDD;
  1739 + height:1px;
  1740 + overflow:hidden;
  1741 + background-color:#e5e5e5;
  1742 + -webkit-box-shadow:none;
  1743 + -moz-box-shadow:none;
  1744 + box-shadow:none;
  1745 + -webkit-border-radius:0;
  1746 + -moz-border-radius:0;
  1747 + border-radius:0;
  1748 +}
  1749 +
  1750 +.ui-inplace-display.ui-state-highlight:hover {
  1751 + padding:5px;
  1752 +}
  1753 +
  1754 +.ui-carousel .ui-carousel-header,
  1755 +.ui-carousel .ui-carousel-footer,
  1756 +.ui-panel-titlebar.ui-widget-header.ui-helper-clearfix.ui-corner-all
  1757 + {
  1758 + color:#ffffff;
  1759 + background-color: #79A12F;
  1760 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1761 + cursor:pointer;
  1762 + *background-color:#79A12F;
  1763 + -webkit-border-radius:0px;
  1764 + -moz-border-radius:0px;
  1765 + border-radius:0px;
  1766 +}
  1767 +
  1768 +
  1769 +.ui-carousel .ui-carousel-viewport ul li {
  1770 + margin: 1px;
  1771 + padding: 0px;
  1772 + float: left;
  1773 + -webkit-border-radius:0px;
  1774 + -moz-border-radius:0px;
  1775 + border-radius:0px;
  1776 +}
  1777 +
  1778 +.ui-tree-toggler.ui-icon.ui-icon-triangle-1-e,
  1779 +.ui-tree-toggler.ui-icon.ui-icon-triangle-1-s,
  1780 +.ui-treetable-toggler.ui-icon.ui-icon-triangle-1-e.ui-c,
  1781 +.ui-treetable-toggler.ui-icon.ui-c.ui-icon-triangle-1-s {
  1782 + width:16px;
  1783 + height:16px;
  1784 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1785 +}
  1786 +
  1787 +.ui-corner-all .ui-icon {
  1788 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1789 +}
  1790 +
  1791 +.ui-chkbox-icon.ui-icon.ui-c.ui-icon-check,
  1792 +.ui-chkbox-icon.ui-icon.ui-icon-check,
  1793 +.ui-radiobutton-icon.ui-icon.ui-icon-bullet {
  1794 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1795 +}
  1796 +
  1797 +.ui-datepicker .ui-datepicker-calendar .ui-state-default {
  1798 + color:#235f6e;
  1799 + text-decoration: none;
  1800 + font-weight:normal;
  1801 +}
  1802 +
  1803 +.ui-buttonset .ui-state-default.ui-state-hover,
  1804 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-state-active,
  1805 +.ui-menu.ui-menu-dynamic .ui-menuitem.ui-widget.ui-corner-all,
  1806 +.ui-menu.ui-menu-dynamic .ui-menuitem.ui-widget.ui-corner-all:hover {
  1807 + -webkit-border-radius:0;
  1808 + -moz-border-radius:0;
  1809 + border-radius:0;
  1810 +}
  1811 +
  1812 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-left.ui-state-hover,
  1813 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-left.ui-state-focus,
  1814 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-left.ui-state-active,
  1815 +.ui-button.ui-widget.ui-state-default.ui-corner-left.ui-button-text-icon-left.ui-state-hover,
  1816 +.ui-button.ui-widget.ui-state-default.ui-corner-left.ui-button-text-icon-left.ui-state-focus,
  1817 +.ui-button.ui-widget.ui-state-default.ui-corner-left.ui-button-text-icon-left.ui-state-active
  1818 + {
  1819 + -moz-border-radius-topleft:4px;
  1820 + -webkit-border-top-left-radius:4px;
  1821 + border-top-left-radius:4px;
  1822 + -moz-border-radius-bottomleft:4px;
  1823 + -webkit-border-bottom-left-radius:4px;
  1824 + border-bottom-left-radius:4px;
  1825 + -moz-border-radius-topright:0px;
  1826 + -webkit-border-top-right-radius:0px;
  1827 + border-top-right-radius:0px;
  1828 + -moz-border-radius-bottomright:0px;
  1829 + -webkit-border-bottom-right-radius:0px;
  1830 + border-bottom-right-radius:0px;
  1831 +}
  1832 +
  1833 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-right.ui-state-hover,
  1834 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-right.ui-state-focus,
  1835 +.ui-button.ui-widget.ui-state-default.ui-button-text-only.ui-corner-right.ui-state-active,
  1836 +.ui-button.ui-widget.ui-state-default.ui-corner-left.ui-button-text-icon-right.ui-state-hover,
  1837 +.ui-button.ui-widget.ui-state-default.ui-corner-left.ui-button-text-icon-right.ui-state-focus
  1838 + {
  1839 + -moz-border-radius-topright:4px;
  1840 + -webkit-border-top-right-radius:4px;
  1841 + border-top-right-radius:4px;
  1842 + -moz-border-radius-bottomright:4px;
  1843 + -webkit-border-bottom-right-radius:4px;
  1844 + border-bottom-right-radius:4px;
  1845 +}
  1846 +
  1847 +.ui-menu.ui-menu-dynamic.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix.ui-shadow {
  1848 + background-color: #fff !important;
  1849 + text-shadow: 0px 0px 0px rgba(255, 255, 255, 0.75);
  1850 + font-weight: normal;
  1851 + border-radius: 4px;
  1852 + background-image: none !important;
  1853 + padding-right:2px;
  1854 +}
  1855 +
  1856 +
  1857 +.ui-selectcheckboxmenu-label.ui-corner-all {
  1858 + cursor: text;
  1859 + background: none repeat scroll 0% 0% #FFF;
  1860 + border: 1px solid #CCC;
  1861 + border-radius: 3px;
  1862 + box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.075) inset;
  1863 + transition: border 0.2s linear 0s, box-shadow 0.2s linear 0s;
  1864 +}
  1865 +
  1866 +.ui-panelmenu-content.ui-widget-content.ui-helper-hidden .ui-menuitem-link.ui-corner-all a {
  1867 + color: #79A02E !important;
  1868 + background-color: #ffffff;
  1869 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75);
  1870 + cursor:pointer;
  1871 + *background-color:#ffffff;
  1872 + background-image:-ms-linear-gradient(top, #ffffff, #ffffff);
  1873 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff));
  1874 + background-image:-webkit-linear-gradient(top, #ffffff, #ffffff);
  1875 + background-image:-o-linear-gradient(top, #ffffff, #ffffff);
  1876 + background-image:linear-gradient(top, #ffffff, #ffffff);
  1877 + background-image:-moz-linear-gradient(top, #ffffff, #ffffff);
  1878 + background-repeat:repeat-x;
  1879 + border:0px solid #79A02E;
  1880 + *border:0;
  1881 + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  1882 + border-color:#79A02E #79A02E #79A02E;
  1883 + border-bottom-color:#79A02E;
  1884 + -webkit-border-radius:0px;
  1885 + -moz-border-radius:0px;
  1886 + border-radius:0px;
  1887 + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#79A02E', endColorstr='#79A02E', GradientType=0);
  1888 + filter:progid:dximagetransform.microsoft.gradient(enabled=false);
  1889 + *zoom:1;
  1890 + -webkit-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1891 + -moz-box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1892 + box-shadow:inset 0 0px 0 rgba(255, 255, 255, 0.2), 0 0px 0px rgba(0, 0, 0, 0.05);
  1893 + font-weight:normal;
  1894 + color: #79A02E !important;
  1895 +}
  1896 +
  1897 +.ui-datepicker .ui-datepicker-calendar .ui-state-default {
  1898 + color: #235F6E;
  1899 + text-decoration: none;
  1900 + font-weight: normal;
  1901 + border: 1px solid #ccc;
  1902 +}
  1903 +
  1904 +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled {
  1905 + opacity: 0.35;
  1906 + background: none;}
  1907 +
  1908 +
  1909 +.ui-tabmenu .ui-tabmenu-nav.ui-widget-header {
  1910 + background-color: #097189;
  1911 + background-image: -moz-linear-gradient(center top , #3c899d, #097189);
  1912 + background-repeat: repeat-x;
  1913 + min-height: 38px;
  1914 + padding: 0 20px;
  1915 + text-shadow: 0px rgba(255, 255, 255, 0.8);
  1916 +}
  1917 +
  1918 +.ui-tabmenuitem.ui-state-default.ui-state-active.ui-corner-top.ui-tabmenuitem-hasicon {
  1919 + background-color: #097189;
  1920 + background-image: -moz-linear-gradient(center top , #097189, #3c899d);
  1921 + background-repeat: repeat-x;
  1922 + text-shadow: 0px rgba(255, 255, 255, 0.8);
  1923 +}
  1924 +
  1925 +
  1926 +.ui-tabmenuitem.ui-state-default.ui-corner-top.ui-tabmenuitem-hasicon {
  1927 + background-color: #097189;
  1928 + background-image: -moz-linear-gradient(center top , #3c899d ,#097189);
  1929 + background-repeat: repeat-x;
  1930 + text-shadow: 0px rgba(255, 255, 255, 0.8);
  1931 +}
  1932 +
  1933 +.ui-panelmenu-panel .ui-widget.ui-panelmenu-header.ui-state-default.ui-state-active.ui-corner-top span {
  1934 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  1935 +}
  1936 +
  1937 +.ui-panelmenu-panel .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all a.ui-menuitem-link.ui-corner-all span.ui-menuitem-text {
  1938 + color: #235F6E;
  1939 +}
  1940 +
  1941 +.ui-panelmenu-panel .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all a.ui-menuitem-link.ui-corner-all span.ui-menuitem-icon, .ui-panelmenu-panel .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all a.ui-menuitem-link.ui-corner-all span.ui-panelmenu-icon {
  1942 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1943 +}
  1944 +
  1945 +.ui-panelmenu-panel .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all .ui-menuitem-link.ui-corner-all.ui-state-hover {
  1946 + color: #FFFFFF;
  1947 + background-color: #ffffff !important;
  1948 + text-shadow:0 0px 0px rgba(255, 255, 255, 0.75) !important;
  1949 + cursor:pointer;
  1950 + *background-color:#ffffff !important;
  1951 + background-image:-ms-linear-gradient(top, #ffffff, #ffffff) !important;
  1952 + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff)) !important ;
  1953 + background-image:-webkit-linear-gradient(top, #ffffff, #ffffff) !important;
  1954 + background-image:-o-linear-gradient(top, #ffffff, #ffffff) !important;
  1955 + background-image:linear-gradient(top, #ffffff, #ffffff) !important;
  1956 + background-image:-moz-linear-gradient(top, #ffffff, #ffffff) !important;
  1957 + background-repeat:repeat-x;
  1958 + border:1px solid #FFFFFF;
  1959 +}
  1960 +
  1961 +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
  1962 + color: #4f4f4f;
  1963 + text-shadow: 0 0 0 rgba(255, 255, 255, 0.8);
  1964 +}
  1965 +
  1966 +
  1967 +
  1968 +
  1969 +/*SplitButton */
  1970 +.ui-menu.ui-menu-dynamic.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix.ui-shadow .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all {
  1971 + border:0px;
  1972 +}
  1973 +
  1974 +.ui-menu.ui-menu-dynamic.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix.ui-shadow .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all .ui-menuitem-link.ui-corner-all {
  1975 + background-color:#fff;
  1976 +}
  1977 +
  1978 +.ui-menu.ui-menu-dynamic.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix.ui-shadow .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all .ui-menuitem-link.ui-corner-all .ui-menuitem-icon {
  1979 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  1980 +}
  1981 +
  1982 +.ui-menu.ui-menu-dynamic.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix.ui-shadow .ui-menu-list.ui-helper-reset .ui-menuitem.ui-widget.ui-corner-all .ui-menuitem-link.ui-corner-all .ui-menuitem-text {
  1983 + color:#333;
  1984 +}
  1985 +
  1986 +.ui-splitbutton-menubutton.ui-button.ui-widget.ui-state-default.ui-corner-right.ui-button-icon-only.ui-state-active,
  1987 +.ui-splitbutton-menubutton.ui-button.ui-widget.ui-state-default.ui-corner-right.ui-button-icon-only.ui-state-hover,
  1988 +.ui-splitbutton-menubutton.ui-button.ui-widget.ui-state-default.ui-corner-right.ui-button-icon-only.ui-state-active,
  1989 +.ui-splitbutton-menubutton.ui-button.ui-widget.ui-state-default.ui-corner-right.ui-button-icon-only.ui-state-focus
  1990 + {
  1991 + -moz-border-radius-topright:4px;
  1992 + -webkit-border-top-right-radius:4px;
  1993 + border-top-right-radius:4px;
  1994 + -moz-border-radius-bottomright:4px;
  1995 + -webkit-border-bottom-right-radius:4px;
  1996 + border-bottom-right-radius:4px;
  1997 + -moz-border-radius-topleft:0px;
  1998 + -webkit-border-top-left-radius:0px;
  1999 + border-top-left-radius:0px;
  2000 + -moz-border-radius-bottomleft:0px;
  2001 + -webkit-border-bottom-left-radius:0px;
  2002 + border-bottom-left-radius:0px;
  2003 +}
  2004 +
  2005 +.ui-splitbutton-menubutton.ui-button.ui-widget.ui-state-default.ui-corner-right.ui-button-icon-only.ui-state-active {
  2006 + width:16px;
  2007 + height:16px;
  2008 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png']}");
  2009 +}
  2010 +
  2011 +/*Datalist*/
  2012 +.ui-datalist-content.ui-widget-content .ui-datalist-data.ui-datalist-nobullets .ui-datalist-item .ui-commandlink.ui-widget {
  2013 + padding:0 !important;
  2014 +
  2015 +}
  2016 +.ui-datalist-content.ui-widget-content .ui-datalist-data.ui-datalist-nobullets .ui-datalist-item .ui-icon.ui-icon-search {
  2017 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_ffffff_256x240.png");
  2018 +}
  2019 +
  2020 +.ui-panel-content.ui-widget-content .ui-commandlink.ui-widget {
  2021 + background:none !important;
  2022 + border:0px;
  2023 +}
  2024 +
  2025 +.ui-panel-content.ui-widget-content .ui-commandlink.ui-widget .ui-icon.ui-icon-search {
  2026 + width:16px;
  2027 + height:16px;
  2028 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  2029 +}
  2030 +
  2031 +/*tabview*/
  2032 +
  2033 +.ui-tabs.ui-widget.ui-widget-content.ui-corner-all.ui-hidden-container.ui-tabs-top
  2034 +.ui-tabs-nav.ui-helper-reset.ui-helper-clearfix.ui-widget-header.ui-corner-all
  2035 +.ui-state-default.ui-corner-top.ui-state-hover {
  2036 + background-color:#ffffff;
  2037 +}
  2038 +
  2039 +.ui-tabs.ui-widget.ui-widget-content.ui-corner-all.ui-hidden-container.ui-tabs-top
  2040 +.ui-tabs-nav.ui-helper-reset.ui-helper-clearfix.ui-widget-header.ui-corner-all
  2041 +.ui-state-default.ui-corner-top
  2042 +.ui-icon.ui-icon-close {
  2043 + background-image:url("#{facesContext.externalContext.requestContextPath}/resources/images/ui-icons_333333_256x240.png");
  2044 +}
  2045 +
  2046 +/* Menu - Menubar */
  2047 +.ui-menu.ui-menubar.ui-widget.ui-widget-content.ui-corner-all.ui-helper-clearfix .ui-menu-list.ui-helper-reset
  2048 +span.ui-menuitem-text {
  2049 + padding:0 0.5em 0 0;
  2050 +}
  2051 +
  2052 +.ui-menu.ui-widget .ui-menu-list .ui-widget-header {
  2053 + border-width: 0;
  2054 + width: 100%;
  2055 +}
  2056 +
  2057 +.footer {
  2058 + position:absolute;
  2059 + bottom:0;
  2060 + width:100%;
  2061 + text-align: center;
  2062 + padding-bottom: 5px;
  2063 +}
  2064 +
  2065 +.footerText{
  2066 + color:#79a12f;
  2067 + font-size:70%;
  2068 +}
  2069 +
... ...
src/main/webapp/resources/images/ajax-loader.gif 0 → 100644

3.13 KB

src/main/webapp/resources/images/ans_logo.gif 0 → 100644

7.73 KB

src/main/webapp/resources/images/bkg.gif 0 → 100644

50.4 KB

src/main/webapp/resources/images/favicon.ico 0 → 100644
No preview for this file type
src/main/webapp/resources/images/picketlink-banner-1180px.png 0 → 100644

102 KB

src/main/webapp/resources/images/rh_bg.png 0 → 100644

577 Bytes

src/main/webapp/resources/images/search.png 0 → 100644

1.52 KB

src/main/webapp/resources/images/topo_bg.png 0 → 100644

20.2 KB

src/main/webapp/resources/images/ui-icons_ffffff_256x240.png 0 → 100644

4.27 KB

src/main/webapp/resources/js/funcoes.js 0 → 100644
  1 +++ a/src/main/webapp/resources/js/funcoes.js
... ...
src/main/webapp/template/template.xhtml 0 → 100644
  1 +++ a/src/main/webapp/template/template.xhtml
... ... @@ -0,0 +1,56 @@
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml"
  3 + xmlns:ui="http://java.sun.com/jsf/facelets"
  4 + xmlns:h="http://java.sun.com/jsf/html"
  5 + xmlns:f="http://java.sun.com/jsf/core"
  6 + xmlns:p="http://primefaces.org/ui">
  7 + <h:head>
  8 + <link type="text/css" rel="stylesheet" href="https://www.ans.gov.br/images/PrimeFaces/css/theme.css" />
  9 + <link type="text/css" rel="stylesheet" href="https://www.ans.gov.br/images/PrimeFaces/css/style-prime-custom-ans.css" />
  10 + <h:outputStylesheet name="/css/css_menu.css" />
  11 +
  12 + <ui:insert name="AreaHead" >
  13 + <title>#{msg['title.sistema']}</title>
  14 + </ui:insert>
  15 + </h:head>
  16 +
  17 + <h:body>
  18 + <div style="width: 100%; height: 75px; background: url('/JavaServerFaces/faces/javax.faces.resource/topo_bg.png?ln=images') fixed no-repeat top right;">
  19 + <h:form>
  20 + <h:link outcome="/pages/home" >
  21 + <p:graphicImage style="width: 309px; height: 75px; float: left; margin-left: 25px;" library="images" name="ans_logo.gif" />
  22 + </h:link>
  23 + </h:form>
  24 +
  25 + <div style="float: left; margin: 27px 0 0 50px;">
  26 + <label style="font-family: 'helvetica_57_condensed', Arial; font-size: 24px; color: #79a12f;">
  27 + #{msg['title.sistema']}
  28 + </label>
  29 + </div>
  30 + </div>
  31 +
  32 + <ui:insert name="menu" >
  33 + <ui:include src="/pages/includes/menu.xhtml"/>
  34 + </ui:insert>
  35 +
  36 + <div style="width:80%;margin:auto;">
  37 + <p:messages id="mensagem" autoUpdate="true" redisplay="false" showDetail="false"/>
  38 +
  39 + <ui:insert name="corpo" >
  40 + <h:outputText value="Default content"/>
  41 + </ui:insert>
  42 + </div>
  43 +
  44 + <div id="footer" class="footer">
  45 + <p:separator/>
  46 + <h:outputText class="footerText" value="#{lb['label.ans']}" /><br/>
  47 + <h:outputText class="footerText" value="#{msg['title.sistema']}" /><br/>
  48 + <h:outputText class="footerText" value="#{lb['label.versao']}" /><br/>
  49 + </div>
  50 +
  51 + </h:body>
  52 +
  53 +</html>
  54 +
  55 +
  56 +
... ...