From f9a5abd892ca504ccc6b1d5490ea129c6e69c201 Mon Sep 17 00:00:00 2001 From: Frederico Palma Date: Mon, 27 Feb 2012 19:27:37 +0000 Subject: [PATCH] fixed data ocorrencia verification git-svn-id: https://svn.coded.pt/svn/SIPRP@1744 bb69d46d-e84e-40c8-a05a-06db0d633741 --- .../nbproject/private/private.properties | 10 +- .../java/db/providers/PlanosDataProvider.java | 45 +++++-- .../java/importer/PlanosActuacaoImporter.java | 6 +- .../src/java/planosactuacao/EditarPlano.java | 3 +- .../src/java/planosactuacao/Header.java | 27 +++-- .../src/java/planosactuacao/ListaPlanos.java | 114 +++++++++++++++--- .../src/java/planosactuacao/SessionBean1.java | 13 +- .../src/java/utils/PlanosActuacaoLogger.java | 4 +- .../PlanosActuacao/src/java/utils/Utils.java | 59 ++++++++- trunk/PlanosActuacao/web/ListaPlanos.jsp | 8 +- 10 files changed, 237 insertions(+), 52 deletions(-) diff --git a/trunk/PlanosActuacao/nbproject/private/private.properties b/trunk/PlanosActuacao/nbproject/private/private.properties index cb57b180..dcd9566d 100644 --- a/trunk/PlanosActuacao/nbproject/private/private.properties +++ b/trunk/PlanosActuacao/nbproject/private/private.properties @@ -3,10 +3,10 @@ auxiliary.org-netbeans-modules-web-client-tools-api.dialogShowDebugPanel=false auxiliary.org-netbeans-modules-web-client-tools-api.FIREFOX=true auxiliary.org-netbeans-modules-web-client-tools-api.INTERNET_5f_EXPLORER=false auxiliary.org-netbeans-modules-web-client-tools-api.serverdebug=true -deploy.ant.properties.file=/home/dneves/.netbeans/6.7/tomcat60.properties -j2ee.platform.classpath=/home/dneves/Software/apache-tomcat-6.0.18/lib/jasper.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/jsp-api.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/catalina-ant.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/tomcat-i18n-es.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/tomcat-i18n-ja.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/catalina-ha.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/servlet-api.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/tomcat-i18n-fr.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/catalina.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/tomcat-coyote.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/el-api.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/annotations-api.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/tomcat-dbcp.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/jasper-el.jar:/home/dneves/Software/apache-tomcat-6.0.18/lib/catalina-tribes.jar:/home/dneves/Software/apache-tomcat-6.0.18/bin/tomcat-juli.jar -j2ee.server.instance=tomcat60:home=/home/dneves/Software/apache-tomcat-6.0.18:base=apache-tomcat-6.0.18_base +deploy.ant.properties.file=/home/fpalma/.netbeans/6.7/tomcat60.properties +j2ee.platform.classpath=/home/fpalma/apache/apache-tomcat-6.0.32/lib/el-api.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/catalina.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/tomcat-i18n-ja.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/catalina-ant.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/tomcat-coyote.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/tomcat-dbcp.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/jsp-api.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/jasper.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/catalina-ha.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/ecj-3.3.1.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/tomcat-i18n-fr.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/servlet-api.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/tomcat-i18n-es.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/annotations-api.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/jasper-el.jar:/home/fpalma/apache/apache-tomcat-6.0.32/lib/catalina-tribes.jar:/home/fpalma/apache/apache-tomcat-6.0.32/bin/tomcat-juli.jar +j2ee.server.instance=tomcat60:home=/home/fpalma/apache/apache-tomcat-6.0.32 javac.debug=true javadoc.preview=true -jaxws.endorsed.dir=/home/dneves/Software/netbeans-6.7.1/java2/modules/ext/jaxws21/api:/home/dneves/Software/netbeans-6.7.1/ide11/modules/ext/jaxb/api -user.properties.file=/home/dneves/.netbeans/6.7/build.properties +jaxws.endorsed.dir=/home/fpalma/bin/netbeans-6.7.1/java2/modules/ext/jaxws21/api:/home/fpalma/bin/netbeans-6.7.1/ide11/modules/ext/jaxb/api +user.properties.file=/home/fpalma/.netbeans/6.7/build.properties diff --git a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java index 7353c125..99fb4c31 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java @@ -223,7 +223,7 @@ public class PlanosDataProvider extends GenericDataProvider private enum SECTION { ACTIVOS, SEGUIMENTO, CONCLUIDOS; }; - private Select2 getExpression( SECTION section, Utilizador u, String nome, String estabelecimento, String dataVisita ) + private Select2 getExpression( SECTION section, Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) { Expression where = getWhereExpression( nome, estabelecimento, dataVisita ); Expression faseExpression = null; @@ -243,6 +243,10 @@ public class PlanosDataProvider extends GenericDataProvider { where = where.and( faseExpression ); } + if( ano != null && ano.intValue() > 0 && dataVisita == null ) + { + where = where.and( new Field( "EXTRACT( year FROM " + PlanosActuacaoData.DATA_VISITA_FULL + " )" ).isEqual( ano) ); + } Select2 query = new Select2( new String[] { PlanosActuacaoData.TABLENAME }, @@ -295,12 +299,12 @@ public class PlanosDataProvider extends GenericDataProvider } - public List< PlanoActuacao > searchPlanosActivos( Utilizador u, String nome, String estabelecimento, String dataVisita ) + public List< PlanoActuacao > searchPlanosActivos( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) throws Exception { System.out.println( "\nPlanosDataProvider . searchPlanosActivos() : " ); - Select2 query = getExpression( SECTION.ACTIVOS, u, nome, estabelecimento, dataVisita ); + Select2 query = getExpression( SECTION.ACTIVOS, u, nome, estabelecimento, dataVisita, ano ); System.out.println( "\tSQL : " + query ); Virtual2DArray array = getExecuter().executeQuery( query ); @@ -313,12 +317,12 @@ public class PlanosDataProvider extends GenericDataProvider // return getFullPlanos( rs ); } - public List< PlanoActuacao > searchPlanosSeguimento( Utilizador u, String nome, String estabelecimento, String dataVisita ) + public List< PlanoActuacao > searchPlanosSeguimento( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) throws Exception { System.out.println( "\nPlanosDataProvider . searchPlanosSeguimento() : " ); - Select2 query = getExpression( SECTION.SEGUIMENTO, u, nome, estabelecimento, dataVisita ); + Select2 query = getExpression( SECTION.SEGUIMENTO, u, nome, estabelecimento, dataVisita, ano ); System.out.println( "\tSQL : " + query ); Virtual2DArray array = getExecuter().executeQuery( query ); @@ -331,12 +335,12 @@ public class PlanosDataProvider extends GenericDataProvider // return getFullPlanos( rs ); } - public List< PlanoActuacao > searchPlanosConcluidos( Utilizador u, String nome, String estabelecimento, String dataVisita ) + public List< PlanoActuacao > searchPlanosConcluidos( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) throws Exception { System.out.println( "\nPlanosDataProvider . searchPlanosConcluidos() : " ); - Select2 query = getExpression( SECTION.CONCLUIDOS, u, nome, estabelecimento, dataVisita ); + Select2 query = getExpression( SECTION.CONCLUIDOS, u, nome, estabelecimento, dataVisita, ano ); System.out.println( "\tSQL : " + query ); Virtual2DArray array = getExecuter().executeQuery( query ); @@ -921,4 +925,31 @@ public class PlanosDataProvider extends GenericDataProvider { return getLocalProvider().load( HsRelatorioRiscoValorQualitativoData.class, valorID, HsRelatorioRiscoValorQualitativoData.ID ); } + + public List getDistinctYears( Integer excludeYear ) throws Exception + { + List result = new LinkedList(); + + Expression where = new Field( "deleted_date" ).isEqual( null ); + if ( excludeYear != null ) + { + where = where.and( new Field( "EXTRACT( year FROM data_visita )" ).notIn( new Integer[] { excludeYear } ) ); + } + Select2 query = new Select2( + new String[] { "planos_actuacao" }, + new Integer[] { }, + new Expression[] { }, + new String[] { "DISTINCT( cast( EXTRACT( year FROM data_visita ) as integer ) ) AS ano" }, + where, + new String[] { "ano DESC" }, + null, null, null ); + query.disableOrderFieldsVerification(); + Virtual2DArray array = getExecuter().executeQuery( query ); + for ( int i = 0; i < array.columnLength(); i++ ) + { + Integer ano = array.get( i, 0 ); + result.add( ano ); + } + return result; + } } diff --git a/trunk/PlanosActuacao/src/java/importer/PlanosActuacaoImporter.java b/trunk/PlanosActuacao/src/java/importer/PlanosActuacaoImporter.java index ce51c858..5b9128ba 100644 --- a/trunk/PlanosActuacao/src/java/importer/PlanosActuacaoImporter.java +++ b/trunk/PlanosActuacao/src/java/importer/PlanosActuacaoImporter.java @@ -34,15 +34,15 @@ public class PlanosActuacaoImporter { try { - System.out.println( "\nInit: PA logger ..." ); - PlanosActuacaoLogger.init(); - System.out.println( "\nInit: properties ..." ); readProperties( args ); System.out.println( "\nInit: db ..." ); EvoBaseProvider.getInstance(); + System.out.println( "\nInit: PA logger ..." ); + PlanosActuacaoLogger.init(); + System.out.println( "\nInit: A importar Planos de Actua\u00E7\u00E3o ..." ); PlanosActuacaoImporter.getInstace().init(); } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java index 51da198b..67560914 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java @@ -6,6 +6,7 @@ package planosactuacao; import com.evolute.utils.error.ErrorLogger; +import com.evolute.utils.strings.StringPlainer; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.webui.jsf.component.Button; @@ -2163,7 +2164,7 @@ public class EditarPlano extends AbstractPageBean mail_text += "

Por favor não responda a esta mensagem, dado tratar-se de um e-mail automático

"; break; } - + assunto = StringPlainer.convertString( assunto, true, false ); if ( fase < Global.FASE_CONCLUIDO ) { String responsavel_loja = "n"; diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/Header.java b/trunk/PlanosActuacao/src/java/planosactuacao/Header.java index 430bc831..68a72110 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/Header.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/Header.java @@ -142,34 +142,35 @@ public class Header extends AbstractFragmentBean { switch(tipo) { case Global.RESPONSAVEL_SEGURANCA: - url += "FormSeguranca.jsp?user=" + u.getId().intValue(); + url += "FormSeguranca.jsp?user=" + u.getId().intValue(); break; - + case Global.RH: - url += "FormRH.jsp?user=" + u.getId().intValue(); + url += "FormRH.jsp?user=" + u.getId().intValue(); break; - + case Global.TECNICO_HS: - url += "FormHS.jsp?user=" + u.getId().intValue(); + url += "FormHS.jsp?user=" + u.getId().intValue(); break; - + case Global.GESTOR: - url += "FormGestor.jsp?user=" + u.getId().intValue(); - break; - + url += "FormGestor.jsp?user=" + u.getId().intValue(); + break; + case Global.DIRECTOR_LOJA: url += "FormGestor.jsp?user=" + u.getId().intValue(); break; case Global.DIRECTOR_GERAL_RH: url += "FormDirGerRh.jsp?user=" + u.getId().intValue(); break; - + case Global.DIRECTOR_SIPRP: url += "FormDirSiprp.jsp?user=" + u.getId().intValue(); - break; - +// url += "Acesso.jsp"; + break; + case Global.DIRECTOR_NACIONAL_SEGURANCA: - url += "FormGestor.jsp?user=" + u.getId().intValue(); + url += "FormGestor.jsp?user=" + u.getId().intValue(); break; } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java index 16507063..7f39f3a9 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/ListaPlanos.java @@ -10,11 +10,13 @@ import com.evolute.utils.error.ErrorLogger; import com.sun.data.provider.RowKey; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.webui.jsf.component.Button; +import com.sun.webui.jsf.component.DropDown; import com.sun.webui.jsf.component.PanelGroup; import com.sun.webui.jsf.component.Table; import com.sun.webui.jsf.component.TableColumn; import com.sun.webui.jsf.component.TableRowGroup; import com.sun.webui.jsf.component.TextField; +import com.sun.webui.jsf.model.Option; import db.entidades.PlanoActuacao; import db.entidades.Utilizador; import db.providers.PlanosDataProvider; @@ -27,12 +29,15 @@ import java.util.List; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.FacesContext; +import javax.faces.event.ValueChangeEvent; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import shst.higiene.planoactuacao.print.PlanoActuacaoPDFCreator; import tabledataproviders.PlanosActualDataProvider; import tabledataproviders.PlanosConcluidosDataProvider; import tabledataproviders.PlanosSeguimentoDataProvider; import utils.JSFUtils; +import utils.Utils; /** *

Page bean that corresponds to a similarly named JSP page. This @@ -419,6 +424,19 @@ public class ListaPlanos extends AbstractPageBean { this.buttonFilterConc = b; } + + private DropDown dropCurrentYear = new DropDown(); + + public DropDown getDropCurrentYear() + { + return dropCurrentYear; + } + + public void setDropCurrentYear( DropDown dropCurrentYear ) + { + this.dropCurrentYear = dropCurrentYear; + } + private static final DateFormat D_F = new SimpleDateFormat( "yyyy-MM-dd" ); // @@ -494,7 +512,19 @@ public class ListaPlanos extends AbstractPageBean public void prerender() { System.out.println( "LISTA PLANOS - PRERENDER" ); + HttpServletRequest request = ( HttpServletRequest ) getExternalContext().getRequest(); + String referer = request.getRequestURI(); + String pageFrom = Utils.getPageFrom( referer ); + if ( !pageFrom.matches( "FormMedico.jsp" ) + || dropCurrentYear.getItems() == null ) + { + fillCurrentYearDrop(); + fillInitialForm(); + } + } + private void fillInitialForm() + { Utilizador u = getSessionBean1().getCurrentUser(); System.out.println( "\tUser Logged In : " + ( u == null ? "NONE !" : "[" + u.getId() + "] : " + u.getLogin() ) ); @@ -789,6 +819,7 @@ public class ListaPlanos extends AbstractPageBean private void initialize() { Utilizador u = getSessionBean1().getCurrentUser(); + Integer ano = getSelectedYear(); // Integer estabelecimento_id = null; // if ( u.getTipo().intValue() != Global.TECNICO_HS ) @@ -803,13 +834,13 @@ public class ListaPlanos extends AbstractPageBean System.out.println( "\tGETTING INITIAL VALUES FOR EACH TABLE." ); long startedTime = System.currentTimeMillis(); - List< PlanoActuacao > listPlanosActivos = getPlanosActivos( u ); + List< PlanoActuacao > listPlanosActivos = getPlanosActivos( u, ano ); getSessionBean1().getPlanosActualDataProvider().setList( listPlanosActivos ); - List< PlanoActuacao > listPlanosSeguimento = getPlanosSeguimento( u ); + List< PlanoActuacao > listPlanosSeguimento = getPlanosSeguimento( u, ano ); getSessionBean1().getPlanosSeguimentoDataProvider().setList( listPlanosSeguimento ); - List< PlanoActuacao > listPlanosConcluidos = getPlanosConcluidos( u ); + List< PlanoActuacao > listPlanosConcluidos = getPlanosConcluidos( u, ano ); getSessionBean1().getPlanosConcluidosDataProvider().setList( listPlanosConcluidos ); long endedTime = System.currentTimeMillis(); @@ -855,7 +886,7 @@ public class ListaPlanos extends AbstractPageBean } - private List< PlanoActuacao > searchPlanosActivos( Utilizador u, String nome, String estabelecimento, String dataVisita ) + private List< PlanoActuacao > searchPlanosActivos( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) { List< PlanoActuacao > list = null; try @@ -863,7 +894,7 @@ public class ListaPlanos extends AbstractPageBean if ( u.getTipo().intValue() != Global.DIRECTOR_SIPRP && u.getTipo().intValue() != Global.GESTOR && u.getTipo().intValue() != Global.DIRECTOR_GERAL_RH ) { PlanosDataProvider pdp = PlanosDataProvider.getInstance(); - list = pdp.searchPlanosActivos( u, nome, estabelecimento, dataVisita ); + list = pdp.searchPlanosActivos( u, nome, estabelecimento, dataVisita, ano ); } } catch ( Exception e ) @@ -873,18 +904,18 @@ public class ListaPlanos extends AbstractPageBean return list == null ? new LinkedList< PlanoActuacao >() : list; } - private List getPlanosActivos( Utilizador u ) + private List getPlanosActivos( Utilizador u, Integer ano ) { - return searchPlanosActivos( u, null, null, null ); + return searchPlanosActivos( u, null, null, null, ano ); } - private List< PlanoActuacao > searchPlanosSeguimento( Utilizador u, String nome, String estabelecimento, String dataVisita ) + private List< PlanoActuacao > searchPlanosSeguimento( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) { List< PlanoActuacao > list = null; try { PlanosDataProvider pdp = PlanosDataProvider.getInstance(); - list = pdp.searchPlanosSeguimento( u, nome, estabelecimento, dataVisita ); + list = pdp.searchPlanosSeguimento( u, nome, estabelecimento, dataVisita, ano ); } catch ( Exception ex ) { @@ -893,18 +924,18 @@ public class ListaPlanos extends AbstractPageBean return list == null ? new LinkedList< PlanoActuacao >() : list; } - private List< PlanoActuacao > getPlanosSeguimento( Utilizador u ) + private List< PlanoActuacao > getPlanosSeguimento( Utilizador u, Integer ano ) { - return searchPlanosSeguimento( u, null, null, null ); + return searchPlanosSeguimento( u, null, null, null, ano ); } - private List< PlanoActuacao > searchPlanosConcluidos( Utilizador u, String nome, String estabelecimento, String dataVisita ) + private List< PlanoActuacao > searchPlanosConcluidos( Utilizador u, String nome, String estabelecimento, String dataVisita, Integer ano ) { List< PlanoActuacao > list = null; try { PlanosDataProvider pdp = PlanosDataProvider.getInstance(); - list = pdp.searchPlanosConcluidos( u, nome, estabelecimento, dataVisita ); + list = pdp.searchPlanosConcluidos( u, nome, estabelecimento, dataVisita, ano ); } catch ( Exception ex ) { @@ -913,9 +944,9 @@ public class ListaPlanos extends AbstractPageBean return list == null ? new LinkedList< PlanoActuacao >() : list; } - private List< PlanoActuacao > getPlanosConcluidos( Utilizador u ) + private List< PlanoActuacao > getPlanosConcluidos( Utilizador u, Integer ano ) { - return searchPlanosConcluidos( u, null, null, null ); + return searchPlanosConcluidos( u, null, null, null, ano ); } public String buttonFilterActual_action() @@ -942,9 +973,11 @@ public class ListaPlanos extends AbstractPageBean String visitaDateStr = calFilterDate == null ? null : D_F.format( calFilterDate ); + Integer ano = getSelectedYear(); + getSessionBean1().setIsSearchingPlanosActuacao( Boolean.TRUE ); getSessionBean1().getPlanosActualDataProvider().setList( - searchPlanosActivos( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr ) ); + searchPlanosActivos( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr, ano ) ); return null; } @@ -973,9 +1006,11 @@ public class ListaPlanos extends AbstractPageBean String visitaDateStr = calFilterDateSeguimento == null ? null : D_F.format( calFilterDateSeguimento ); + Integer ano = getSelectedYear(); + getSessionBean1().setIsSearchingPlanosActuacao( Boolean.TRUE ); getSessionBean1().getPlanosSeguimentoDataProvider().setList( - searchPlanosSeguimento( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr ) ); + searchPlanosSeguimento( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr, ano ) ); return null; } @@ -1004,11 +1039,54 @@ public class ListaPlanos extends AbstractPageBean String visitaDateStr = calFilterDateConcluidos == null ? null : D_F.format( calFilterDateConcluidos ); + Integer ano = getSelectedYear(); + getSessionBean1().setIsSearchingPlanosActuacao( Boolean.TRUE ); getSessionBean1().getPlanosConcluidosDataProvider().setList( - searchPlanosConcluidos( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr ) ); + searchPlanosConcluidos( getSessionBean1().getCurrentUser(), nome, estabelecimento, visitaDateStr, ano ) ); return null; } + + public void dropCurrentYear_valueChangeListener( ValueChangeEvent event ) + { + Object oldValue = event.getOldValue(); + Object newValue = event.getNewValue(); + + if ( newValue != null && newValue instanceof Integer ) + { + Integer newYear = ( Integer ) newValue; + getSessionBean1().setAnoChoice( newYear); + Integer oldYear = oldValue != null && oldValue instanceof Integer ? ( Integer ) oldValue : null; + if ( oldYear == null || !newYear.equals( oldYear ) ) + { + fillInitialForm(); + } + } + } + + private Integer getSelectedYear() + { + Integer result = getSessionBean1().getAnoChoice(); + if ( result == null && dropCurrentYear != null ) + { + Object selected = dropCurrentYear.getSelected(); + if ( selected != null && selected instanceof Integer ) + { + result = ( Integer ) selected; + } + } + return result; + } + + private void fillCurrentYearDrop() + { + Integer selectedYear = getSelectedYear(); + + Option[] opts = Utils.getYearDropValues(); + dropCurrentYear.setItems( opts ); + + dropCurrentYear.setSelected( selectedYear != null ? selectedYear : Utils.getDefaultSelectedYear() ); + } } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java index 21ebd6e2..d35c606f 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java @@ -74,7 +74,8 @@ public class SessionBean1 extends AbstractSessionBean { private HashMap areasHash; private HashMap riscosHash; - + private Integer anoChoice; + public enum PAGINATION_ENUM { NORMAL( 0, "Normal" ), @@ -452,4 +453,14 @@ public class SessionBean1 extends AbstractSessionBean { this.aatSessionID = aatSessionID; } + public Integer getAnoChoice() + { + return anoChoice; + } + + public void setAnoChoice( Integer anoChoice ) + { + this.anoChoice = anoChoice; + } + } diff --git a/trunk/PlanosActuacao/src/java/utils/PlanosActuacaoLogger.java b/trunk/PlanosActuacao/src/java/utils/PlanosActuacaoLogger.java index fd64e67e..92b29f75 100644 --- a/trunk/PlanosActuacao/src/java/utils/PlanosActuacaoLogger.java +++ b/trunk/PlanosActuacao/src/java/utils/PlanosActuacaoLogger.java @@ -34,8 +34,8 @@ public class PlanosActuacaoLogger String host = ""; String port = ""; - EvoProxyObject.configSystemProxySelector(); - EvoProxyObject.getProxy( user, pass, host, port ); +// EvoProxyObject.configSystemProxySelector(); +// EvoProxyObject.getProxy( user, pass, host, port ); Logger logger = new WSLogger( properties ); ErrorLogger.initializeLogger( logger ); diff --git a/trunk/PlanosActuacao/src/java/utils/Utils.java b/trunk/PlanosActuacao/src/java/utils/Utils.java index 604984c4..5ac69a26 100644 --- a/trunk/PlanosActuacao/src/java/utils/Utils.java +++ b/trunk/PlanosActuacao/src/java/utils/Utils.java @@ -7,8 +7,13 @@ package utils; import com.evolute.utils.Singleton; import com.evolute.utils.error.ErrorLogger; -import com.evolute.utils.strings.UnicodeChecker; +import com.sun.webui.jsf.model.Option; import db.entidades.Utilizador; +import db.providers.PlanosDataProvider; +import java.util.Calendar; +import java.util.Date; +import java.util.Iterator; +import java.util.List; import java.util.Map; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; @@ -155,4 +160,56 @@ public class Utils } } + 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 = PlanosDataProvider.getInstance().getDistinctYears( null ); + if ( anosList.contains( currentYear ) ) + { + opts = new Option[ anosList.size() + 1 ]; + opts[ start++ ] = new Option( 0, "Todos" ); + } + else + { + opts = new Option[ anosList.size() + 2 ]; + opts[ start++ ] = new Option( 0, "Todos" ); + 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 String getPageFrom(String referer) + { + String pageFrom = referer.substring(referer.lastIndexOf("/")+1); + return pageFrom; + } } diff --git a/trunk/PlanosActuacao/web/ListaPlanos.jsp b/trunk/PlanosActuacao/web/ListaPlanos.jsp index 36eea853..08973807 100644 --- a/trunk/PlanosActuacao/web/ListaPlanos.jsp +++ b/trunk/PlanosActuacao/web/ListaPlanos.jsp @@ -40,6 +40,13 @@ + + + + + + @@ -49,7 +56,6 @@ -