创建动态eclipse“欢迎”页面按钮

时间:2010-02-26 13:27:27

标签: java eclipse swt

我想知道,是否可以在某处找到用于创建在“欢迎”页面上显示的按钮的代码。

在eclipse中创建新工作区时,会在一开始显示“欢迎”页面。该页面显示了不同类型的按钮,例如“什么是新的”,“教程”,......

我想使用这些类型的按钮,但无法在eclipse中找到源代码。

有人知道如何使用隐藏复合材料和动态组件创建这样一个按钮。

1 个答案:

答案 0 :(得分:3)

您可以根据org.eclipse.ui.internal.WorkbenchIntroManager

中找到的信息,尝试探索负责构建ViewIntroAdapterPartViewIntroAdapterSite课程。

来自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 ,其中包含图形可见元素。