2016-01-22 3 views
1

В настоящее время я пишу приложение RCP с пользовательскими редакторами. Я пытаюсь проверить, открыт ли файл, который нужно переименовать, в редакторе. Используя пользовательский RenameParticipant, я могу проверить это и предотвратить операцию переименования, но это происходит ПОСЛЕ того, как пользователь ввел новое имя. Я бы хотел, чтобы проверка произошла раньше. Это возможно?Проверяет перед переименованием элемент в приложении Eclipse

ответ

1

Во-первых, вам необходимо получить редакторы, открытые в вашем приложении RCP. Eclipse, позволяет сделать это с помощью следующей строки:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences(); 

Затем вы должны проверить, открыт ли файл в одном из этих редакторов. Для этого вы можете выполнить итерацию результирующего массива. Каждый из элементов массива имеет тип IEditorReference. Вы можете получить файл, который открывается в каждой ссылке редактора, с помощью метода getEditorInput().

+0

Спасибо, что ответили Марио! Я могу использовать это, чтобы проверить, открыт ли файл или нет, но мне нужно найти подходящее место для этого. Использование RenameParticipant позволяет мне запустить проверку после того, как используемое ввело новое имя, но до того, как файл будет переименован. Тем не менее, я хотел бы запустить проверку, прежде чем пользователь попросит ввести новое имя. Благодарим за любую идею! –

+1

Возможно, вы можете создать свое собственное действие и добавить его во всплывающее меню (с помощью точки расширения org.eclipse.ui.popupMenus). Таким образом, вы можете запускать чек, где бы вы ни находились в своем коде. Взгляните на это: http://www.eclipse.org/articles/Article-action-contribution/. Чтобы избежать возможности переименования с нуля, вы можете повторно использовать или наследовать из класса «RenameAction» Eclipse JDT. И, кстати, в соответствии с политиками StackOverflow вместо того, чтобы давать «спасибо» (что очень заметно :-), лучше проголосовать за мой ответ, потому что он дает мне очки :-) –

+0

Это выглядит многообещающим, я буду взгляните на него. Отмечено, я вернул ваш ответ сейчас;). Тем не менее, спасибо! –

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