package com.zfqjava.swing.demo.editor;

import com.zfqjava.swing.JBean;
import com.zfqjava.swing.JSyntaxEditor;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Frame;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;

/**
 *
 * @author Fuqiang Zhao
 */
public class SyntaxEditorDemo extends JBean {
    private static final String JAVA_FILE = "/com/zfqjava/swing/demo/editor/SyntaxEditorDemo.java.txt";
    private JSyntaxEditor syntaxEditor;

    public SyntaxEditorDemo() {
        syntaxEditor = new JSyntaxEditor();
        syntaxEditor.setSyntaxFormat("java");
        try {
            syntaxEditor.setPage(getUrl());
        } catch (IOException ex) {
            Logger.getLogger(SyntaxEditorDemo.class.getName()).log(Level.SEVERE, null, ex);
        }
        setLayout(new BorderLayout());
        add(new JScrollPane(syntaxEditor), BorderLayout.CENTER);
    }
    private URL getUrl() {
        return SyntaxEditorDemo.class.getResource(JAVA_FILE);
    }
    @Override
    public void showFrame() {
        setExtendedState(Frame.NORMAL);
        getFrame(true).setPreferredSize(new Dimension(500, 300));
        super.showFrame();
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                SyntaxEditorDemo demo = new SyntaxEditorDemo();
                demo.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                demo.showFrame();
            }
        });
    }

}
