Создание динамического затмения кнопки «Добро пожаловать» на странице - PullRequest
2 голосов
/ 26 февраля 2010

Мне интересно, можно ли где-нибудь найти код для создания кнопок, показанных на странице приветствия затмения.

Когда вы создаете новое рабочее пространство в Eclipse, в самом начале отображается страница «Добро пожаловать». На странице отображаются различные типы кнопок, такие как «Что нового», «Учебники», ...

Я хочу использовать кнопки такого типа, но не смог найти исходный код внутри затмения.

Кто-нибудь знает, как создать такую ​​кнопку, со скрытыми композитами и двусмысленными компонентами.

1 Ответ

3 голосов
/ 26 февраля 2010

Вы можете попробовать и изучить класс org.eclipse.ui.internal.WorkbenchIntroManager, отвечающий за построение ViewIntroAdapterPart на основе информации найдено в ViewIntroAdapterSite

С getViewIntroAdapterPart () :

* @return the <code>ViewIntroAdapterPart</code> for this workbench, <code>null</code> if it
* cannot be found.
*/
/*package*/ViewIntroAdapterPart getViewIntroAdapterPart() {
  IWorkbenchWindow[] windows = this.workbench.getWorkbenchWindows();
  for (int i = 0; i < windows.length; i++) {
    IWorkbenchWindow window = windows[i];
    WorkbenchPage page = (WorkbenchPage) window.getActivePage();
    if (page == null) {
      continue;
    }
    IPerspectiveDescriptor[] perspDescs = page.getOpenPerspectives();
    for (int j = 0; j < perspDescs.length; j++) {
      IPerspectiveDescriptor descriptor = perspDescs[j];
      IViewReference reference = page.findPerspective(descriptor)
        .findView(IIntroConstants.INTRO_VIEW_ID);
      if (reference != null) {
        IViewPart part = reference.getView(false);
        if (part != null && part instanceof ViewIntroAdapterPart) {
          return (ViewIntroAdapterPart) part;
        }
      }
    }
  }
  return null;
}

Каждая перспектива вносит свой вклад в IntroPart, основываясь на его IPerspectiveDescriptor, если он включает ViewIntroAdapterPart.

ViewPart создаст IIntroPart, который содержит графически видимые элементы.

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