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

📄 javadocumentlistener.java

📁 UCS (Ultra Corba Simulator) is one more powerful corba client/servant simulator tool than other simi
💻 JAVA
字号:
/**
 * (c) 2007 UCS_2008
 *
 * Project    Ultra Corba Simulator
 * Subproject CorbaMNQ
 * File       JavaDocumentListener.java
 * Created on Sep 11, 2007 by ucs_2008
 *
 * History:
 * Date(Y.M.D) User           Reason (plus CR, LM, Fault number)
 *
 */

package com.corba.mnq.ui.text;


import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;

import java.util.logging.Logger;

/**
 * name: "JavaDocumentListener"
 * 
 * @author ucs_2008
 */
public class JavaDocumentListener implements DocumentListener {

    private HighlightTextPane textpane = null;

    /**
     * This is one class constructor
     */
    public JavaDocumentListener(HighlightTextPane textp) {
        super();
        // TODO Auto-generated constructor stub
        textpane = textp;
    }

    /**
     * Overridden method.
     * 
     * @param arg0
     * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)
     */
    public void changedUpdate(DocumentEvent arg0) {
        // TODO Auto-generated method stub

    }

    private int start = 0;

    private int size = 0;

    private boolean isComm = false;

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

    /**
     * Overridden method.
     * 
     * @param arg0
     * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)
     */
    public void insertUpdate(DocumentEvent arg0) {
        // TODO Auto-generated method stub
        int pos = arg0.getOffset();
        int len = arg0.getLength();

        Document doc = arg0.getDocument();

        start = 0;
        size = 0;
        // update start
        try {
            String str = doc.getText(0, pos);
            start = str.lastIndexOf("\n");
            if (start < 0)
                start = 0;
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            start = 0;
        }

        // update size
        try {
            String str;
            str = doc.getText(pos + len, doc.getLength() - pos - len);
            size = str.indexOf("\n");
            if (size < 0) {
                size = doc.getLength() - start;
            } else {
                size = pos + len + size - start;
            }
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            size = 0;
        }

        // check whether it contain the comments
        try {
            String str = doc.getText(start, size);
            //
            // System.out.println("----First---B--");
            // System.out.println(str);
            // System.out.println("----First---E--");

            if (str.indexOf("/*") < 0 && str.indexOf("*/") < 0) {
                isComm = false;
            } else {
                isComm = true;
            }
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            isComm = false;
        }

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                textpane.updateJava(start, size, isComm);
            }
        });
    }

    /**
     * Overridden method.
     * 
     * @param arg0
     * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)
     */
    public void removeUpdate(DocumentEvent arg0) {
        // TODO Auto-generated method stub
        int pos = arg0.getOffset();
        int len = arg0.getLength();

        Document doc = arg0.getDocument();

        start = 0;
        size = 0;
        // update start
        try {
            String str = doc.getText(0, pos);
            start = str.lastIndexOf("\n");
            if (start < 0)
                start = 0;
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            start = 0;
        }

        // update size
        try {
            String str;
            str = doc.getText(pos, doc.getLength() - pos);
            size = str.indexOf("\n");
            if (size < 0) {
                size = doc.getLength() - start;
            } else {
                size = pos + size - start;
            }
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            size = 0;
        }

        // check whether it contain the comments
        try {
            String str = doc.getText(start, size);

            // System.out.println("----First---B--");
            // System.out.println(str);
            // System.out.println("----First---E--");
            if (len > 1) {
                isComm = true;
            } else {
                int iii = pos - 1 < 0 ? pos : pos - 1;
                int jjj = doc.getLength() > pos ? pos + 1 : pos;
                String tmp = doc.getText(iii, jjj - iii);
                if (tmp.indexOf("*") < 0 && tmp.indexOf("/") < 0) {
                    // isComm = false;
                    if (str.indexOf("/*") < 0 && str.indexOf("*/") < 0) {
                        isComm = false;
                    } else {
                        isComm = true;
                    }
                } else {
                    isComm = true;
                }
            }
        } catch (Exception ex) {
            // ex.printStackTrace();
            LOG.severe(ex.getMessage());
            isComm = false;
        }

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                textpane.updateJava(start, size, isComm);
            }
        });
    }

}
/* EOF */

⌨️ 快捷键说明

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