/*******************************************************************************
gocha.org-lib-java Библеотека общего назначения
(с) Камнев Георгий Павлович 2009 GPLv2
Данная программа является свободным программным обеспечением. Вы вправе
распространять ее и/или модифицировать в соответствии с условиями версии 2
либо по вашему выбору с условиями более поздней версии
Стандартной Общественной Лицензии GNU, опубликованной Free Software Foundation.
Мы распространяем данную программу в надежде на то, что она будет вам полезной,
однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЕ НИКАКИХ ГАРАНТИЙ,
в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ
и ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ.
Для получения более подробной информации ознакомьтесь
со Стандартной Общественной Лицензией GNU.
Вместе с данной программой вы должны были получить экземпляр
Стандартной Общественной Лицензии GNU.
Если вы его не получили, сообщите об этом в Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*******************************************************************************/
package org.gocha.gui.highlight;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import org.gocha.gui.GuiUtil;
import org.gocha.gui.Highlighter;
import org.gocha.text.regex.Matcher;
import org.gocha.text.regex.Pattern;
import org.gocha.text.regex.Regex;
/**
*
* @author gocha
*/
public class TestSyntax extends JFrame
{
private Highlighter highlighter = null;
private JTextPane textPane = null;
public TestSyntax()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Test Syntax");
this.getContentPane().setLayout(new BorderLayout());
this.setSize(400, 400);
textPane = new JTextPane();
textPane.setFont(new Font( Font.MONOSPACED, Font.PLAIN, 10));
this.getContentPane().add( new JScrollPane(textPane),BorderLayout.CENTER);
try
{
Pattern ptrn = Regex.parseXMLResource("/org/gocha/gui/highlight/simplelang.xml");
TextStyles styles = TextStyles.parseXMLResource("/org/gocha/gui/highlight/style.xml");
highlighter = new Highlighter();
highlighter.setTextPane(textPane);
highlighter.setPattern(ptrn);
highlighter.setStyles(styles);
highlighter.reinit();
highlighter.start();
this.addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent e) {
GuiUtil.centerWindow(TestSyntax.this);
}
});
}
catch(Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
private static void testMatch()
{
try {
Pattern ptrn = Regex.parseXMLResource("/org/gocha/gui/highlight/simplelang.xml");
String src = "f //";
Matcher m = ptrn.match(src, 0);
if (m.isMatched()) {
System.out.println("matched");
Regex.print(m);
}
else {
System.out.println("not matched");
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args)
{
// testMatch();
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TestSyntax().setVisible(true);
}
});
}
}