quinta-feira, 2 de maio de 2013

FckEditor Readonly

Um conceito muito legal que é incorporado por sistemas do tipo Wiki é a possibilidade de certa informação, anteriormente apresentada como uma página HTML tradicional, poder ser editável pelo próprio usuário. Ou seja, o sujeito apenas visualiza a informação, mas se tiver os privilégios adequados, poderá editá-la.

Normalmente, esses programas possuem um pequeno botão Editar, que ao ser pressionado faz com que a página atual seja recarregada, mas ao invés de uma página de leitura, o que surge é um editor de textos.  Muito interessante o efeito provocado por esse mecanismo.

Temos no Genexus o controle FCKEditor (ou CkEditor), (http://ckeditor.com/), que possui esse recurso e permite apresentar a informação nos dois formatos distintos, além de ser Free/Open Source. O que você precisa saber é apenas o seguinte: SetMode.



Um webpanel, como o apresentado anteriormente, e o código a seguir é suficiente para mostrar o texto da variável &teste no formato Display e Edit.

Event Start
      &teste = 'Pouco mais de um ano após a Câmara Municipal barrar todos os vencimentos recebidos acima do teto constitucional...'
      &teste.SetMode(FckEditorModes.Edit, &teste)
      Button2.Visible = 0
EndEvent

Event 'Save'
      &teste.SetMode(FckEditorModes.View, &teste)
      Button1.Visible = 0
      Button2.Visible = 1
EndEvent

Event 'Edit'
      &teste.SetMode(FckEditorModes.Edit, &teste)   
      Button1.Visible = 1
      Button2.Visible = 0
EndEvent

O código é tão simples que dispensa explicações, apenas observei que esse mesmo código, também serve para atualizar o conteúdo do FckEditor, que em algumas ocasiões fica meio rebelde.