Java Doc for HTMLEditorKit.java in  » 6.0-JDK-Core » swing » javax » swing » text » html » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Home
Java Source Code / Java Documentation
1.6.0 JDK Core
2.6.0 JDK Modules
3.6.0 JDK Modules com.sun
4.6.0 JDK Modules com.sun.java
5.6.0 JDK Modules sun
6.6.0 JDK Platform
7.Ajax
8.Apache Harmony Java SE
9.Aspect oriented
10.Authentication Authorization
11.Blogger System
12.Build
13.Byte Code
14.Cache
15.Chart
16.Chat
17.Code Analyzer
18.Collaboration
19.Content Management System
20.Database Client
21.Database DBMS
22.Database JDBC Connection Pool
23.Database ORM
24.Development
25.EJB Server
26.ERP CRM Financial
27.ESB
28.Forum
29.Game
30.GIS
31.Graphic 3D
32.Graphic Library
33.Groupware
34.HTML Parser
35.IDE
36.IDE Eclipse
37.IDE Netbeans
38.Installer
39.Internationalization Localization
40.Inversion of Control
41.Issue Tracking
42.J2EE
43.J2ME
44.JBoss
45.JMS
46.JMX
47.Library
48.Mail Clients
49.Music
50.Net
51.Parser
52.PDF
53.Portal
54.Profiler
55.Project Management
56.Report
57.RSS RDF
58.Rule Engine
59.Science
60.Scripting
61.Search Engine
62.Security
63.Sevlet Container
64.Source Control
65.Swing Library
66.Template Engine
67.Test Coverage
68.Testing
69.UML
70.Web Crawler
71.Web Framework
72.Web Mail
73.Web Server
74.Web Services
75.Web Services apache cxf 2.2.6
76.Web Services AXIS2
77.Wiki Engine
78.Workflow Engines
79.XML
80.XML UI
Java Source Code / Java Documentation » 6.0 JDK Core » swing » javax.swing.text.html 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   javax.swing.text.EditorKit
      javax.swing.text.DefaultEditorKit
         javax.swing.text.StyledEditorKit
            javax.swing.text.html.HTMLEditorKit

All known Subclasses:   javax.swing.text.html.parser.ParserDelegator,
HTMLEditorKit
public class HTMLEditorKit extends StyledEditorKit implements Accessible(Code)
The Swing JEditorPane text component supports different kinds of content via a plug-in mechanism called an EditorKit. Because HTML is a very popular format of content, some support is provided by default. The default support is provided by this class, which supports HTML version 3.2 (with some extensions), and is migrating toward version 4.0. The <applet> tag is not supported, but some support is provided for the <object> tag.

There are several goals of the HTML EditorKit provided, that have an effect upon the way that HTML is modeled. These have influenced its design in a substantial way.

Support editing
It might seem fairly obvious that a plug-in for JEditorPane should provide editing support, but that fact has several design considerations. There are a substantial number of HTML documents that don't properly conform to an HTML specification. These must be normalized somewhat into a correct form if one is to edit them. Additionally, users don't like to be presented with an excessive amount of structure editing, so using traditional text editing gestures is preferred over using the HTML structure exactly as defined in the HTML document.

The modeling of HTML is provided by the class HTMLDocument. Its documention describes the details of how the HTML is modeled. The editing support leverages heavily off of the text package.

Extendable/Scalable
To maximize the usefulness of this kit, a great deal of effort has gone into making it extendable. These are some of the features.
  1. The parser is replacable. The default parser is the Hot Java parser which is DTD based. A different DTD can be used, or an entirely different parser can be used. To change the parser, reimplement the getParser method. The default parser is dynamically loaded when first asked for, so the class files will never be loaded if an alternative parser is used. The default parser is in a separate package called parser below this package.
  2. The parser drives the ParserCallback, which is provided by HTMLDocument. To change the callback, subclass HTMLDocument and reimplement the createDefaultDocument method to return document that produces a different reader. The reader controls how the document is structured. Although the Document provides HTML support by default, there is nothing preventing support of non-HTML tags that result in alternative element structures.
  3. The default view of the models are provided as a hierarchy of View implementations, so one can easily customize how a particular element is displayed or add capabilities for new kinds of elements by providing new View implementations. The default set of views are provided by the HTMLFactory class. This can be easily changed by subclassing or replacing the HTMLFactory and reimplementing the getViewFactory method to return the alternative factory.
  4. The View implementations work primarily off of CSS attributes, which are kept in the views. This makes it possible to have multiple views mapped over the same model that appear substantially different. This can be especially useful for printing. For most HTML attributes, the HTML attributes are converted to CSS attributes for display. This helps make the View implementations more general purpose

Asynchronous Loading
Larger documents involve a lot of parsing and take some time to load. By default, this kit produces documents that will be loaded asynchronously if loaded using JEditorPane.setPage. This is controlled by a property on the document. The method createDefaultDocument can be overriden to change this. The batching of work is done by the HTMLDocument.HTMLReader class. The actual work is done by the DefaultStyledDocument and AbstractDocument classes in the text package.

Customization from current LAF
HTML provides a well known set of features without exactly specifying the display characteristics. Swing has a theme mechanism for its look-and-feel implementations. It is desirable for the look-and-feel to feed display characteristics into the HTML views. An user with poor vision for example would want high contrast and larger than typical fonts.

The support for this is provided by the StyleSheet class. The presentation of the HTML can be heavily influenced by the setting of the StyleSheet property on the EditorKit.

Not lossy
An EditorKit has the ability to be read and save documents. It is generally the most pleasing to users if there is no loss of data between the two operation. The policy of the HTMLEditorKit will be to store things not recognized or not necessarily visible so they can be subsequently written out. The model of the HTML document should therefore contain all information discovered while reading the document. This is constrained in some ways by the need to support editing (i.e. incorrect documents sometimes must be normalized). The guiding principle is that information shouldn't be lost, but some might be synthesized to produce a more correct model or it might be rearranged.

author:
   Timothy Prinzing
version:
   1.142 05/05/07

Inner Class :public static class LinkController extends MouseAdapter implements MouseMotionListener,Serializable
Inner Class :abstract public static class Parser
Inner Class :public static class ParserCallback
Inner Class :public static class HTMLFactory implements ViewFactory
Inner Class :abstract public static class HTMLTextAction extends StyledTextAction
Inner Class :public static class InsertHTMLTextAction extends HTMLTextAction
Inner Class :static class InsertHRAction extends InsertHTMLTextAction
Inner Class :static class NavigateLinkAction extends TextAction implements CaretListener
Inner Class :static class ActivateLinkAction extends TextAction
Inner Class :static class BeginAction extends TextAction

Field Summary
final public static  StringBOLD_ACTION
    
final public static  StringCOLOR_ACTION
    
final public static  StringDEFAULT_CSS
     Default Cascading Style Sheet file that sets up the tag views.
final public static  StringFONT_CHANGE_BIGGER
    
final public static  StringFONT_CHANGE_SMALLER
    
final public static  StringIMG_ALIGN_BOTTOM
     Align images at the bottom.
final public static  StringIMG_ALIGN_MIDDLE
     Align images in the middle.
final public static  StringIMG_ALIGN_TOP
     Align images at the top.
final public static  StringIMG_BORDER
     Align images at the border.
final public static  StringITALIC_ACTION
    
final public static  StringLOGICAL_STYLE_ACTION
    
final public static  StringPARA_INDENT_LEFT
    
final public static  StringPARA_INDENT_RIGHT
    
 MutableAttributeSetinput
    

Constructor Summary
public  HTMLEditorKit()
     Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.

Method Summary
public  Objectclone()
     Creates a copy of the editor kit.
public  DocumentcreateDefaultDocument()
     Create an uninitialized text storage model that is appropriate for this type of editor.
protected  voidcreateInputAttributes(Element element, MutableAttributeSet set)
     Copies the key/values in elements AttributeSet into set.
public  voiddeinstall(JEditorPane c)
     Called when the kit is being removed from the JEditorPane.
public  AccessibleContextgetAccessibleContext()
    
public  Action[]getActions()
     Fetches the command list for the editor.
public  StringgetContentType()
     Get the MIME type of the data that this kit represents support for.
public  CursorgetDefaultCursor()
     Returns the default cursor.
public  MutableAttributeSetgetInputAttributes()
     Gets the input attributes used for the styled editing actions.
public  CursorgetLinkCursor()
     Returns the cursor to use over hyper links.
protected  ParsergetParser()
     Fetch the parser to use for reading HTML streams. This can be reimplemented to provide a different parser.
static  InputStreamgetResourceAsStream(String name)
     Fetch a resource relative to the HTMLEditorKit classfile.
public  StyleSheetgetStyleSheet()
     Get the set of styles currently being used to render the HTML elements.
public  ViewFactorygetViewFactory()
     Fetch a factory that is suitable for producing views of any models that are produced by this kit.
public  voidinsertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag)
     Inserts HTML into an existing document.
public  voidinstall(JEditorPane c)
     Called when the kit is being installed into the a JEditorPane.
public  booleanisAutoFormSubmission()
     Indicates whether an html form submission is processed automatically or only FormSubmitEvent is fired.
public  voidread(Reader in, Document doc, int pos)
     Inserts content from the given stream.
public  voidsetAutoFormSubmission(boolean isAuto)
     Specifies if an html form submission is processed automatically or only FormSubmitEvent is fired.
public  voidsetDefaultCursor(Cursor cursor)
     Sets the default cursor.
public  voidsetLinkCursor(Cursor cursor)
     Sets the cursor to use over links.
public  voidsetStyleSheet(StyleSheet s)
     Set the set of styles to be used to render the various HTML elements.
public  voidwrite(Writer out, 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.

Field Detail
BOLD_ACTION
final public static String BOLD_ACTION(Code)
The bold action identifier



COLOR_ACTION
final public static String COLOR_ACTION(Code)
The Color choice action identifier The color is passed as an argument



DEFAULT_CSS
final public static String DEFAULT_CSS(Code)
Default Cascading Style Sheet file that sets up the tag views.



FONT_CHANGE_BIGGER
final public static String FONT_CHANGE_BIGGER(Code)
The font size increase to next value action identifier



FONT_CHANGE_SMALLER
final public static String FONT_CHANGE_SMALLER(Code)
The font size decrease to next value action identifier



IMG_ALIGN_BOTTOM
final public static String IMG_ALIGN_BOTTOM(Code)
Align images at the bottom.



IMG_ALIGN_MIDDLE
final public static String IMG_ALIGN_MIDDLE(Code)
Align images in the middle.



IMG_ALIGN_TOP
final public static String IMG_ALIGN_TOP(Code)
Align images at the top.



IMG_BORDER
final public static String IMG_BORDER(Code)
Align images at the border.



ITALIC_ACTION
final public static String ITALIC_ACTION(Code)
The italic action identifier



LOGICAL_STYLE_ACTION
final public static String LOGICAL_STYLE_ACTION(Code)
The logical style choice action identifier The logical style is passed in as an argument



PARA_INDENT_LEFT
final public static String PARA_INDENT_LEFT(Code)
The paragraph left indent action identifier



PARA_INDENT_RIGHT
final public static String PARA_INDENT_RIGHT(Code)
The paragraph right indent action identifier



input
MutableAttributeSet input(Code)




Constructor Detail
HTMLEditorKit
public HTMLEditorKit()(Code)
Constructs an HTMLEditorKit, creates a StyleContext, and loads the style sheet.




Method Detail
clone
public Object clone()(Code)
Creates a copy of the editor kit. the copy



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



createInputAttributes
protected void createInputAttributes(Element element, MutableAttributeSet set)(Code)
Copies the key/values in elements AttributeSet into set. This does not copy component, icon, or element names attributes. Subclasses may wish to refine what is and what isn't copied here. But be sure to first remove all the attributes that are in set.

This is called anytime the caret moves over a different location.




deinstall
public void deinstall(JEditorPane c)(Code)
Called when the kit is being removed from the JEditorPane. This is used to unregister any listeners that were attached.
Parameters:
  c - the JEditorPane



getAccessibleContext
public AccessibleContext getAccessibleContext()(Code)
returns the AccessibleContext associated with this editor kit the AccessibleContext associated with this editor kit
since:
   1.4



getActions
public Action[] getActions()(Code)
Fetches the command list for the editor. This is the list of commands supported by the superclass augmented by the collection of commands defined locally for style operations. the command list



getContentType
public String getContentType()(Code)
Get the MIME type of the data that this kit represents support for. This kit supports the type text/html. the type



getDefaultCursor
public Cursor getDefaultCursor()(Code)
Returns the default cursor.
since:
   1.3



getInputAttributes
public MutableAttributeSet getInputAttributes()(Code)
Gets the input attributes used for the styled editing actions. the attribute set



getLinkCursor
public Cursor getLinkCursor()(Code)
Returns the cursor to use over hyper links.
since:
   1.3



getParser
protected Parser getParser()(Code)
Fetch the parser to use for reading HTML streams. This can be reimplemented to provide a different parser. The default implementation is loaded dynamically to avoid the overhead of loading the default parser if it's not used. The default parser is the HotJava parser using an HTML 3.2 DTD.



getResourceAsStream
static InputStream getResourceAsStream(String name)(Code)
Fetch a resource relative to the HTMLEditorKit classfile. If this is called on 1.2 the loading will occur under the protection of a doPrivileged call to allow the HTMLEditorKit to function when used in an applet.
Parameters:
  name - the name of the resource, relative to theHTMLEditorKit class a stream representing the resource



getStyleSheet
public StyleSheet getStyleSheet()(Code)
Get the set of styles currently being used to render the HTML elements. By default the resource specified by DEFAULT_CSS gets loaded, and is shared by all HTMLEditorKit instances.



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



insertHTML
public void insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) throws BadLocationException, IOException(Code)
Inserts HTML into an existing document.
Parameters:
  doc - the document to insert into
Parameters:
  offset - the offset to insert HTML at
Parameters:
  popDepth - the number of ElementSpec.EndTagTypes to generate beforeinserting
Parameters:
  pushDepth - the number of ElementSpec.StartTagTypes with a directionof ElementSpec.JoinNextDirection that should be generatedbefore inserting, but after the end tags have been generated
Parameters:
  insertTag - the first tag to start inserting into document
exception:
  RuntimeException - (will eventually be a BadLocationException)if pos is invalid



install
public void install(JEditorPane c)(Code)
Called when the kit is being installed into the a JEditorPane.
Parameters:
  c - the JEditorPane



isAutoFormSubmission
public boolean isAutoFormSubmission()(Code)
Indicates whether an html form submission is processed automatically or only FormSubmitEvent is fired. true if html form submission is processed automatically,false otherwise.
See Also:   HTMLEditorKit.setAutoFormSubmission
since:
   1.5



read
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException(Code)
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.
Parameters:
  in - the stream to read from
Parameters:
  doc - the destination for the insertion
Parameters:
  pos - the location in the document to place thecontent
exception:
  IOException - on any I/O error
exception:
  BadLocationException - if pos represents an invalidlocation within the document
exception:
  RuntimeException - (will eventually be a BadLocationException)if pos is invalid



setAutoFormSubmission
public void setAutoFormSubmission(boolean isAuto)(Code)
Specifies if an html form submission is processed automatically or only FormSubmitEvent is fired. By default it is set to true.
See Also:   HTMLEditorKit.isAutoFormSubmission
See Also:   FormSubmitEvent
since:
   1.5



setDefaultCursor
public void setDefaultCursor(Cursor cursor)(Code)
Sets the default cursor.
since:
   1.3



setLinkCursor
public void setLinkCursor(Cursor cursor)(Code)
Sets the cursor to use over links.
since:
   1.3



setStyleSheet
public void setStyleSheet(StyleSheet s)(Code)
Set the set of styles to be used to render the various HTML elements. These styles are specified in terms of CSS specifications. Each document produced by the kit will have a copy of the sheet which it can add the document specific styles to. By default, the StyleSheet specified is shared by all HTMLEditorKit instances. This should be reimplemented to provide a finer granularity if desired.



write
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException(Code)
Write content from a document to the given stream in a format appropriate for this kind of content handler.
Parameters:
  out - the stream to write to
Parameters:
  doc - the source for the write
Parameters:
  pos - the location in the document to fetch thecontent
Parameters:
  len - the amount to write out
exception:
  IOException - on any I/O error
exception:
  BadLocationException - if pos represents an invalidlocation within the document



Methods inherited from javax.swing.text.StyledEditorKit
public Object clone()(Code)(Java Doc)
public Document createDefaultDocument()(Code)(Java Doc)
protected void createInputAttributes(Element element, MutableAttributeSet set)(Code)(Java Doc)
public void deinstall(JEditorPane c)(Code)(Java Doc)
public Action[] getActions()(Code)(Java Doc)
public Element getCharacterAttributeRun()(Code)(Java Doc)
public MutableAttributeSet getInputAttributes()(Code)(Java Doc)
public ViewFactory getViewFactory()(Code)(Java Doc)
public void install(JEditorPane c)(Code)(Java Doc)

Fields inherited from javax.swing.text.DefaultEditorKit
final public static String EndOfLineStringProperty(Code)(Java Doc)
final public static String backwardAction(Code)(Java Doc)
final public static String beepAction(Code)(Java Doc)
final public static String beginAction(Code)(Java Doc)
final public static String beginLineAction(Code)(Java Doc)
final public static String beginParagraphAction(Code)(Java Doc)
final public static String beginWordAction(Code)(Java Doc)
final public static String copyAction(Code)(Java Doc)
final public static String cutAction(Code)(Java Doc)
final public static String defaultKeyTypedAction(Code)(Java Doc)
final public static String deleteNextCharAction(Code)(Java Doc)
final public static String deleteNextWordAction(Code)(Java Doc)
final public static String deletePrevCharAction(Code)(Java Doc)
final public static String deletePrevWordAction(Code)(Java Doc)
final public static String downAction(Code)(Java Doc)
final public static String endAction(Code)(Java Doc)
final public static String endLineAction(Code)(Java Doc)
final public static String endParagraphAction(Code)(Java Doc)
final public static String endWordAction(Code)(Java Doc)
final public static String forwardAction(Code)(Java Doc)
final public static String insertBreakAction(Code)(Java Doc)
final public static String insertContentAction(Code)(Java Doc)
final public static String insertTabAction(Code)(Java Doc)
final public static String nextWordAction(Code)(Java Doc)
final public static String pageDownAction(Code)(Java Doc)
final public static String pageUpAction(Code)(Java Doc)
final public static String pasteAction(Code)(Java Doc)
final public static String previousWordAction(Code)(Java Doc)
final public static String readOnlyAction(Code)(Java Doc)
final public static String selectAllAction(Code)(Java Doc)
final public static String selectLineAction(Code)(Java Doc)
final public static String selectParagraphAction(Code)(Java Doc)
final public static String selectWordAction(Code)(Java Doc)
final public static String selectionBackwardAction(Code)(Java Doc)
final public static String selectionBeginAction(Code)(Java Doc)
final public static String selectionBeginLineAction(Code)(Java Doc)
final public static String selectionBeginParagraphAction(Code)(Java Doc)
final public static String selectionBeginWordAction(Code)(Java Doc)
final public static String selectionDownAction(Code)(Java Doc)
final public static String selectionEndAction(Code)(Java Doc)
final public static String selectionEndLineAction(Code)(Java Doc)
final public static String selectionEndParagraphAction(Code)(Java Doc)
final public static String selectionEndWordAction(Code)(Java Doc)
final public static String selectionForwardAction(Code)(Java Doc)
final public static String selectionNextWordAction(Code)(Java Doc)
final public static String selectionPreviousWordAction(Code)(Java Doc)
final public static String selectionUpAction(Code)(Java Doc)
final public static String upAction(Code)(Java Doc)
final public static String writableAction(Code)(Java Doc)

Methods inherited from javax.swing.text.DefaultEditorKit
public Caret createCaret()(Code)(Java Doc)
public Document createDefaultDocument()(Code)(Java Doc)
public Action[] getActions()(Code)(Java Doc)
public String getContentType()(Code)(Java Doc)
public ViewFactory getViewFactory()(Code)(Java Doc)
public void read(InputStream in, Document doc, int pos) throws IOException, BadLocationException(Code)(Java Doc)
public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException(Code)(Java Doc)
public void write(OutputStream out, Document doc, int pos, int len) throws IOException, BadLocationException(Code)(Java Doc)
public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException(Code)(Java Doc)

Methods inherited from javax.swing.text.EditorKit
public Object clone()(Code)(Java Doc)
abstract public Caret createCaret()(Code)(Java Doc)
abstract public Document createDefaultDocument()(Code)(Java Doc)
public void deinstall(JEditorPane c)(Code)(Java Doc)
abstract public Action[] getActions()(Code)(Java Doc)
abstract public String getContentType()(Code)(Java Doc)
abstract public ViewFactory getViewFactory()(Code)(Java Doc)
public void install(JEditorPane c)(Code)(Java Doc)
abstract public void read(InputStream in, Document doc, int pos) throws IOException, BadLocationException(Code)(Java Doc)
abstract public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException(Code)(Java Doc)
abstract public void write(OutputStream out, Document doc, int pos, int len) throws IOException, BadLocationException(Code)(Java Doc)
abstract public void write(Writer out, Document doc, int pos, int len) throws IOException, BadLocationException(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.