Class InformationPresenter

java.lang.Object
org.eclipse.jface.text.AbstractInformationControlManager
org.eclipse.jface.text.information.InformationPresenter
All Implemented Interfaces:
IInformationPresenter, IInformationPresenterExtension, IWidgetTokenKeeper, IWidgetTokenKeeperExtension

Standard implementation of IInformationPresenter. This implementation extends AbstractInformationControlManager. The information control is made visible on request by calling showInformationControl(Rectangle).

Usually, clients instantiate this class and configure it before using it. The configuration must be consistent: This means the used IInformationControlCreator must create an information control expecting information in the same format the configured IInformationProviders use to encode the information they provide.

Since:
2.0
  • Field Details

    • WIDGET_PRIORITY

      public static final int WIDGET_PRIORITY
      Priority of the info controls managed by this information presenter. Default value: 5.
      Since:
      3.0
      See Also:
  • Constructor Details

    • InformationPresenter

      public InformationPresenter(IInformationControlCreator creator)
      Creates a new information presenter that uses the given information control creator. The presenter is not installed on any text viewer yet. By default, an information control closer is set that closes the information control in the event of key strokes, resizing, moves, focus changes, mouse clicks, and disposal - all of those applied to the information control's parent control. Also, the setup ensures that the information control when made visible will request the focus. By default, the default document partitioning IDocumentExtension3.DEFAULT_PARTITIONING is used.
      Parameters:
      creator - the information control creator to be used
  • Method Details

    • setDocumentPartitioning

      public void setDocumentPartitioning(String partitioning)
      Sets the document partitioning to be used by this information presenter.
      Parameters:
      partitioning - the document partitioning to be used by this information presenter
      Since:
      3.0
    • getDocumentPartitioning

      public String getDocumentPartitioning()
      Description copied from interface: IInformationPresenterExtension
      Returns the document partitioning this information presenter is using.
      Specified by:
      getDocumentPartitioning in interface IInformationPresenterExtension
      Returns:
      the document partitioning this information presenter is using
    • setInformationProvider

      public void setInformationProvider(IInformationProvider provider, String contentType)
      Registers a given information provider for a particular content type. If there is already a provider registered for this type, the new provider is registered instead of the old one.
      Parameters:
      provider - the information provider to register, or null to remove an existing one
      contentType - the content type under which to register
    • getInformationProvider

      public IInformationProvider getInformationProvider(String contentType)
      Description copied from interface: IInformationPresenter
      Returns the information provider to be used for the given content type.
      Specified by:
      getInformationProvider in interface IInformationPresenter
      Parameters:
      contentType - the type of the content for which information will be requested
      Returns:
      an information provider or null if none exists for the specified content type
    • setOffset

      public void setOffset(int offset)
      Sets a offset to override the selection. Setting the value to -1 will disable overriding.
      Parameters:
      offset - the offset to override selection or -1
    • computeInformation

      protected void computeInformation()
      Description copied from class: AbstractInformationControlManager
      Computes the information to be displayed and the area in which the computed information is valid. Implementation of this method must finish their computation by setting the computation results using setInformation.
      Specified by:
      computeInformation in class AbstractInformationControlManager
    • install

      public void install(ITextViewer textViewer)
      Description copied from interface: IInformationPresenter
      Installs the information presenter on the given text viewer. After this method has been finished, the presenter is operational, i.e. the method IInformationPresenter.showInformation() can be called until IInformationPresenter.uninstall() is called.
      Specified by:
      install in interface IInformationPresenter
      Parameters:
      textViewer - the viewer on which the presenter is installed
    • uninstall

      public void uninstall()
      Description copied from interface: IInformationPresenter
      Removes the information presenter from the text viewer it has previously been installed on.
      Specified by:
      uninstall in interface IInformationPresenter
    • showInformationControl

      protected void showInformationControl(Rectangle subjectArea)
      Description copied from class: AbstractInformationControlManager
      Shows the information control and starts the information control closer. This method may not be called by clients.
      Overrides:
      showInformationControl in class AbstractInformationControlManager
      Parameters:
      subjectArea - the information area
    • hideInformationControl

      protected void hideInformationControl()
      Description copied from class: AbstractInformationControlManager
      Hides the information control and stops the information control closer.
      Overrides:
      hideInformationControl in class AbstractInformationControlManager
    • handleInformationControlDisposed

      protected void handleInformationControlDisposed()
      Description copied from class: AbstractInformationControlManager
      Handles the disposal of the information control. By default, the information control closer is stopped.
      Overrides:
      handleInformationControlDisposed in class AbstractInformationControlManager
    • requestWidgetToken

      public boolean requestWidgetToken(IWidgetTokenOwner owner)
      Description copied from interface: IWidgetTokenKeeper
      The given widget token owner requests the widget token from this token keeper. Returns true if the token is released by this token keeper. Note, the keeper must not call releaseWidgetToken(IWidgetTokenKeeper) explicitly.

      Replaced by IWidgetTokenKeeperExtension.requestWidgetToken(IWidgetTokenOwner, int).

      Specified by:
      requestWidgetToken in interface IWidgetTokenKeeper
      Parameters:
      owner - the token owner
      Returns:
      true if token has been released false otherwise
    • requestWidgetToken

      public boolean requestWidgetToken(IWidgetTokenOwner owner, int priority)
      Description copied from interface: IWidgetTokenKeeperExtension
      The given widget token owner requests the widget token from this token keeper. Returns true if the token is released by this token keeper. Note, the keeper must not call releaseWidgetToken(IWidgetTokenKeeper) explicitly.

      The general contract is that the receiver should release the token if priority exceeds the receiver's priority.

      Specified by:
      requestWidgetToken in interface IWidgetTokenKeeperExtension
      Parameters:
      owner - the token owner
      priority - the priority of the request
      Returns:
      true if token has been released false otherwise
    • setFocus

      public boolean setFocus(IWidgetTokenOwner owner)
      Description copied from interface: IWidgetTokenKeeperExtension
      Requests the receiver to give focus to its popup shell, hover, or similar. There is no assumption made whether the receiver actually succeeded in taking the focus. The return value gives a hint whether the receiver tried to take focus.
      Specified by:
      setFocus in interface IWidgetTokenKeeperExtension
      Parameters:
      owner - the token owner
      Returns:
      true if the receiver tried to take focus, false if it did not.