package com.dasatti.uhtml; import java.util.StringTokenizer; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.text.html.*; import javax.swing.event.*; public class OLAction extends HTMLEditorKit.InsertHTMLTextAction { public OLAction() { super("OLAction","",HTML.Tag.OL,HTML.Tag.LI); } public void actionPerformed(ActionEvent ae) { JEditorPane editor = getEditor(ae); if (editor != null) { try { HTMLDocument htmlDoc = (HTMLDocument)(editor.getDocument()); String selTextBase = editor.getSelectedText(); int textLength = -1; if(selTextBase != null) { textLength = selTextBase.length(); } if(selTextBase == null || textLength < 1) { StringBuffer sbNew = new StringBuffer(); sbNew.append("<li></li>"); insertHTML(editor, htmlDoc, editor.getCaretPosition(), sbNew.toString(), 0, 0, HTML.Tag.OL); } else { int iStart = editor.getSelectionStart(); int iEnd = editor.getSelectionEnd(); String selText = htmlDoc.getText(iStart, iEnd - iStart); StringBuffer sbNew = new StringBuffer(); String sToken = ((selText.indexOf("\r") > -1) ? "\r" : "\n"); StringTokenizer stTokenizer = new StringTokenizer(selText, sToken); sbNew.append("<OL>"); while(stTokenizer.hasMoreTokens()) { sbNew.append("<LI>"); sbNew.append(stTokenizer.nextToken()); sbNew.append("</LI>"); } sbNew.append("</OL>"); htmlDoc.remove(iStart, iEnd - iStart); insertHTML(editor,htmlDoc,iStart,sbNew.toString(),1,1,null); editor.select(iStart,iEnd); } //editor.setText(editor.getText()); editor.grabFocus(); } catch (Exception e) { } } } }