Class AbstractCodeMining

java.lang.Object
org.eclipse.jface.text.codemining.AbstractCodeMining
All Implemented Interfaces:
ICodeMining
Direct Known Subclasses:
LineContentCodeMining, LineHeaderCodeMining

public abstract class AbstractCodeMining extends Object implements ICodeMining
Abstract class for ICodeMining.
Since:
3.13
  • 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

      public Position 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 interface ICodeMining
      Returns:
      the line position where code mining must be displayed in the line spacing area.
    • getProvider

      public ICodeMiningProvider getProvider()
      Description copied from interface: ICodeMining
      Returns the owner provider which has created this mining.
      Specified by:
      getProvider in interface ICodeMining
      Returns:
      the owner provider which has created this mining.
    • getLabel

      public String getLabel()
      Description copied from interface: ICodeMining
      Returns the label may be set early in the class lifecycle, or upon completion of the future provided by ICodeMining.resolve(ITextViewer, IProgressMonitor) operation.

      The returned label can have several values:

      • null when mining is not resolved
      • null 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 interface ICodeMining
      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

      public void setLabel(String label)
      Set the label mining.
      Parameters:
      label - the label mining.
    • resolve

      public final CompletableFuture<Void> resolve(ITextViewer viewer, IProgressMonitor monitor)
      Description copied from interface: ICodeMining
      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 return true).
      Specified by:
      resolve in interface ICodeMining
      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 return true).
    • doResolve

      protected CompletableFuture<Void> doResolve(ITextViewer viewer, IProgressMonitor monitor)
      Returns the future which resolved the content of mining and null otherwise. By default, the resolve do nothing.
      Parameters:
      viewer - the viewer
      monitor - 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 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.
    • 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 interface ICodeMining
    • draw

      public Point draw(GC gc, StyledText textWidget, Color color, int x, int y)
      Draw the getLabel() of mining with gray color. User can override this method to draw anything.
      Specified by:
      draw in interface ICodeMining
      Parameters:
      gc - the graphics context
      textWidget - the text widget to draw on
      color - the color of the line
      x - the x position of the annotation
      y - the y position of the annotation
      Returns:
      the size of the draw of mining.
    • getAction

      public Consumer<MouseEvent> getAction()
      Description copied from interface: ICodeMining
      Returns the action to execute when mining is clicked and null otherwise.
      Specified by:
      getAction in interface ICodeMining
      Returns:
      the action to execute when mining is clicked and null otherwise.