Soundex является 'очень английским' в, он кодирует - Daitch-Mokotoff работает лучше на многие имена, особенно европейские (германские) и еврейские имена. В моем британско-центральном мире это - то, что я использую.
Wiki здесь .
У этого класса 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();
Использование службы выбора предоставит вам текущий выбранный объект, затем вы можете проверить тип выбора и получить проект на основе выбора.
Если вы создадите 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 .