## visad.util
Class TextEditor

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JScrollPane
                      visad.util.TextEditor

All Implemented Interfaces:
  Accessible, EventListener, ImageObserver, MenuContainer, ScrollPaneConstants, Serializable, UndoableEditListener

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 inherited from class javax.swing.JScrollPane
`JScrollPane.AccessibleJScrollPane, JScrollPane.ScrollBar`

Nested classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent, 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
`protected JFileChooser` `fileChooser` file chooser dialog box
`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.Container
``

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
`File` `getFile()` returns the file being edited
`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
`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(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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

### fileChooser

    protected JFileChooser fileChooser

  file chooser dialog box

### 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

### 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

### 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

### 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