Como desabilitar copiar e colar em Rich:Editor
Aqui na UECE temos um sistema com um rich:editor e muitas vezes apareceram problemas na exibição de páginas internas por conta de o usuário que estava cadastrando a informação ter colado o texto dentro do componente ro RichFaces a partir do Word ou algum programa semelhante. O problema está no fato de que esses programas geram uma grande carga de estilização antes da exibição da informação em si, e quando você vai mostrar o que o usuário digitou, o navegador não interpreta corretamente o HTML colado.
Solução: evitar que o usuário cole dentro do rich:editor. O procedimento é muito simples. Basta adicionar um evento onSetup no componente através do código abaixo:
onsetup="event.onPaste.add( function(event, e, o) { alert('Não é possível copiar e colar dentro do componente.'); return tinymce.dom.Event.cancel(e); });"
No caso do meu sistema, permito que o usuário cole dentro da janela de um plugin do próprio rich:editor que tira toda formatação e faz uma colagem como texto simples, portanto minha mensagem é:
onsetup="event.onPaste.add( function(event, e, o) { alert('Não é possível copiar e colar dentro do componente. Para isso, clique no quarto ícone da esquerda para a direita (o que possui uma prancheta e um \'T\') no topo do campo resumo, cole o texto dentro da janela que surgir e depois em \'Inserir\''); return tinymce.dom.Event.cancel(e); });"
Agora as telas abaixo mostram como ficou a solução e como formatei meu componente:
Observe que o título do botão está em português. No Rich:Editor basta que você forneça o atributo language com o valor “pt” para que os botões e as mensagens apareçam dessa forma.
Após clicar em Inserir, o texto ficou assim:




Pode ser útil, pena é a complexidade de algo que aperenta ser tão simples.
Tomara que na versão 4 do richfaces tenha uma solução interna para essa tarefa tão rotineira.
Ok, Pablo, muito útil sua informação!