Как получить название проекта в затмении?

Soundex является 'очень английским' в, он кодирует - Daitch-Mokotoff работает лучше на многие имена, особенно европейские (германские) и еврейские имена. В моем британско-центральном мире это - то, что я использую.

Wiki здесь .

14
задан skaffman 11 May 2011 в 11:01
поделиться

2 ответа

У этого класса GMF есть простой ответ, если у вас есть доступ к названию ResourcesPlugin:

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(myBundleName);

Общий ответ (из потенциально устаревшего кода ]) может выглядеть примерно так (если у вас открыт редактор):

IEditorPart  editorPart =
getSite().getWorkbenchWindow().getActivePage().getActiveEditor();

if(editorPart  != null)
{
    IFileEditorInput input = (IFileEditorInput)editorPart.getEditorInput() ;
    IFile file = input.getFile();
    IProject activeProject = file.getProject();
    String activeProjectName = activeProject.getName();
    //... use activeProjectName 
}

Если редактор не открыт:

   IViewPart [] parts =
      MyPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage().getViews();
    IProject activeProject = null;

    for(int i=0;i<parts.length;i++)
    {
        if(parts[i] instanceof ResourceNavigator)
        {
            ResourceNavigator navigator = (ResourceNavigator)parts[i];
            StructuredSelection sel   =
              (StructuredSelection)navigator.getTreeViewer().getSelection();
            IResource resource = (IResource)sel.getFirstElement();
            activeProject = resource.getProject();
            break;
        }
    }
    String activeProjectName = activeProject .getName();
25
ответ дан 1 December 2019 в 07:06
поделиться

Использование службы выбора предоставит вам текущий выбранный объект, затем вы можете проверить тип выбора и получить проект на основе выбора.

Если вы создадите ISelectionListener и зарегистрируетесь как слушатель на ISelectionService, вы будете получать уведомления всякий раз, когда активный выбор изменяется, и вам будет предоставлена ​​ссылка на выбор и принадлежащую ему часть.

ISelectionListener listener = new ISelectionListener() {
    public void selectionChanged(IWorkbenchPart sourcePart, ISelection selection) {
        setSourcePart(sourcePart);
        setSelection(selection);
    }
};

...
//register the listener
selectionService.addSelectionListener(listener);

...
//either get the selection service and get the selection, or use the stored version from the listener
ISelectionService selectionService = 
    Workbench.getInstance().getActiveWorkbenchWindow().getSelectionService();

ISelection selection = selectionService.getSelection();

if(selection instanceof IStructuredSelection) {
    Object element = ((IStructuredSelection)selection).getFirstElement();

    IProject project;
    if (element instanceof IResource) {
        project= ((IResource)element).getProject();
    } else if (element instanceof PackageFragmentRootContainer) {
        IJavaProject jProject = 
            ((PackageFragmentRootContainer)element).getJavaProject();
        project = jProject.getProject();
    } else if (element instanceof IJavaElement) {
        IJavaProject jProject= ((IJavaElement)element).getJavaProject();
        project = jProject.getProject();
    }
} else if (selection instanceof ITextSelection) {
    if(sourcePart instanceof JavaEditor) {
        IJavaElement element = SelectionConverter.resolveEnclosingElement(sourcePart, selection);
        project = element.getJavaProject().getProject();
    }
}

Подробнее см. В статье о службе выбора Eclipse .

7
ответ дан 1 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: