⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 highlighttextpane.java

📁 UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other simi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 * 
 */
package com.corba.mnq.ui.text;

import com.corba.mnq.tool.idl.IdlFile;

import java.awt.Color;

import javax.swing.JTextPane;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.TabSet;
import javax.swing.text.TabStop;

import java.util.List;
import java.util.Vector;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author cn1wc0k0
 */
public class HighlightTextPane extends JTextPane {

    /** used for java.util.logging */
    private static final Logger LOG = Logger.getLogger(HighlightTextPane.class.getName());

    // store the idl file node
    public IdlFile fn = null;

    // corba key word
    private static List kwList = new Vector();

    // corba type
    private static List typeList = new Vector();

    // java key words
    private static List javaKwList = new Vector();
    static {
        // Corba Type List
        typeList.add("any");
        typeList.add("boolean");
        typeList.add("long");
        typeList.add("unsigned");
        typeList.add("char");
        typeList.add("short");
        typeList.add("float");
        typeList.add("octet");
        typeList.add("string");
        typeList.add("void");
        typeList.add("wchar");
        typeList.add("wstring");
        typeList.add("double");

        // Corba Keyword List
        kwList.add("abstract");
        kwList.add("exception");
        kwList.add("inout");
        kwList.add("provides");
        kwList.add("truncatable");
        kwList.add("attribute");
        kwList.add("emits");
        kwList.add("interface");
        kwList.add("public");
        kwList.add("typedef");
        kwList.add("enum");
        kwList.add("local");
        kwList.add("publishes");
        kwList.add("typeid");
        kwList.add("eventtype");
        kwList.add("raises");
        kwList.add("typeprefix");
        kwList.add("case");
        kwList.add("factory");
        kwList.add("module");
        kwList.add("readonly");
        kwList.add("FALSE");
        kwList.add("multiple");
        kwList.add("setraises");
        kwList.add("union");
        kwList.add("component");
        kwList.add("finder");
        kwList.add("native");
        kwList.add("sequence");
        kwList.add("uses");
        kwList.add("const");
        kwList.add("fixed");
        kwList.add("Object");
        kwList.add("ValueBase");
        kwList.add("consumes");
        kwList.add("valuetype");
        kwList.add("context");
        kwList.add("getraises");
        kwList.add("oneway");
        kwList.add("struct");
        kwList.add("custom");
        kwList.add("home");
        kwList.add("out");
        kwList.add("supports");
        kwList.add("default");
        kwList.add("import");
        kwList.add("primarykey");
        kwList.add("switch");
        kwList.add("in");
        kwList.add("private");
        kwList.add("TRUE");

        // Java Keyword List
        javaKwList.add("abstract");
        javaKwList.add("assert");
        javaKwList.add("boolean");
        javaKwList.add("break");
        javaKwList.add("type");
        javaKwList.add("case");
        javaKwList.add("catch");
        javaKwList.add("char");
        javaKwList.add("class");
        javaKwList.add("const");
        javaKwList.add("continue");
        javaKwList.add("default");
        javaKwList.add("do");
        javaKwList.add("double");
        javaKwList.add("else");
        javaKwList.add("extends");
        javaKwList.add("final");
        javaKwList.add("finally");
        javaKwList.add("float");
        javaKwList.add("for");
        javaKwList.add("goto");
        javaKwList.add("if");
        javaKwList.add("implements");
        javaKwList.add("import");
        javaKwList.add("instnaceof");
        javaKwList.add("int");
        javaKwList.add("interface");
        javaKwList.add("long");
        javaKwList.add("native");
        javaKwList.add("new");
        javaKwList.add("null");
        javaKwList.add("package");
        javaKwList.add("private");
        javaKwList.add("protected");
        javaKwList.add("public");
        javaKwList.add("return");
        javaKwList.add("short");
        javaKwList.add("static");
        javaKwList.add("strictfp");
        javaKwList.add("super");
        javaKwList.add("switch");
        javaKwList.add("synchronized");
        javaKwList.add("this");
        javaKwList.add("throw");
        javaKwList.add("throws");
        javaKwList.add("transient");
        javaKwList.add("try");
        javaKwList.add("void");
        javaKwList.add("volatile");
        javaKwList.add("while");
    }

    /**
     * 
     */
    public HighlightTextPane() {
        super();
        // TODO Auto-generated constructor stub
        doc = getStyledDocument();// (StyledDocument)
        // this.getDocument();
        Style kw = doc.addStyle("KeyWords", null);
        // Font Family
        StyleConstants.setFontFamily(kw, "SansSerif");
        // Foreground Color
        StyleConstants.setForeground(kw, Color.blue);
        // Italic
        // StyleConstants.setItalic(kw, true);
        // Bold
        // StyleConstants.setBold(kw, true);
        // Font Size
        // StyleConstants.setFontSize(kw, 30);
        // Background Color
        // StyleConstants.setBackground(kw, Color.white);

        Style comment = doc.addStyle("Comments", null);
        StyleConstants.setFontFamily(comment, "SansSerif");
        StyleConstants.setForeground(comment, new Color(0, 200, 0));

        Style num = doc.addStyle("Numbers", null);
        StyleConstants.setFontFamily(num, "SansSerif");
        StyleConstants.setForeground(num, new Color(255, 128, 64));

        Style type = doc.addStyle("Types", null);
        StyleConstants.setFontFamily(type, "SansSerif");
        StyleConstants.setForeground(type, new Color(255, 0, 255));

        Style normalJava = doc.addStyle("NormalJava", null);
        StyleConstants.setFontFamily(normalJava, "SansSerif");
        StyleConstants.setForeground(normalJava, Color.BLACK);

        // The following styles is used for clientPane

        Style title = doc.addStyle("Title", null);
        StyleConstants.setFontFamily(title, "SansSerif");
        StyleConstants.setForeground(title, Color.magenta);
        StyleConstants.setFontSize(title, 12);
        Style input = doc.addStyle("Input", null);
        StyleConstants.setFontFamily(input, "SansSerif");
        StyleConstants.setForeground(input, Color.blue);
        StyleConstants.setFontSize(input, 12);
        Style output = doc.addStyle("Output", null);
        StyleConstants.setFontFamily(output, "SansSerif");
        StyleConstants.setForeground(output, new Color(255, 128, 0));
        StyleConstants.setFontSize(output, 12);
        Style exception = doc.addStyle("Exception", null);
        StyleConstants.setFontFamily(exception, "SansSerif");
        StyleConstants.setForeground(exception, Color.RED);
        StyleConstants.setFontSize(exception, 12);
        Style normal = doc.addStyle("Normal", null);
        StyleConstants.setFontFamily(normal, "SansSerif");
        StyleConstants.setForeground(normal, Color.BLACK);
        StyleConstants.setFontSize(normal, 12);
    }

    private StyledDocument doc = null;

    /**
     * @param arg0
     */
    public HighlightTextPane(StyledDocument arg0) {
        super(arg0);
        // TODO Auto-generated constructor stub
    }

    public void showIDL(String idl) {
        print(idl);

        Style style = doc.getStyle("Comments");
        String dcl = "(//.*?$)|(/\\*.*?\\*/)";
        highlightDoc(dcl, style);

        style = doc.getStyle("Numbers");
        dcl = "\\b" + "\\d+" + "\\b";
        highlightDoc(dcl, style);

        style = doc.getStyle("KeyWords");
        for (int i = 0; i < kwList.size(); i++) {
            dcl = (String) kwList.get(i);
            dcl = "\\b" + dcl + "\\b";
            highlightDoc(dcl, style);
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -