Package org.gocha.gui.highlight

Source Code of org.gocha.gui.highlight.TestSyntax

/*******************************************************************************
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);
            }
        });
    }
}
TOP

Related Classes of org.gocha.gui.highlight.TestSyntax

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.