Eclipse: стратегия сопоставления файлов, вызываемая одним щелчком мыши в любом представлении - PullRequest
0 голосов
/ 29 мая 2018

Я написал свою собственную стратегию сопоставления файлов, реализовав IEditorMatchingStrategy следующим образом:

public class FileMatchingStrategy implements IEditorMatchingStrategy {

@Override
public boolean matches(IEditorReference editorRef, IEditorInput input) {
    if (!(input instanceof IFileEditorInput))
        return false;
    if (null == input || null == editorRef) {
        return false;
    }

    IFile file = input.getAdapter(IFile.class);
    IPath rawFilePath = file == null ? null : file.getRawLocation();
    if (null == rawFilePath) {
        return false;
    }
    if("File.java".equals(rawFilePath.toOSString())){
        MessageDialog.openError(Display.getDefault().getActiveShell(),
            "Header", "Message");
        return true;
    }

    return false;
} }

Теперь при каждом щелчке по любому представлению (например, представлению проблем) вызывается стратегия сопоставления файлов, которая вызываетвсплывающее окно, чтобы показать, даже если файл не открывается двойным щелчком мыши.

Можно ли отфильтровывать одиночные клики и обрабатывать только двойные клики / Открыть файл из проводника проекта?

1 Ответ

0 голосов
/ 29 мая 2018

Нет, сделать это невозможно.

IEditorMatchingStrategy вызывается всякий раз, когда методы IWorkbenchPage openEditor или findEditor пытаются найти редактор, соответствующий заданному входу редактора.Остановить это для определенных вызовов невозможно.

Основное использование IEditorMatchingStrategy предназначено для редакторов, которые поддерживают редактирование нескольких файлов одновременно (таких как редактор PDE plugin.xml / MANIFEST.MF / build.properties).

Eclipse не ожидает, что IEditorMatchingStrategy выполнит какие-либо взаимодействия с пользовательским интерфейсом.

...