martedì 1 luglio 2014

JAVA SYNTAX HIGHLIGHTER (RSyntaxTextArea)

Fra le funzionalità del progetto SqlDocGenerator troviamo quella di mostrare il codice relativo ad una vista o una stored procedure. Abbiamo già affrontato il problema di ottenere il codice tramite script SQL ma come possiamo indentarlo e colorarlo in un pannello?
Come sempre: non inventiamo la ruota di nuovo. Utilizziamo una libreria Open Source chiamata RSyntaxTextArea. L'oggetto è un componente che è possibile inserire in qualunque Layout con l'aggiunta di un pannello scrollabile RTextScrollPane. Vediamo un esempio semplicissimo:

import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
import org.fife.ui.rtextarea.RTextScrollPane;

[...]

JPanel container = new JPanel(new FlowLayout());
RSyntaxTextArea code; //code area
code = new RSyntaxTextArea();
code.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_SQL); //the syntax is SQL
code.setAntiAliasingEnabled(true); //looks nicer while scrolling
code.setEditable(false); //read only mode
code.setHighlightCurrentLine(false); //i don't want to highlight the current line
container.add(new RTextScrollPane(code)); //put into a scrollable panel
code.setText("select * from footable"); //insert some code as text

cambiando il valore della SyntaxConstants utilizzata è possibile evidenziare un tipo di linguaggio diverso (sono veramente tanti quelli supportati). In ogni caso vi invito a dare un occhiata alla documentazione completa.

Nessun commento:

Posta un commento