列出所有项目的,src folder。
效果如图。 请问有没有可以参考的src?

解决方案 »

  1.   

    其实Eclipse的工具栏里的新建package里的那个按钮一按就有类似的效果的。
    我想要那个的源代码
      

  2.   

    自己知道了protected IPackageFragmentRoot chooseContainer() {
    IJavaElement initElement= getPackageFragmentRoot();
    Class[] acceptedClasses= new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
    TypedElementSelectionValidator validator= new TypedElementSelectionValidator(acceptedClasses, false) {
    public boolean isSelectedValid(Object element) {
    try {
    if (element instanceof IJavaProject) {
    IJavaProject jproject= (IJavaProject)element;
    IPath path= jproject.getProject().getFullPath();
    return (jproject.findPackageFragmentRoot(path) != null);
    } else if (element instanceof IPackageFragmentRoot) {
    return (((IPackageFragmentRoot)element).getKind() == IPackageFragmentRoot.K_SOURCE);
    }
    return true;
    } catch (JavaModelException e) {
    JavaPlugin.log(e.getStatus()); // just log, no UI in validation
    }
    return false;
    }
    };

    acceptedClasses= new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
    ViewerFilter filter= new TypedViewerFilter(acceptedClasses) {
    public boolean select(Viewer viewer, Object parent, Object element) {
    if (element instanceof IPackageFragmentRoot) {
    try {
    return (((IPackageFragmentRoot)element).getKind() == IPackageFragmentRoot.K_SOURCE);
    } catch (JavaModelException e) {
    JavaPlugin.log(e.getStatus()); // just log, no UI in validation
    return false;
    }
    }
    return super.select(viewer, parent, element);
    }
    }; StandardJavaElementContentProvider provider= new StandardJavaElementContentProvider();
    ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); 
    ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(getShell(), labelProvider, provider);
    dialog.setValidator(validator);
    dialog.setComparator(new JavaElementComparator());
    dialog.setTitle(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_title); 
    dialog.setMessage(NewWizardMessages.NewContainerWizardPage_ChooseSourceContainerDialog_description); 
    dialog.addFilter(filter);
    dialog.setInput(JavaCore.create(fWorkspaceRoot));
    dialog.setInitialSelection(initElement);
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
    Object element= dialog.getFirstResult();
    if (element instanceof IJavaProject) {
    IJavaProject jproject= (IJavaProject)element;
    return jproject.getPackageFragmentRoot(jproject.getProject());
    } else if (element instanceof IPackageFragmentRoot) {
    return (IPackageFragmentRoot)element;
    }
    return null;
    }
    return null;
    }