Как я могу получить информацию о всплывающей подсказке в плагине Eclipse? - PullRequest
0 голосов
/ 26 июля 2011

В затмении, если мы фокусируем какую-либо переменную или экземпляры или что-либо еще, используя указатель мыши, мы получим уведомление с некоторой информацией об объекте, на котором сфокусировано. Можно ли имитировать это движение мыши и получить информацию о всплывающей подсказке в нашем собственном проекте плагина?

Если возможно, пожалуйста, скажите мне, как это сделать.

Спасибо заранее, Ишвар

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Есть две части того, что вы ищете:

  1. выяснение того, что находится в данном месте.Для этого вам нужно вызвать метод API: org.eclipse.jdt.core.ICodeAssist.codeSelect(int, int).Если у вас есть дескриптор файла, то вы можете сделать somthieng следующим образом:

    IFile file = getFile ();ICompilationUnit unit = JavaCore.create (file);IJavaElement [] elts = unit.codeSelect (start, length);

Затем, когда у вас есть элементы Java, вам нужно извлечь из них информацию Javadoc.Это немного менее прямолинейно, но вы можете взглянуть на класс org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover, в частности класс getHoverInfo.

Если вы просто хотите javadoc, то вам следует взглянуть наorg.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2 класс.

0 голосов
/ 28 июля 2011

Существует два основных способа предоставления всплывающих подсказок в SWT:

  • Вы можете установить его, используя control.setToolTipText(text).
  • Вы можете добавить SWT.MouseHower слушателя и показать свою собственную информацию о всплывающей подсказке при вызове - действительно что угодно. Этот метод используется org.eclipse.jface.window.ToolTip.

В первом случае вы можете получить всплывающую подсказку с помощью control.getToolTipText(). В последнем случае вы не можете найти текст программно ... он даже не должен быть строкой ...

Вы можете показать всплывающую подсказку - для обоих методов выше - используя Display.post(Event), сначала поместив мышь с помощью SWT.MouseMove, а затем подождите секунду с помощью Display.timedExec(Runnable).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...