<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Últimas mensagens do tópico "Modificar Tag Template"]]></title>
		<link>http://www.neoframework.org/forum/posts/list/6.page</link>
		<description><![CDATA[Últimas mensagens enviadas no tópico "Modificar Tag Template"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>Modificar Tag Template</title>
				<description><![CDATA[ Pessoal, estou querendo modificar uma tag do neo para dar continuidade a ideia de um post aqui no forum sobre modificar uma tag para exibir/esconder os campos do filtro da listagem.

O que eu preciso: mostrar ou não um Comando(Botão/link) do lado de onde fica o link Criar na tag de listagem

a minha ideia é criar uma propriedade na tag HTML. e o seu uso seria assim:
<span class="genmed"><b>Code:</b></span><br>
		<div>
		<pre bbCodeId="pre-code" style="overflow: auto; width: 95%; max-height: 350px; height:expression(this.scrollHeight > 350 ? '350px' : 'auto');">
&lt;t:listagem showSearchLink="true"&gt;
&lt;t:listagem showSearchLink="false"&gt;
</pre>
		</div>

Editei os seguintes artefatos:

ListagemTag.java
<span class="genmed"><b>Code:</b></span><br>
		<div>
		<pre bbCodeId="pre-code" style="overflow: auto; width: 95%; max-height: 350px; height:expression(this.scrollHeight > 350 ? '350px' : 'auto');">
public class ListagemTag extends TemplateTag {
	
	protected String titulo;
	protected boolean showNewLink = true;
	protected JspFragment linkArea;
	protected boolean showSearchLink = true;

	public boolean isShowSearchLink&#40;&#41; {
		return showSearchLink;
	}


	public void setShowSearchLink&#40;boolean showSearchLink&#41; {
		this.showSearchLink = showSearchLink;
	}


	public JspFragment getLinkArea&#40;&#41; {
		return linkArea;
	}


	public void setLinkArea&#40;JspFragment linkArea&#41; {
		this.linkArea = linkArea;
	}


	public boolean isShowNewLink&#40;&#41; {
		return showNewLink;
	}


	public void setShowNewLink&#40;boolean showNewLink&#41; {
		this.showNewLink = showNewLink;
	}


	public String getTitulo&#40;&#41; {
		return titulo;
	}


	public void setTitulo&#40;String titulo&#41; {
		this.titulo = titulo;
	}

	/**
	 * método para ser chamado do template
	 * @return
	 */
	public String getInvokeLinkArea&#40;&#41;{
		CharArrayWriter charArrayWriter = new CharArrayWriter&#40;&#41;;
		try {
			if &#40;linkArea != null&#41; {
				linkArea.invoke&#40;charArrayWriter&#41;;
			}
		} catch &#40;Exception e&#41; {
			throw new NeoException&#40;e&#41;;
		}
		return charArrayWriter.toString&#40;&#41;;
	}

	@Override
	protected void doComponent&#40;&#41; throws Exception {
		if&#40;Util.strings.isEmpty&#40;titulo&#41;&#41;{
			titulo = &#40;String&#41; getPageContext&#40;&#41;.findAttribute&#40;"TEMPLATE_beanDisplayName"&#41;;
		}
		pushAttribute&#40;"listagemTag", this&#41;;
		includeJspTemplate&#40;&#41;;
		popAttribute&#40;"listagemTag"&#41;;
	}

}
</pre>
		</div>

ListagemTag.jsp
<span class="genmed"><b>Code:</b></span><br>
		<div>
		<pre bbCodeId="pre-code" style="overflow: auto; width: 95%; max-height: 350px; height:expression(this.scrollHeight > 350 ? '350px' : 'auto');">
 &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt;
 &lt;%@ taglib prefix="n" uri="neo"%&gt;
 &lt;%@ taglib prefix="combo" uri="combo"%&gt;
 &lt;%@ taglib prefix="t" uri="template"%&gt;
 &lt;script&gt;
 	function verFiltro&#40;&#41;{
 		if &#40;document.getElementById&#40;'filtro'&#41;&#41;{
 			if &#40;document.getElementById&#40;'filtro'&#41;.style.display == ''&#41;{
 				document.getElementById&#40;'filtro'&#41;.style.display = 'none';
 			}else document.getElementById&#40;'filtro'&#41;.style.display = '';
 		}
 	}
 &lt;/script&gt;
 &lt;n:form validate="false"&gt;
 	&lt;n:validation&gt;
 		&lt;input type="hidden" name="notFirstTime" value="true"/&gt;
 		&lt;table class="outterTable" cellspacing="0" cellpadding="0" align="center"&gt;
 			&lt;tr style="background: url&#40;'${pageContext.request.contextPath}/resource/img/titulo.gif'&#41;" class="outterTableHeader"&gt;
 				&lt;td&gt;
 					&lt;span class="outterTableHeaderLeft"&gt;
 						${listagemTag.titulo}						
 					&lt;/span&gt;
 					&lt;span class="outterTableHeaderRight"&gt;
 						&lt;c:if test="${listagemTag.showNewLink || !empty listagemTag.linkArea}"&gt;
 							${listagemTag.invokeLinkArea}
 							&lt;c:if test="${listagemTag.showNewLink}"&gt;						
 								&lt;!--
 									&lt;n:link action="criar" class="outterTableHeaderLink"&gt;Criar&lt;/n:link&gt;
 								--&gt;
 								&lt;button onclick="window.location.href='?ACAO=criar'"&gt;Novo&lt;/button&gt;
 							&lt;/c:if&gt;						
 							&lt;c:if test="${listagemTag.showSearchLink}"&gt;						
 								&lt;button onclick="verFiltro&#40;&#41;"&gt;Pesquisar&lt;/button&gt;
 							&lt;/c:if&gt;						
 						&lt;/c:if&gt;					
 					&lt;/span&gt;
 				&lt;/td&gt;
 			&lt;/tr&gt;
 			&lt;tr&gt;
 				&lt;td&gt;
 					&lt;n:doBody /&gt;
 				&lt;/td&gt;
 			&lt;/tr&gt;
 		&lt;/table&gt;
 	&lt;/n:validation&gt;
 &lt;/n:form&gt;
</pre>
		</div>

Isso funciona em parte, porque o botão já é exibido na jsp (Porque o default é true) mas quando utilizo
<span class="genmed"><b>Code:</b></span><br>
		<div>
		<pre bbCodeId="pre-code" style="overflow: auto; width: 95%; max-height: 350px; height:expression(this.scrollHeight > 350 ? '350px' : 'auto');">
&lt;t:listagem showSearchLink="false"&gt;
</pre>
		</div>
não funciona.

Como faço pra jsp reconhecer o novo atributo que setei na tag?]]></description>
				<guid isPermaLink="true">http://www.neoframework.org/forum/posts/list/255.page#1700</guid>
				<link>http://www.neoframework.org/forum/posts/list/255.page#1700</link>
				<pubDate><![CDATA[Sun, 22 Feb 2009 02:43:50]]> GMT</pubDate>
				<author><![CDATA[ vberga]]></author>
			</item>
			<item>
				<title>Re:Modificar Tag Template</title>
				<description><![CDATA[ Vinícius,

você tem que registrar esse atributo na tld da taglib....

acha o arquivo template.tld

modifica essa parte aqui assim....
<span class="genmed"><b>Code:</b></span><br>
		<div>
		<pre bbCodeId="pre-code" style="overflow: auto; width: 95%; max-height: 350px; height:expression(this.scrollHeight > 350 ? '350px' : 'auto');">
&lt;tag&gt;
		&lt;description&gt;&lt;/description&gt;
		&lt;name&gt;listagem&lt;/name&gt;
		&lt;tag-class&gt;br.com.linkcom.neo.view.template.ListagemTag&lt;/tag-class&gt;
		&lt;body-content&gt;scriptless&lt;/body-content&gt;
		&lt;attribute&gt;
			&lt;description&gt;&lt;/description&gt;
			&lt;name&gt;titulo&lt;/name&gt;
			&lt;required&gt;false&lt;/required&gt;
			&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
		&lt;/attribute&gt;
		&lt;attribute&gt;
			&lt;description&gt;&lt;/description&gt;
			&lt;name&gt;showNewLink&lt;/name&gt;
			&lt;required&gt;false&lt;/required&gt;
			&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
		&lt;/attribute&gt;
		&lt;attribute&gt;
			&lt;description&gt;&lt;/description&gt;
			&lt;name&gt;showSearchLink&lt;/name&gt;
			&lt;required&gt;false&lt;/required&gt;
			&lt;rtexprvalue&gt;true&lt;/rtexprvalue&gt;
		&lt;/attribute&gt;		
		&lt;attribute&gt;
			&lt;description&gt;&lt;/description&gt;
			&lt;name&gt;linkArea&lt;/name&gt;
			&lt;required&gt;false&lt;/required&gt;
			&lt;fragment&gt;true&lt;/fragment&gt;
		&lt;/attribute&gt;			
		&lt;dynamic-attributes&gt;true&lt;/dynamic-attributes&gt;			
	&lt;/tag&gt;

</pre>
		</div>

é só adicionar o seu atributo nesta parte onde eu adicionei acima...

tenta ai e ve se da certo....

abrassss]]></description>
				<guid isPermaLink="true">http://www.neoframework.org/forum/posts/list/255.page#1702</guid>
				<link>http://www.neoframework.org/forum/posts/list/255.page#1702</link>
				<pubDate><![CDATA[Thu, 26 Feb 2009 09:10:27]]> GMT</pubDate>
				<author><![CDATA[ rodrigo.freitas]]></author>
			</item>
	</channel>
</rss>
