Package adams.gui.core
Class StyledTextEditorPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- adams.gui.core.BasePanel
-
- adams.gui.core.StyledTextEditorPanel
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
AbstractTextEditorPanelWithSimpleSyntaxHighlighting
public class StyledTextEditorPanel extends BasePanel
A panel that allows the editing of text, including undo/redo support.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description protected HashSet<ChangeListener>
m_ChangeListeners
the listeners for modification events.protected File
m_CurrentFile
the current file.protected TextFileChooser
m_FileChooser
for saving the content.protected boolean
m_IgnoreChanges
whether to ignore changes.protected String
m_LastFind
the last search string used.protected boolean
m_Modified
whether the content was modified.protected BaseTextPaneWithWordWrap
m_TextPane
for displaying the text.protected UndoManager
m_Undo
for managing undo/redo.-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, 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
Constructors Constructor Description StyledTextEditorPanel()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChangeListener(ChangeListener l)
Adds the given change listener to its internal list.void
append(String text)
Appends the text at the end.void
append(String text, AttributeSet a)
Appends the text at the end.boolean
canCopy()
Checks whether text can be copied at the moment.boolean
canCut()
Checks whether text can be cut at the moment.boolean
canPaste()
Checks whether text can be pasted at the moment.boolean
canRedo()
Checks whether a redo action is available.boolean
canUndo()
Checks whether an undo action is available.boolean
checkForModified()
Returns whether we can proceed with the operation or not, depending on whether the user saved the content or discarded the changes.void
clear()
Removes all content.void
copy()
Copies the currently selected text to the clipboard.void
cut()
Cuts the currently selected text and places it on the clipboard.void
find()
Initiates a search.void
findNext()
Finds the next occurrence.int
getCaretPosition()
Returns the current position of the cursor.String
getContent()
Returns the content to display.Document
getDocument()
Returns the underlying document of the text area.protected TextFileChooser
getFileChooser()
Returns the file chooser and creates it if necessary.String
getLastFind()
Returns the last search string.String
getText()
Returns the current text.Font
getTextFont()
Returns the font currently in use by the text area.BaseTextPane
getTextPane()
Returns the underlying BaseTextArea element.boolean
getWordWrap()
Returns the wordwrap status.protected void
initGUI()
For initializing the GUI.protected void
initialize()
For initializing members.boolean
isEditable()
Returns whether the text area is editable or not.boolean
isModified()
Returns whether the content has been modified.protected BaseTextPaneWithWordWrap
newBaseTextPane()
Returns a new text pane.protected void
notifyChangeListeners()
Sends an event to all change listeners.void
open()
Pops up dialog to open a file.void
open(File file)
Opens the specified file and loads/displays the content, using UTF-8.void
open(File file, String encoding)
Opens the specified file and loads/displays the content.void
paste()
Pastes the text from the clipboard into the document.void
printText()
Pops up a print dialog.void
redo()
Performs a redo, if possible.void
removeChangeListener(ChangeListener l)
Removes the given change listener from its internal list.void
save()
Pops up dialog to save the content in a file.protected void
save(File file)
Saves the content under the specified file.void
saveAs()
Pops up dialog to save the content in a file.void
selectAll()
Selects all the text.void
selectFont()
Pops up a dialog for selecting the font.void
setCaretPosition(int value)
Sets the position of the cursor.void
setCaretPositionLast()
Sets the position of the cursor at the end.void
setContent(String value)
Sets the content to display.void
setEditable(boolean value)
Sets whether the text area is editable or not.void
setModified(boolean value)
Sets the modified state.void
setText(String value)
Sets the current text.void
setTextFont(Font value)
Sets the font of the text area.void
setWordWrap(boolean value)
Sets the wordwrap state.void
undo()
Performs an undo, if possible.-
Methods inherited from class adams.gui.core.BasePanel
afterHide, afterShow, beforeHide, beforeShow, closeParent, finishInit, getParentChild, getParentDialog, getParentFrame, getParentInternalFrame, getParentTitle, initFileChooser, main, printErrorMessage, printException, saveComponent, setEnabledCascade, setEnabledCascade, setParentTitle, setVisible
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
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, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, 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, 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, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, 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, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
m_TextPane
protected BaseTextPaneWithWordWrap m_TextPane
for displaying the text.
-
m_Modified
protected boolean m_Modified
whether the content was modified.
-
m_IgnoreChanges
protected boolean m_IgnoreChanges
whether to ignore changes.
-
m_FileChooser
protected transient TextFileChooser m_FileChooser
for saving the content.
-
m_Undo
protected UndoManager m_Undo
for managing undo/redo.
-
m_LastFind
protected String m_LastFind
the last search string used.
-
m_ChangeListeners
protected HashSet<ChangeListener> m_ChangeListeners
the listeners for modification events.
-
m_CurrentFile
protected File m_CurrentFile
the current file.
-
-
Method Detail
-
initialize
protected void initialize()
For initializing members.- Overrides:
initialize
in classBasePanel
-
getFileChooser
protected TextFileChooser getFileChooser()
Returns the file chooser and creates it if necessary.
-
newBaseTextPane
protected BaseTextPaneWithWordWrap newBaseTextPane()
Returns a new text pane.- Returns:
- the text pane
-
setModified
public void setModified(boolean value)
Sets the modified state. If false, all edits are discarded and the last search string reset as well.- Parameters:
value
- if true then the content is flagged as modified
-
isModified
public boolean isModified()
Returns whether the content has been modified.- Returns:
- true if the content was modified
-
setContent
public void setContent(String value)
Sets the content to display. Resets the modified state.- Parameters:
value
- the text
-
getContent
public String getContent()
Returns the content to display.- Returns:
- the text
-
setEditable
public void setEditable(boolean value)
Sets whether the text area is editable or not.- Parameters:
value
- if true then the text will be editable
-
isEditable
public boolean isEditable()
Returns whether the text area is editable or not.- Returns:
- true if the text is editable
-
setTextFont
public void setTextFont(Font value)
Sets the font of the text area.- Parameters:
value
- the font to use
-
getTextFont
public Font getTextFont()
Returns the font currently in use by the text area.- Returns:
- the font in use
-
getLastFind
public String getLastFind()
Returns the last search string.- Returns:
- the last search string, can be null if no search performed yet
-
getTextPane
public BaseTextPane getTextPane()
Returns the underlying BaseTextArea element.- Returns:
- the component
-
getDocument
public Document getDocument()
Returns the underlying document of the text area.- Returns:
- the document
-
setCaretPosition
public void setCaretPosition(int value)
Sets the position of the cursor.- Parameters:
value
- the position
-
getCaretPosition
public int getCaretPosition()
Returns the current position of the cursor.- Returns:
- the cursor position
-
setCaretPositionLast
public void setCaretPositionLast()
Sets the position of the cursor at the end.
-
setWordWrap
public void setWordWrap(boolean value)
Sets the wordwrap state.- Parameters:
value
- whether to wrap or not
-
getWordWrap
public boolean getWordWrap()
Returns the wordwrap status.- Returns:
- true if wordwrap is on
-
checkForModified
public boolean checkForModified()
Returns whether we can proceed with the operation or not, depending on whether the user saved the content or discarded the changes.- Returns:
- true if safe to proceed
-
open
public void open()
Pops up dialog to open a file.
-
open
public void open(File file)
Opens the specified file and loads/displays the content, using UTF-8.- Parameters:
file
- the file to load
-
open
public void open(File file, String encoding)
Opens the specified file and loads/displays the content.- Parameters:
file
- the file to loadencoding
- the encoding to use, use null or empty string for default UTF-8
-
save
public void save()
Pops up dialog to save the content in a file.
-
saveAs
public void saveAs()
Pops up dialog to save the content in a file.
-
save
protected void save(File file)
Saves the content under the specified file.- Parameters:
file
- the file to save the content int
-
clear
public void clear()
Removes all content. Does not reset the undos.
-
canUndo
public boolean canUndo()
Checks whether an undo action is available.- Returns:
- true if an undo action is available
-
undo
public void undo()
Performs an undo, if possible.
-
canRedo
public boolean canRedo()
Checks whether a redo action is available.- Returns:
- true if a redo action is available
-
redo
public void redo()
Performs a redo, if possible.
-
canCut
public boolean canCut()
Checks whether text can be cut at the moment.- Returns:
- true if text is available for cutting
-
cut
public void cut()
Cuts the currently selected text and places it on the clipboard.
-
canCopy
public boolean canCopy()
Checks whether text can be copied at the moment.- Returns:
- true if text is available for copying
-
copy
public void copy()
Copies the currently selected text to the clipboard.
-
canPaste
public boolean canPaste()
Checks whether text can be pasted at the moment.- Returns:
- true if text is available for pasting
-
paste
public void paste()
Pastes the text from the clipboard into the document.
-
selectAll
public void selectAll()
Selects all the text.
-
find
public void find()
Initiates a search.
-
findNext
public void findNext()
Finds the next occurrence.
-
printText
public void printText()
Pops up a print dialog.
-
selectFont
public void selectFont()
Pops up a dialog for selecting the font.
-
addChangeListener
public void addChangeListener(ChangeListener l)
Adds the given change listener to its internal list.- Parameters:
l
- the listener to add
-
removeChangeListener
public void removeChangeListener(ChangeListener l)
Removes the given change listener from its internal list.- Parameters:
l
- the listener to remove
-
notifyChangeListeners
protected void notifyChangeListeners()
Sends an event to all change listeners.
-
append
public void append(String text)
Appends the text at the end.- Parameters:
text
- the text to append
-
append
public void append(String text, AttributeSet a)
Appends the text at the end.- Parameters:
text
- the text to appenda
- the attribute set, null if to use current
-
setText
public void setText(String value)
Sets the current text.- Parameters:
value
- the text
-
getText
public String getText()
Returns the current text.- Returns:
- the tex
-
-