Class AbstractCodeMining
java.lang.Object
org.eclipse.jface.text.codemining.AbstractCodeMining
- All Implemented Interfaces:
ICodeMining
- Direct Known Subclasses:
LineContentCodeMining
,LineHeaderCodeMining
Abstract class for
ICodeMining
.- Since:
- 3.13
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractCodeMining
(Position position, ICodeMiningProvider provider, Consumer<MouseEvent> action) CodeMining constructor to locate the code mining in a given position. -
Method Summary
Modifier and TypeMethodDescriptionvoid
dispose()
Dispose the mining.protected CompletableFuture<Void>
doResolve
(ITextViewer viewer, IProgressMonitor monitor) Returns the future which resolved the content of mining and null otherwise.draw
(GC gc, StyledText textWidget, Color color, int x, int y) Draw thegetLabel()
of mining with gray color.Returns the action to execute when mining is clicked and null otherwise.getLabel()
Returns the label may be set early in the class lifecycle, or upon completion of the future provided byICodeMining.resolve(ITextViewer, IProgressMonitor)
operation.Returns the line position where code mining must be displayed in the line spacing area.Returns the owner provider which has created this mining.boolean
Returns whether the content mining is resolved.final CompletableFuture<Void>
resolve
(ITextViewer viewer, IProgressMonitor monitor) Returns the future to resolve the content of mining, orCompletableFuture.completedFuture(Object)
if no such resolution is necessary (in which case {#isResolved()} is expected to returntrue
).void
Set the label mining.
-
Constructor Details
-
AbstractCodeMining
protected AbstractCodeMining(Position position, ICodeMiningProvider provider, Consumer<MouseEvent> action) CodeMining constructor to locate the code mining in a given position.- Parameters:
position
- the position where the mining must be drawn.provider
- the owner codemining provider which creates this mining.action
- the action to execute when mining is clicked and null otherwise.
-
-
Method Details
-
getPosition
Description copied from interface:ICodeMining
Returns the line position where code mining must be displayed in the line spacing area.- Specified by:
getPosition
in interfaceICodeMining
- Returns:
- the line position where code mining must be displayed in the line spacing area.
-
getProvider
Description copied from interface:ICodeMining
Returns the owner provider which has created this mining.- Specified by:
getProvider
in interfaceICodeMining
- Returns:
- the owner provider which has created this mining.
-
getLabel
Description copied from interface:ICodeMining
Returns the label may be set early in the class lifecycle, or upon completion of the future provided byICodeMining.resolve(ITextViewer, IProgressMonitor)
operation.The returned label can have several values:
null
when mining is not resolvednull
when mining is resolved means that mining was resolved with an error and it will not be displayed.- empty when mining is resolved means that mining will not be displayed
- non empty when mining must be displayed
- Specified by:
getLabel
in interfaceICodeMining
- Returns:
- the label may be set early in the class lifecycle, or upon completion of the future
provided by
ICodeMining.resolve(ITextViewer, IProgressMonitor)
operation.
-
setLabel
Set the label mining.- Parameters:
label
- the label mining.
-
resolve
Description copied from interface:ICodeMining
Returns the future to resolve the content of mining, orCompletableFuture.completedFuture(Object)
if no such resolution is necessary (in which case {#isResolved()} is expected to returntrue
).- Specified by:
resolve
in interfaceICodeMining
- Parameters:
viewer
- the viewer.monitor
- the monitor.- Returns:
- the future to resolve the content of mining, or
CompletableFuture.completedFuture(Object)
if no such resolution is necessary (in which case {#isResolved()} is expected to returntrue
).
-
doResolve
Returns the future which resolved the content of mining and null otherwise. By default, the resolve do nothing.- Parameters:
viewer
- the viewermonitor
- the monitor- Returns:
- the future which resolved the content of mining and null otherwise.
-
isResolved
public boolean isResolved()Description copied from interface:ICodeMining
Returns whether the content mining is resolved. If it is not resolved, {ICodeMining.resolve(ITextViewer, IProgressMonitor)
} will be invoked later, triggering the future to resolve content.- Specified by:
isResolved
in interfaceICodeMining
- Returns:
- whether the content mining is resolved. If it is not resolved,
{
ICodeMining.resolve(ITextViewer, IProgressMonitor)
} will be invoked later, triggering the future to resolve content.
-
dispose
public void dispose()Description copied from interface:ICodeMining
Dispose the mining. Typically shuts down or cancels all related asynchronous operations.- Specified by:
dispose
in interfaceICodeMining
-
draw
Draw thegetLabel()
of mining with gray color. User can override this method to draw anything.- Specified by:
draw
in interfaceICodeMining
- Parameters:
gc
- the graphics contexttextWidget
- the text widget to draw oncolor
- the color of the linex
- the x position of the annotationy
- the y position of the annotation- Returns:
- the size of the draw of mining.
-
getAction
Description copied from interface:ICodeMining
Returns the action to execute when mining is clicked and null otherwise.- Specified by:
getAction
in interfaceICodeMining
- Returns:
- the action to execute when mining is clicked and null otherwise.
-