[RESOLVIDO] JSF + Primefaces - Truncar texto dentro do datatable

Pessoal eu tenho uma tabela e preciso truncar o texto colocando uma função ajax nele para mostrar ou ocultar o texto.

Exemplo tenho um texto em uma coluna qualquer:

“Texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto texto.”

Porem preciso que ele mostre parte dele, ficando assim:

“Texto texto texto texto texto texto texto…”

E quando ele clicar nos “…” ele mostre todo o texto.

Procurei na net e não achei nada que possa fazer de modo simples e utilizando so recursos do primefaces (ajax) para evitar ter que ocutar e mostrar o texto todo.

Eu nem procuraria por algo do tipo… Apenas criaria um getTextoReduzido que retornaria do modo como você quer e se o cara clicasse ai eu mostraria o getTexto(). [=

Pensei nisso porem estou sem ideia de como implementar de modo legível isso.

Usando dois output e oculta um ou outro ou não sei como.

Eu nem imaginava como fazer, essa sua idéia é boa e muito simples.

[quote=dsrodrigues]Pensei nisso porem estou sem ideia de como implementar de modo legível isso.

Usando dois output e oculta um ou outro ou não sei como.[/quote]Pq vocẽ não abre um dialog para exibir o valor total?

Eu nem imaginava como fazer, essa sua idéia é boa e muito simples.[/quote]O que eu estou gostando desse meu trabalho novo é que todo mundo aqui é “forçado” a pensar assim, como deixar isso simples? [=

As vezes a gente quer complicar algo desnecessário (não dizendo que é a intenção de quem criou o tópico), mas eu já compliquei muita coisa que poderia ser simples. [=

Sairia fora do padrão da página. Seria algo de expandir o texto na linha e ocultar na linha.

[quote=dsrodrigues]Sairia fora do padrão da página. Seria algo de expandir o texto na linha e ocultar na linha.[/quote]O Primefaces tem a opção de expandir as linhas de um datatable. Dá uma olhada, aí você exibe o outro get. [=

Então Hebert Coelho, conheço essa funcionalidade, porem ela não se aplica ao que eu quero.

Preciso de algo direcionado a célula daquela tabela, de expandir o texto e ocultar o mesmo. Essas outras soluções já sei fazer e já utilizei, porem esse não é o caso.

Cheguei de utilizar até um exemplo que mostra usando <p:tooltip … /> e “rowToggle” mas nesse caso em específico não é possível usar isso.

Preciso de algo clique em … e mostra o resto do texto depois clique em ocultar e oculta o texto para o marco inicial.

Fala, dsrodrigues.

Eu tenho uma tabela parecida, onde não é possivel mostrar todo o conteúdo.
O que eu fiz foi ocultar todo o conteúdo, é como se fosse um campo mais generalizado “comentários”.
Então no lugar de mostrar o dado, eu coloquei um ícone de uma lupa, pra ficar mais amigável ao usuário, e coloquei o valor usando a propriedade “title”, para que quando alguém aponte, já mostre o conteúdo, mas clicando em cima da lupa, abre um dialog.

algo como:

&lt;p:commandLink title="#{plan.reason}" actionListener="#{planController.prepararAlterarPlan}" update=":formReason" onclick="dialogReason.show()"&gt;
    &lt;h:graphicImage width="30" value="images/search-icon.png"/&gt;
&lt;/p:commandLink&gt;
 &lt;h:inputHidden value="#{plan.reason}"/&gt;

Não é grandes coisa, mas foi o mais prático que consegui pensar…

abraços

Achei uma solução http://www.jeremymartin.name/projects.php?project=jTruncate
Ficou Ótimo, deu um trabalho para entender o seu funcionamento porem ficou de acordo.

<script type="text/javascript">
	$().ready(function() {  
    		$('#idDaDiv').jTruncate({length: 120,moreText: "(Mostrar)",  
    			 lessText: "(Ocultar)" });  
		});
</script>

<div id="idDaDiv">#{bean.descricao}</div>

Do jeito que imadinava ficar e ainda com umas frescuras que nem vou utilizar.

Valeu a todos que ajudou.

[quote=dsrodrigues]Achei uma solução http://www.jeremymartin.name/projects.php?project=jTruncate
Ficou Ótimo, deu um trabalho para entender o seu funcionamento porem ficou de acordo.

<script type="text/javascript">
	$().ready(function() {  
    		$('#idDaDiv').jTruncate({length: 120,moreText: "(Mostrar)",  
    			 lessText: "(Ocultar)" });  
		});
</script>

<div id="idDaDiv">#{bean.descricao}</div>

Do jeito que imadinava ficar e ainda com umas frescuras que nem vou utilizar.

Valeu a todos que ajudou.[/quote]Muito legal. Valeu por compartilhar. [=

Muito legal. Valeu por compartilhar. [2]