📄 javadocumentlistener.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 + -