You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

597 lines
19 KiB

/*
* Utils.java
*
* Created on October 12, 2007, 9:39 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package utils;
import beans.Utilizador;
import com.evolute.utils.Singleton;
import com.evolute.utils.error.ErrorLogger;
import com.sun.rave.web.ui.component.DropDown;
import com.sun.rave.web.ui.model.Option;
import db.providers.AnalisesDataProvider;
import db.providers.EstatisticasDataProvider;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.faces.context.ExternalContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
/**
*
* @author lluis
*/
public class Utils {
/** Creates a new instance of Utils */
public Utils() {
}
public static String unicodeToHTML( String text )
{
if( text == null || text.length() < 6 )
{
return text;
}
String output = text;
output = output.replaceAll( "\\\\u0009", " " );
output = output.replaceAll( "\\\\u000a", "<br>" );
output = output.replaceAll( "\\\\u00a0", "&nbsp;" );
output = output.replaceAll( "\\\\u00aa", "&ordf;" );
output = output.replaceAll( "\\\\u00ba", "&ordm;" );
output = output.replaceAll( "\\\\u00c0", "À" );
output = output.replaceAll( "\\\\u00c1", "Á" );
output = output.replaceAll( "\\\\u00c2", "Â" );
output = output.replaceAll( "\\\\u00c3", "Ã" );
output = output.replaceAll( "\\\\u00c7", "Ç" );
output = output.replaceAll( "\\\\u00c8", "È" );
output = output.replaceAll( "\\\\u00c9", "É" );
output = output.replaceAll( "\\\\u00d3", "Ó" );
output = output.replaceAll( "\\\\u00d2", "Ò" );
output = output.replaceAll( "\\\\u00ca", "Ê" );
output = output.replaceAll( "\\\\u00cc", "Ì" );
output = output.replaceAll( "\\\\u00cd", "Í" );
output = output.replaceAll( "\\\\u00ce", "Î" );
output = output.replaceAll( "\\\\u00d2", "ò" );
output = output.replaceAll( "\\\\u00d3", "ó" );
output = output.replaceAll( "\\\\u00d4", "ô" );
output = output.replaceAll( "\\\\u00d5", "õ" );
output = output.replaceAll( "\\\\u00d9", "Ù" );
output = output.replaceAll( "\\\\u00da", "Ú" );
output = output.replaceAll( "\\\\u00db", "Û" );
output = output.replaceAll( "\\\\u00e0", "à" );
output = output.replaceAll( "\\\\u00e1", "á" );
output = output.replaceAll( "\\\\u00e2", "â" );
output = output.replaceAll( "\\\\u00e3", "ã" );
output = output.replaceAll( "\\\\u00e7", "ç" );
output = output.replaceAll( "\\\\u00e8", "è" );
output = output.replaceAll( "\\\\u00e9", "é" );
output = output.replaceAll( "\\\\u00ea", "ê" );
output = output.replaceAll( "\\\\u00ec", "ì" );
output = output.replaceAll( "\\\\u00ed", "í" );
output = output.replaceAll( "\\\\u00ee", "î" );
output = output.replaceAll( "\\\\u00f2", "ò" );
output = output.replaceAll( "\\\\u00f3", "ó" );
output = output.replaceAll( "\\\\u00f4", "ô" );
output = output.replaceAll( "\\\\u00f5", "õ" );
output = output.replaceAll( "\\\\u00f9", "ù" );
output = output.replaceAll( "\\\\u00fa", "ú" );
output = output.replaceAll( "\\\\u00fb", "û" );
output = output.replaceAll( "\\\\u0153", "&#156;" );
output = output.replaceAll( "\\\\u2013", "-" );
output = output.replaceAll( "\\\\u2014", "-" );
output = output.replaceAll( "\\\\u2018|\\\\u2019", "'" );
output = output.replaceAll( "\\\\u201c|\\\\u201d", "\"" );
output = output.replaceAll( "\\\\u2022", "*" );
output = output.replaceAll( "\\\\u2026", "..." );
return output;
}
public static String textToUnicode( String text )
{
String output = text;
output = output.replaceAll( "À", "\\\\\\\\\\\\\\\\u00c0" );
output = output.replaceAll( "Á", "\\\\\\\\\\\\\\\\u00c1" );
output = output.replaceAll( "Â", "\\\\\\\\\\\\\\\\u00c2" );
output = output.replaceAll( "Ã", "\\\\\\\\\\\\\\\\u00c3" );
output = output.replaceAll( "Ç", "\\\\\\\\\\\\\\\\u00c7" );
output = output.replaceAll( "È", "\\\\\\\\\\\\\\\\u00c8" );
output = output.replaceAll( "É", "\\\\\\\\\\\\\\\\u00c9" );
output = output.replaceAll( "Ó", "\\\\\\\\\\\\\\\\u00d3" );
output = output.replaceAll( "Ò", "\\\\\\\\\\\\\\\\u00d2" );
output = output.replaceAll( "Ê", "\\\\\\\\\\\\\\\\u00ca" );
output = output.replaceAll( "Ì", "\\\\\\\\\\\\\\\\u00cc" );
output = output.replaceAll( "Í", "\\\\\\\\\\\\\\\\u00cd" );
output = output.replaceAll( "Î", "\\\\\\\\\\\\\\\\u00ce" );
output = output.replaceAll( "ò", "\\\\\\\\\\\\\\\\u00d2" );
output = output.replaceAll( "ó", "\\\\\\\\\\\\\\\\u00d3" );
output = output.replaceAll( "ô", "\\\\\\\\\\\\\\\\u00d4" );
output = output.replaceAll( "õ", "\\\\\\\\\\\\\\\\u00d5" );
output = output.replaceAll( "Ù", "\\\\\\\\\\\\\\\\u00d9" );
output = output.replaceAll( "Ú", "\\\\\\\\\\\\\\\\u00da" );
output = output.replaceAll( "Û", "\\\\\\\\\\\\\\\\u00db" );
output = output.replaceAll( "à", "\\\\\\\\\\\\\\\\u00e0" );
output = output.replaceAll( "á", "\\\\\\\\\\\\\\\\u00e1" );
output = output.replaceAll( "â", "\\\\\\\\\\\\\\\\u00e2" );
output = output.replaceAll( "ã", "\\\\\\\\\\\\\\\\u00e3" );
output = output.replaceAll( "ç", "\\\\\\\\\\\\\\\\u00e7" );
output = output.replaceAll( "è", "\\\\\\\\\\\\\\\\u00e8" );
output = output.replaceAll( "é", "\\\\\\\\\\\\\\\\u00e9" );
output = output.replaceAll( "ê", "\\\\\\\\\\\\\\\\u00ea" );
output = output.replaceAll( "ì", "\\\\\\\\\\\\\\\\u00ec" );
output = output.replaceAll( "í", "\\\\\\\\\\\\\\\\u00ed" );
output = output.replaceAll( "î", "\\\\\\\\\\\\\\\\u00ee" );
output = output.replaceAll( "ò", "\\\\\\\\\\\\\\\\u00f2" );
output = output.replaceAll( "ó", "\\\\\\\\\\\\\\\\u00f3" );
output = output.replaceAll( "ô", "\\\\\\\\\\\\\\\\u00f4" );
output = output.replaceAll( "õ", "\\\\\\\\\\\\\\\\u00f5" );
output = output.replaceAll( "ù", "\\\\\\\\\\\\\\\\u00f9" );
output = output.replaceAll( "ú", "\\\\\\\\\\\\\\\\u00fa" );
output = output.replaceAll( "û", "\\\\\\\\\\\\\\\\u00fb" );
return output;
}
public static String textToHtml( String text )
{
String output = text;
output = output.replaceAll( "À", "&Agrave;" );
output = output.replaceAll( "Á", "&Aacute;" );
output = output.replaceAll( "Â", "&Acirc;" );
output = output.replaceAll( "Ã", "&Atilde;" );
output = output.replaceAll( "Ç", "&Ccedil;" );
output = output.replaceAll( "È", "&Egrave;" );
output = output.replaceAll( "É", "&Eacute;" );
output = output.replaceAll( "Ó", "&Oacute;" );
output = output.replaceAll( "Ò", "&Ograve;" );
output = output.replaceAll( "Ê", "&Ecirc;" );
output = output.replaceAll( "Ì", "&Igrave;" );
output = output.replaceAll( "Í", "&Iacute;" );
output = output.replaceAll( "Î", "&Icirc;" );
output = output.replaceAll( "ò", "&ograve;" );
output = output.replaceAll( "ó", "&oacute;" );
output = output.replaceAll( "ô", "&ocirc;" );
output = output.replaceAll( "õ", "&otilde;" );
output = output.replaceAll( "Ù", "&Ugrave;" );
output = output.replaceAll( "Ú", "&Uacute;" );
output = output.replaceAll( "Û", "&Ucirc;" );
output = output.replaceAll( "à", "&agrave;" );
output = output.replaceAll( "á", "&aacute;" );
output = output.replaceAll( "â", "&acirc;" );
output = output.replaceAll( "ã", "&atilde;" );
output = output.replaceAll( "ç", "&ccedil;" );
output = output.replaceAll( "è", "&egrave;" );
output = output.replaceAll( "é", "&eacute;" );
output = output.replaceAll( "ê", "&ecirc;" );
output = output.replaceAll( "ì", "&igrave;" );
output = output.replaceAll( "í", "&iacute;" );
output = output.replaceAll( "î", "&icirc;" );
output = output.replaceAll( "ò", "&ograve;" );
output = output.replaceAll( "ó", "&oacute;" );
output = output.replaceAll( "ô", "&ocirc;" );
output = output.replaceAll( "õ", "&otilde;" );
output = output.replaceAll( "ù", "&ugrave" );
output = output.replaceAll( "ú", "&uacute;" );
output = output.replaceAll( "û", "&ucirc;" );
return output;
}
public static String htmlToText(String text)
{
String output = text;
if (output != null)
{
output = output.replaceAll("&Agrave;", "À");
output = output.replaceAll("&Aacute;", "Á");
output = output.replaceAll("&Acirc;", "Â");
output = output.replaceAll("&Atilde;", "Ã");
output = output.replaceAll("&Ccedil;", "Ç");
output = output.replaceAll("&Egrave;", "È");
output = output.replaceAll("&Eacute;", "É");
output = output.replaceAll("&Oacute;", "Ó");
output = output.replaceAll("&Ograve;", "Ò");
output = output.replaceAll("&Ecirc;", "Ê");
output = output.replaceAll("&Igrave;", "Ì");
output = output.replaceAll("&Iacute;", "Í");
output = output.replaceAll("&Icirc;", "Î");
output = output.replaceAll("&ograve;", "ò");
output = output.replaceAll("&oacute;", "ó");
output = output.replaceAll("&ocirc;", "ô");
output = output.replaceAll("&otilde;", "õ");
output = output.replaceAll("&Ugrave;", "Ù");
output = output.replaceAll("&Uacute;", "Ú");
output = output.replaceAll("&Ucirc;", "Û");
output = output.replaceAll("&agrave;", "à");
output = output.replaceAll("&aacute;", "á");
output = output.replaceAll("&acirc;", "â");
output = output.replaceAll("&atilde;", "ã");
output = output.replaceAll("&ccedil;", "ç");
output = output.replaceAll("&egrave;", "è");
output = output.replaceAll("&eacute;", "é");
output = output.replaceAll("&ecirc;", "ê");
output = output.replaceAll("&igrave;", "ì");
output = output.replaceAll("&iacute;", "í");
output = output.replaceAll("&icirc;", "î");
output = output.replaceAll("&ograve;", "ò");
output = output.replaceAll("&oacute;", "ó");
output = output.replaceAll("&ocirc;", "ô");
output = output.replaceAll("&otilde;", "õ");
output = output.replaceAll("&ugrave", "ù");
output = output.replaceAll("&uacute;", "ú");
output = output.replaceAll("&ucirc;", "û");
}
return output;
}
public static String getPageFrom(String referer)
{
String pageFrom = referer.substring(referer.lastIndexOf("/")+1);
return pageFrom;
}
public static boolean isValidEmail(String email){
boolean res = true;
System.out.println("IS VALID EMAIL");
int indexOfAtChar=email.indexOf("@");
if(!isValidEmailCharacters(email))
{
return false;
}
if(indexOfAtChar > 0)
{
int indexOfDotChar =
email.indexOf(".",indexOfAtChar);
if(indexOfDotChar > 0)
{
res = true;
}
else
{
res = false;
}
}
else{
res = false;
}
return res;
}
private static boolean isValidEmailCharacters(String email)
{
if(email.indexOf("à") != -1)
{
return false;
}
else if(email.indexOf("á") != -1)
{
return false;
}
else if(email.indexOf("ã") != -1)
{
return false;
}
else if(email.indexOf("â") != -1)
{
return false;
}
else if(email.indexOf("è") != -1)
{
return false;
}
else if(email.indexOf("é") != -1)
{
return false;
}
else if(email.indexOf("ê") != -1)
{
return false;
}
else if(email.indexOf("ì") != -1)
{
return false;
}
else if(email.indexOf("í") != -1)
{
return false;
}
else if(email.indexOf("ò") != -1)
{
return false;
}
else if(email.indexOf("ó") != -1)
{
return false;
}
else if(email.indexOf("ô") != -1)
{
return false;
}
else if(email.indexOf("õ") != -1)
{
return false;
}
else if(email.indexOf("ù") != -1)
{
return false;
}
else if(email.indexOf("ú") != -1)
{
return false;
}
else if(email.indexOf("û") != -1)
{
return false;
}
else if(email.indexOf("ç") != -1)
{
return false;
}
else if(email.indexOf("À") != -1)
{
return false;
}
else if(email.indexOf("Á") != -1)
{
return false;
}
else if(email.indexOf("Ã") != -1)
{
return false;
}
else if(email.indexOf("Â") != -1)
{
return false;
}
else if(email.indexOf("È") != -1)
{
return false;
}
else if(email.indexOf("É") != -1)
{
return false;
}
else if(email.indexOf("Ê") != -1)
{
return false;
}
else if(email.indexOf("Ì") != -1)
{
return false;
}
else if(email.indexOf("Í") != -1)
{
return false;
}
else if(email.indexOf("Ò") != -1)
{
return false;
}
else if(email.indexOf("Ó") != -1)
{
return false;
}
else if(email.indexOf("Ô") != -1)
{
return false;
}
else if(email.indexOf("Õ") != -1)
{
return false;
}
else if(email.indexOf("Ù") != -1)
{
return false;
}
else if(email.indexOf("Ú") != -1)
{
return false;
}
else if(email.indexOf("Û") != -1)
{
return false;
}
else if(email.indexOf("Ç") != -1)
{
return false;
}
return true;
}
public static String dateToYYYYMMDD(Date ddate)
{
Calendar cal = new GregorianCalendar();
cal.setTime(ddate);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
String date_str = dateFormat.format(cal.getTime());
return date_str;
}
public static String timeToHHMM(String ttime) throws Exception
{
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
//String s = formatter.format(date);
Date date = (Date)formatter.parse(ttime);
return formatter.format(date);
}
public static void doLogin( ExternalContext ec, Utilizador u )
{
if ( u != null )
{
Singleton.setInstance( Singleton.USERNAME, u.getLogin() );
HttpSession session = ( HttpSession ) ec.getSession( true );
ServletContext thisContext = session.getServletContext().getContext( "/AnaliseAcidentesTrabalho" );
Map< String, Object > mapData = new HashMap< String, Object >();
mapData.put( "sessionID", session.getId() );
mapData.put( "userID", u.getId() );
mapData.put( "session", session );
thisContext.setAttribute( session.getId(), mapData );
}
else
{
ErrorLogger.logException( new Exception( "Utils.doLogin() : Utilizador is null !" ) );
}
}
public static void doLogout( ExternalContext ec, boolean redirect )
{
Singleton.setInstance( Singleton.USERNAME, null );
HttpSession session = ( HttpSession ) ec.getSession( true );
String sessionID = session.getId();
ServletContext aatContext = session.getServletContext().getContext( "/AnaliseAcidentesTrabalho" );
ServletContext paContext = aatContext.getContext( "/PlanosActuacao" );
aatContext.removeAttribute( sessionID );
if ( paContext != null )
{
Map< String, Object > mapData = ( Map< String, Object > ) paContext.getAttribute( sessionID );
if ( mapData != null )
{
HttpSession paSession = ( HttpSession ) mapData.get( "session" );
paSession.invalidate();
}
paContext.removeAttribute( sessionID );
}
try
{
session.invalidate();
}
catch ( IllegalStateException e )
{
// ErrorLogger.logException( e );
System.out.println( "Session already invalidated." );
}
if ( redirect )
{
try
{
ec.redirect( "Login.jsp" );
}
catch ( IOException ex )
{
ErrorLogger.logException( ex );
}
}
}
public static Integer getDefaultSelectedYear()
{
Integer result = null;
java.util.Calendar calendar = java.util.Calendar.getInstance();
calendar.setTime( new Date() );
result = calendar.get( java.util.Calendar.YEAR );
return result;
}
public static Option[] getYearDropValues()
{
Calendar calendar = Calendar.getInstance();
calendar.setTime( new Date() );
Integer currentYear = calendar.get( Calendar.YEAR );
Option[] opts = null;
try
{
int start = 0;
List< Integer > anosList = AnalisesDataProvider.getInstance().getDistinctYears( null );
if ( anosList.contains( currentYear ) )
{
opts = new Option[ anosList.size() ];
}
else
{
opts = new Option[ anosList.size() + 1 ];
opts[ start++ ] = new Option( currentYear, currentYear.toString() );
}
Iterator< Integer > it = anosList.iterator();
for ( ; it.hasNext(); start++ )
{
Integer ano = it.next();
opts[ start ] = new Option( ano, ano.toString() );
}
}
catch ( Exception e )
{
ErrorLogger.logException( e );
}
return opts;
}
public static void fillEstabelecimentos( DropDown ... drops )
{
try
{
Option[] estabelecimentos = EstatisticasDataProvider.getInstance().getEstabelecimentos();
if ( estabelecimentos != null )
{
for ( DropDown drop : drops )
{
drop.setItems( estabelecimentos );
}
}
}
catch ( Exception e )
{
ErrorLogger.logException( e );
}
}
public static Integer getSelectedID( DropDown drop )
{
Integer selectedID = null;
if ( drop.getSelected() != null )
{
String value = ( String ) drop.getSelected();
if ( value != null )
{
try { selectedID = Integer.parseInt( value ); }
catch ( Exception e ) { }
}
}
return selectedID;
}
}