从 Package Explorer 中选定的对象获取项目名称、src 文件夹名称和包

发布于 2024-12-17 03:14:59 字数 420 浏览 0 评论 0原文

如何从包资源管理器中的选定项目中检索项目名称、src 文件夹名称和对象包?

例如:

Project
 |-- srcFolder
   |--org.blabla.project
     |--Class.java

我知道如何从包资源管理器中获取选择,如下所示:

final IWorkbenchWindow window = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow();
(IStructuredSelection) window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

但是如何检索我需要的信息?

How can I retrieve the project name, src folder name and object package from a selected item in package explorer?

For example:

Project
 |-- srcFolder
   |--org.blabla.project
     |--Class.java

I know how to get the selection from the package explorer like this:

final IWorkbenchWindow window = 
PlatformUI.getWorkbench().getActiveWorkbenchWindow();
(IStructuredSelection) window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");

but how can I retrieve the information that I need ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小ぇ时光︴ 2024-12-24 03:14:59

经过一些测试,我找到了我需要的:

/**
     * The method returns the current Path information as List<String>.
     * <ol>
     * <li>0 - Project name</li>
     * <li>1 - SRC Folder name</li>
     * <li>2 - Package name</li>
     * </ol>
     *
     * @return List<Object>
     */
    public static List<Object> getSelectedObjectPath() {
        // the current selection in the entire page
        final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        final IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");
        final Object o = selection.getFirstElement();
        final List<Object> a = new ArrayList<Object>(4);
        IJavaElement obj = (IJavaElement) o;
        if (o == null) {
            return null;
        }
        while (obj != null) {
            a.add(0, obj);
            obj = obj.getParent();
        }
        // remove JavaModel
        a.remove(0);
        return a;
    }

After some testing, I found what I need:

/**
     * The method returns the current Path information as List<String>.
     * <ol>
     * <li>0 - Project name</li>
     * <li>1 - SRC Folder name</li>
     * <li>2 - Package name</li>
     * </ol>
     *
     * @return List<Object>
     */
    public static List<Object> getSelectedObjectPath() {
        // the current selection in the entire page
        final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        final IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer");
        final Object o = selection.getFirstElement();
        final List<Object> a = new ArrayList<Object>(4);
        IJavaElement obj = (IJavaElement) o;
        if (o == null) {
            return null;
        }
        while (obj != null) {
            a.add(0, obj);
            obj = obj.getParent();
        }
        // remove JavaModel
        a.remove(0);
        return a;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文