com.lightdev.app.shtm
Class SHTMLEditorKit

java.lang.Object
  extended by javax.swing.text.EditorKit
      extended by javax.swing.text.DefaultEditorKit
          extended by javax.swing.text.StyledEditorKit
              extended by javax.swing.text.html.HTMLEditorKit
                  extended by com.lightdev.app.shtm.SHTMLEditorKit
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.accessibility.Accessible

public class SHTMLEditorKit
extends javax.swing.text.html.HTMLEditorKit

Extensions to HTMLEditorKit for application SimplyHTML.

In stage 1 this only re-implements how style sheets are handled by default.

Stage 3 adds functionality for usage of the custom HTML document and HTML reader used with SimplyHTML from this stage on.

With stage 9 some additional views have been added to the view factory as a workaround for bug id 4765271 (see http://developer.java.sun.com/developer/bugParade/bugs/4765271.html).

OK, I give up: With release 2 of stage 9 above views are used no longer and bug fixing is not done anymore. The HTML support is almost taken as is in the hope that Sun will enhance it some day. To do compensation inside a single application is not possible with a reasonable effort.

See Also:
Serialized Form

Nested Class Summary
static class SHTMLEditorKit.SHTMLFactory
           
 
Nested classes/interfaces inherited from class javax.swing.text.html.HTMLEditorKit
javax.swing.text.html.HTMLEditorKit.HTMLFactory, javax.swing.text.html.HTMLEditorKit.HTMLTextAction, javax.swing.text.html.HTMLEditorKit.InsertHTMLTextAction, javax.swing.text.html.HTMLEditorKit.LinkController, javax.swing.text.html.HTMLEditorKit.Parser, javax.swing.text.html.HTMLEditorKit.ParserCallback
 
Nested classes/interfaces inherited from class javax.swing.text.StyledEditorKit
javax.swing.text.StyledEditorKit.AlignmentAction, javax.swing.text.StyledEditorKit.BoldAction, javax.swing.text.StyledEditorKit.FontFamilyAction, javax.swing.text.StyledEditorKit.FontSizeAction, javax.swing.text.StyledEditorKit.ForegroundAction, javax.swing.text.StyledEditorKit.ItalicAction, javax.swing.text.StyledEditorKit.StyledTextAction, javax.swing.text.StyledEditorKit.UnderlineAction
 
Nested classes/interfaces inherited from class javax.swing.text.DefaultEditorKit
javax.swing.text.DefaultEditorKit.BeepAction, javax.swing.text.DefaultEditorKit.CopyAction, javax.swing.text.DefaultEditorKit.CutAction, javax.swing.text.DefaultEditorKit.DefaultKeyTypedAction, javax.swing.text.DefaultEditorKit.InsertBreakAction, javax.swing.text.DefaultEditorKit.InsertContentAction, javax.swing.text.DefaultEditorKit.InsertTabAction, javax.swing.text.DefaultEditorKit.PasteAction
 
Field Summary
 
Fields inherited from class javax.swing.text.html.HTMLEditorKit
BOLD_ACTION, COLOR_ACTION, DEFAULT_CSS, FONT_CHANGE_BIGGER, FONT_CHANGE_SMALLER, IMG_ALIGN_BOTTOM, IMG_ALIGN_MIDDLE, IMG_ALIGN_TOP, IMG_BORDER, ITALIC_ACTION, LOGICAL_STYLE_ACTION, PARA_INDENT_LEFT, PARA_INDENT_RIGHT
 
Fields inherited from class javax.swing.text.DefaultEditorKit
backwardAction, beepAction, beginAction, beginLineAction, beginParagraphAction, beginWordAction, copyAction, cutAction, defaultKeyTypedAction, deleteNextCharAction, deleteNextWordAction, deletePrevCharAction, deletePrevWordAction, downAction, endAction, endLineAction, EndOfLineStringProperty, endParagraphAction, endWordAction, forwardAction, insertBreakAction, insertContentAction, insertTabAction, nextWordAction, pageDownAction, pageUpAction, pasteAction, previousWordAction, readOnlyAction, selectAllAction, selectionBackwardAction, selectionBeginAction, selectionBeginLineAction, selectionBeginParagraphAction, selectionBeginWordAction, selectionDownAction, selectionEndAction, selectionEndLineAction, selectionEndParagraphAction, selectionEndWordAction, selectionForwardAction, selectionNextWordAction, selectionPreviousWordAction, selectionUpAction, selectLineAction, selectParagraphAction, selectWordAction, upAction, writableAction
 
Constructor Summary
SHTMLEditorKit()
           
SHTMLEditorKit(java.lang.String renderMode)
           
 
Method Summary
 javax.swing.text.Document createDefaultDocument()
          Create an uninitialized text storage model that is appropriate for this type of editor.
 javax.swing.text.ViewFactory getViewFactory()
          Fetch a factory that is suitable for producing views of any models that are produced by this kit.
 void read(java.io.Reader in, javax.swing.text.Document doc, int pos)
          Inserts content from the given stream.
 void setRenderMode(java.lang.String mode)
          set the render mode
 void write(java.io.Writer out, javax.swing.text.Document doc, int pos, int len)
          Write content from a document to the given stream in a format appropriate for this kind of content handler.
 
Methods inherited from class javax.swing.text.html.HTMLEditorKit
clone, createInputAttributes, deinstall, getAccessibleContext, getActions, getContentType, getDefaultCursor, getInputAttributes, getLinkCursor, getParser, getStyleSheet, insertHTML, install, isAutoFormSubmission, setAutoFormSubmission, setDefaultCursor, setLinkCursor, setStyleSheet
 
Methods inherited from class javax.swing.text.StyledEditorKit
getCharacterAttributeRun
 
Methods inherited from class javax.swing.text.DefaultEditorKit
createCaret, read, write
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SHTMLEditorKit

public SHTMLEditorKit()

SHTMLEditorKit

public SHTMLEditorKit(java.lang.String renderMode)
Method Detail

createDefaultDocument

public javax.swing.text.Document createDefaultDocument()
Create an uninitialized text storage model that is appropriate for this type of editor.

Overrides:
createDefaultDocument in class javax.swing.text.html.HTMLEditorKit
Returns:
the model

read

public void read(java.io.Reader in,
                 javax.swing.text.Document doc,
                 int pos)
          throws java.io.IOException,
                 javax.swing.text.BadLocationException
Inserts content from the given stream. If doc is an instance of HTMLDocument, this will read HTML 3.2 text. Inserting HTML into a non-empty document must be inside the body Element, if you do not insert into the body an exception will be thrown. When inserting into a non-empty document all tags outside of the body (head, title) will be dropped.

Overrides:
read in class javax.swing.text.html.HTMLEditorKit
Parameters:
in - the stream to read from
doc - the destination for the insertion
pos - the location in the document to place the content
Throws:
java.io.IOException - on any I/O error
javax.swing.text.BadLocationException - if pos represents an invalid location within the document
java.lang.RuntimeException - (will eventually be a BadLocationException) if pos is invalid

write

public void write(java.io.Writer out,
                  javax.swing.text.Document doc,
                  int pos,
                  int len)
           throws java.io.IOException,
                  javax.swing.text.BadLocationException
Write content from a document to the given stream in a format appropriate for this kind of content handler.

Overrides:
write in class javax.swing.text.html.HTMLEditorKit
Parameters:
out - the stream to write to
doc - the source for the write
pos - the location in the document to fetch the content
len - the amount to write out
Throws:
java.io.IOException - on any I/O error
javax.swing.text.BadLocationException - if pos represents an invalid location within the document

getViewFactory

public javax.swing.text.ViewFactory getViewFactory()
Fetch a factory that is suitable for producing views of any models that are produced by this kit.

Overrides:
getViewFactory in class javax.swing.text.html.HTMLEditorKit
Returns:
the factory

setRenderMode

public void setRenderMode(java.lang.String mode)
set the render mode

This influences how the ViewFactory creates view to render content

Parameters:
mode - the mode, one of PrefsDialog.PREFS_WRITE_MODE_HTML32 or _HTML4