org.fife.ui.rsyntaxtextarea
Class TextEditorPane

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.JTextArea
                      extended by org.fife.ui.rtextarea.RTextAreaBase
                          extended by org.fife.ui.rtextarea.RTextArea
                              extended by org.fife.ui.rsyntaxtextarea.RSyntaxTextArea
                                  extended by org.fife.ui.rsyntaxtextarea.TextEditorPane
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.print.Printable, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.DocumentListener, javax.swing.Scrollable, SyntaxConstants

public class TextEditorPane
extends RSyntaxTextArea
implements javax.swing.event.DocumentListener

An extension of RSyntaxTextArea that adds information about the file being edited, such as:

Loading and saving is also built into the editor.

When saving UTF-8 files, whether or not a BOM is written is controlled by the UnicodeWriter class. Use UnicodeWriter.setWriteUtf8BOM(boolean) to toggle writing BOMs for UTF-8 files.

Both local and remote files (e.g. ftp) are supported. See the FileLocation class for more information.

See Also:
FileLocation, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.fife.ui.rtextarea.RTextArea
RTextArea.RTextAreaMutableCaretEvent
 
Nested classes/interfaces inherited from class org.fife.ui.rtextarea.RTextAreaBase
RTextAreaBase.RTAMouseListener
 
Nested classes/interfaces inherited from class javax.swing.JTextArea
javax.swing.JTextArea.AccessibleJTextArea
 
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String DIRTY_PROPERTY
           
static java.lang.String FULL_PATH_PROPERTY
           
static long LAST_MODIFIED_UNKNOWN
          The value returned by getLastSaveOrLoadTime() for remote files.
static java.lang.String READ_ONLY_PROPERTY
           
 
Fields inherited from class org.fife.ui.rsyntaxtextarea.RSyntaxTextArea
ANIMATE_BRACKET_MATCHING_PROPERTY, ANTIALIAS_PROPERTY, AUTO_INDENT_PROPERTY, BRACKET_MATCHING_PROPERTY, CLEAR_WHITESPACE_LINES_PROPERTY, CLOSE_CURLY_BRACES_PROPERTY, CLOSE_MARKUP_TAGS_PROPERTY, CODE_FOLDING_PROPERTY, EOL_VISIBLE_PROPERTY, FOCUSABLE_TIPS_PROPERTY, FRACTIONAL_FONTMETRICS_PROPERTY, HIGHLIGHT_SECONDARY_LANGUAGES_PROPERTY, HYPERLINKS_ENABLED_PROPERTY, MARK_OCCURRENCES_PROPERTY, MARKED_OCCURRENCES_CHANGED_PROPERTY, PAINT_MATCHED_BRACKET_PAIR_PROPERTY, PARSER_NOTICES_PROPERTY, SYNTAX_SCHEME_PROPERTY, SYNTAX_STYLE_PROPERTY, TAB_LINE_COLOR_PROPERTY, TAB_LINES_PROPERTY, USE_SELECTED_TEXT_COLOR_PROPERTY, VISIBLE_WHITESPACE_PROPERTY
 
Fields inherited from class org.fife.ui.rtextarea.RTextArea
COPY_ACTION, CUT_ACTION, DELETE_ACTION, INSERT_MODE, MARK_ALL_COLOR_PROPERTY, MARK_ALL_OCCURRENCES_CHANGED_PROPERTY, OVERWRITE_MODE, PASTE_ACTION, REDO_ACTION, SELECT_ALL_ACTION, UNDO_ACTION
 
Fields inherited from class org.fife.ui.rtextarea.RTextAreaBase
BACKGROUND_IMAGE_PROPERTY, CURRENT_LINE_HIGHLIGHT_COLOR_PROPERTY, CURRENT_LINE_HIGHLIGHT_FADE_PROPERTY, HIGHLIGHT_CURRENT_LINE_PROPERTY, ROUNDED_SELECTION_PROPERTY
 
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 org.fife.ui.rsyntaxtextarea.SyntaxConstants
SYNTAX_STYLE_ACTIONSCRIPT, SYNTAX_STYLE_ASSEMBLER_X86, SYNTAX_STYLE_BBCODE, SYNTAX_STYLE_C, SYNTAX_STYLE_CLOJURE, SYNTAX_STYLE_CPLUSPLUS, SYNTAX_STYLE_CSHARP, SYNTAX_STYLE_CSS, SYNTAX_STYLE_D, SYNTAX_STYLE_DART, SYNTAX_STYLE_DELPHI, SYNTAX_STYLE_DTD, SYNTAX_STYLE_FORTRAN, SYNTAX_STYLE_GROOVY, SYNTAX_STYLE_HTACCESS, SYNTAX_STYLE_HTML, SYNTAX_STYLE_JAVA, SYNTAX_STYLE_JAVASCRIPT, SYNTAX_STYLE_JSON, SYNTAX_STYLE_JSP, SYNTAX_STYLE_LATEX, SYNTAX_STYLE_LISP, SYNTAX_STYLE_LUA, SYNTAX_STYLE_MAKEFILE, SYNTAX_STYLE_MXML, SYNTAX_STYLE_NONE, SYNTAX_STYLE_NSIS, SYNTAX_STYLE_PERL, SYNTAX_STYLE_PHP, SYNTAX_STYLE_PROPERTIES_FILE, SYNTAX_STYLE_PYTHON, SYNTAX_STYLE_RUBY, SYNTAX_STYLE_SAS, SYNTAX_STYLE_SCALA, SYNTAX_STYLE_SQL, SYNTAX_STYLE_TCL, SYNTAX_STYLE_UNIX_SHELL, SYNTAX_STYLE_VISUAL_BASIC, SYNTAX_STYLE_WINDOWS_BATCH, SYNTAX_STYLE_XML
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TextEditorPane()
          Constructor.
TextEditorPane(int textMode)
          Constructor.
TextEditorPane(int textMode, boolean wordWrapEnabled)
          Creates a new TextEditorPane.
TextEditorPane(int textMode, boolean wordWrapEnabled, FileLocation loc)
          Creates a new TextEditorPane.
TextEditorPane(int textMode, boolean wordWrapEnabled, FileLocation loc, java.lang.String defaultEnc)
          Creates a new TextEditorPane.
 
Method Summary
 void changedUpdate(javax.swing.event.DocumentEvent e)
          Callback for when styles in the current document change.
 java.lang.String getEncoding()
          Returns the encoding to use when reading or writing this file.
 java.lang.String getFileFullPath()
          Returns the full path to this document.
 java.lang.String getFileName()
          Returns the file name of this document.
 long getLastSaveOrLoadTime()
          Returns the timestamp for when this file was last loaded or saved by this editor pane.
 java.lang.Object getLineSeparator()
          Returns the line separator used when writing this file (e.g.
 void insertUpdate(javax.swing.event.DocumentEvent e)
          Callback for when text is inserted into the document.
 boolean isDirty()
          Returns whether or not the text in this editor has unsaved changes.
 boolean isLocal()
          Returns whether this file is a local file.
 boolean isLocalAndExists()
          Returns whether this is a local file that already exists.
 boolean isModifiedOutsideEditor()
          Returns whether the text file has been modified outside of this editor since the last load or save operation.
 boolean isReadOnly()
          Returns whether or not the text area should be treated as read-only.
 void load(FileLocation loc, java.lang.String defaultEnc)
          Loads the specified file in this editor.
 void reload()
          Reloads this file from disk.
 void removeUpdate(javax.swing.event.DocumentEvent e)
          Called whenever text is removed from this editor.
 void save()
          Saves the file in its current encoding.
 void saveAs(FileLocation loc)
          Saves this file in a new local location.
 void setDirty(boolean dirty)
          Sets whether or not this text in this editor has unsaved changes.
 void setDocument(javax.swing.text.Document doc)
          Sets the document for this editor.
 void setEncoding(java.lang.String encoding)
          Sets the encoding to use when reading or writing this file.
 void setLineSeparator(java.lang.String separator)
          Sets the line separator sequence to use when this file is saved (e.g.
 void setLineSeparator(java.lang.String separator, boolean setDirty)
          Sets the line separator sequence to use when this file is saved (e.g.
 void setReadOnly(boolean readOnly)
          Sets whether or not this text area should be treated as read-only.
 void syncLastSaveOrLoadTimeToActualFile()
          Syncs this text area's "last saved or loaded" time to that of the file being edited, if that file is local and exists.
 
Methods inherited from class org.fife.ui.rsyntaxtextarea.RSyntaxTextArea
addActiveLineRangeListener, addHyperlinkListener, addNotify, addParser, appendFoldingMenu, clearParsers, configurePopupMenu, copyAsRtf, createDefaultModel, createMouseListener, createPopupMenu, createRTextAreaUI, doBracketMatching, fireCaretUpdate, foldToggled, forceReparsing, forceReparsing, getAnimateBracketMatching, getAntiAliasingEnabled, getBackgroundForToken, getCloseCurlyBraces, getCloseMarkupTags, getCodeTemplateManager, getDefaultBracketMatchBGColor, getDefaultBracketMatchBorderColor, getDefaultSelectionColor, getDefaultSyntaxScheme, getEOLMarkersVisible, getFoldManager, getFontForTokenType, getFontMetricsForTokenType, getForegroundForToken, getForegroundForTokenType, getFractionalFontMetricsEnabled, getHighlightSecondaryLanguages, getHyperlinkForeground, getHyperlinksEnabled, getLastVisibleOffset, getLineHeight, getLinkGenerator, getMarkAllHighlightRanges, getMarkedOccurrences, getMarkOccurrences, getMarkOccurrencesColor, getMatchedBracketBGColor, getMatchedBracketBorderColor, getMaxAscent, getPaintMarkOccurrencesBorder, getPaintMatchedBracketPair, getPaintTabLines, getParser, getParserCount, getParserDelay, getParserNotices, getRightHandSideCorrection, getSecondaryLanguageBackground, getSecondaryLanguageCount, getShouldIndentNextLine, getSyntaxEditingStyle, getSyntaxScheme, getTabLineColor, getTemplatesEnabled, getTokenListForLine, getToolTipText, getToolTipTextImpl, getUnderlineForToken, getUseFocusableTips, getUseSelectedTextColor, init, isAutoIndentEnabled, isBracketMatchingEnabled, isClearWhitespaceLinesEnabled, isCodeFoldingEnabled, isWhitespaceVisible, modelToToken, paintComponent, removeActiveLineRangeListener, removeHyperlinkListener, removeNotify, removeParser, restoreDefaultSyntaxScheme, saveTemplates, setActiveLineRange, setAnimateBracketMatching, setAntiAliasingEnabled, setAutoIndentEnabled, setBracketMatchingEnabled, setClearWhitespaceLinesEnabled, setCloseCurlyBraces, setCloseMarkupTags, setCodeFoldingEnabled, setEOLMarkersVisible, setFont, setFractionalFontMetricsEnabled, setHighlighter, setHighlightSecondaryLanguages, setHyperlinkForeground, setHyperlinksEnabled, setLinkGenerator, setLinkScanningMask, setMarkOccurrences, setMarkOccurrencesColor, setMatchedBracketBGColor, setMatchedBracketBorderColor, setPaintMarkOccurrencesBorder, setPaintMatchedBracketPair, setPaintTabLines, setParserDelay, setRightHandSideCorrection, setSecondaryLanguageBackground, setSyntaxEditingStyle, setSyntaxScheme, setTabLineColor, setTemplateDirectory, setTemplatesEnabled, setUseFocusableTips, setUseSelectedTextColor, setWhitespaceVisible, viewToToken
 
Methods inherited from class org.fife.ui.rtextarea.RTextArea
addLineHighlight, beginAtomicEdit, beginRecordingMacro, canRedo, canUndo, createPopupMenuItem, createUndoManager, discardAllEdits, endAtomicEdit, endRecordingMacro, getAction, getCurrentMacro, getDefaultMarkAllHighlightColor, getIconGroup, getMarkAllHighlightColor, getPopupMenu, getSelectedOccurrenceText, getTextMode, getToolTipSupplier, handleReplaceSelection, isRecordingMacro, loadMacro, paste, playbackLastMacro, print, read, redoLastAction, removeAllLineHighlights, removeLineHighlight, replaceRange, replaceSelection, setActionProperties, setActionProperties, setCaret, setCaretStyle, setIconGroup, setMarkAllHighlightColor, setPopupMenu, setRoundedSelectionEdges, setSelectedOccurrenceText, setTextMode, setToolTipSupplier, setUI, undoLastAction
 
Methods inherited from class org.fife.ui.rtextarea.RTextAreaBase
convertSpacesToTabs, convertTabsToSpaces, forceCurrentLineHighlightRepaint, getBackground, getBackgroundImage, getBackgroundObject, getCaretLineNumber, getCaretOffsetFromLineStart, getCurrentLineHighlightColor, getDefaultCaretColor, getDefaultCurrentLineHighlightColor, getDefaultFont, getDefaultForeground, getDefaultMarginLineColor, getDefaultMarginLinePosition, getDefaultTabSize, getFadeCurrentLineHighlight, getHighlightCurrentLine, getLineEndOffsetOfCurrentLine, getLineStartOffsetOfCurrentLine, getMarginLineColor, getMarginLinePixelLocation, getMarginLinePosition, getRoundedSelectionEdges, getTabsEmulated, isMarginLineEnabled, isOSX, possiblyUpdateCurrentLineHighlightLocation, processComponentEvent, setBackground, setBackgroundImage, setBackgroundObject, setCurrentLineHighlightColor, setFadeCurrentLineHighlight, setHighlightCurrentLine, setLineWrap, setMargin, setMarginLineColor, setMarginLineEnabled, setMarginLinePosition, setRTextAreaUI, setTabsEmulated, setTabSize, updateMarginLineX, yForLine, yForLineContaining
 
Methods inherited from class javax.swing.JTextArea
append, getAccessibleContext, getColumns, getColumnWidth, getLineCount, getLineEndOffset, getLineOfOffset, getLineStartOffset, getLineWrap, getPreferredScrollableViewportSize, getPreferredSize, getRowHeight, getRows, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getTabSize, getUIClassID, getWrapStyleWord, insert, paramString, setColumns, setRows, setWrapStyleWord
 
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, getActions, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getUI, isEditable, loadKeymap, modelToView, moveCaretPosition, print, print, print, processInputMethodEvent, removeCaretListener, removeKeymap, select, selectAll, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setKeymap, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, updateUI, viewToModel, write
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, 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, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, 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, 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
 

Field Detail

FULL_PATH_PROPERTY

public static final java.lang.String FULL_PATH_PROPERTY
See Also:
Constant Field Values

DIRTY_PROPERTY

public static final java.lang.String DIRTY_PROPERTY
See Also:
Constant Field Values

READ_ONLY_PROPERTY

public static final java.lang.String READ_ONLY_PROPERTY
See Also:
Constant Field Values

LAST_MODIFIED_UNKNOWN

public static final long LAST_MODIFIED_UNKNOWN
The value returned by getLastSaveOrLoadTime() for remote files.

See Also:
Constant Field Values
Constructor Detail

TextEditorPane

public TextEditorPane()
Constructor. The file will be given a default name.


TextEditorPane

public TextEditorPane(int textMode)
Constructor. The file will be given a default name.

Parameters:
textMode - Either INSERT_MODE or OVERWRITE_MODE.

TextEditorPane

public TextEditorPane(int textMode,
                      boolean wordWrapEnabled)
Creates a new TextEditorPane. The file will be given a default name.

Parameters:
textMode - Either INSERT_MODE or OVERWRITE_MODE.
wordWrapEnabled - Whether or not to use word wrap in this pane.

TextEditorPane

public TextEditorPane(int textMode,
                      boolean wordWrapEnabled,
                      FileLocation loc)
               throws java.io.IOException
Creates a new TextEditorPane.

Parameters:
textMode - Either INSERT_MODE or OVERWRITE_MODE.
wordWrapEnabled - Whether or not to use word wrap in this pane.
loc - The location of the text file being edited. If this value is null, a file named "Untitled.txt" in the current directory is used.
Throws:
java.io.IOException - If an IO error occurs reading the file at loc. This of course won't happen if loc is null.

TextEditorPane

public TextEditorPane(int textMode,
                      boolean wordWrapEnabled,
                      FileLocation loc,
                      java.lang.String defaultEnc)
               throws java.io.IOException
Creates a new TextEditorPane.

Parameters:
textMode - Either INSERT_MODE or OVERWRITE_MODE.
wordWrapEnabled - Whether or not to use word wrap in this pane.
loc - The location of the text file being edited. If this value is null, a file named "Untitled.txt" in the current directory is used. This file is displayed as empty even if it actually exists.
defaultEnc - The default encoding to use when opening the file, if the file is not Unicode. If this value is null, a system default value is used.
Throws:
java.io.IOException - If an IO error occurs reading the file at loc. This of course won't happen if loc is null.
Method Detail

changedUpdate

public void changedUpdate(javax.swing.event.DocumentEvent e)
Callback for when styles in the current document change. This method is never called.

Specified by:
changedUpdate in interface javax.swing.event.DocumentListener
Parameters:
e - The document event.

getEncoding

public java.lang.String getEncoding()
Returns the encoding to use when reading or writing this file.

Returns:
The encoding.
See Also:
setEncoding(String)

getFileFullPath

public java.lang.String getFileFullPath()
Returns the full path to this document.

Returns:
The full path to the document.

getFileName

public java.lang.String getFileName()
Returns the file name of this document.

Returns:
The file name.

getLastSaveOrLoadTime

public long getLastSaveOrLoadTime()
Returns the timestamp for when this file was last loaded or saved by this editor pane. If the file has been modified on disk by another process after it was loaded into this editor pane, this method will not return the actual file's last modified time.

For remote files, this method will always return LAST_MODIFIED_UNKNOWN.

Returns:
The timestamp when this file was last loaded or saved by this editor pane, if it is a local file, or LAST_MODIFIED_UNKNOWN if it is a remote file.
See Also:
isModifiedOutsideEditor()

getLineSeparator

public java.lang.Object getLineSeparator()
Returns the line separator used when writing this file (e.g. "\n", "\r\n", or "\r").

Note that this value is an Object and not a String as that is the way the Document interface defines its property values. If you always use setLineSeparator(String) to modify this value, then the value returned from this method will always be a String.

Returns:
The line separator. If this value is null, then the system default line separator is used (usually the value of System.getProperty("line.separator")).
See Also:
setLineSeparator(String), setLineSeparator(String, boolean)

insertUpdate

public void insertUpdate(javax.swing.event.DocumentEvent e)
Callback for when text is inserted into the document.

Specified by:
insertUpdate in interface javax.swing.event.DocumentListener
Parameters:
e - Information on the insertion.

isDirty

public boolean isDirty()
Returns whether or not the text in this editor has unsaved changes.

Returns:
Whether or not the text has unsaved changes.
See Also:
setDirty(boolean)

isLocal

public boolean isLocal()
Returns whether this file is a local file.

Returns:
Whether this is a local file.

isLocalAndExists

public boolean isLocalAndExists()
Returns whether this is a local file that already exists.

Returns:
Whether this is a local file that already exists.

isModifiedOutsideEditor

public boolean isModifiedOutsideEditor()
Returns whether the text file has been modified outside of this editor since the last load or save operation. Note that if this is a remote file, this method will always return false.

This method may be used by applications to implement a reloading feature, where the user is prompted to reload a file if it has been modified since their last open or save.

Returns:
Whether the text file has been modified outside of this editor.
See Also:
getLastSaveOrLoadTime()

isReadOnly

public boolean isReadOnly()
Returns whether or not the text area should be treated as read-only.

Returns:
Whether or not the text area should be treated as read-only.
See Also:
setReadOnly(boolean)

load

public void load(FileLocation loc,
                 java.lang.String defaultEnc)
          throws java.io.IOException
Loads the specified file in this editor. This method fires a property change event of type FULL_PATH_PROPERTY.

Parameters:
loc - The location of the file to load. This cannot be null.
defaultEnc - The encoding to use when loading/saving the file. This encoding will only be used if the file is not Unicode. If this value is null, the system default encoding is used.
Throws:
java.io.IOException - If an IO error occurs.
See Also:
save(), saveAs(FileLocation)

reload

public void reload()
            throws java.io.IOException
Reloads this file from disk. The file must exist for this operation to not throw an exception.

The file's "dirty" state will be set to false after this operation. If this is a local file, its "last modified" time is updated to reflect that of the actual file.

Note that if the file has been modified on disk, and is now a Unicode encoding when before it wasn't (or if it is a different Unicode now), this will cause this TextEditorPane's encoding to change. Otherwise, the file's encoding will stay the same.

Throws:
java.io.IOException - If the file does not exist, or if an IO error occurs reading the file.
See Also:
isLocalAndExists()

removeUpdate

public void removeUpdate(javax.swing.event.DocumentEvent e)
Called whenever text is removed from this editor.

Specified by:
removeUpdate in interface javax.swing.event.DocumentListener
Parameters:
e - The document event.

save

public void save()
          throws java.io.IOException
Saves the file in its current encoding.

The text area's "dirty" state is set to false, and if this is a local file, its "last modified" time is updated.

Throws:
java.io.IOException - If an IO error occurs.
See Also:
saveAs(FileLocation), load(FileLocation, String)

saveAs

public void saveAs(FileLocation loc)
            throws java.io.IOException
Saves this file in a new local location. This method fires a property change event of type FULL_PATH_PROPERTY.

Parameters:
loc - The location to save to.
Throws:
java.io.IOException - If an IO error occurs.
See Also:
save(), load(FileLocation, String)

setDirty

public void setDirty(boolean dirty)
Sets whether or not this text in this editor has unsaved changes. This fires a property change event of type DIRTY_PROPERTY.

Applications will usually have no need to call this method directly; the only time you might have a need to call this method directly is if you have to initialize an instance of TextEditorPane with content that does not come from a file. TextEditorPane automatically sets its own dirty flag when its content is edited, when its encoding is changed, or when its line ending property is changed. It is cleared whenever load(), reload(), save(), or saveAs() are called.

Parameters:
dirty - Whether or not the text has been modified.
See Also:
isDirty()

setDocument

public void setDocument(javax.swing.text.Document doc)
Sets the document for this editor.

Overrides:
setDocument in class RSyntaxTextArea
Parameters:
doc - The new document.

setEncoding

public void setEncoding(java.lang.String encoding)
Sets the encoding to use when reading or writing this file. This method sets the editor's dirty flag when the encoding is changed.

Parameters:
encoding - The new encoding.
Throws:
java.nio.charset.UnsupportedCharsetException - If the encoding is not supported.
java.lang.NullPointerException - If encoding is null.
See Also:
getEncoding()

setLineSeparator

public void setLineSeparator(java.lang.String separator)
Sets the line separator sequence to use when this file is saved (e.g. "\n", "\r\n" or "\r"). Besides parameter checking, this method is preferred over getDocument().putProperty() because it sets the editor's dirty flag when the line separator is changed.

Parameters:
separator - The new line separator.
Throws:
java.lang.NullPointerException - If separator is null.
java.lang.IllegalArgumentException - If separator is not one of "\n", "\r\n" or "\r".
See Also:
getLineSeparator()

setLineSeparator

public void setLineSeparator(java.lang.String separator,
                             boolean setDirty)
Sets the line separator sequence to use when this file is saved (e.g. "\n", "\r\n" or "\r"). Besides parameter checking, this method is preferred over getDocument().putProperty() because can set the editor's dirty flag when the line separator is changed.

Parameters:
separator - The new line separator.
setDirty - Whether the dirty flag should be set if the line separator is changed.
Throws:
java.lang.NullPointerException - If separator is null.
java.lang.IllegalArgumentException - If separator is not one of "\n", "\r\n" or "\r".
See Also:
getLineSeparator()

setReadOnly

public void setReadOnly(boolean readOnly)
Sets whether or not this text area should be treated as read-only. This fires a property change event of type READ_ONLY_PROPERTY.

Parameters:
readOnly - Whether or not the document is read-only.
See Also:
isReadOnly()

syncLastSaveOrLoadTimeToActualFile

public void syncLastSaveOrLoadTimeToActualFile()
Syncs this text area's "last saved or loaded" time to that of the file being edited, if that file is local and exists. If the file is remote or is local but does not yet exist, nothing happens.

You normally do not have to call this method, as the "last saved or loaded" time for TextEditorPanes is kept up-to-date internally during such operations as save(), reload(), etc.

See Also:
getLastSaveOrLoadTime(), isModifiedOutsideEditor()