From: Michele Silva Date: Sun, 5 Feb 2012 18:02:56 +0000 (-0200) Subject: Visualizacao de perguntas e respostas adicionada. X-Git-Url: http://200.18.67.61/gitweb/?a=commitdiff_plain;h=7e20fa536fa65e9c6f97e63e8731e13ea66d624d;p=simdecs2.git Visualizacao de perguntas e respostas adicionada. --- diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml index df2c7ee..28fab05 100644 --- a/nbproject/build-impl.xml +++ b/nbproject/build-impl.xml @@ -695,7 +695,6 @@ exists or setup the property manually. For example like this: - @@ -722,7 +721,6 @@ exists or setup the property manually. For example like this: - diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties index 75bab72..7c59915 100644 --- a/nbproject/genfiles.properties +++ b/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=04b72030 +build.xml.data.CRC32=2c4c42bc build.xml.script.CRC32=9f680c47 build.xml.stylesheet.CRC32=651128d4@1.36.1.1 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=04b72030 -nbproject/build-impl.xml.script.CRC32=ee0ab292 +nbproject/build-impl.xml.data.CRC32=2c4c42bc +nbproject/build-impl.xml.script.CRC32=d3f674de nbproject/build-impl.xml.stylesheet.CRC32=b7883b1f@1.36.1.1 diff --git a/nbproject/project.properties b/nbproject/project.properties index 6b7069b..8781252 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -29,7 +29,6 @@ endorsed.classpath=\ ${libs.javaee-endorsed-api-6.0.classpath} excludes= file.reference.avalon-framework-4.1.3.jar=lib/avalon-framework-4.1.3.jar -file.reference.casablanca-1.0.3.jar=lib/casablanca-1.0.3.jar file.reference.commons-fileupload-1.2.2.jar=lib/commons-fileupload-1.2.2.jar file.reference.commons-io-2.1.jar=lib/commons-io-2.1.jar file.reference.commons-lang3-3.1.jar=lib/commons-lang3-3.1.jar @@ -84,8 +83,7 @@ javac.classpath=\ ${file.reference.servlet-api-2.3.jar}:\ ${file.reference.unbbayes-4.10.4-1s.jar}:\ ${file.reference.xalan-2.7.0.jar}:\ - ${file.reference.xml-apis-1.0.b2.jar}:\ - ${file.reference.casablanca-1.0.3.jar} + ${file.reference.xml-apis-1.0.b2.jar} # Space-separated list of extra javac options javac.compilerargs= javac.debug=true diff --git a/nbproject/project.xml b/nbproject/project.xml index e78675e..c7c6a47 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -94,10 +94,6 @@ ${file.reference.xml-apis-1.0.b2.jar} WEB-INF/lib - - ${file.reference.casablanca-1.0.3.jar} - WEB-INF/lib - diff --git a/src/java/org/ufcspa/simdecs/entities/IdHolder.java b/src/java/org/ufcspa/simdecs/entities/IdHolder.java new file mode 100644 index 0000000..acffd69 --- /dev/null +++ b/src/java/org/ufcspa/simdecs/entities/IdHolder.java @@ -0,0 +1,15 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.ufcspa.simdecs.entities; + +/** + * + * @author mchelem + */ +public interface IdHolder { + + public Long getId(); + +} diff --git a/src/java/org/ufcspa/simdecs/entities/Nodo.java b/src/java/org/ufcspa/simdecs/entities/Nodo.java index afc7b81..c6c354f 100644 --- a/src/java/org/ufcspa/simdecs/entities/Nodo.java +++ b/src/java/org/ufcspa/simdecs/entities/Nodo.java @@ -13,7 +13,7 @@ import javax.persistence.*; * @author maroni */ @Entity -public class Nodo implements Serializable { +public class Nodo implements Serializable, IdHolder, Comparable { public static final String SINAL_SINTOMA = "SINAL_SINTOMA"; public static final String HISTORICO = "HISTORICO"; @@ -155,5 +155,10 @@ public class Nodo implements Serializable { this.perguntas = perguntas; } + @Override + public int compareTo(Nodo t) { + return t.getId().intValue() - this.getId().intValue(); + } + } diff --git a/src/java/org/ufcspa/simdecs/entities/PerguntaNodo.java b/src/java/org/ufcspa/simdecs/entities/PerguntaNodo.java index f1a8ae0..fc3f74b 100644 --- a/src/java/org/ufcspa/simdecs/entities/PerguntaNodo.java +++ b/src/java/org/ufcspa/simdecs/entities/PerguntaNodo.java @@ -23,7 +23,7 @@ import javax.persistence.Table; */ @Entity @Table(name="PERGUNTA_NODO") -public class PerguntaNodo implements Serializable { +public class PerguntaNodo implements Serializable, IdHolder, Comparable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name="SeqPerguntaNodo", sequenceName="SQ_PERGUNTA_NODO") @@ -97,5 +97,9 @@ public class PerguntaNodo implements Serializable { this.respostas = respostas; } + @Override + public int compareTo(PerguntaNodo t) { + return t.getId().intValue()- this.getId().intValue(); + } } diff --git a/src/java/org/ufcspa/simdecs/entities/Rede.java b/src/java/org/ufcspa/simdecs/entities/Rede.java index 56d2c22..289db95 100644 --- a/src/java/org/ufcspa/simdecs/entities/Rede.java +++ b/src/java/org/ufcspa/simdecs/entities/Rede.java @@ -21,7 +21,7 @@ import org.hibernate.annotations.Table; */ @Entity @Table(appliesTo="Rede") -public class Rede implements Serializable { +public class Rede implements Serializable, IdHolder, Comparable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name="seqRede", sequenceName="SQ_REDE") @@ -41,8 +41,7 @@ public class Rede implements Serializable { private List nodos; public Long getId() { - return id; - + return id; } public void setId(Long id) { @@ -110,5 +109,10 @@ public class Rede implements Serializable { public void setDescricao(String descricao) { this.descricao = descricao; } + + @Override + public int compareTo(Rede t) { + return t.getId().intValue() - this.getId().intValue(); + } } diff --git a/src/java/org/ufcspa/simdecs/entities/RespostaNodo.java b/src/java/org/ufcspa/simdecs/entities/RespostaNodo.java index 8b1d562..d167bbb 100644 --- a/src/java/org/ufcspa/simdecs/entities/RespostaNodo.java +++ b/src/java/org/ufcspa/simdecs/entities/RespostaNodo.java @@ -5,6 +5,7 @@ package org.ufcspa.simdecs.entities; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; @@ -23,7 +24,7 @@ import javax.persistence.Table; */ @Entity @Table(name="RESPOSTA_NODO") -public class RespostaNodo implements Serializable { +public class RespostaNodo implements Serializable, IdHolder, Comparable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name="SeqRespotaNOdo", sequenceName="SQ_RESPOTA_NODO") @@ -37,11 +38,14 @@ public class RespostaNodo implements Serializable { private Integer pesoMaximo; @ManyToOne - @JoinColumn(name="nodo_id", nullable=false) + @JoinColumn(name="pergunta_id", nullable=false) private PerguntaNodo pergunta; @OneToMany(cascade = javax.persistence.CascadeType.ALL, mappedBy="resposta") private List sinonimos; + + @Column(nullable=true, length=2000) + private String texto; public Long getId() { return id; @@ -109,6 +113,16 @@ public class RespostaNodo implements Serializable { this.sinonimos = sinonimos; } + public void setTexto(String texto) { + this.texto = texto; + } + public String getTexto(){ + return this.texto; + } + @Override + public int compareTo(RespostaNodo t) { + return t.getId().intValue() - this.getId().intValue(); + } } diff --git a/src/java/org/ufcspa/simdecs/mb/bn/RedeDataModel.java b/src/java/org/ufcspa/simdecs/mb/bn/RedeDataModel.java deleted file mode 100644 index 883aab5..0000000 --- a/src/java/org/ufcspa/simdecs/mb/bn/RedeDataModel.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package org.ufcspa.simdecs.mb.bn; - -/** - * - * @author mchelem - */ -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.faces.model.ListDataModel; -import org.primefaces.model.SelectableDataModel; -import org.ufcspa.simdecs.entities.Rede; - -public class RedeDataModel extends ListDataModel implements SelectableDataModel { - - private static final Logger logger = Logger.getLogger("" + RedeDataModel.class); - - public RedeDataModel() { - } - - public RedeDataModel(List data) { - super(data); - } - - @Override - public Rede getRowData(String rowKey) { - //In a real app, a more efficient way like a query by rowKey should be implemented to deal with huge data - List redes = (List) getWrappedData(); - for(Rede rede : redes) { - if(rowKey.equals(rede.getId().toString())){ - logger.log(Level.INFO, "Selected network {0}", rede.getId()); - return rede; - } - } - logger.log(Level.INFO, "Did not select network"); - return null; - } - - @Override - public Object getRowKey(Rede rede) { - return rede.getId().toString(); - } -} diff --git a/src/java/org/ufcspa/simdecs/mb/bn/RedeEditBean.java b/src/java/org/ufcspa/simdecs/mb/bn/RedeEditBean.java new file mode 100644 index 0000000..a76f3cd --- /dev/null +++ b/src/java/org/ufcspa/simdecs/mb/bn/RedeEditBean.java @@ -0,0 +1,200 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.ufcspa.simdecs.mb.bn; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.component.panel.Panel; +import org.primefaces.event.SelectEvent; +import org.primefaces.event.UnselectEvent; +import org.ufcspa.simdecs.entities.*; +import org.ufcspa.simdecs.mb.DefaultManagedBean; + +@ManagedBean +@SessionScoped +public class RedeEditBean extends DefaultManagedBean { + + private Rede rede; + private Nodo selectedNodo; + private PerguntaNodo selectedPergunta; + private RespostaNodo selectedResposta; + + public Rede getRede() { + return rede; + } + + public void setRede(Rede rede) { + this.rede = rede; + } + + public Nodo getSelectedNodo() { + return selectedNodo; + } + + public void setSelectedNodo(Nodo selectedNodo) { + this.selectedNodo = selectedNodo; + } + + public SimdecsDataModel getSelectableNodos() { + if (rede.getNodos() != null){ + Collections.sort(rede.getNodos()); + } + List idHolders = new ArrayList(rede.getNodos()); + return new SimdecsDataModel(idHolders); + } + + public PerguntaNodo getSelectedPergunta() { + return selectedPergunta; + } + + public SimdecsDataModel getSelectablePerguntas() { + if (selectedNodo.getPerguntas() != null){ + Collections.sort(selectedNodo.getPerguntas()); + } + List idHolders = new ArrayList(selectedNodo.getPerguntas()); + return new SimdecsDataModel(idHolders); + } + + public void setSelectedPergunta(PerguntaNodo selectedPergunta) { + this.selectedPergunta = selectedPergunta; + } + + public SimdecsDataModel getSelectableRespostas() { + if (selectedPergunta.getRespostas() != null) { + Collections.sort(selectedPergunta.getRespostas()); + } + List idHolders = new ArrayList(selectedPergunta.getRespostas()); + return new SimdecsDataModel(idHolders); + } + + public RespostaNodo getSelectedResposta() { + return selectedResposta; + } + + public void setSelectedResposta(RespostaNodo selectedResposta) { + this.selectedResposta = selectedResposta; + } + + public void addPergunta() { + try { + em.getTransaction().begin(); + } finally { + PerguntaNodo pergunta = new PerguntaNodo(); + pergunta.setTexto(""); + pergunta.setNodo(selectedNodo); + pergunta.setRespostas(new ArrayList()); + selectedNodo.getPerguntas().add(pergunta); + em.persist(pergunta); + em.getTransaction().commit(); + } + } + + public void removePergunta(PerguntaNodo pergunta) { + try { + em.getTransaction().begin(); + } finally { + pergunta.getNodo().getPerguntas().remove(pergunta); + em.remove(pergunta); + em.getTransaction().commit(); + } + } + + public void addResposta() { + try { + em.getTransaction().begin(); + } finally { + RespostaNodo resposta = new RespostaNodo(); + resposta.setTexto(""); + resposta.setPergunta(selectedPergunta); + resposta.setPesoMinimo(0); + resposta.setPesoMaximo(1); + selectedPergunta.getRespostas().add(resposta); + em.persist(resposta); + em.getTransaction().commit(); + } + } + + public void removeResposta(RespostaNodo resposta) { + try { + em.getTransaction().begin(); + } finally { + resposta.getPergunta().getRespostas().remove(resposta); + em.remove(resposta); + em.getTransaction().commit(); + } + } + + public void addNodo() { + try { + em.getTransaction().begin(); + } finally { + Nodo nodo = new Nodo(); + nodo.setNome(""); + nodo.setRede(rede); + nodo.setPerguntas(new ArrayList()); + rede.getNodos().add(nodo); + em.persist(nodo); + em.getTransaction().commit(); + } + } + + public void removeNodo(Nodo nodo) { + try { + em.getTransaction().begin(); + } finally { + nodo.getRede().getNodos().remove(nodo); + em.remove(nodo); + em.getTransaction().commit(); + } + } + + public String close() { + selectedNodo = null; + selectedPergunta = null; + selectedResposta = null; + return "/rede/index"; + } + + public String edit(Rede rede) { + this.rede = rede; + return "/rede/editarRede"; + } + + private void setNodoPanelVisible(boolean visible) { + Panel panel = (Panel) getComponentById( + ":formNodos:nodoPanel"); + panel.setVisible(visible); + } + + private void setRespostaPanelVisible(boolean visible) { + DataTable table = (DataTable) getComponentById( + ":formNodos:respostaTable"); + table.setRendered(visible); + } + + public void onNodoRowSelect(SelectEvent event) { + selectedPergunta = null; + selectedResposta = null; + setNodoPanelVisible(true); + } + + public void onNodoRowUnselect(UnselectEvent event) throws Exception { + selectedPergunta = null; + selectedResposta = null; + setNodoPanelVisible(false); + } + + public void onPerguntaRowSelect(SelectEvent event) { + setRespostaPanelVisible(true); + } + + public void onPerguntaRowUnselect(UnselectEvent event) { + setRespostaPanelVisible(false); + } +} diff --git a/src/java/org/ufcspa/simdecs/mb/bn/RedeController.java b/src/java/org/ufcspa/simdecs/mb/bn/RedeUploadBean.java similarity index 87% rename from src/java/org/ufcspa/simdecs/mb/bn/RedeController.java rename to src/java/org/ufcspa/simdecs/mb/bn/RedeUploadBean.java index 613ee2f..5c93bca 100644 --- a/src/java/org/ufcspa/simdecs/mb/bn/RedeController.java +++ b/src/java/org/ufcspa/simdecs/mb/bn/RedeUploadBean.java @@ -4,6 +4,7 @@ */ package org.ufcspa.simdecs.mb.bn; +import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -14,16 +15,17 @@ import javax.persistence.criteria.CriteriaQuery; import org.primefaces.component.commandbutton.CommandButton; import org.primefaces.event.SelectEvent; import org.primefaces.event.UnselectEvent; +import org.ufcspa.simdecs.entities.IdHolder; import org.ufcspa.simdecs.entities.Nodo; import org.ufcspa.simdecs.entities.Rede; import org.ufcspa.simdecs.mb.DefaultManagedBean; @ManagedBean @SessionScoped -public class RedeController extends DefaultManagedBean { +public class RedeUploadBean extends DefaultManagedBean { private Rede[] selectedItems; - private static final Logger logger = Logger.getLogger("" + RedeDataModel.class); + private static final Logger logger = Logger.getLogger("" + RedeUploadBean.class); public List getItems() { CriteriaQuery cq = em.getCriteriaBuilder().createQuery(); @@ -31,8 +33,7 @@ public class RedeController extends DefaultManagedBean { Query q = em.createQuery(cq); return q.getResultList(); } - - + public Rede getSelectedItem() { assert selectedItems.length == 1; return selectedItems[0]; @@ -47,8 +48,9 @@ public class RedeController extends DefaultManagedBean { logger.log(Level.INFO, "Set selected items."); } - public RedeDataModel getSelectableItems() { - return new RedeDataModel(this.getItems()); + public SimdecsDataModel getSelectableItems() { + List idHolders = new ArrayList(this.getItems()); + return new SimdecsDataModel(idHolders); } public void destroy() { @@ -62,14 +64,6 @@ public class RedeController extends DefaultManagedBean { em.getTransaction().commit(); } } - - public String close(){ - return "/rede/index"; - } - - public String edit() { - return "/rede/editarRede"; - } public List getNodos(){ Rede rede = getSelectedItem(); diff --git a/src/java/org/ufcspa/simdecs/mb/bn/SimdecsDataModel.java b/src/java/org/ufcspa/simdecs/mb/bn/SimdecsDataModel.java new file mode 100644 index 0000000..8935b60 --- /dev/null +++ b/src/java/org/ufcspa/simdecs/mb/bn/SimdecsDataModel.java @@ -0,0 +1,36 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.ufcspa.simdecs.mb.bn; + +import java.util.List; +import javax.faces.model.ListDataModel; +import org.primefaces.model.SelectableDataModel; +import org.ufcspa.simdecs.entities.IdHolder; + +public class SimdecsDataModel extends ListDataModel + implements SelectableDataModel { + + public SimdecsDataModel(List data) { + super(data); + } + + @Override + public IdHolder getRowData(String rowKey) { + //In a real app, a more efficient way like a query by rowKey should be implemented to deal with huge data + List entities = (List) getWrappedData(); + for(IdHolder entity : entities) { + if(rowKey.equals(entity.getId().toString())){ + return entity; + } + } + return null; + } + + @Override + public Object getRowKey(IdHolder object) { + return object.getId().toString(); + } + +} diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml index f21a71e..af3c812 100644 --- a/web/WEB-INF/web.xml +++ b/web/WEB-INF/web.xml @@ -4,10 +4,6 @@ javax.faces.PROJECT_STAGE Release - - primefaces.THEME - casablanca - Faces Servlet javax.faces.webapp.FacesServlet diff --git a/web/img/bn/browse.png b/web/img/bn/browse.png deleted file mode 100644 index 62fd424..0000000 Binary files a/web/img/bn/browse.png and /dev/null differ diff --git a/web/rede/editarRede.xhtml b/web/rede/editarRede.xhtml index a246d57..a0f3b9d 100644 --- a/web/rede/editarRede.xhtml +++ b/web/rede/editarRede.xhtml @@ -7,84 +7,45 @@ xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core"> + + SimDeCS: Redes Bayesianas + - -

Rede Bayesiana: #{redeController.selectedItem.nome}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + +
+ + + - - - - - + + + + +
-
diff --git a/web/rede/index.xhtml b/web/rede/index.xhtml index 72dc886..5d364ca 100644 --- a/web/rede/index.xhtml +++ b/web/rede/index.xhtml @@ -8,83 +8,31 @@ xmlns:f="http://java.sun.com/jsf/core"> SimDeCS: Redes Bayesianas + - + -

Upload de Redes Bayesianas

- + + + + + +
- -



+ + - - - - - - - - - - - - - - - - - - - - - - - - - - - - #{rede.nomeArquivo} - - - - - - - - - - - - - - - - - - - - - +
diff --git a/web/rede/tabelaNodos.xhtml b/web/rede/tabelaNodos.xhtml new file mode 100644 index 0000000..dea5451 --- /dev/null +++ b/web/rede/tabelaNodos.xhtml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/rede/tabelaPerguntas.xhtml b/web/rede/tabelaPerguntas.xhtml new file mode 100644 index 0000000..8468051 --- /dev/null +++ b/web/rede/tabelaPerguntas.xhtml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/rede/tabelaRede.xhtml b/web/rede/tabelaRede.xhtml new file mode 100644 index 0000000..f86762f --- /dev/null +++ b/web/rede/tabelaRede.xhtml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + #{rede.nomeArquivo} + + + + + + + + + + + + + + + + + + + + diff --git a/web/rede/tabelaRespostas.xhtml b/web/rede/tabelaRespostas.xhtml new file mode 100644 index 0000000..4538fa5 --- /dev/null +++ b/web/rede/tabelaRespostas.xhtml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/style.css b/web/style.css index 08a2be3..14727ef 100644 --- a/web/style.css +++ b/web/style.css @@ -43,8 +43,14 @@ h1 { h2 { font-size: 13px; + color: gray; } .ui-datalist-data { border: 0px; +} + +.site-title{ + font-size: 40px; + color: gray; } \ No newline at end of file