home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.sun.java.swing.text.html; import com.sun.java.swing.Action; import com.sun.java.swing.JEditorPane; import com.sun.java.swing.text.BadLocationException; import com.sun.java.swing.text.Document; import com.sun.java.swing.text.Element; import com.sun.java.swing.text.JTextComponent; import com.sun.java.swing.text.StyleContext; import com.sun.java.swing.text.StyledDocument; import com.sun.java.swing.text.StyledEditorKit; import com.sun.java.swing.text.TextAction; import com.sun.java.swing.text.ViewFactory; import java.awt.Color; import java.awt.Component; import java.awt.event.MouseListener; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.io.Writer; import java.util.Vector; public class HTMLEditorKit extends StyledEditorKit { public static final String DEFAULT_CSS = "default.css"; private StyleContext styleContext = new StyleContext(); private MouseListener linkHandler = new LinkController(); public static final String BOLD_ACTION = "html-bold-action"; public static final String ITALIC_ACTION = "html-italic-action"; public static final String PARA_INDENT_LEFT = "html-para-indent-left"; public static final String PARA_INDENT_RIGHT = "html-para-indent-right"; public static final String FONT_CHANGE_BIGGER = "html-font-bigger"; public static final String FONT_CHANGE_SMALLER = "html-font-smaller"; public static final String COLOR_ACTION = "html-color-action"; public static final String LOGICAL_STYLE_ACTION = "html-logical-style-action"; public static final String IMG_ALIGN_TOP = "html-image-align-top"; public static final String IMG_ALIGN_MIDDLE = "html-image-align-middle"; public static final String IMG_ALIGN_BOTTOM = "html-image-align-bottom"; public static final String IMG_BORDER = "html-image-border"; private static final Action[] defaultActions; static final boolean DEBUG = false; public HTMLEditorKit() { this.loadStyleSheet(this.styleContext); } public Object clone() { return new HTMLEditorKit(); } public String getContentType() { return "text/html"; } public ViewFactory getViewFactory() { return new HTMLFactory(); } public Document createDefaultDocument() { HTMLDocument var1 = new HTMLDocument(this.styleContext); return var1; } public void read(Reader var1, Document var2, int var3) throws IOException, BadLocationException { if (var2 instanceof HTMLDocument) { HTMLDocument var4 = (HTMLDocument)var2; var4.read(var1, var3); } else { super.read(var1, var2, var3); } } public void write(Writer var1, Document var2, int var3, int var4) throws IOException, BadLocationException { if (var2 instanceof StyledDocument) { try { HTMLWriter var5 = new HTMLWriter(); var5.write(var1, (StyledDocument)var2); } catch (HTMLException var6) { throw new IOException("HTMLException: " + ((Throwable)var6).getMessage()); } } else { super.write(var1, var2, var3, var4); } } public void install(JEditorPane var1) { ((Component)var1).addMouseListener(this.linkHandler); super.install(var1); } public void deinstall(JEditorPane var1) { ((Component)var1).removeMouseListener(this.linkHandler); super.deinstall(var1); } private void loadStyleSheet(StyleContext var1) { InputStream var2 = this.getClass().getResourceAsStream("default.css"); if (var2 == null) { System.out.println("HTMLEditorKit.loadStyleSheet: default.css file not found"); } else { StyleReader var3 = new StyleReader(var1); var3.read(var1, 0, var2); } } public Action[] getActions() { return TextAction.augmentList(super.getActions(), defaultActions); } static Vector getCharacterElements(JEditorPane var0, int var1, int var2) { StyledDocument var3 = (StyledDocument)((JTextComponent)var0).getDocument(); Vector var4 = new Vector(); int var7 = var1 > var2 ? var2 : var1; var2 = var7 > var2 ? var1 : var2; int var9 = var7; while(var9 <= var2) { Element var6 = var3.getCharacterElement(var9); if (var6 == null) { ++var9; } else { var4.addElement(var6); if (var9 < var6.getEndOffset() + 1) { var9 = var6.getEndOffset() + 1; } else { ++var9; } } } return var4; } static { defaultActions = new Action[]{new HTMLBoldAction(), new HTMLItalicAction(), new FontSizeChangeAction("html-font-bigger", true), new FontSizeChangeAction("html-font-smaller", false), new ParagraphIndentAction("html-para-indent-left", true), new ParagraphIndentAction("html-para-indent-right", false), new ImgAlignAction("html-image-align-top", "top"), new ImgAlignAction("html-image-align-middle", "middle"), new ImgAlignAction("html-image-align-bottom", "bottom"), new ImgBorderAction("html-image-border"), new StyledEditorKit.ForegroundAction("html-color-action", Color.black), new LogicalStyleAction("Normal")}; } }