Refactoring nas páginas de exibição de tabelas.
authorMichele Silva <michele.silva@gmail.com>
Wed, 8 Feb 2012 16:27:02 +0000 (14:27 -0200)
committerMichele Silva <michele.silva@gmail.com>
Wed, 8 Feb 2012 16:27:02 +0000 (14:27 -0200)
18 files changed:
.gitignore [new file with mode: 0644]
lib/casablanca-1.0.3.jar [deleted file]
lib/postgresql-9.1-901.jdbc3.jar [deleted file]
lib/primefaces-3.0.1.jar [deleted file]
src/java/org/ufcspa/simdecs/entities/Nodo.java
src/java/org/ufcspa/simdecs/mb/bn/CharacterEncodingFilter.java [new file with mode: 0644]
src/java/org/ufcspa/simdecs/mb/bn/FileUploadController.java
src/java/org/ufcspa/simdecs/mb/bn/RedeEditBean.java
src/java/org/ufcspa/simdecs/mb/bn/RedeUploadBean.java
web/WEB-INF/web.xml
web/img/bn/remove.png
web/rede/editarRede.xhtml
web/rede/header.xhtml [deleted file]
web/rede/index.xhtml
web/rede/tabelaNodos.xhtml
web/rede/tabelaPerguntas.xhtml
web/rede/tabelaRede.xhtml
web/rede/tabelaRespostas.xhtml

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..838458f
--- /dev/null
@@ -0,0 +1 @@
+/dist/
\ No newline at end of file
diff --git a/lib/casablanca-1.0.3.jar b/lib/casablanca-1.0.3.jar
deleted file mode 100644 (file)
index 8a866e8..0000000
Binary files a/lib/casablanca-1.0.3.jar and /dev/null differ
diff --git a/lib/postgresql-9.1-901.jdbc3.jar b/lib/postgresql-9.1-901.jdbc3.jar
deleted file mode 100644 (file)
index 046eeca..0000000
Binary files a/lib/postgresql-9.1-901.jdbc3.jar and /dev/null differ
diff --git a/lib/primefaces-3.0.1.jar b/lib/primefaces-3.0.1.jar
deleted file mode 100644 (file)
index c811102..0000000
Binary files a/lib/primefaces-3.0.1.jar and /dev/null differ
index c6c354f..ad1046f 100644 (file)
@@ -44,8 +44,8 @@ public class Nodo implements Serializable, IdHolder, Comparable<Nodo> {
     @Column(nullable=true, length=30)
     private String tipo;
 
-    @Column(nullable=true, length=1)
-    private String bogus;
+    @Column(nullable=true)
+    private Boolean bogus;
 
     @OneToMany(cascade = javax.persistence.CascadeType.ALL, mappedBy="nodo")
     private List<PerguntaNodo> perguntas;
@@ -139,11 +139,11 @@ public class Nodo implements Serializable, IdHolder, Comparable<Nodo> {
         this.tipo = tipo;
     }
 
-    public String getBogus() {
+    public Boolean getBogus() {
         return bogus;
     }
 
-    public void setBogus(String bogus) {
+    public void setBogus(Boolean bogus) {
         this.bogus = bogus;
     }
 
diff --git a/src/java/org/ufcspa/simdecs/mb/bn/CharacterEncodingFilter.java b/src/java/org/ufcspa/simdecs/mb/bn/CharacterEncodingFilter.java
new file mode 100644 (file)
index 0000000..59e382b
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.ufcspa.simdecs.mb.bn;
+
+import java.io.IOException;
+import java.io.Serializable;
+import javax.servlet.*;
+
+public class CharacterEncodingFilter implements Filter, Serializable 
+{
+    private static final long serialVersionUID = -4246457499875267088L;
+
+    @Override
+    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
+        req.setCharacterEncoding("UTF-8");
+        //resp.setCharacterEncoding("UTF-8");
+        chain.doFilter(req, resp);
+    }
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+    }
+
+    @Override
+    public void destroy() {
+    }
+}
index 4939330..7415116 100644 (file)
@@ -23,9 +23,7 @@ import unbbayes.prs.bn.ProbabilisticNetwork;
 @ManagedBean
 @RequestScoped
 public class FileUploadController extends DefaultManagedBean {    
-    
-    private static final Logger logger = Logger.getLogger("" + FileUploadController.class);    
-       
+          
     private File saveUploadedFile(UploadedFile uploadedFile) throws IOException{
         long unixTime = System.currentTimeMillis() / 1000L;
         
@@ -35,7 +33,7 @@ public class FileUploadController extends DefaultManagedBean {
         while(in.available() != 0){ 
             fout.write(in.read());
         }
-        logger.log(Level.INFO, "Uploaded file saved in: {0}", file.getAbsolutePath());
+        Logger.getLogger(FileUploadController.class.getName()).log(Level.INFO, "Uploaded file saved in: {0}", file.getAbsolutePath());
         return file;            
     }
     
@@ -49,7 +47,7 @@ public class FileUploadController extends DefaultManagedBean {
              em.getTransaction().commit();
         }
        
-        logger.log(Level.INFO, "Bayesian Network {0} persisted.", redeBayesiana.getNome());
+        Logger.getLogger(FileUploadController.class.getName()).log(Level.INFO, "Bayesian Network {0} persisted.", redeBayesiana.getNome());
     }
     
     
@@ -68,15 +66,14 @@ public class FileUploadController extends DefaultManagedBean {
             ArrayList<Nodo> nodes = new ArrayList<Nodo>();
             for (unbbayes.prs.Node prs_node: bn.getNodes()){
                 Nodo nodo = new Nodo();
-                nodo.setNome(prs_node.getName());
-                nodo.setBogus("N");
+                nodo.setNome(prs_node.getName());                
                 nodo.setRede(rede);
                 nodes.add(nodo);                
             }
             rede.setNodos(nodes);             
             persist(rede);
             
-           addInfoMessage("Rede Adicionada!", "Rede Bayesiana adicionada com sucesso!");
+           addInfoMessage("Rede Adicionada", "Rede Bayesiana adicionada com sucesso");
         } catch (LoadException ex) {
             Logger.getLogger(FileUploadController.class.getName()).log(Level.SEVERE, null, ex);
         } catch (IOException ex) {
index a76f3cd..dc1a5d3 100644 (file)
@@ -9,7 +9,6 @@ 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;
@@ -42,11 +41,14 @@ public class RedeEditBean extends DefaultManagedBean {
     }
 
     public SimdecsDataModel getSelectableNodos() {
-        if (rede.getNodos() != null){
+        if (rede != null && rede.getNodos() != null) {
             Collections.sort(rede.getNodos());
+            List<IdHolder> idHolders = new ArrayList<IdHolder>(rede.getNodos());
+            return new SimdecsDataModel(idHolders);
+        } else {
+            return new SimdecsDataModel(new ArrayList());
         }
-        List<IdHolder> idHolders = new ArrayList<IdHolder>(rede.getNodos());
-        return new SimdecsDataModel(idHolders);
+
     }
 
     public PerguntaNodo getSelectedPergunta() {
@@ -54,11 +56,13 @@ public class RedeEditBean extends DefaultManagedBean {
     }
 
     public SimdecsDataModel getSelectablePerguntas() {
-        if (selectedNodo.getPerguntas() != null){
+        if (selectedNodo != null && selectedNodo.getPerguntas() != null) {
             Collections.sort(selectedNodo.getPerguntas());
+            List<IdHolder> idHolders = new ArrayList<IdHolder>(selectedNodo.getPerguntas());
+            return new SimdecsDataModel(idHolders);
+        } else {
+            return new SimdecsDataModel(new ArrayList());
         }
-        List<IdHolder> idHolders = new ArrayList<IdHolder>(selectedNodo.getPerguntas());
-        return new SimdecsDataModel(idHolders);
     }
 
     public void setSelectedPergunta(PerguntaNodo selectedPergunta) {
@@ -66,11 +70,13 @@ public class RedeEditBean extends DefaultManagedBean {
     }
 
     public SimdecsDataModel getSelectableRespostas() {
-        if (selectedPergunta.getRespostas() != null) {
+        if (selectedPergunta != null && selectedPergunta.getRespostas() != null) {
             Collections.sort(selectedPergunta.getRespostas());
+            List<IdHolder> idHolders = new ArrayList<IdHolder>(selectedPergunta.getRespostas());
+            return new SimdecsDataModel(idHolders);
+        } else {
+            return new SimdecsDataModel(new ArrayList());
         }
-        List<IdHolder> idHolders = new ArrayList<IdHolder>(selectedPergunta.getRespostas());
-        return new SimdecsDataModel(idHolders);
     }
 
     public RespostaNodo getSelectedResposta() {
@@ -93,6 +99,7 @@ public class RedeEditBean extends DefaultManagedBean {
             em.persist(pergunta);
             em.getTransaction().commit();
         }
+        addInfoMessage("Pergunta Adicionada", "Pergunta adicionada com sucesso.");
     }
 
     public void removePergunta(PerguntaNodo pergunta) {
@@ -103,6 +110,7 @@ public class RedeEditBean extends DefaultManagedBean {
             em.remove(pergunta);
             em.getTransaction().commit();
         }
+        addInfoMessage("Pergunta Removida", "Pergunta removida com sucesso.");
     }
 
     public void addResposta() {
@@ -118,6 +126,7 @@ public class RedeEditBean extends DefaultManagedBean {
             em.persist(resposta);
             em.getTransaction().commit();
         }
+        addInfoMessage("Resposta adicionada", "Resposta adicionada com sucesso.");
     }
 
     public void removeResposta(RespostaNodo resposta) {
@@ -128,6 +137,7 @@ public class RedeEditBean extends DefaultManagedBean {
             em.remove(resposta);
             em.getTransaction().commit();
         }
+        addInfoMessage("Resposta removida", "Resposta removida com sucesso.");
     }
 
     public void addNodo() {
@@ -142,6 +152,8 @@ public class RedeEditBean extends DefaultManagedBean {
             em.persist(nodo);
             em.getTransaction().commit();
         }
+        addInfoMessage("Nodo adicionado", "Nodo adicionado com sucesso.");
+
     }
 
     public void removeNodo(Nodo nodo) {
@@ -152,6 +164,8 @@ public class RedeEditBean extends DefaultManagedBean {
             em.remove(nodo);
             em.getTransaction().commit();
         }
+        addInfoMessage("Nodo removido", "Nodo removido com sucesso.");
+
     }
 
     public String close() {
@@ -173,20 +187,22 @@ public class RedeEditBean extends DefaultManagedBean {
     }
 
     private void setRespostaPanelVisible(boolean visible) {
-        DataTable table = (DataTable) getComponentById(
-                ":formNodos:respostaTable");
-        table.setRendered(visible);
+        Panel panel = (Panel) getComponentById(
+                ":formNodos:respostaPanel");
+        panel.setVisible(visible);
     }
 
     public void onNodoRowSelect(SelectEvent event) {
         selectedPergunta = null;
         selectedResposta = null;
+        setRespostaPanelVisible(false);
         setNodoPanelVisible(true);
     }
 
     public void onNodoRowUnselect(UnselectEvent event) throws Exception {
         selectedPergunta = null;
         selectedResposta = null;
+        setRespostaPanelVisible(false);
         setNodoPanelVisible(false);
     }
 
index 5c93bca..98707d6 100644 (file)
@@ -25,7 +25,6 @@ import org.ufcspa.simdecs.mb.DefaultManagedBean;
 public class RedeUploadBean extends DefaultManagedBean {
 
     private Rede[] selectedItems;
-    private static final Logger logger = Logger.getLogger("" + RedeUploadBean.class);
 
     public List<Rede> getItems() {
         CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
@@ -45,7 +44,7 @@ public class RedeUploadBean extends DefaultManagedBean {
 
     public void setSelectedItems(Rede[] selectedItems) {
         this.selectedItems = selectedItems;
-        logger.log(Level.INFO, "Set selected items.");
+        Logger.getLogger(RedeUploadBean.class.getName()).log(Level.INFO, "Set selected items.");
     }
 
     public SimdecsDataModel getSelectableItems() {
index af3c812..6233712 100644 (file)
         <filter-name>PrimeFaces FileUpload Filter</filter-name>        
         <servlet-name>Faces Servlet</servlet-name>
     </filter-mapping>
+    <filter>
+        <filter-name>Character Encoding Filter</filter-name>
+        <filter-class>org.ufcspa.simdecs.mb.bn.CharacterEncodingFilter</filter-class>
+    </filter>
+    <filter-mapping>
+        <filter-name>Character Encoding Filter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
 </web-app>
index b18352b..15e2998 100644 (file)
Binary files a/web/img/bn/remove.png and b/web/img/bn/remove.png differ
index a0f3b9d..f1b311f 100644 (file)
@@ -9,10 +9,10 @@
 
     <script type="text/javascript">
         function editLastDatatableRow(){
-//
-//            jQuery('.ui-datatable-data tr').first().find('span.ui-icon-pencil').each(function(){
-//                jQuery(this).click()
-//            });
+
+            jQuery('.ui-datatable-data tr').first().last('span.ui-icon-pencil').each(function(){
+                jQuery(this).click()
+            });
         }
     </script>
 
diff --git a/web/rede/header.xhtml b/web/rede/header.xhtml
deleted file mode 100644 (file)
index d184bad..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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">
-
-    <h:form>
-        <p:menubar style="width:70%">
-            <p:menuitem value="Project" url="#"/>
-            <p:menuitem value="Other" url="#"/>
-            <p:menuitem value="Undo" url="#"/>
-            <p:menuitem value="Redo" url="#"/>
-            <p:menuitem value="Quit" url="http://www.primefaces.org"/>
-        </p:menubar>
-
-    </h:form>
-</ui:composition>
-
index 5d364ca..e3004ac 100644 (file)
         <link type="text/css" rel="stylesheet" href="style.css" />
     </h:head>
     <h:body>
-        <!--        <ui:include src="header.xhtml"/>-->
         <h:form id="formUpload" enctype="multipart/form-data"> 
             <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:panel header="Envio de redes bayesianas" style="width:60%">
                 <p:fileUpload fileUploadListener="#{fileUploadController.handleFileUpload}"  
-                          mode="advanced"  
-                          update=":formRedeTable,:formUpload:messages"                            
-                          multiple="true"
-                          allowTypes="/(\.|\/)(xml)$/"
-                          uploadLabel="Enviar"
-                          cancelLabel="Cancelar"
-                          label="Selecionar"/>  
-            <p:growl id="messages" showDetail="true"/>
+                              mode="advanced"  
+                              update=":formRedeTable,:formUpload"                            
+                              multiple="true"
+                              allowTypes="/(\.|\/)(xml)$/"
+                              uploadLabel="Enviar"
+                              cancelLabel="Cancelar"
+                              label="Selecionar"/>  
+                <p:growl id="messages" showDetail="true"/>
             </p:panel>            
         </h:form>
-        
+
         <p:spacer height="10px"/>
         <h:form id="formRedeTable">
             <ui:include src="tabelaRede.xhtml"/>
index dea5451..aa0727f 100644 (file)
         <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();"/>
+            <p:commandButton 
+                icon="ui-icon-circle-arrow-w" 
+                action="#{redeEditBean.close}" 
+                ajax="false"
+                title="Voltar para o cadastro de redes bayesianas"/>
+            <p:commandButton 
+                icon="ui-icon-plusthick" action="#{redeEditBean.addNodo}" 
+                update=":formNodos:nodoTable"
+                oncomplete="editLastDatatableRow();"
+                title="Adicionar nodo na rede bayesiana"/>
         </f:facet>
 
         <p:column headerText="Nome">  
                 </f:facet>  
             </p:cellEditor>  
         </p:column>                 
- <p:column headerText="Bogus">
+        <p:column headerText="Bogus">
             <p:cellEditor>  
                 <f:facet name="output">  
-                    <h:outputText value="#{nodo.bogus}" />  
+                    <p:selectBooleanCheckbox value="#{nodo.bogus}" disabled="true" />  
                 </f:facet>  
                 <f:facet name="input">  
-                    <p:inputText value="#{nodo.bogus}" size="1"/>  
+                    <p:selectBooleanCheckbox value="#{nodo.bogus}" />  
                 </f:facet>  
             </p:cellEditor>  
         </p:column>         
         <p:column headerText="">  
             <p:rowEditor />  
+            <p:spacer width="5px"/>
+            
             <p:commandLink action="#{redeEditBean.removeNodo(nodo)}" update=":formNodos">
                 <h:graphicImage value="/img/bn/remove.png" />
             </p:commandLink>
index 8468051..487f421 100644 (file)
@@ -6,7 +6,7 @@
                 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}"
+                 rendered="#{redeEditBean.selectedNodo != null}"
                  value="#{redeEditBean.selectablePerguntas}" id="perguntaTable" 
                  paginator="true" rows="10"
                  paginatorPosition="top"
                 update=":formNodos"/>   
 
         <f:facet name="header">
-            <p:commandButton icon="ui-icon-plusthick" action="#{redeEditBean.addPergunta}" 
+            <p:commandButton icon="ui-icon-plusthick" 
+                             action="#{redeEditBean.addPergunta}" 
                              update=":formNodos:perguntaTable"
-                             oncomplete="editLastDatatableRow();"/>
+                             oncomplete="editLastDatatableRow();"
+                             title="Adicionar pergunta ao nodo"/>
         </f:facet>
 
         <p:column headerText="Texto">  
@@ -40,6 +42,8 @@
         </p:column>  
         <p:column style="width: 15%">
             <p:rowEditor/>
+            <p:spacer width="5px"/>
+
             <p:commandLink action="#{redeEditBean.removePergunta(pergunta)}" update=":formNodos:nodoPanel">
                 <h:graphicImage value="/img/bn/remove.png" />
             </p:commandLink>
index 8416ae9..654447e 100644 (file)
         <p:column headerText="Descrição">                    
             <p:cellEditor>  
                 <f:facet name="output">  
-                    <h:outputText value="#{rede.descricao}"/>  
+                    <f:view locale="pt_BR">    
+                        <h:outputText value="#{rede.descricao}"/>  
+                    </f:view>
                 </f:facet>  
                 <f:facet name="input">  
-                    <p:inputText value="#{rede.descricao}" size="10"/>  
+                    <f:view locale="pt_BR">    
+                        <p:inputText value="#{rede.descricao}" size="10"/>
+                    </f:view>
                 </f:facet>  
             </p:cellEditor>  
         </p:column>     
index 4538fa5..c34903b 100644 (file)
@@ -6,63 +6,68 @@
                 xmlns:ui="http://java.sun.com/jsf/facelets"
                 xmlns:f="http://java.sun.com/jsf/core">
 
+    <p:panel style="border-width: 0px" id="respostaPanel">
+        <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."
+                     selection="#{redeEditBean.selectedResposta}" selectionMode="single">
 
-    <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:respostaPanel"
+                                 oncomplete="editLastDatatableRow();"
+                                 title="Adicionar resposta"/>
+            </f:facet>
 
-        <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="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="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 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:spacer width="5px"/>
 
-        <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>  
+                <p:commandLink action="#{redeEditBean.removeResposta(resposta)}" update=":formNodos:nodoPanel">
+                    <h:graphicImage value="/img/bn/remove.png" />
+                </p:commandLink>
+            </p:column>
+        </p:dataTable>  
+    </p:panel>
 </ui:composition>