点击后冻结工具尖端

时间:2014-09-08 12:50:00

标签: eclipse eclipse-plugin eclipse-rcp

我正在尝试使用org.eclipse.jface.window.DefaultToolTip来显示一些UI组件,如复选框,放置在复合材料上的单选按钮。当用户单击文本时,工具提示会弹出并显示UI组件。

问题:我想在用户点击此工具提示后冻结工具提示。使用toolTip.setHideOnMouseDown(false);只要我在工具提示区域内,我就可以检查/取消选中复选框/单选按钮。一旦鼠标指针退出工具提示区域,工具提示就会消失。如何避免这种情况。我正在寻找可用于eclipse工具提示(javadoc,方法定义)的类似行为。在Eclipse工具提示中,如果我们单击/按f2,工具提示将保持活动状态,直到我们在工具提示区域外单击。

编辑:我还尝试在工具提示中使用Eclipse Plugin Spy,但没有成功。

任何想法。

1 个答案:

答案 0 :(得分:1)

按下F2时Eclipse执行的操作是创建一个与工具提示具有完全相同大小和内容的新Shell,并关闭原始工具提示。

我在扩展的工具提示类中使用如下代码:

  /**
   * Switch from tool tip to a normal window.
   */
  private void showWindow()
  {
    if (_control.isDisposed())
      return;

    final Shell shell = new Shell(_control.getShell(), SWT.CLOSE | SWT.ON_TOP | SWT.RESIZE);

    shell.setLayout(new FillLayout());

    createBody(shell);

    final Point currLoc = _parent.getShell().getLocation();

    final Rectangle client = _parent.getClientArea();

    final Rectangle bounds = shell.computeTrim(currLoc.x, currLoc.y, client.width, client.height);

    shell.setBounds(bounds);

    shell.open();

    // Hide the tool tip window

    hide();
  }

_control是传递给构造函数的控件。