diff --git a/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java b/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java index 1894fa7d..885c1da2 100644 --- a/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java +++ b/trunk/PlanosActuacao/src/java/db/entidades/PlanoActuacao.java @@ -30,6 +30,13 @@ public class PlanoActuacao { private String fase_nome; private String tecnico_hs_nome; private String loja_nome; + + private Boolean validacao_director_loja; + private Boolean validacao_dns; + private Boolean validacao_hs; + private String parecer_dns; + + private int total_riscos; public Integer getId() { return id; @@ -137,4 +144,44 @@ public class PlanoActuacao { public void setAreas(List areas) { this.areas = areas; } + + public int getTotal_riscos() { + return total_riscos; + } + + public void setTotal_riscos(int total_riscos) { + this.total_riscos = total_riscos; + } + + public Boolean getValidacao_director_loja() { + return validacao_director_loja; + } + + public void setValidacao_director_loja(Boolean validacao_director_loja) { + this.validacao_director_loja = validacao_director_loja; + } + + public Boolean getValidacao_dns() { + return validacao_dns; + } + + public void setValidacao_dns(Boolean validacao_dns) { + this.validacao_dns = validacao_dns; + } + + public Boolean getValidacao_hs() { + return validacao_hs; + } + + public void setValidacao_hs(Boolean validacao_hs) { + this.validacao_hs = validacao_hs; + } + + public String getParecer_dns() { + return parecer_dns; + } + + public void setParecer_dns(String parecer_dns) { + this.parecer_dns = parecer_dns; + } } diff --git a/trunk/PlanosActuacao/src/java/db/entidades/Risco.java b/trunk/PlanosActuacao/src/java/db/entidades/Risco.java index 6fb65ea3..2efa00d9 100644 --- a/trunk/PlanosActuacao/src/java/db/entidades/Risco.java +++ b/trunk/PlanosActuacao/src/java/db/entidades/Risco.java @@ -5,8 +5,9 @@ package db.entidades; + +import java.util.Date; import java.util.List; -import java.util.Vector; /** * @@ -18,6 +19,12 @@ public class Risco { private String descricao; private String activo; private Integer valor; + private String responsavel_execucao; + private String recursos_necessarios; + private Date data_inicio; + private Date data_fim; + + private List valores; private List medidas; @@ -77,4 +84,36 @@ public class Risco { public void setValores(List valores) { this.valores = valores; } + + public String getResponsavel_execucao() { + return responsavel_execucao; + } + + public void setResponsavel_execucao(String responsavel_execucao) { + this.responsavel_execucao = responsavel_execucao; + } + + public String getRecursos_necessarios() { + return recursos_necessarios; + } + + public void setRecursos_necessarios(String recursos_necessarios) { + this.recursos_necessarios = recursos_necessarios; + } + + public Date getData_inicio() { + return data_inicio; + } + + public void setData_inicio(Date data_inicio) { + this.data_inicio = data_inicio; + } + + public Date getData_fim() { + return data_fim; + } + + public void setData_fim(Date data_fim) { + this.data_fim = data_fim; + } } diff --git a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java index fa2adb5d..fda456f4 100644 --- a/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java +++ b/trunk/PlanosActuacao/src/java/db/providers/PlanosDataProvider.java @@ -51,13 +51,33 @@ public class PlanosDataProvider extends GenericDataProvider{ String sql = ""; //To Do sql string here : - sql = "UPDATE planos_actuacao SET fase = " + p.getFase() + " "; - + sql = "UPDATE planos_actuacao SET fase = " + p.getFase() + ", "; + sql += "validacao_director_loja = " + p.getValidacao_director_loja() + ", "; + sql += "validacao_dns = " + p.getValidacao_dns() + ", "; + sql += "validacao_hs = " + p.getValidacao_hs() + ", "; + sql += "parecer_dns = '" + p.getParecer_dns() + "' "; sql += "WHERE id = " + p.getId(); System.out.println("SQL UPDATE PLANO : " + sql); st.execute(sql); } + public void updateRisco(Risco r) throws Exception + { + Statement st = createStatement(); + String sql = ""; + + //To Do sql string here : + java.sql.Date sqlDataInicio = new java.sql.Date(r.getData_inicio().getTime()); + java.sql.Date sqlDataFim = new java.sql.Date(r.getData_fim().getTime()); + sql = "UPDATE plano_riscos SET responsavel_execucao = '" + r.getResponsavel_execucao() + "', "; + sql += "recursos_necessarios = '" + r.getRecursos_necessarios() + "', "; + sql += "data_inicio = '" + sqlDataInicio + "', "; + sql += "data_fim = '" + sqlDataFim + "' "; + sql += "WHERE id = " + r.getId(); + System.out.println("SQL UPDATE RISCO : " + sql); + st.execute(sql); + } + public Integer createArea(Area a) throws Exception { Statement st = createStatement(); @@ -238,7 +258,12 @@ public class PlanosDataProvider extends GenericDataProvider{ pa.setFase( new Integer( rs.getInt("fase") ) ); java.sql.Date sqlDate = rs.getDate("data_visita"); pa.setData_visita(new java.util.Date(sqlDate.getTime())); + pa.setValidacao_director_loja(new Boolean( rs.getBoolean("validacao_director_loja") )); + pa.setValidacao_dns(new Boolean( rs.getBoolean("validacao_dns") )); + pa.setValidacao_hs(new Boolean( rs.getBoolean("validacao_hs") )); + pa.setParecer_dns(rs.getString("parecer_dns")); pa.setAreas(getAreasByPlano(pa)); + pa.setTotal_riscos(getTotalRiscosByPlano(pa.getId())); list.add(pa); }while(rs.next()); @@ -286,6 +311,20 @@ public class PlanosDataProvider extends GenericDataProvider{ r.setId( new Integer(rs.getInt("id")) ); r.setArea_id(new Integer( rs.getInt("area_id") )); r.setDescricao(rs.getString("descricao")); + r.setResponsavel_execucao(rs.getString("responsavel_execucao")); + r.setRecursos_necessarios(rs.getString("recursos_necessarios")); + java.sql.Date sqlDataInicio = rs.getDate("data_inicio"); + if(sqlDataInicio != null) + { + r.setData_inicio(new java.util.Date(sqlDataInicio.getTime())); + } + + java.sql.Date sqlDataFim = rs.getDate("data_fim"); + if(sqlDataFim != null) + { + r.setData_fim(new java.util.Date(sqlDataFim.getTime())); + } + r.setValores(getValoresByRisco(r)); riscos.add(r); }while(rs.next()); @@ -362,7 +401,35 @@ public class PlanosDataProvider extends GenericDataProvider{ }while(rs.next()); } return postos; - } + } + + public int getTotalRiscosByPlano(Integer plano_id) + { + Statement st = createStatement(); + String sql = "select count(plano_riscos.id) as total_riscos from plano_riscos "; + sql += "inner join plano_areas on plano_riscos.area_id = plano_areas.id "; + sql += "inner join planos_actuacao on plano_areas.plano_id = planos_actuacao.id "; + sql += "where planos_actuacao.id = " + plano_id; + + int total_riscos = 0; + + try + { + ResultSet rs = st.executeQuery(sql); + if(rs.isBeforeFirst()) + { + rs.first(); + + total_riscos = rs.getInt("total_riscos"); + } + } + catch(Exception ex) + { + + } + + return total_riscos; + } // POSTOS TRABALHO public void createPostoTrabalhoByRisco(Integer postoTrabalhoId, Integer riscoId, Integer planoId) throws Exception diff --git a/trunk/PlanosActuacao/src/java/pagination/Pagina.java b/trunk/PlanosActuacao/src/java/pagination/Pagina.java new file mode 100644 index 00000000..2ea0228b --- /dev/null +++ b/trunk/PlanosActuacao/src/java/pagination/Pagina.java @@ -0,0 +1,78 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package pagination; + +import com.sun.webui.jsf.component.Hyperlink; +import javax.faces.context.FacesContext; + +/** + * + * @author lluis + */ +public class Pagina extends Hyperlink{ + private Integer risco_id; + private Integer page_nr; + private Boolean previous = false; + private Boolean next = false; + + public Pagina(){ + super(); + } + + public Object saveState(FacesContext context) + { + Object values[] = new Object[7]; + values[0] = super.saveState(context); + values[1] = getRisco_id(); + values[2] = getPage_nr(); + values[3] = isPrevious(); + values[4] = isNext(); +// values[2] = getId(); + return ((Object) (values)); + } + + public void restoreState(FacesContext context, Object state) + { + Object values[] = (Object[])state; + super.restoreState(context, values[0]); + risco_id = (Integer)values[1]; + page_nr = (Integer)values[2]; + previous = (Boolean)values[3]; + next = (Boolean)values[4]; + } + + public Integer getRisco_id() { + return risco_id; + } + + public void setRisco_id(Integer risco_id) { + this.risco_id = risco_id; + } + + public Boolean isPrevious() { + return previous; + } + + public void setPrevious(Boolean previous) { + this.previous = previous; + } + + public Boolean isNext() { + return next; + } + + public void setNext(Boolean next) { + this.next = next; + } + + public Integer getPage_nr() { + return page_nr; + } + + public void setPage_nr(Integer page_nr) { + this.page_nr = page_nr; + } +} diff --git a/trunk/PlanosActuacao/src/java/pagination/Pagination.java b/trunk/PlanosActuacao/src/java/pagination/Pagination.java new file mode 100644 index 00000000..9e27f6e0 --- /dev/null +++ b/trunk/PlanosActuacao/src/java/pagination/Pagination.java @@ -0,0 +1,125 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package pagination; + +import com.sun.webui.jsf.component.StaticText; +import db.entidades.Area; +import db.entidades.PlanoActuacao; +import db.entidades.Risco; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Vector; +import javax.faces.event.MethodExpressionActionListener; + +/** + * + * @author lluis + */ +public class Pagination { + private int TOTAL_PAGINAS; + private HashMap riscosHash = new HashMap(); + private Vector riscosVector = new Vector(); + private int current_page = 1; + + public Pagination(PlanoActuacao p) + { + initialize(p); + } + + public Vector getPaginas() + { + Vector paginas = new Vector(); + Pagina pagina = null; + + if(current_page > 1) + { + pagina = new Pagina(); + pagina.setId("prev"); + pagina.setPrevious(new Boolean(true)); + pagina.setText("<<"); + paginas.add(pagina); + } + + int i = 0; + Iterator iter = riscosVector.iterator(); + while(iter.hasNext()) + { + Risco r = iter.next(); + pagina = new Pagina(); + pagina.setId("risco" + r.getId().toString()); + //pagina.setRisco_id(r.getId()); + i++; + pagina.setPage_nr(i); + if(i == current_page) + { + pagina.setDisabled(true); + } + pagina.setText(i); + paginas.add(pagina); + } + + if(current_page < TOTAL_PAGINAS) + { + pagina = new Pagina(); + pagina.setId("next"); + pagina.setNext(new Boolean(true)); + pagina.setText(">>"); + paginas.add(pagina); + } + + return paginas; + } + + public Risco getRisco(Pagina p) + { + Integer risco_id = null; + if(p.isNext()) + { + current_page++; + } + else if(p.isPrevious()) + { + current_page--; + } + else + { + current_page = p.getPage_nr().intValue(); + } + + return riscosVector.get(current_page-1); + } + + public Risco nextRisco() + { + Risco r = null; + + if( current_page < TOTAL_PAGINAS) + { + current_page++; + r = riscosVector.get(current_page-1); + } + + return r; + } + + public int totalPaginas() + { + return TOTAL_PAGINAS; + } + + private void initialize(PlanoActuacao p) + { + for(Area a : p.getAreas()) + { + for(Risco r : a.getRiscos()) + { + riscosVector.add(r); + } + } + TOTAL_PAGINAS = riscosVector.size(); + } + +} diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java b/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java index 8e49ecac..c93e80d8 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/Dummy.java @@ -7,15 +7,13 @@ package planosactuacao; import com.sun.rave.web.ui.appbase.AbstractPageBean; -import com.sun.webui.jsf.component.Calendar; -import com.sun.webui.jsf.component.TextArea; -import com.sun.webui.jsf.component.TextField; -import com.sun.webui.jsf.model.DefaultOptionsList; -import com.sun.webui.jsf.model.DefaultTableDataProvider; -import com.sun.webui.jsf.model.SingleSelectOptionsList; -import javax.faces.component.html.HtmlPanelGrid; -import tabledataproviders.*; +import com.sun.webui.jsf.component.Hyperlink; +import com.sun.webui.jsf.component.PanelGroup; + +import javax.el.MethodExpression; import javax.faces.FacesException; +import javax.faces.event.ActionEvent; +import javax.faces.event.MethodExpressionActionListener; /** *

Page bean that corresponds to a similarly named JSP page. This @@ -36,23 +34,14 @@ public class Dummy extends AbstractPageBean { */ private void _init() throws Exception { } - private HtmlPanelGrid grid = new HtmlPanelGrid(); - - public HtmlPanelGrid getGrid() { - return grid; - } - - public void setGrid(HtmlPanelGrid hpg) { - this.grid = hpg; - } - private SingleSelectOptionsList dropDown1DefaultOptions = new SingleSelectOptionsList(); + private PanelGroup pgLink = new PanelGroup(); - public SingleSelectOptionsList getDropDown1DefaultOptions() { - return dropDown1DefaultOptions; + public PanelGroup getPgLink() { + return pgLink; } - public void setDropDown1DefaultOptions(SingleSelectOptionsList ssol) { - this.dropDown1DefaultOptions = ssol; + public void setPgLink(PanelGroup pg) { + this.pgLink = pg; } // @@ -120,10 +109,16 @@ public class Dummy extends AbstractPageBean { */ @Override public void prerender() { - Calendar cal = new Calendar(); - cal.setDateFormatPattern("dd-MM-yyyy"); + Hyperlink lnk = new Hyperlink(); + lnk.setText("HERE"); + pgLink.getChildren().add(lnk); - grid.getChildren().add(cal); + Class[] argtypes = new Class[1]; + argtypes[0] = ActionEvent.class; + MethodExpression me = (MethodExpression)this.getApplication().getExpressionFactory().createMethodExpression( + getFacesContext().getELContext(), "#{Dummy.lnk_actionListener}", null,argtypes); + lnk.addActionListener(new MethodExpressionActionListener(me)); + } /** @@ -171,11 +166,12 @@ public class Dummy extends AbstractPageBean { return null; } - public String lnkLogout_action() { + public void lnk_actionListener(ActionEvent e) { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. - return null; + System.out.print("DUMMY LINK"); } + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java index 6378e0a4..dff6530b 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/EditarPlano.java @@ -26,14 +26,21 @@ import db.entidades.Utilizador; import db.entidades.Valor; import db.providers.PlanosDataProvider; import global.Global; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Vector; +import javax.el.MethodExpression; import javax.faces.FacesException; import javax.faces.component.html.HtmlInputHidden; import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.FacesContext; +import javax.faces.event.ActionEvent; +import javax.faces.event.MethodExpressionActionListener; import javax.faces.event.ValueChangeEvent; import mail.Mail; +import pagination.Pagina; +import pagination.Pagination; import utils.JSFUtils; /** @@ -57,6 +64,7 @@ public class EditarPlano extends AbstractPageBean { } // + PlanosDataProvider pdp = new PlanosDataProvider(); HtmlPanelGrid grid; PanelGroup pg; StaticText st; @@ -64,9 +72,6 @@ public class EditarPlano extends AbstractPageBean { //Plano actuacao PlanoActuacao plano; - Vector medidas = new Vector(); - Vector riscos = new Vector(); - Vector postos = new Vector(); HtmlPanelGrid gridPlano = new HtmlPanelGrid(); HtmlPanelGrid gridArea; @@ -74,6 +79,7 @@ public class EditarPlano extends AbstractPageBean { HtmlPanelGrid gridValor; HtmlPanelGrid gridMedida; HtmlPanelGrid gridPosto; + HtmlPanelGrid gridResponsavel; @@ -86,6 +92,7 @@ public class EditarPlano extends AbstractPageBean { TextArea txtRecursos; Calendar dtInicio; Calendar dtFim; + public HtmlPanelGrid getGridLayout() { return gridLayout; @@ -220,6 +227,24 @@ public class EditarPlano extends AbstractPageBean { public void setLblTop(StaticText st) { this.lblTop = st; } + private PanelGroup grpPagination = new PanelGroup(); + + public PanelGroup getGrpPagination() { + return grpPagination; + } + + public void setGrpPagination(PanelGroup pg) { + this.grpPagination = pg; + } + private HtmlPanelGrid gridPagination = new HtmlPanelGrid(); + + public HtmlPanelGrid getGridPagination() { + return gridPagination; + } + + public void setGridPagination(HtmlPanelGrid hpg) { + this.gridPagination = hpg; + } /** *

Construct a new Page bean instance.

@@ -295,22 +320,18 @@ public class EditarPlano extends AbstractPageBean { //boolean isPostback = JSFUtils.isPostBack12(fc); //boolean isPostback = JSFUtils.isPostBack(fc); boolean isPostback = JSFUtils.isPostback(); - System.out.println("POSTBACK : " + isPostback); + System.out.println("POSTBACK : " + isPostback); + PlanoActuacao p = getSessionBean1().getPlanoActuacao(); + getRiscosByPlano(p); if(!isPostback) { - PlanoActuacao p = getSessionBean1().getPlanoActuacao(); //initializePlano(); initialize(p); showPlano(p); //fillPlano(); } - else - { - riscos = getSessionBean1().getRiscos(); - medidas = getSessionBean1().getMedidas(); - postos = getSessionBean1().getPostos(); - } - + //setPagination(p); + setPagination(); lblMsg.setText(getSessionBean1().getMsg()); getSessionBean1().setMsg(""); } @@ -360,219 +381,14 @@ public class EditarPlano extends AbstractPageBean { return "lista_planos"; } -// private void fillPlano() -// { -// String indent = "      "; -// Risco r = getNextRisco(plano.getId()); -// fillRisco(r); -// } -// -// private void fillRisco(Risco r) -// { -// String indent = "      "; -// if(gridLayout.getChildren().size() > 0) -// { -// gridLayout.getChildren().clear(); -// } -// gridRisco = new HtmlPanelGrid(); -// gridRisco.setWidth("100%"); -// gridRisco.setStyle("border: solid 1px #000000"); -// gridRisco.setColumns(1); -// gridRisco.setColumnClasses("gridColLeft"); -// -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setStyle("color: #2c4d7a"); -// st.setText("RISCO 1" + ": "); -// pg.getChildren().add(st); -// st = new StaticText(); -// st.setEscape(false); -// st.setText(r.getDescricao()); -// pg.getChildren().add(st); -// gridRisco.getChildren().add(pg); -// -// st = new StaticText(); -// st.setEscape(false); -// st.setText(" "); -// gridRisco.getChildren().add(st); -// -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText("Valor:" + " "); -// pg.getChildren().add(st); -// st = new StaticText(); -// st.setEscape(false); -// st.setText(r.getValor().toString()); -// pg.getChildren().add(st); -// gridRisco.getChildren().add(pg); -// -// st = new StaticText(); -// st.setEscape(false); -// st.setText(" "); -// gridRisco.getChildren().add(st); -// -// //medidas -// Vector meds = getMedidas(r.getId()); -// for(int i = 0; i < meds.size(); i++) -// { -// Medida m = medidas.get(i); -// if(m.getRisco_id().intValue() == r.getId().intValue()) -// { -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText(indent + "Medida" + ": "); -// pg.getChildren().add(st); -// st = new StaticText(); -// st.setEscape(false); -// st.setText(m.getDescricao()); -// pg.getChildren().add(st); -// gridRisco.getChildren().add(pg); -// -// //postos trabalho -// Vector posts = getPostosTrabalho(m.getId()); -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText(indent + indent + "Postos de trabalho afectados" + ": "); -// pg.getChildren().add(st); -// st = new StaticText(); -// st.setEscape(false); -// String spostos = ""; -// for(int j = 0; j < posts.size(); j++) -// { -// PostoTrabalho p = posts.get(j); -// spostos += p.getDescricao(); // + " "; -// if(j < (posts.size() -1) ) -// { -// spostos += "; "; -// } -// } -// st.setText(spostos); -// pg.getChildren().add(st); -// gridRisco.getChildren().add(pg); -// } -// } -// -// st = new StaticText(); -// st.setEscape(false); -// st.setText(" "); -// gridRisco.getChildren().add(st); -// -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText("Responsável de execução:"); -// pg.getChildren().add(st); -// txtResponsavelExecucao = new TextField(); -// txtResponsavelExecucao.setColumns(100); -// pg.getChildren().add(txtResponsavelExecucao); -// gridRisco.getChildren().add(pg); -// pg = new PanelGroup(); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText("Recursos necessários à implementação da medida:"); -// pg.getChildren().add(st); -// gridRisco.getChildren().add(pg); -// txtRecursos = new TextArea(); -// txtRecursos.setColumns(200); -// gridRisco.getChildren().add(txtRecursos); -// -// HtmlPanelGrid grd = new HtmlPanelGrid(); -// grd.setColumns(2); -// grd.setColumnClasses("gridCol15, gridCol85"); -// grd.setId("pgDtInicio"); -// grd.setStyle("width: 100%"); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText("Data prevista de início:"); -// grd.getChildren().add(st); -// dtInicio = new Calendar(); -// grd.getChildren().add(dtInicio); -// gridRisco.getChildren().add(grd); -// -// grd = new HtmlPanelGrid(); -// grd.setColumns(2); -// grd.setColumnClasses("gridCol15, gridCol85"); -// grd.setId("pgDtFim"); -// grd.setStyle("width: 100%"); -// st = new StaticText(); -// st.setEscape(false); -// st.setStyleClass("label"); -// st.setText("Data prevista de conclusão:"); -// grd.getChildren().add(st); -// dtFim = new Calendar(); -// -// grd.getChildren().add(dtFim); -// gridRisco.getChildren().add(grd); -// -// gridLayout.getChildren().add(gridRisco); -// -// } -// private Risco getNextRisco(Integer planoId) -// { -// System.out.println("GET NEXT RISCO"); -// System.out.println("RISCOS SIZE : " + riscos.size()); -// riscos = getSessionBean1().getRiscos(); -// risco_id = getSessionBean1().getRiscosIdx(); -// Risco r = riscos.get(risco_id); -// if(r != null) -// { -// if(r.getPlano_id().intValue() != planoId.intValue()) -// { -// r = null; -// risco_id = 0; -// } -// } -// risco_id++; -// getSessionBean1().setRiscosIdx(risco_id); -// return r; -// } - -// private Vector getMedidas(Integer riscoId) -// { -// Vector meds = new Vector(); -// medidas = getSessionBean1().getMedidas(); -// for(int i = 0; i < medidas.size(); i++) -// { -// Medida m = medidas.get(i); -// if(m.getRisco_id().intValue() == riscoId.intValue()) -// { -// meds.add(m); -// } -// } -// return meds; -// } - - private Vector getPostosTrabalho(Integer medidaId) - { - Vector posts = new Vector(); - postos = getSessionBean1().getPostos(); - for(int i = 0; i < postos.size(); i++) - { - PostoTrabalho p = postos.get(i); - if(p.getMedida_id().intValue() == medidaId.intValue()) - { - posts.add(p); - } - } - return posts; - } - private void initialize(PlanoActuacao p) { + //getSessionBean1().setPaginationPageNr(1); + Pagination pagination = new Pagination(p); + getSessionBean1().setPagination(pagination); Utilizador u = getSessionBean1().getCurrentUser(); if(u.getTipo().intValue() == Global.DIRECTOR_NACIONAL_SEGURANCA) { @@ -585,12 +401,9 @@ public class EditarPlano extends AbstractPageBean { //gridValidar.setStyleClass("hidden"); - //System.out.println("VISIBILITY : " + gridValidar.getStyleClass()); - //System.out.println("USER TYPE : " + u.getTipo().intValue()); if(u.getTipo().intValue() != Global.DIRECTOR_LOJA && u.getTipo().intValue() != Global.DIRECTOR_NACIONAL_SEGURANCA) { //gridValidar.setStyleClass("visible"); - //System.out.println("VISIBILITY B : " + gridValidar.getStyleClass()); gridValidar.setRendered(false); //txtParecer.setStyleClass("hidden"); } @@ -636,6 +449,7 @@ public class EditarPlano extends AbstractPageBean { break; } + gridPlano.setId("gridPlano"); gridPlano.setWidth("100%"); gridPlano.setColumns(1); gridPlano.setColumnClasses("gridColCenter"); @@ -647,6 +461,7 @@ public class EditarPlano extends AbstractPageBean { private void showPlano(PlanoActuacao p) { gridArea = new HtmlPanelGrid(); + gridArea.setId("gridArea"); gridArea.setColumns(1); gridArea.setColumnClasses("gridColLeft"); gridArea.setWidth("100%"); @@ -654,7 +469,15 @@ public class EditarPlano extends AbstractPageBean { gridPlano.getChildren().add(gridArea); Area a = p.getAreas().get(0); - + showArea(a); + Risco r = a.getRiscos().get(0); + showRisco(r); + showValores(r); + showResponsavel(r); + } + + private void showArea(Area a) + { pg = new PanelGroup(); st = new StaticText(); st.setEscape(false); @@ -662,13 +485,18 @@ public class EditarPlano extends AbstractPageBean { pg.getChildren().add(st); gridArea.getChildren().add(pg); + + } + + private void showRisco(Risco r) + { + getSessionBean1().setCurrentRisco(r); HtmlPanelGrid grd = new HtmlPanelGrid(); grd.setColumns(1); grd.setWidth("100%"); grd.setStyleClass("centerBlock"); - gridArea.getChildren().add(grd); + gridArea.getChildren().add(grd); - //Risco gridRisco = new HtmlPanelGrid(); gridRisco.setStyleClass("centerBlock"); gridRisco.setWidth("98%"); @@ -676,7 +504,6 @@ public class EditarPlano extends AbstractPageBean { gridRisco.setColumnClasses("gridColLeft"); grd.getChildren().add(gridRisco); - Risco r = a.getRiscos().get(0); pg = new PanelGroup(); st = new StaticText(); st.setEscape(false); @@ -684,15 +511,6 @@ public class EditarPlano extends AbstractPageBean { pg.getChildren().add(st); gridRisco.getChildren().add(pg); - showValores(r); - - - gridMedida = new HtmlPanelGrid(); - gridMedida.setStyleClass("centerBlock"); - gridMedida.setWidth("98%"); - gridMedida.setColumns(1); - gridMedida.setColumnClasses("gridColLeft"); - grd.getChildren().add(gridMedida); } private void showValores(Risco r) @@ -781,7 +599,123 @@ public class EditarPlano extends AbstractPageBean { } } + + private void showResponsavel(Risco r) + { + gridResponsavel = new HtmlPanelGrid(); + gridResponsavel.setId("gridResponsavel"); + gridResponsavel.setWidth("100%"); + gridResponsavel.setColumns(1); + gridResponsavel.setColumnClasses("gridColLeft"); + gridArea.getChildren().add(gridResponsavel); + + pg = new PanelGroup(); + pg.setId("pgResponsavel"); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Responsável de execução:"); + pg.getChildren().add(st); + txtResponsavelExecucao = new TextField(); + txtResponsavelExecucao.setId("txtResponsavel"); + txtResponsavelExecucao.setColumns(100); + pg.getChildren().add(txtResponsavelExecucao); + gridResponsavel.getChildren().add(pg); + pg = new PanelGroup(); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Recursos necessários à implementação da medida:"); + pg.getChildren().add(st); + gridResponsavel.getChildren().add(pg); + txtRecursos = new TextArea(); + txtRecursos.setId("txtRecursos"); + txtRecursos.setColumns(200); + gridResponsavel.getChildren().add(txtRecursos); + + HtmlPanelGrid grd = new HtmlPanelGrid(); + grd.setColumns(2); + grd.setColumnClasses("gridCol15, gridCol85"); + grd.setId("pgDtInicio"); + grd.setStyle("width: 100%"); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Data prevista de início:"); + grd.getChildren().add(st); + dtInicio = new Calendar(); + dtInicio.setId("dtInicio"); + grd.getChildren().add(dtInicio); + gridResponsavel.getChildren().add(grd); + + grd = new HtmlPanelGrid(); + grd.setColumns(2); + grd.setColumnClasses("gridCol15, gridCol85"); + grd.setId("pgDtFim"); + grd.setStyle("width: 100%"); + st = new StaticText(); + st.setEscape(false); + st.setStyleClass("label"); + st.setText("Data prevista de conclusão:"); + grd.getChildren().add(st); + dtFim = new Calendar(); + dtFim.setId("dtFim"); + grd.getChildren().add(dtFim); + gridResponsavel.getChildren().add(grd); + } + + private void setPagination() + { + StaticText st = null; + + Class[] argtypes = new Class[1]; + argtypes[0] = ActionEvent.class; + MethodExpression me = (MethodExpression)this.getApplication().getExpressionFactory().createMethodExpression( + getFacesContext().getELContext(), "#{EditarPlano.paginacao_actionListener}", null,argtypes); + if(grpPagination.getChildCount() > 0) + { + grpPagination.getChildren().clear(); + } + + Pagination pagination = getSessionBean1().getPagination(); + Vector paginas = pagination.getPaginas(); + for(Pagina pagina : paginas) + { + if(pagina.isPrevious()) + { + pagina.addActionListener(new MethodExpressionActionListener(me)); + grpPagination.getChildren().add(pagina); + st = new StaticText(); + st.setEscape(false); + st.setText(" "); + grpPagination.getChildren().add(st); + } + else if(pagina.isNext()) + { + st = new StaticText(); + st.setEscape(false); + st.setText(" "); + grpPagination.getChildren().add(st); + pagina.addActionListener(new MethodExpressionActionListener(me)); + grpPagination.getChildren().add(pagina); + } + else + { + pagina.addActionListener(new MethodExpressionActionListener(me)); + grpPagination.getChildren().add(pagina); + if(pagina.getPage_nr().intValue() < pagination.totalPaginas() ) + { + st = new StaticText(); + st.setEscape(false); + st.setText(" | "); + grpPagination.getChildren().add(st); + } + + } + } + } + public String butGravarPlano_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. @@ -791,11 +725,79 @@ public class EditarPlano extends AbstractPageBean { public String butGravarRisco_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. - System.out.println("BUT NEXT RISCO"); + + try + { + Risco r = getSessionBean1().getCurrentRisco(); + r = fillRiscoFields(r); + pdp.updateRisco(r); + + Pagination pagination = getSessionBean1().getPagination(); + r = pagination.nextRisco(); + if(r != null) + { + gridPlano = (HtmlPanelGrid) gridLayout.findComponent("form1:gridPlano"); + gridArea = (HtmlPanelGrid) gridPlano.findComponent("form1:gridArea"); + if(gridArea.getChildren() != null) + { + gridArea.getChildren().clear(); + } + Area a = getSessionBean1().getAreasHash().get( r.getArea_id() ); + showArea(a); + showRisco(r); + showValores(r); + showResponsavel(r); + } + } + catch(Exception ex) + { + ex.printStackTrace(); + } + + + //Risco r = getNextRisco(getSessionBean1().getPlanoId()); //fillRisco(r); return null; } + + private Risco fillRiscoFields(Risco r) + { + gridArea = (HtmlPanelGrid) gridPlano.findComponent("form1:gridArea"); + gridResponsavel = (HtmlPanelGrid) gridArea.findComponent("form1:gridResponsavel"); + + TextField txtResponsavel = (TextField) gridResponsavel.findComponent("_form1:txtResponsavel"); + if(txtResponsavel != null) + { + if(txtResponsavel.getText() != null) + { + r.setResponsavel_execucao((String) txtResponsavel.getText()); + } + } + + TextArea txtRecursos = (TextArea) gridResponsavel.findComponent("_form1:txtRecursos"); + if(txtRecursos != null) + { + if(txtRecursos.getText() != null) + { + r.setRecursos_necessarios((String) txtRecursos.getText()); + } + } + + Calendar dtInicio = (Calendar) gridResponsavel.findComponent("_form1:dtInicio"); + if(dtInicio != null) + { + r.setData_inicio(dtInicio.getSelectedDate()); + } + + Calendar dtFim = (Calendar) gridResponsavel.findComponent("_form1:dtFim"); + if(dtFim != null) + { + r.setData_fim(dtFim.getSelectedDate()); + } + + return r; + } public String butEnviar_action() { // TODO: Process the action. Return value is a navigation @@ -969,5 +971,43 @@ public class EditarPlano extends AbstractPageBean { } + + private void getRiscosByPlano(PlanoActuacao p) + { + HashMap areasHash = new HashMap(); + HashMap riscosHash = new HashMap(); + + for(Area a : p.getAreas()) + { + areasHash.put(a.getId(), a); + for(Risco r : a.getRiscos()) + { + riscosHash.put(r.getId(), r); + } + } + + getSessionBean1().setAreasHash(areasHash); + getSessionBean1().setRiscosHash(riscosHash); + } + + public void paginacao_actionListener(ActionEvent e) + { + gridPlano = (HtmlPanelGrid) gridLayout.findComponent("form1:gridPlano"); + gridArea = (HtmlPanelGrid) gridPlano.findComponent("form1:gridArea"); + if(gridArea.getChildren() != null) + { + gridArea.getChildren().clear(); + } + Pagina pagina = (Pagina) e.getSource(); + Pagination pagination = getSessionBean1().getPagination(); + Risco r = pagination.getRisco(pagina); + System.out.println("RISCO == " + r.getId().toString()); + Area a = getSessionBean1().getAreasHash().get( r.getArea_id() ); + showArea(a); + showRisco(r); + showValores(r); + showResponsavel(r); + } + } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java b/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java index 33610258..052afb82 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/PlanosActuacao.java @@ -169,7 +169,7 @@ public class PlanosActuacao { } catch(Exception ex) { - + ex.printStackTrace(); } return list; } @@ -183,7 +183,7 @@ public class PlanosActuacao { } catch(Exception ex) { - + ex.printStackTrace(); } return list; } @@ -197,7 +197,7 @@ public class PlanosActuacao { } catch(Exception ex) { - + ex.printStackTrace(); } return list; } diff --git a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java index 12649777..06d90ce5 100644 --- a/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java +++ b/trunk/PlanosActuacao/src/java/planosactuacao/SessionBean1.java @@ -7,13 +7,13 @@ package planosactuacao; import com.sun.rave.web.ui.appbase.AbstractSessionBean; -import db.entidades.Medida; +import db.entidades.Area; import db.entidades.PlanoActuacao; -import db.entidades.PostoTrabalho; import db.entidades.Risco; import db.entidades.Utilizador; -import java.util.Vector; +import java.util.HashMap; import javax.faces.FacesException; +import pagination.Pagination; /** *

Session scope data bean for your application. Create properties @@ -35,10 +35,8 @@ public class SessionBean1 extends AbstractSessionBean { private Integer planoId; private PlanoActuacao planoActuacao = null; - private Vector riscos = new Vector(); - private Vector medidas = new Vector(); - private Vector postos = new Vector(); - private int riscosIdx = 0; + private Risco currentRisco = null; + private tabledataproviders.PlanosActualDataProvider planosActualDataProvider; private tabledataproviders.PlanosSeguimentoDataProvider planosSeguimentoDataProvider; @@ -63,6 +61,10 @@ public class SessionBean1 extends AbstractSessionBean { //fase private int fase = 1; + + private HashMap areasHash; + private HashMap riscosHash; + private Pagination pagination = null; /** *

Construct a new session data bean instance.

@@ -208,38 +210,6 @@ public class SessionBean1 extends AbstractSessionBean { this.planoId = planoId; } - public Vector getRiscos() { - return riscos; - } - - public void setRiscos(Vector riscos) { - this.riscos = riscos; - } - - public Vector getMedidas() { - return medidas; - } - - public void setMedidas(Vector medidas) { - this.medidas = medidas; - } - - public Vector getPostos() { - return postos; - } - - public void setPostos(Vector postos) { - this.postos = postos; - } - - public int getRiscosIdx() { - return riscosIdx; - } - - public void setRiscosIdx(int riscosIdx) { - this.riscosIdx = riscosIdx; - } - public Utilizador getCurrentUser() { return currentUser; } @@ -326,6 +296,39 @@ public class SessionBean1 extends AbstractSessionBean { public void setIrParaOptions(com.sun.webui.jsf.model.Option[] irParaOptions) { this.irParaOptions = irParaOptions; - } + } + + public HashMap getAreasHash() { + return areasHash; + } + + public void setAreasHash(HashMap areasHash) { + this.areasHash = areasHash; + } + + public HashMap getRiscosHash() { + return riscosHash; + } + + public void setRiscosHash(HashMap riscosHash) { + this.riscosHash = riscosHash; + } + + public Pagination getPagination() { + return pagination; + } + + public void setPagination(Pagination pagination) { + this.pagination = pagination; + } + + public Risco getCurrentRisco() { + return currentRisco; + } + + public void setCurrentRisco(Risco currentRisco) { + this.currentRisco = currentRisco; + } + } diff --git a/trunk/PlanosActuacao/web/Dummy.jsp b/trunk/PlanosActuacao/web/Dummy.jsp index d34a1faa..e22afac6 100644 --- a/trunk/PlanosActuacao/web/Dummy.jsp +++ b/trunk/PlanosActuacao/web/Dummy.jsp @@ -28,21 +28,10 @@ - - - - - - - - - + + - - - - diff --git a/trunk/PlanosActuacao/web/EditarPlano.jsp b/trunk/PlanosActuacao/web/EditarPlano.jsp index 7d2051f0..649dfcaa 100644 --- a/trunk/PlanosActuacao/web/EditarPlano.jsp +++ b/trunk/PlanosActuacao/web/EditarPlano.jsp @@ -105,6 +105,10 @@ + + +