org.jdesktop.swingx
Class JXEditorPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.text.JTextComponent
                  extended by javax.swing.JEditorPane
                      extended by org.jdesktop.swingx.JXEditorPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable, Targetable

public class JXEditorPane
extends JEditorPane
implements Targetable

JXEditorPane offers enhanced functionality over the standard JEditorPane.

Additional Features

Improved text editing
The standard text component commands for cut, copy, and paste used enhanced selection methods. The commands will only be active if there is text to cut or copy selected or valid text in the clipboard to paste.
Improved HTML editing
Using the context-sensitive approach for the standard text commands, JXEditorPane provides HTML editing commands that alter functionality depending on the document state. Currently, the user can quick-format the document with headers (H# tags), paragraphs, and breaks.
Built-in UndoManager
Text components provide UndoableEditEvents. JXEditorPane places those events in an UndoManager and provides undo/redo commands. Undo and redo are context-sensitive (like the text commands) and will only be active if it is possible to perform the command.
Built-in search
Using SwingX search mechanisms, JXEditorPane provides search capabilities, allowing the user to find text within the document.

Example

Creating a JXEditorPane is no different than creating a JEditorPane. However, the following example demonstrates the best way to access the improved command functionality.

 JXEditorPane editorPane = new JXEditorPane("some URL");
 add(editorPane);
 JToolBar toolBar = ActionContainerFactory.createToolBar(editorPane.getCommands[]);
 toolBar.addSeparator();
 toolBar.add(editorPane.getParagraphSelector());
 setToolBar(toolBar);
 

See Also:
Serialized Form

Nested Class Summary
 class JXEditorPane.DocumentSearchable
          A Searchable implementation for Documents.
 
Nested classes/interfaces inherited from class javax.swing.JEditorPane
JEditorPane.AccessibleJEditorPane, JEditorPane.AccessibleJEditorPaneHTML, JEditorPane.JEditorPaneAccessibleHypertextSupport
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.KeyBinding
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JEditorPane
HONOR_DISPLAY_PROPERTIES, W3C_LENGTH_UNITS
 
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JXEditorPane()
          Creates a new JXEditorPane.
JXEditorPane(String url)
          Creates a JXEditorPane based on a string containing a URL specification.
JXEditorPane(String type, String text)
          Creates a JXEditorPane that has been initialized to the given text.
JXEditorPane(URL initialPage)
          Creates a JXEditorPane based on a specified URL for input.
 
Method Summary
protected  void applyTag(HTML.Tag tag)
          Applys the tag to the current selection
 boolean doCommand(Object command, Object value)
          Perform the command using the object value.
 Object[] getCommands()
          Returns an array of supported commands.
 JComboBox getParagraphSelector()
          Retrieves a component which will be used as the paragraph selector.
 Searchable getSearchable()
           
 boolean hasCommand(Object command)
          Return a flag that indicates if a command is supported.
protected  void initActions()
          Register the actions that this class can handle.
 void paste()
          The paste method has been overloaded to strip off the tags This doesn't really work.
 void setEditorKit(EditorKit kit)
          Overidden to perform document initialization based on type.
 void setSearchable(Searchable searchable)
          sets the Searchable for this editor.
 
Methods inherited from class javax.swing.JEditorPane
addHyperlinkListener, createDefaultEditorKit, createEditorKitForContentType, fireHyperlinkUpdate, getAccessibleContext, getContentType, getEditorKit, getEditorKitClassNameForContentType, getEditorKitForContentType, getHyperlinkListeners, getPage, getPreferredSize, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getStream, getText, getUIClassID, paramString, read, registerEditorKitForContentType, registerEditorKitForContentType, removeHyperlinkListener, replaceSelection, scrollToReference, setContentType, setEditorKitForContentType, setPage, setPage, setText
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getScrollableBlockIncrement, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDocument, setDragEnabled, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JXEditorPane

public JXEditorPane()
Creates a new JXEditorPane. The document model is set to null.


JXEditorPane

public JXEditorPane(String url)
             throws IOException
Creates a JXEditorPane based on a string containing a URL specification.

Parameters:
url - the URL
Throws:
IOException - if the URL is null or cannot be accessed

JXEditorPane

public JXEditorPane(String type,
                    String text)
Creates a JXEditorPane that has been initialized to the given text. This is a convenience constructor that calls the setContentType and setText methods.

Parameters:
type - mime type of the given text
text - the text to initialize with; may be null
Throws:
NullPointerException - if the type parameter is null

JXEditorPane

public JXEditorPane(URL initialPage)
             throws IOException
Creates a JXEditorPane based on a specified URL for input.

Parameters:
initialPage - the URL
Throws:
IOException - if the URL is null or cannot be accessed
Method Detail

setEditorKit

public void setEditorKit(EditorKit kit)
Overidden to perform document initialization based on type.

Overrides:
setEditorKit in class JEditorPane
Parameters:
kit - the desired editor behavior
See Also:
JEditorPane.getEditorKit()

initActions

protected void initActions()
Register the actions that this class can handle.


getParagraphSelector

public JComboBox getParagraphSelector()
Retrieves a component which will be used as the paragraph selector. This can be placed in the toolbar.

Note: This is only valid for the HTMLEditorKit


applyTag

protected void applyTag(HTML.Tag tag)
Applys the tag to the current selection


paste

public void paste()
The paste method has been overloaded to strip off the tags This doesn't really work.

Overrides:
paste in class JTextComponent
See Also:
JTextComponent.replaceSelection(java.lang.String), Toolkit.getSystemClipboard(), Clipboard

getSearchable

public Searchable getSearchable()
Returns:
a not-null Searchable for this editor.

setSearchable

public void setSearchable(Searchable searchable)
sets the Searchable for this editor. If null, a default searchable will be used.

Parameters:
searchable -

hasCommand

public boolean hasCommand(Object command)
Description copied from interface: Targetable
Return a flag that indicates if a command is supported.

Specified by:
hasCommand in interface Targetable
Parameters:
command - is a Action.ACTION_COMMAND_KEY
Returns:
true if command is supported; false otherwise

getCommands

public Object[] getCommands()
Description copied from interface: Targetable
Returns an array of supported commands. If this Targetable doesn't support any commands (which is unlikely) then an empty array is returned.

Specified by:
getCommands in interface Targetable
Returns:
array of supported commands

doCommand

public boolean doCommand(Object command,
                         Object value)
Description copied from interface: Targetable
Perform the command using the object value.

Specified by:
doCommand in interface Targetable
Parameters:
command - is a Action.ACTION_COMMAND_KEY
value - an arbitrary value. Usually this will be EventObject which trigered the command.