public class DefaultFoldManager extends java.lang.Object implements FoldManager
RSyntaxTextArea.SYNTAX_STYLE_PROPERTY
changes, the current fold parser is uninstalled, and one appropriate
for the new language, if any, is installed.
FoldParserManager.PROPERTY_FOLDS_UPDATED| Constructor and Description |
|---|
DefaultFoldManager(RSyntaxTextArea textArea)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
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 DefaultFoldManager(RSyntaxTextArea textArea)
textArea - The text area whose folds we are managing.public void addPropertyChangeListener(java.beans.PropertyChangeListener l)
FoldManageraddPropertyChangeListener in interface FoldManagerl - The new listener.FoldManager.removePropertyChangeListener(PropertyChangeListener)public void clear()
FoldManagerclear in interface FoldManagerpublic boolean ensureOffsetNotInClosedFold(int offs)
FoldManagerensureOffsetNotInClosedFold in interface FoldManageroffs - The offset.FoldManager.getDeepestFoldContaining(int)public Fold getDeepestFoldContaining(int offs)
FoldManagergetDeepestFoldContaining in interface FoldManageroffs - The offset.null if
no fold contains the offset.public Fold getDeepestOpenFoldContaining(int offs)
FoldManagergetDeepestOpenFoldContaining in interface FoldManageroffs - The offset.null if no open fold contains the
offset.public Fold getFold(int index)
FoldManagergetFold in interface FoldManagerindex - The index of the fold.FoldManager.getFoldCount()public int getFoldCount()
FoldManagergetFoldCount in interface FoldManagerFoldManager.getFold(int)public Fold getFoldForLine(int line)
FoldManagergetFoldForLine in interface FoldManagerline - The line number.null if the line is not the start
of a fold region.FoldManager.isFoldStartLine(int)public int getHiddenLineCount()
FoldManagergetHiddenLineCount in interface FoldManagerFoldManager.getHiddenLineCountAbove(int)public int getHiddenLineCountAbove(int line)
FoldManagergetHiddenLineCountAbove in interface FoldManagerline - 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.FoldManager.getHiddenLineCountAbove(int, boolean)public int getHiddenLineCountAbove(int line,
boolean physical)
FoldManagergetHiddenLineCountAbove in interface FoldManagerline - 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()
FoldManagergetLastVisibleLine in interface FoldManagerpublic int getVisibleLineAbove(int line)
getVisibleLineAbove in interface FoldManagerpublic int getVisibleLineBelow(int line)
getVisibleLineBelow in interface FoldManagerpublic boolean isCodeFoldingEnabled()
FoldManagerisCodeFoldingEnabled in interface FoldManagerFoldManager.setCodeFoldingEnabled(boolean)public boolean isCodeFoldingSupportedAndEnabled()
FoldManagertrue 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.isCodeFoldingSupportedAndEnabled in interface FoldManagerFoldParserManagerpublic boolean isFoldStartLine(int line)
FoldManagerisFoldStartLine in interface FoldManagerline - The line.FoldManager.getFoldForLine(int)public boolean isLineHidden(int line)
FoldManagerisLineHidden in interface FoldManagerline - The line to check.public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
FoldManagerremovePropertyChangeListener in interface FoldManagerl - The listener to remove.FoldManager.addPropertyChangeListener(PropertyChangeListener)public void reparse()
FoldManagerreparse in interface FoldManagerpublic void setCodeFoldingEnabled(boolean enabled)
FoldManagersetCodeFoldingEnabled in interface FoldManagerenabled - Whether code folding should be enabled.FoldManager.isCodeFoldingEnabled()public void setFolds(java.util.List<Fold> folds)
FoldManagersetFolds in interface FoldManagerfolds - The new folds. This should not be null.