org.jext
Class JextTextArea

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byorg.gjt.sp.jedit.textarea.JEditTextArea
                  extended byorg.jext.JextTextArea
All Implemented Interfaces:
javax.swing.event.DocumentListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.swing.event.UndoableEditListener

public class JextTextArea
extends JEditTextArea
implements javax.swing.event.UndoableEditListener, javax.swing.event.DocumentListener

Extending JEditTextArea allow us to support syntax colorization. We also implement some listeners: for the caret, for the undos and redos, for the keys (indent) and for the modifications which can occures in the text. This component provides its own methods to read and save files (even to zip them).

Author:
Romain Guy
See Also:
Jext, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int BUFFER_SIZE
          This constant defines the size of the buffer used to read files
static int DOS_LINE_END
           
static int MACOS_LINE_END
           
static int UNIX_LINE_END
           
 
Fields inherited from class org.gjt.sp.jedit.textarea.JEditTextArea
biasLeft, blink, BOTTOM, bracketLine, bracketPosition, caretBlinks, caretEvent, caretTimer, caretVisible, CENTER, document, documentHandler, documentHandlerInstalled, editable, electricScroll, firstLine, focusedComponent, gutter, horizontal, horizontalOffset, inputHandler, LEFT, LEFT_OF_SCROLLBAR, listenerList, magicCaret, maxHorizontalScrollWidth, oneClick, oneClickEvent, overwrite, painter, popup, rectSelect, RIGHT, scrollBarsInitialized, selectionEnd, selectionEndLine, selectionStart, selectionStartLine, vertical, visibleLines
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JextTextArea(JextFrame parent)
          The constructor add the necessary listeners, set some stuffs (caret color, borers, fonts...).
 
Method Summary
 void autoSave()
          This is called by the AutoSave thread.
 void beginCompoundEdit()
          Used for ReplaceAll.
 void beginCompoundEdit(boolean cursorHandle)
           
 void beginOperation()
          When an operation has began, setChanged() cannot be called.
 void beginProtectedCompoundEdit()
          A protected compound edit is a compound edit which cannot be ended by a normal call to endCompoundEdit().
 void changedUpdate(javax.swing.event.DocumentEvent e)
          When a modification is made in the text, we turn the 'to_be_saved' flag to true.
 void checkLastModificationTime()
          Checks if holded file has been changed by an external program.
 void clean()
          Called after having saved or created a new document to ensure the content isn't 'dirty'.
 void discard()
          Discard all edits contained in the UndoManager.
 void endCompoundEdit()
          See beginCompoundEdit().
 void endCompoundEdit(boolean cursorHandle)
           
 void endCurrentEdit()
           
 void endOperation()
          Calling this will allow the DocumentListener to use setChanged().
 void endProtectedCompoundEdit()
          This terminates a protected compound edit.
 void filteredPaste()
          Performs a 'filtered' paste.
protected  void finalize()
          Patch -> Memory management improvements : it may help the garbage collector.
 int getAnchorOffset()
           
 java.lang.String getColorizingMode()
          Returns current syntax colorizing mode.
 java.lang.String getCurrentFile()
          Return the full path of the opened file.
static boolean getEnterIndent()
          This is necessary to determine if we have to indent on enter key press or not.
 java.io.File getFile()
          Return current opened file as a File object.
 java.lang.String getFontName()
          Return current font's name
 int getFontSize()
          Return current font's size
 int getFontStyle()
          Return current font's style (bold, italic...)
 JextFrame getJextParent()
          Return the parent of this component.
 int getLength()
          Return the lentgh of the text in the area.
 java.lang.String getName()
          Get name of this text area.
 boolean getOperation()
          Return true if we can use the setChanged() method, false otherwise.
static javax.swing.JPopupMenu getPopupMenu()
          Returns text area popup menu.
 java.lang.String getProperty(java.lang.String key)
          Get property inherent to current syntax colorizing mode.
 SearchHighlight getSearchHighlight()
          Returns the associated search highlighter.
static boolean getSoftTab()
          Return the state of the softtab check menu item.
static boolean getTabIndent()
          This is necessary to determine if we have to indent on tab key press or not.
 int getTabSize()
          Because JEditorPane doesn't have any getTabSize() method, we implement our own one.
 javax.swing.undo.UndoManager getUndo()
          Used by Jext to update its menu items.
 void gotoAnchor()
          Go to anchor position
 void initSearchHighlight()
          Adds a search highlighter if none exists.
 void insert(java.lang.String insert, int pos)
          This overrides standard insert method.
 void insertUpdate(javax.swing.event.DocumentEvent e)
          When a modification is made in the text, we turn the 'to_be_saved' flag to true.
 boolean isDirty()
          Return true if area content has changed, false otherwise.
 boolean isEmpty()
          Return true if area is empty, false otherwise.
 boolean isLineTermChanged()
           
 boolean isNew()
          Return true if current text is new, false otherwise.
 void newFile()
          Set a new file.
 void open(java.lang.String path)
          Called to load a new file in the text area.
 void open(java.lang.String path, boolean addToRecentList)
          Called to load a new file in the text area.
 void open(java.lang.String path, java.io.InputStreamReader _in, int bufferSize)
          Called to load a new file in the text area.
 void open(java.lang.String path, java.io.InputStreamReader _in, int bufferSize, boolean web, boolean addToRecentList)
          Called to load a new file in the text area.
 void removeUpdate(javax.swing.event.DocumentEvent e)
          When a modification is made in the text, we turn the 'to_be_saved' flag to true.
 void save(java.lang.String file)
          Store the text in a specified file.
 void saveContent()
          Called to save this component's content.
 void setAnchor()
          Set the anchor postion.
 void setColorizing(Mode mode)
           
 void setColorizing(java.lang.String mode)
          Turn syntax colorization on or off.
 void setColorizingMode(java.lang.String mode)
          Sets current colorizing mode.
 void setCurrentFile(java.lang.String path)
          Set path of current opened file.
 void setDocument(SyntaxDocument document)
          Set a new document
 void setFontName(java.lang.String name)
          Set the font which has to be used.
 void setFontSize(int size)
          Set the size of the font.
 void setFontStyle(int style)
          Set the style of the font.
 void setNewFlag(boolean newFlag)
          Set the new flag and resets the default line end separator.
 void setParentTitle()
          Set parent title according to the fullfilename flag in the user properties.
 void setTabSize(int size)
          See getTabSize().
 void setUndoing(boolean action)
           
 java.lang.String toString()
          Return a String representation of this object.
 void undoableEditHappened(javax.swing.event.UndoableEditEvent e)
          When an undoable event is fired, we add it to the undo/redo list.
 void userInput(char c)
           
 void waitingCursor(boolean on)
          Show/hide waiting cursor
 void zip(java.lang.String zipFile)
          Zip text area content into specified file.
 void zipContent()
          Called to save current content in specified zip file.
 
Methods inherited from class org.gjt.sp.jedit.textarea.JEditTextArea
addCaretListener, addNotify, appendCopy, appendCut, blinkCaret, copy, cut, documentChanged, fireCaretEvent, getBracketLine, getBracketPosition, getCaretLine, getCaretPosition, getDocument, getDocumentLength, getElectricScroll, getFirstLine, getFocusTraversalKeysEnabled, getGutter, getHorizontalOffset, getInputHandler, getLineCount, getLineEndOffset, getLineLength, getLineOfOffset, getLineStartOffset, getLineText, getLineText, getMagicCaretPosition, getMarkLine, getMarkPosition, getMinimumSize, getPainter, getRightClickPopup, getSelectedText, getSelectionEnd, getSelectionEnd, getSelectionEndLine, getSelectionStart, getSelectionStart, getSelectionStartLine, getShadowCaretLine, getShadowCaretPosition, getStatus, getText, getText, getText, getTokenMarker, getVisibleLines, isCaretBlinkEnabled, isCaretVisible, isEditable, isManagingFocus, isOverwriteEnabled, isSelectionRectangular, lineToY, offsetToX, overwriteSetSelectedText, paste, processKeyEvent, recalculateVisibleLines, removeCaretListener, removeNotify, scrollTo, scrollToCaret, select, selectAll, selectNone, setCaretBlinkEnabled, setCaretPosition, setCaretVisible, setEditable, setElectricScroll, setFirstLine, setHorizontalOffset, setMagicCaretPosition, setOneClick, setOneClick, setOrigin, setOverwriteEnabled, setRightClickPopup, setSelectedText, setSelectionEnd, setSelectionRectangular, setSelectionStart, setShadowCaretPosition, setText, setTokenMarker, updateBracketHighlight, updateScrollBars, xToOffset, xyToOffset, yToLine
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, updateUI
 
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, setLayout, 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, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BUFFER_SIZE

public static final int BUFFER_SIZE
This constant defines the size of the buffer used to read files

See Also:
Constant Field Values

DOS_LINE_END

public static final int DOS_LINE_END
See Also:
Constant Field Values

MACOS_LINE_END

public static final int MACOS_LINE_END
See Also:
Constant Field Values

UNIX_LINE_END

public static final int UNIX_LINE_END
See Also:
Constant Field Values
Constructor Detail

JextTextArea

public JextTextArea(JextFrame parent)
The constructor add the necessary listeners, set some stuffs (caret color, borers, fonts...).

Parameters:
parent - JextTextArea needs a Jext parent because it provides a lot of 'vital' methods
Method Detail

isLineTermChanged

public boolean isLineTermChanged()

initSearchHighlight

public void initSearchHighlight()
Adds a search highlighter if none exists.


getSearchHighlight

public SearchHighlight getSearchHighlight()
Returns the associated search highlighter.


getPopupMenu

public static javax.swing.JPopupMenu getPopupMenu()
Returns text area popup menu.


getProperty

public java.lang.String getProperty(java.lang.String key)
Get property inherent to current syntax colorizing mode.


setDocument

public void setDocument(SyntaxDocument document)
Set a new document

Overrides:
setDocument in class JEditTextArea
Parameters:
document - The document

getFontName

public java.lang.String getFontName()
Return current font's name


getFontSize

public int getFontSize()
Return current font's size


getFontStyle

public int getFontStyle()
Return current font's style (bold, italic...)


setFontName

public void setFontName(java.lang.String name)
Set the font which has to be used.

Parameters:
name - The name of the font

setFontSize

public void setFontSize(int size)
Set the size of the font.

Parameters:
size - The new font's size

setFontStyle

public void setFontStyle(int style)
Set the style of the font.

Parameters:
style - The new style to apply

waitingCursor

public void waitingCursor(boolean on)
Show/hide waiting cursor


getTabIndent

public static boolean getTabIndent()
This is necessary to determine if we have to indent on tab key press or not.


getEnterIndent

public static boolean getEnterIndent()
This is necessary to determine if we have to indent on enter key press or not.


getSoftTab

public static boolean getSoftTab()
Return the state of the softtab check menu item. This is necessary to know if tabs have to be replaced by whitespaces.


beginOperation

public void beginOperation()
When an operation has began, setChanged() cannot be called. This is very important when we need to insert or remove some parts of the text without turning on the 'to_be_saved' flag.


endOperation

public void endOperation()
Calling this will allow the DocumentListener to use setChanged().


getJextParent

public JextFrame getJextParent()
Return the parent of this component. Note that a LOT of external functions need to call methods contained in the parent.


getOperation

public boolean getOperation()
Return true if we can use the setChanged() method, false otherwise.


getFile

public java.io.File getFile()
Return current opened file as a File object.


getCurrentFile

public java.lang.String getCurrentFile()
Return the full path of the opened file.


setCurrentFile

public void setCurrentFile(java.lang.String path)
Set path of current opened file.


filteredPaste

public void filteredPaste()
Performs a 'filtered' paste. A filtered paste is a paste action performed after having made some search and replace operations over the clipboard text.


newFile

public void newFile()
Set a new file. We first ask the user if he'd like to save its changes (if some have been made).


autoSave

public void autoSave()
This is called by the AutoSave thread.


insert

public void insert(java.lang.String insert,
                   int pos)
This overrides standard insert method. Indeed, we need to update the label containing caret's position.

Parameters:
insert - The string to insert
pos - The offset of the text where to insert the string

userInput

public void userInput(char c)

getTabSize

public int getTabSize()
Because JEditorPane doesn't have any getTabSize() method, we implement our own one.

Returns:
Current tab size (in amount of spaces)

setTabSize

public void setTabSize(int size)
See getTabSize().

Parameters:
size - The new tab size (in amount of spaces)

setParentTitle

public void setParentTitle()
Set parent title according to the fullfilename flag in the user properties.


getName

public java.lang.String getName()
Get name of this text area. This name is made of the current opened file name.


setColorizing

public void setColorizing(java.lang.String mode)
Turn syntax colorization on or off.

Parameters:
mode - Colorization mode

setColorizing

public void setColorizing(Mode mode)

setColorizingMode

public void setColorizingMode(java.lang.String mode)
Sets current colorizing mode.

Parameters:
mode - The colorizing mode name

getColorizingMode

public java.lang.String getColorizingMode()
Returns current syntax colorizing mode.


checkLastModificationTime

public void checkLastModificationTime()
Checks if holded file has been changed by an external program.


zipContent

public void zipContent()
Called to save current content in specified zip file. Call zip(String file) but asks user for overwriting if file already exists.


zip

public void zip(java.lang.String zipFile)
Zip text area content into specified file.

Parameters:
zipFile - The file name where to zip the text

saveContent

public void saveContent()
Called to save this component's content. Call save(String file) but let the user choosing a file name if the isNew() flag is true (int the case the user choosed an existing file, we ask him if he really wants to overwrite it).


save

public void save(java.lang.String file)
Store the text in a specified file.

Parameters:
file - The file in which we'll write the text

open

public void open(java.lang.String path)
Called to load a new file in the text area. Determines which line separator (\n, \r\n...) are used in the file to open. Convert'em into Swing line separator (\n).

Parameters:
path - The path of the file to be loaded

open

public void open(java.lang.String path,
                 boolean addToRecentList)
Called to load a new file in the text area. Determines which line separator (\n, \r\n...) are used in the file to open. Convert'em into Swing line separator (\n).

Parameters:
path - The path of the file to be loaded
addToRecentList - If false, the file name is not added to recent list

open

public void open(java.lang.String path,
                 java.io.InputStreamReader _in,
                 int bufferSize)
Called to load a new file in the text area. Determines which line separator (\n, \r\n...) are used in the file to open. Convert'em into Swing line separator (\n).

Parameters:
path - The path of the file to be loaded
_in - You can specify an InputStreamReader (see ZipExplorer)
bufferSize - Size of the StringBuffer, useful if _in != null

open

public void open(java.lang.String path,
                 java.io.InputStreamReader _in,
                 int bufferSize,
                 boolean web,
                 boolean addToRecentList)
Called to load a new file in the text area. Determines which line separator (\n, \r\n...) are used in the file to open. Convert'em into Swing line separator (\n).

Parameters:
path - The path of the file to be loaded
_in - You can specify an InputStreamReader (see ZipExplorer); if you do this the TextArea is marked as 'dirty'
bufferSize - Size of the StringBuffer, useful if _in != null
web - True if open an url
addToRecentList - If false, the file name is not added to recent list

setNewFlag

public void setNewFlag(boolean newFlag)
Set the new flag and resets the default line end separator.


isNew

public boolean isNew()
Return true if current text is new, false otherwise.


isEmpty

public boolean isEmpty()
Return true if area is empty, false otherwise.


isDirty

public boolean isDirty()
Return true if area content has changed, false otherwise.


clean

public void clean()
Called after having saved or created a new document to ensure the content isn't 'dirty'.


discard

public void discard()
Discard all edits contained in the UndoManager. Update the corresponding menu items.


setAnchor

public void setAnchor()
Set the anchor postion.


gotoAnchor

public void gotoAnchor()
Go to anchor position


getAnchorOffset

public int getAnchorOffset()

getUndo

public javax.swing.undo.UndoManager getUndo()
Used by Jext to update its menu items.


beginCompoundEdit

public void beginCompoundEdit()
Used for ReplaceAll. This merges all text changes made between the beginCompoundEdit() and the endCompoundEdit() calls into only one undo event.


beginCompoundEdit

public void beginCompoundEdit(boolean cursorHandle)

beginProtectedCompoundEdit

public void beginProtectedCompoundEdit()
A protected compound edit is a compound edit which cannot be ended by a normal call to endCompoundEdit().


endCompoundEdit

public void endCompoundEdit()
See beginCompoundEdit().


endCompoundEdit

public void endCompoundEdit(boolean cursorHandle)

endProtectedCompoundEdit

public void endProtectedCompoundEdit()
This terminates a protected compound edit.


getLength

public int getLength()
Return the lentgh of the text in the area.


undoableEditHappened

public void undoableEditHappened(javax.swing.event.UndoableEditEvent e)
When an undoable event is fired, we add it to the undo/redo list.

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

endCurrentEdit

public void endCurrentEdit()

setUndoing

public void setUndoing(boolean action)

changedUpdate

public void changedUpdate(javax.swing.event.DocumentEvent e)
When a modification is made in the text, we turn the 'to_be_saved' flag to true.

Specified by:
changedUpdate in interface javax.swing.event.DocumentListener

insertUpdate

public void insertUpdate(javax.swing.event.DocumentEvent e)
When a modification is made in the text, we turn the 'to_be_saved' flag to true.

Specified by:
insertUpdate in interface javax.swing.event.DocumentListener

removeUpdate

public void removeUpdate(javax.swing.event.DocumentEvent e)
When a modification is made in the text, we turn the 'to_be_saved' flag to true.

Specified by:
removeUpdate in interface javax.swing.event.DocumentListener

toString

public java.lang.String toString()
Return a String representation of this object.


finalize

protected void finalize()
                 throws java.lang.Throwable
Patch -> Memory management improvements : it may help the garbage collector. -> Author : Julien Ponge (julien@izforge.com) -> Date : 23, May 2001

Throws:
java.lang.Throwable


Copyright © 2002 Romain Guy.