<copyfiles files="${file.reference.unbbayes-4.10.4-1s.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.xalan-2.7.0.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<copyfiles files="${file.reference.xml-apis-1.0.b2.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
- <copyfiles files="${file.reference.casablanca-1.0.3.jar}" iftldtodir="${build.web.dir}/WEB-INF" todir="${dist.ear.dir}/lib"/>
<mkdir dir="${build.web.dir}/META-INF"/>
<manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/>
</target>
<copyfiles files="${file.reference.unbbayes-4.10.4-1s.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.xalan-2.7.0.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
<copyfiles files="${file.reference.xml-apis-1.0.b2.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
- <copyfiles files="${file.reference.casablanca-1.0.3.jar}" todir="${build.web.dir}/WEB-INF/lib"/>
</target>
<target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
<delete dir="${build.web.dir}/WEB-INF/lib"/>
-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
${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
${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
<file>${file.reference.xml-apis-1.0.b2.jar}</file>
<path-in-war>WEB-INF/lib</path-in-war>
</library>
- <library dirs="200">
- <file>${file.reference.casablanca-1.0.3.jar}</file>
- <path-in-war>WEB-INF/lib</path-in-war>
- </library>
</web-module-libraries>
<web-module-additional-libraries/>
<source-roots>
--- /dev/null
+/*
+ * 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();
+
+}
* @author maroni
*/
@Entity
-public class Nodo implements Serializable {
+public class Nodo implements Serializable, IdHolder, Comparable<Nodo> {
public static final String SINAL_SINTOMA = "SINAL_SINTOMA";
public static final String HISTORICO = "HISTORICO";
this.perguntas = perguntas;
}
+ @Override
+ public int compareTo(Nodo t) {
+ return t.getId().intValue() - this.getId().intValue();
+ }
+
}
*/
@Entity
@Table(name="PERGUNTA_NODO")
-public class PerguntaNodo implements Serializable {
+public class PerguntaNodo implements Serializable, IdHolder, Comparable<PerguntaNodo> {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="SeqPerguntaNodo", sequenceName="SQ_PERGUNTA_NODO")
this.respostas = respostas;
}
+ @Override
+ public int compareTo(PerguntaNodo t) {
+ return t.getId().intValue()- this.getId().intValue();
+ }
}
*/
@Entity
@Table(appliesTo="Rede")
-public class Rede implements Serializable {
+public class Rede implements Serializable, IdHolder, Comparable<Rede> {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="seqRede", sequenceName="SQ_REDE")
private List<Nodo> nodos;
public Long getId() {
- return id;
-
+ return id;
}
public void setId(Long id) {
public void setDescricao(String descricao) {
this.descricao = descricao;
}
+
+ @Override
+ public int compareTo(Rede t) {
+ return t.getId().intValue() - this.getId().intValue();
+ }
}
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;
*/
@Entity
@Table(name="RESPOSTA_NODO")
-public class RespostaNodo implements Serializable {
+public class RespostaNodo implements Serializable, IdHolder, Comparable<RespostaNodo> {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name="SeqRespotaNOdo", sequenceName="SQ_RESPOTA_NODO")
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<SinonimoResposta> sinonimos;
+
+ @Column(nullable=true, length=2000)
+ private String texto;
public Long getId() {
return id;
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();
+ }
}
+++ /dev/null
-/*
- * 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<Rede> implements SelectableDataModel<Rede> {
-
- private static final Logger logger = Logger.getLogger("" + RedeDataModel.class);
-
- public RedeDataModel() {
- }
-
- public RedeDataModel(List<Rede> 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<Rede> redes = (List<Rede>) 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();
- }
-}
--- /dev/null
+/*
+ * 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<IdHolder> idHolders = new ArrayList<IdHolder>(rede.getNodos());
+ return new SimdecsDataModel(idHolders);
+ }
+
+ public PerguntaNodo getSelectedPergunta() {
+ return selectedPergunta;
+ }
+
+ public SimdecsDataModel getSelectablePerguntas() {
+ if (selectedNodo.getPerguntas() != null){
+ Collections.sort(selectedNodo.getPerguntas());
+ }
+ List<IdHolder> idHolders = new ArrayList<IdHolder>(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<IdHolder> idHolders = new ArrayList<IdHolder>(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);
+ }
+}
*/
package org.ufcspa.simdecs.mb.bn;
+import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
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<Rede> getItems() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
Query q = em.createQuery(cq);
return q.getResultList();
}
-
-
+
public Rede getSelectedItem() {
assert selectedItems.length == 1;
return selectedItems[0];
logger.log(Level.INFO, "Set selected items.");
}
- public RedeDataModel getSelectableItems() {
- return new RedeDataModel(this.getItems());
+ public SimdecsDataModel getSelectableItems() {
+ List<IdHolder> idHolders = new ArrayList<IdHolder>(this.getItems());
+ return new SimdecsDataModel(idHolders);
}
public void destroy() {
em.getTransaction().commit();
}
}
-
- public String close(){
- return "/rede/index";
- }
-
- public String edit() {
- return "/rede/editarRede";
- }
public List<Nodo> getNodos(){
Rede rede = getSelectedItem();
--- /dev/null
+/*
+ * 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<IdHolder>
+ implements SelectableDataModel<IdHolder> {
+
+ public SimdecsDataModel(List<IdHolder> 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<IdHolder> entities = (List<IdHolder>) 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();
+ }
+
+}
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Release</param-value>
</context-param>
- <context-param>
- <param-name>primefaces.THEME</param-name>
- <param-value>casablanca</param-value>
- </context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core">
+ <script type="text/javascript">
+ function editLastDatatableRow(){
+//
+// jQuery('.ui-datatable-data tr').first().find('span.ui-icon-pencil').each(function(){
+// jQuery(this).click()
+// });
+ }
+ </script>
+
<h:head>
<title>SimDeCS: Redes Bayesianas</title>
+ <link type="text/css" rel="stylesheet" href="style.css" />
</h:head>
<h:body>
- <h:form>
- <h2>Rede Bayesiana: #{redeController.selectedItem.nome}</h2>
- <p:dataTable var="nodo" value="#{redeController.nodos}" id="nodoTable"
- paginator="true" rows="10"
- style="width:70%"
- paginatorPosition="top"
- paginatorAlwaysVisible="false"
- emptyMessage="Não existem nodos cadastrados.">
-
- <f:facet name="header">
- <h:outputText value="Nodos"/>
- <p:separator/>
- <p:commandButton icon="ui-icon-close" action="#{redeController.close}" ajax="false"/>
- <p:commandButton icon="ui-icon-plus" action="#{redeController.close}" ajax="false"/>
- </f:facet>
-
- <p:column headerText="Nome">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{nodo.nome}" />
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{nodo.nome}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
- <p:column headerText="Nome Alternativo">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{nodo.nomeAmigavel}" />
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{nodo.nomeAmigavel}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
- <p:column headerText="Custo">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{nodo.custo}" />
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{nodo.custo}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
- <p:column headerText="Tipo">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{nodo.tipo}" />
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{nodo.tipo}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
- <p:column headerText="Bogus">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{nodo.bogus}" />
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{nodo.bogus}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
+ <h:form id="formNodos">
+ <p:growl id="growl" showDetail="true"/>
+ <p:panel style="width: 99%">
+ <h:outputText value="Rede Bayesiana: #{redeEditBean.rede.nome}"/>
+ </p:panel>
+ <table>
+ <tr>
+ <td>
+ <ui:include src="tabelaNodos.xhtml"/>
+ </td>
+ <td><p:spacer width="10" height="10" /> </td>
+ <td>
+ <p:panel id="nodoPanel"
+ header="Detalhes do nodo #{redeEditBean.selectedNodo.nome}"
+ style="width: 500px; height: 465px"
+ visible="#{redeEditBean.selectedNodo != null}">
- <p:column headerText="">
- <p:rowEditor />
-
- </p:column>
- </p:dataTable>
+ <ui:include src="tabelaPerguntas.xhtml"/>
+ <p:spacer height="20" />
+ <ui:include src="tabelaRespostas.xhtml"/>
+ </p:panel>
+ </td>
+ </tr>
+ </table>
</h:form>
-
</h:body>
</html>
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>SimDeCS: Redes Bayesianas</title>
+ <link type="text/css" rel="stylesheet" href="style.css" />
</h:head>
<h:body>
-<!-- <ui:include src="header.xhtml"/>-->
+ <!-- <ui:include src="header.xhtml"/>-->
<h:form id="formUpload" enctype="multipart/form-data">
- <h2>Upload de Redes Bayesianas</h2>
- <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
+ <p:panel style="width: 60%">
+ <h:outputText value="Cadastro de Bayesianas"/>
+ </p:panel>
+ <p:spacer height="10px"/>
+ <p:panel header="Envio de redes bayesianas" style="width:38%">
+ <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced"
- update=":formRedeTable,:formUpload:messages"
- style="width:70%; height: 50px"
+ update=":formRedeTable,:formUpload:messages"
multiple="true"
allowTypes="/(\.|\/)(xml)$/"
uploadLabel="Enviar"
cancelLabel="Cancelar"
label="Selecionar"/>
<p:growl id="messages" showDetail="true"/>
+ </p:panel>
</h:form>
-
- <br></br><br></br>
+
+ <p:spacer height="10px"/>
<h:form id="formRedeTable">
- <p:dataTable id="redeTable" var="rede" value="#{redeController.selectableItems}" paginator="true" rows="30"
- selection="#{redeController.selectedItems}" style="width:70%"
- paginatorPosition="top"
- paginatorAlwaysVisible="false"
- emptyMessage="Não existem redes cadastradas.">
-
- <p:ajax event="rowSelect" listener="#{redeController.onRowSelect}"
- update=":formRedeTable,:formUpload:messages"/>
- <p:ajax event="rowUnselect" listener="#{redeController.onRowUnselect}"
- update=":formRedeTable,:formUpload:messages"/>
-
- <f:facet name="header">
- <h:outputText value="Redes Bayesianas"/>
-
- <p:separator />
- <p:commandButton id="verButton" icon="ui-icon-folder-open"
- action="#{redeController.edit}"
- disabled="#{redeController.viewButtonDisabled}" ajax="false"/>
- <p:commandButton icon="ui-icon-trash" actionListener="#{redeController.destroy}"
- update=":formRedeTable,:formUpload:messages"/>
- </f:facet>
-
- <p:column selectionMode="multiple" />
-
- <p:column headerText="Nome">
- <p:cellEditor>
- <f:facet name="output">
- <p:commandLink value="#{rede.nome}"/>
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{rede.nome}"/>
- </f:facet>
- </p:cellEditor>
- </p:column>
-
- <p:column headerText="Arquivo">
- #{rede.nomeArquivo}
- </p:column>
-
- <p:column headerText="Descrição">
- <p:cellEditor>
- <f:facet name="output">
- <h:outputText value="#{rede.descricao}"/>
- </f:facet>
- <f:facet name="input">
- <p:inputText value="#{rede.descricao}"/>
- </f:facet>
- </p:cellEditor>
-
- </p:column>
-
- <p:column headerText="">
- <p:rowEditor />
- </p:column>
-
- </p:dataTable>
-
-
+ <ui:include src="tabelaRede.xhtml"/>
</h:form>
</h:body>
</html>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:p="http://primefaces.org/ui"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core">
+
+ <p:dataTable var="nodo" value="#{redeEditBean.selectableNodos}" id="nodoTable"
+ paginator="true" rows="10"
+ style="width:700px; height: 465px"
+ paginatorPosition="top"
+ paginatorAlwaysVisible="false"
+ emptyMessage="Não existem nodos cadastrados."
+ selection="#{redeEditBean.selectedNodo}" selectionMode="single"
+ sortBy="#nodo.nome"
+ >
+
+ <p:ajax event="rowSelect" listener="#{redeEditBean.onNodoRowSelect}"
+ update=":formNodos:nodoPanel"/>
+ <p:ajax event="rowUnselect" listener="#{redeEditBean.onNodoRowUnselect}" update=":formNodos:nodoPanel"/>
+
+ <f:facet name="header">
+ <h:outputText value="Nodos"/>
+ <p:separator/>
+ <p:commandButton icon="ui-icon-arrowthick-1-w" action="#{redeEditBean.close}" ajax="false"/>
+ <p:commandButton icon="ui-icon-plusthick" action="#{redeEditBean.addNodo}" update=":formNodos:nodoTable"
+ oncomplete="editLastDatatableRow();"/>
+ </f:facet>
+
+ <p:column headerText="Nome">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{nodo.nome}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{nodo.nome}" size="10"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column headerText="Nome Alternativo">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{nodo.nomeAmigavel}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{nodo.nomeAmigavel}" size="10"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column headerText="Custo">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{nodo.custo}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{nodo.custo}" size="3"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column headerText="Tempo">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{nodo.tempo}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{nodo.tempo}" size="3"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column headerText="Bogus">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{nodo.bogus}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{nodo.bogus}" size="1"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column headerText="">
+ <p:rowEditor />
+ <p:commandLink action="#{redeEditBean.removeNodo(nodo)}" update=":formNodos">
+ <h:graphicImage value="/img/bn/remove.png" />
+ </p:commandLink>
+ </p:column>
+ </p:dataTable>
+</ui:composition>
\ No newline at end of file
--- /dev/null
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:p="http://primefaces.org/ui"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core">
+ <p:dataTable var="pergunta"
+ rendered="#{redeEditBean.selectedNodo.perguntas != null}"
+ value="#{redeEditBean.selectablePerguntas}" id="perguntaTable"
+ paginator="true" rows="10"
+ paginatorPosition="top"
+ paginatorAlwaysVisible="false"
+ emptyMessage="Não existem perguntas cadastradas."
+ selection="#{redeEditBean.selectedPergunta}" selectionMode="single"
+ >
+
+ <p:ajax event="rowSelect"
+ listener="#{redeEditBean.onPerguntaRowSelect}"
+ update=":formNodos"/>
+ <p:ajax event="rowUnselect"
+ listener="#{redeEditBean.onPerguntaRowUnselect}"
+ update=":formNodos"/>
+
+ <f:facet name="header">
+ <p:commandButton icon="ui-icon-plusthick" action="#{redeEditBean.addPergunta}"
+ update=":formNodos:perguntaTable"
+ oncomplete="editLastDatatableRow();"/>
+ </f:facet>
+
+ <p:column headerText="Texto">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{pergunta.texto}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{pergunta.texto}"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+ <p:column style="width: 15%">
+ <p:rowEditor/>
+ <p:commandLink action="#{redeEditBean.removePergunta(pergunta)}" update=":formNodos:nodoPanel">
+ <h:graphicImage value="/img/bn/remove.png" />
+ </p:commandLink>
+ </p:column>
+ </p:dataTable>
+</ui:composition>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:p="http://primefaces.org/ui"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core">
+
+ <p:dataTable id="redeTable" var="rede" value="#{redeUploadBean.selectableItems}"
+ style="width:60%"
+ paginator="true" rows="30"
+ paginatorPosition="top"
+ paginatorAlwaysVisible="false"
+ selection="#{redeUploadBean.selectedItems}"
+ emptyMessage="Não existem redes cadastradas.">
+
+ <p:ajax event="rowSelect"
+ listener="#{redeUploadBean.onRowSelect}"
+ update=":formRedeTable,:formUpload:messages"/>
+ <p:ajax event="rowUnselect"
+ listener="#{redeUploadBean.onRowUnselect}"
+ update=":formRedeTable,:formUpload:messages"/>
+
+ <f:facet name="header">
+ <h:outputText value="Redes cadastradas"/>
+ <p:separator />
+
+ <p:commandButton id="verButton" icon="ui-icon-folder-open"
+ disabled="#{redeUploadBean.viewButtonDisabled}"
+ action="#{redeEditBean.edit(redeUploadBean.selectedItem)}"
+ ajax="false"/>
+ <p:commandButton icon="ui-icon-trash"
+ actionListener="#{redeUploadBean.destroy}" update=":formRedeTable,:formUpload:messages"/>
+ </f:facet>
+
+ <p:column selectionMode="multiple" />
+
+ <p:column headerText="Nome">
+ <p:cellEditor>
+ <f:facet name="output">
+ <p:commandLink value="#{rede.nome}"/>
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{rede.nome}" size="10"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+
+ <p:column headerText="Arquivo">
+ #{rede.nomeArquivo}
+ </p:column>
+
+ <p:column headerText="Descrição">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{rede.descricao}"/>
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{rede.descricao}" size="10"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+
+ <p:column headerText="">
+ <p:rowEditor />
+ </p:column>
+
+ </p:dataTable>
+
+</ui:composition>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8' ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:p="http://primefaces.org/ui"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core">
+
+
+ <p:dataTable var="resposta"
+ rendered="#{redeEditBean.selectedPergunta.respostas != null}"
+ value="#{redeEditBean.selectableRespostas}" id="respostaTable"
+ style="width: 500"
+ paginator="true" rows="10"
+ paginatorPosition="top"
+ paginatorAlwaysVisible="false"
+ emptyMessage="Não existem respostas cadastradas.">
+
+ <f:facet name="header">
+ <p:commandButton icon="ui-icon-plusthick"
+ action="#{redeEditBean.addResposta}"
+ update=":formNodos:respostaTable"
+ oncomplete="editLastDatatableRow();"/>
+ </f:facet>
+
+ <p:column headerText="Texto">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{resposta.texto}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText value="#{resposta.texto}" size="10"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+
+ <p:column headerText="Min">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText id="minOutput" value="#{resposta.pesoMinimo}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText id="minInput" value="#{resposta.pesoMinimo}" size="3" />
+ <p:slider for="minInput"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+
+ <p:column headerText="Max">
+ <p:cellEditor>
+ <f:facet name="output">
+ <h:outputText value="#{resposta.pesoMaximo}" />
+ </f:facet>
+ <f:facet name="input">
+ <p:inputText id="maxInput" value="#{resposta.pesoMaximo}" size="3"/>
+ <p:slider for="maxInput"/>
+ </f:facet>
+ </p:cellEditor>
+ </p:column>
+
+ <p:column style="width: 15%">
+ <p:rowEditor/>
+ <p:commandLink action="#{redeEditBean.removeResposta(resposta)}" update=":formNodos:nodoPanel">
+ <h:graphicImage value="/img/bn/remove.png" />
+ </p:commandLink>
+ </p:column>
+ </p:dataTable>
+</ui:composition>
h2 {
font-size: 13px;
+ color: gray;
}
.ui-datalist-data {
border: 0px;
+}
+
+.site-title{
+ font-size: 40px;
+ color: gray;
}
\ No newline at end of file