public class FoldManager
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
static java.lang.String |
PROPERTY_FOLDS_UPDATED
Property fired when folds have been updated.
|
构造器和说明 |
---|
FoldManager(RSyntaxTextArea textArea)
Constructor.
|
限定符和类型 | 方法和说明 |
---|---|
void |
addPropertyChangeListener(java.beans.PropertyChangeListener l)
Adds a property change listener to this fold manager.
|
void |
clear()
Removes all folds.
|
boolean |
ensureOffsetNotInClosedFold(int offs)
Ensures that the specified offset is not hidden in a collapsed fold.
|
Fold |
getDeepestFoldContaining(int offs)
Returns the "deepest" nested fold containing the specified offset.
|
Fold |
getDeepestOpenFoldContaining(int offs)
Returns the "deepest" open fold containing the specified offset.
|
Fold |
getFold(int index)
Returns a specific top-level fold, which may have child folds.
|
int |
getFoldCount()
Returns the number of top-level folds.
|
Fold |
getFoldForLine(int line)
Returns the fold region that starts at the specified line.
|
int |
getHiddenLineCount()
Returns the total number of hidden (folded) lines.
|
int |
getHiddenLineCountAbove(int line)
Returns the number of lines "hidden" by collapsed folds above the
specified line.
|
int |
getHiddenLineCountAbove(int line,
boolean physical)
Returns the number of lines "hidden" by collapsed folds above the
specified line.
|
int |
getLastVisibleLine()
Returns the last visible line in the text area, taking into account
folds.
|
int |
getVisibleLineAbove(int line) |
int |
getVisibleLineBelow(int line) |
boolean |
isCodeFoldingEnabled()
Returns whether code folding is enabled.
|
boolean |
isCodeFoldingSupportedAndEnabled()
Returns
true if and only if code folding is enabled for
this text area, AND folding is supported for the language it is editing. |
boolean |
isFoldStartLine(int line)
Returns whether the specified line contains the start of a fold region.
|
boolean |
isLineHidden(int line)
Returns whether a line is hidden in a collapsed fold.
|
void |
removePropertyChangeListener(java.beans.PropertyChangeListener l)
Removes a property change listener from this fold manager.
|
void |
reparse()
Forces an immediate reparsing for folds, if folding is enabled.
|
void |
setCodeFoldingEnabled(boolean enabled)
Sets whether code folding is enabled.
|
void |
setFolds(java.util.List<Fold> folds)
Sets the folds for this fold manager.
|
public static final java.lang.String PROPERTY_FOLDS_UPDATED
public FoldManager(RSyntaxTextArea textArea)
textArea
- The text area whose folds we are managing.public void addPropertyChangeListener(java.beans.PropertyChangeListener l)
l
- The new listener.removePropertyChangeListener(PropertyChangeListener)
public void clear()
public boolean ensureOffsetNotInClosedFold(int offs)
offs
- The offset.getDeepestFoldContaining(int)
public Fold getDeepestFoldContaining(int offs)
offs
- The offset.null
if
no fold contains the offset.public Fold getDeepestOpenFoldContaining(int offs)
offs
- The offset.null
if no open fold contains the
offset.public Fold getFold(int index)
index
- The index of the fold.getFoldCount()
public int getFoldCount()
getFold(int)
public Fold getFoldForLine(int line)
line
- The line number.null
if the line is not the start
of a fold region.isFoldStartLine(int)
public int getHiddenLineCount()
getHiddenLineCountAbove(int)
public int getHiddenLineCountAbove(int line)
line
- The line. This is the line number for a logical line.
For the line number of a physical line (i.e. visible, not folded),
use getHiddenLineCountAbove(int, true)
.line
.getHiddenLineCountAbove(int, boolean)
public int getHiddenLineCountAbove(int line, boolean physical)
line
- The line.physical
- Whether line
is the number of a physical
line (i.e. visible, not code-folded), or a logical one (i.e. any
line from the model). If line
was determined by a
raw line calculation (i.e. (visibleTopY / lineHeight)
),
this value should be true
. It should be
false
when it was calculated from an offset in the
document (for example).line
.public int getLastVisibleLine()
public int getVisibleLineAbove(int line)
public int getVisibleLineBelow(int line)
public boolean isCodeFoldingEnabled()
setCodeFoldingEnabled(boolean)
public boolean isCodeFoldingSupportedAndEnabled()
true
if and only if code folding is enabled for
this text area, AND folding is supported for the language it is editing.
Whether or not folding is supported for a language depends on whether
a fold parser is registered for that language with the
FoldParserManager
.FoldParserManager
public boolean isFoldStartLine(int line)
line
- The line.getFoldForLine(int)
public boolean isLineHidden(int line)
line
- The line to check.public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
l
- The listener to remove.addPropertyChangeListener(PropertyChangeListener)
public void reparse()
public void setCodeFoldingEnabled(boolean enabled)
enabled
- Whether code folding should be enabled.isCodeFoldingEnabled()
public void setFolds(java.util.List<Fold> folds)
folds
- The new folds. This should not be null
.