Я смог понять это, это было довольно трудоемким и болезненным - надеюсь, это кому-нибудь поможет.По крайней мере, ответ - несколько строк кода.
Вы должны показать вступительный сайт getIntroSite () , прежде чем изменять URL, иначе вы получите исключение нулевого указателя в IntroURL.Если вы получаете исключение нулевого указателя при вызове createIntroURL () , это может быть связано с тем, что интро-сайт еще не открыт в вашем графическом интерфейсе, не обязательно, что ваша ссылка плохая.Кроме того, если вступление уже открыто, не пытайтесь открыть его снова, потому что оно изменит страницу на домашнюю, а не на страницу, идентифицированную с page_id.Итак, для этого класса я сделал кнопку помощи переключателем, означающим, что если окно вступления открыто, то кнопка нажата.В некоторых случаях я закрываю вводный сайт, если он уже открыт при нажатии кнопки (пример ниже), в других случаях я просто не обновляю вводный сайт, чтобы он не переходил на домашнюю страницу (пример не показан,но просто опустите первую часть блока if ).
Если вы попробуете код ActionFactory run () в моем вопросе, он отобразит сайт вступления ввсе окно.Я хотел, чтобы вводный сайт был подокном в перспективе, поэтому я использовал метод ниже, установив showIntro (null, true) - истинное значение не занимает все окно (они вызываютЛогический режим ожидания).
Идентификатор страницы соответствует настройке идентификатора страницы в XML-файле документации при настройке точки расширения org.eclipse.ui.intro.config content переменная.
</p>
<pre> final IIntroPart
intro = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().
getWorkbenchWindow().getWorkbench().getIntroManager().
getIntro();
if (PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().
getWorkbenchWindow().getWorkbench().getIntroManager().
isIntroStandby(intro))
{
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().
getWorkbenchWindow().getWorkbench().getIntroManager().
closeIntro(intro);
help_button.setSelection(false);
}
else
{
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().
getWorkbenchWindow().getWorkbench().getIntroManager().
showIntro(null, true).getIntroSite();
IIntroURL
introURL = IntroURLFactory.createIntroURL(
"http://org.eclipse.ui.intro/showPage?id=" + page_id);
introURL.execute();
help_button.setSelection(true);
}