Как получить путь текущего выбранного файла в Eclipse? - PullRequest
2 голосов
/ 31 мая 2011

Я хочу получить путь к текущему выбранному файлу в рабочей области Eclipse, но мой проект представляет собой проект подключаемого модуля простого представления.

Я просто хочу отобразить имя / путь к выбранному файлу, как только пользователь откроет представление.

Ответы [ 2 ]

5 голосов
/ 31 мая 2011

Вы получаете текущий выбор, упомянутый @Danail Nachev.См. http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html для получения информации о работе со службой выбора.

Как только у вас есть выбор, наиболее распространенный шаблон:

    if (selection instanceof IStructuredSelection) {
        IStructuredSelection ssel = (IStructuredSelection) selection;
        Object obj = ssel.getFirstElement();
        IFile file = (IFile) Platform.getAdapterManager().getAdapter(obj,
                IFile.class);
        if (file == null) {
            if (obj instanceof IAdaptable) {
                file = (IFile) ((IAdaptable) obj).getAdapter(IFile.class);
            }
        }
        if (file != null) {
            // do something
        }
    }

Редактировать:

Обычно вы получаете InputStream от IFile и обрабатываете его таким образом.При использовании некоторых реализаций FileSystemProviders или EFS может отсутствовать локальный путь к файлу.

PW

2 голосов
/ 31 мая 2011

Вы можете получить текущий выбор рабочей среды , используя два метода со следующим кодом:

  1. через Workbench SelectionService
  2. getViewSite().getSelectionProvider().getSelection()

getViewSite().getWorkbenchWindow().getSelectionService()

Более подробную информацию можно найти в этой статье .

Лучше всего использовать глобальный выбор рабочей среды, поскольку он позволяет вашему представлению получать выборку везде, чего пользователь может ожидать (по крайней мере, я).Кроме того, почти все представления в Eclipse (и я не знаю исключений из этого правила) используют этот подход.

Если вам абсолютно необходимо связать свое представление с другим представлением, тогда вы можете получить все IWorkbenchPage итерируйте их и ищите вид по его идентификатору, и когда вы найдете вид, вы вызываете get его SelectionProvider, чтобы получить выборку.

Только читая это объяснение, мои волосы выпрямляются вверх,Учитывая, что может быть несколько экземпляров одного и того же представления, вы можете получить выбор из случайного представления.Я не уверен, будет ли пользователь понимать, как все работает, если у вас нет четких правил, которые именно вам нужны.Это зависит от вас.

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...