visad.util
Class TextEditor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JScrollPane
                  extended by visad.util.TextEditor
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, UndoableEditListener, ScrollPaneConstants
Direct Known Subclasses:
CodeEditor

public class TextEditor
extends JScrollPane
implements UndoableEditListener

A general-purpose editor for reading and writing text files.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JScrollPane
JScrollPane.AccessibleJScrollPane, JScrollPane.ScrollBar
 
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
protected  boolean changed
          whether the text has changed since last save
protected  File currentFile
          file being edited
static boolean DEBUG
          debugging flag
static Font MONO
          monospaced font
protected  JTextArea text
          main text area
protected  UndoManager undo
          undo manager
 
Fields inherited from class javax.swing.JScrollPane
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
 
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 javax.swing.ScrollPaneConstants
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TextEditor()
          constructs a TextEditor
TextEditor(String filename)
          constructs a TextEditor containing text from the given filename
 
Method Summary
 void addUndoableEditListener(UndoableEditListener l)
          add an undoable edit listener
 boolean canRedo()
          returns whether a redo command is possible
 boolean canUndo()
          returns whether an undo command is possible
 void copy()
          copies the selected text to the clipboard
 void cut()
          cuts the selected text to the clipboard
protected  JFileChooser doMakeFileChooser()
          Create and initialize the the file chooser
 File getFile()
          returns the file being edited
protected  JFileChooser getFileChooser()
          Create if needed and return the file chooser
 String getFilename()
          returns the filename being edited
 String getRedoName()
          returns the name of the redo command
 String getText()
          returns a string containing the text of the document
 JTextComponent getTextComponent()
          Provide direct access to the text component
 String getUndoName()
          returns the name of the undo command
 boolean hasChanged()
          returns whether the document has changed since the last save
 void insertText(String textToInsert)
          Insert the given text at the caret
 void newFile()
          starts from scratch with a blank document
 boolean openDialog()
          pops up a dialog box for the user to select a file to open
 void openFile(File file)
          opens the given file
 void openFile(String filename)
          opens the given file
 void paste()
          pastes the clipboard into the text document
 void redo()
          redoes the last undone edit
 void removeUndoableEditListener(UndoableEditListener l)
          remove an undoable edit listener
 boolean saveDialog()
          pops up a dialog box for the user to select a file to save
 boolean saveFile()
          saves the file under its current name
 void saveFile(File file)
          saves the given file
 void saveFile(String filename)
          saves the given file
 void setText(String text)
          sets the text of this document to the current string
 void undo()
          undoes the last edit
 void undoableEditHappened(UndoableEditEvent e)
          handle undoable edits
 
Methods inherited from class javax.swing.JScrollPane
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, 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, 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, transferFocusBackward, 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, 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, processInputMethodEvent, 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

MONO

public static final Font MONO
monospaced font


DEBUG

public static final boolean DEBUG
debugging flag

See Also:
Constant Field Values

text

protected JTextArea text
main text area


undo

protected UndoManager undo
undo manager


currentFile

protected File currentFile
file being edited


changed

protected boolean changed
whether the text has changed since last save

Constructor Detail

TextEditor

public TextEditor()
constructs a TextEditor


TextEditor

public TextEditor(String filename)
constructs a TextEditor containing text from the given filename

Method Detail

doMakeFileChooser

protected JFileChooser doMakeFileChooser()
Create and initialize the the file chooser


getFileChooser

protected JFileChooser getFileChooser()
Create if needed and return the file chooser


newFile

public void newFile()
starts from scratch with a blank document


openFile

public void openFile(String filename)
              throws IOException
opens the given file

Throws:
IOException

openFile

public void openFile(File file)
              throws IOException
opens the given file

Throws:
IOException

saveFile

public void saveFile(String filename)
              throws IOException
saves the given file

Throws:
IOException

saveFile

public void saveFile(File file)
              throws IOException
saves the given file

Throws:
IOException

openDialog

public boolean openDialog()
pops up a dialog box for the user to select a file to open


saveDialog

public boolean saveDialog()
pops up a dialog box for the user to select a file to save


saveFile

public boolean saveFile()
saves the file under its current name


undo

public void undo()
          throws CannotUndoException
undoes the last edit

Throws:
CannotUndoException

redo

public void redo()
          throws CannotRedoException
redoes the last undone edit

Throws:
CannotRedoException

cut

public void cut()
cuts the selected text to the clipboard


copy

public void copy()
copies the selected text to the clipboard


paste

public void paste()
pastes the clipboard into the text document


getTextComponent

public JTextComponent getTextComponent()
Provide direct access to the text component

Returns:
the text component

getText

public String getText()
returns a string containing the text of the document


setText

public void setText(String text)
sets the text of this document to the current string


insertText

public void insertText(String textToInsert)
Insert the given text at the caret

Parameters:
textToInsert - the text

getFilename

public String getFilename()
returns the filename being edited


getFile

public File getFile()
returns the file being edited


canUndo

public boolean canUndo()
returns whether an undo command is possible


canRedo

public boolean canRedo()
returns whether a redo command is possible


getUndoName

public String getUndoName()
returns the name of the undo command


getRedoName

public String getRedoName()
returns the name of the redo command


hasChanged

public boolean hasChanged()
returns whether the document has changed since the last save


undoableEditHappened

public void undoableEditHappened(UndoableEditEvent e)
handle undoable edits

Specified by:
undoableEditHappened in interface UndoableEditListener

addUndoableEditListener

public void addUndoableEditListener(UndoableEditListener l)
add an undoable edit listener


removeUndoableEditListener

public void removeUndoableEditListener(UndoableEditListener l)
remove an undoable edit listener