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:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.UndoableEditListener, javax.swing.ScrollPaneConstants
Direct Known Subclasses:
CodeEditor

public class TextEditor
extends javax.swing.JScrollPane
implements javax.swing.event.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
javax.swing.JScrollPane.AccessibleJScrollPane, javax.swing.JScrollPane.ScrollBar
 
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
protected  boolean changed
          whether the text has changed since last save
protected  java.io.File currentFile
          file being edited
static boolean DEBUG
          debugging flag
protected  javax.swing.JFileChooser fileChooser
          file chooser dialog box
static java.awt.Font MONO
          monospaced font
protected  javax.swing.JTextArea text
          main text area
protected  javax.swing.undo.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(java.lang.String filename)
          constructs a TextEditor containing text from the given filename
 
Method Summary
 void addUndoableEditListener(javax.swing.event.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
 java.io.File getFile()
          returns the file being edited
 java.lang.String getFilename()
          returns the filename being edited
 java.lang.String getRedoName()
          returns the name of the redo command
 java.lang.String getText()
          returns a string containing the text of the document
 java.lang.String getUndoName()
          returns the name of the undo command
 boolean hasChanged()
          returns whether the document has changed since the last save
 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(java.io.File file)
          opens the given file
 void openFile(java.lang.String filename)
          opens the given file
 void paste()
          pastes the clipboard into the text document
 void redo()
          redoes the last undone edit
 void removeUndoableEditListener(javax.swing.event.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(java.io.File file)
          saves the given file
 void saveFile(java.lang.String filename)
          saves the given file
 void setText(java.lang.String text)
          sets the text of this document to the current string
 void undo()
          undoes the last edit
 void undoableEditHappened(javax.swing.event.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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MONO

public static final java.awt.Font MONO
monospaced font


DEBUG

public static final boolean DEBUG
debugging flag

See Also:
Constant Field Values

text

protected javax.swing.JTextArea text
main text area


fileChooser

protected javax.swing.JFileChooser fileChooser
file chooser dialog box


undo

protected javax.swing.undo.UndoManager undo
undo manager


currentFile

protected java.io.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(java.lang.String filename)
constructs a TextEditor containing text from the given filename

Method Detail

newFile

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


openFile

public void openFile(java.lang.String filename)
              throws java.io.IOException
opens the given file

Throws:
java.io.IOException

openFile

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

Throws:
java.io.IOException

saveFile

public void saveFile(java.lang.String filename)
              throws java.io.IOException
saves the given file

Throws:
java.io.IOException

saveFile

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

Throws:
java.io.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 javax.swing.undo.CannotUndoException
undoes the last edit

Throws:
javax.swing.undo.CannotUndoException

redo

public void redo()
          throws javax.swing.undo.CannotRedoException
redoes the last undone edit

Throws:
javax.swing.undo.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


getText

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


setText

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


getFilename

public java.lang.String getFilename()
returns the filename being edited


getFile

public java.io.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 java.lang.String getUndoName()
returns the name of the undo command


getRedoName

public java.lang.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(javax.swing.event.UndoableEditEvent e)
handle undoable edits

Specified by:
undoableEditHappened in interface javax.swing.event.UndoableEditListener

addUndoableEditListener

public void addUndoableEditListener(javax.swing.event.UndoableEditListener l)
add an undoable edit listener


removeUndoableEditListener

public void removeUndoableEditListener(javax.swing.event.UndoableEditListener l)
remove an undoable edit listener