2014-11-24 6 views
0

Я новичок в разработке плагинов eclipse. Я написал код, который получает выбранное имя проекта &. Но если выбран несколько проектов, он отображает первый.Проверьте, выбран ли один проект или нет

Вот мой код

IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection(); 
Object firstElement = selection.getFirstElement(); 
if (firstElement != null) { 
    if (firstElement instanceof IAdaptable) { 
     IProject project = (IProject) ((IAdaptable) firstElement).getAdapter(IProject.class); 
     IPath path = project.getFullPath(); 
     IPath location = project.getLocation(); 
    } 
} 

Как я могу проверить, выбран ли множественный проект или нет?

ответ

0

Используйте selection.iterator и перейдите по выбранным товарам. Это может быть что-то вроде этого!

Iterator it = selection.iterator(); 
    while(it.hasNext()){ 
    Object firstElement = it.next(); 
if (firstElement != null) { 
    if (firstElement instanceof IAdaptable) { 
     IProject project = (IProject) ((IAdaptable) firstElement).getAdapter(IProject.class); 
     IPath path = project.getFullPath(); 
     IPath location = project.getLocation(); 
    } 
} 
    } 

EDIT: обновление с более подробным кодом

включить логику, чтобы увидеть, выбраны ли singlr или несколько проектов. Используйте счетчик, чтобы проверить, сколько проектов выбрано.

+0

Это приводит к бесконечному циклу –

+0

Вы можете посмотреть размер итератора (it) и заключить его. Надеюсь, вы проверяете «instanceOf IAdaptable», чтобы увидеть, выбрано ли несколько проектов. – hemanth

+0

Вы должны вызвать 'it.next()' в цикле, чтобы перейти к каждому новому элементу. –

Смежные вопросы