Использовать историю навигации в Eclipse RCP

Мне нравится использовать историю навигации, предоставленную Eclipse, в моем приложении RCP. К сожалению, эта функция плохо документирована. На самом деле я нашел только эту запись в Вики :http://wiki.eclipse.org/FAQ_How_do_I_hook_my_editor_to_the_Back_and_Forward_buttons%3F

. В ней упоминается, что каждый редактор может быть отмечен в истории навигации без указания местоположения. Это именно то, что я хочу.

Независимо от того, поддерживает ли конкретный редактор историю переходов, markLocation будет работать. Если редактор не реализует INavigationLocationProvider, будет добавлена ​​запись истории, позволяющая пользователю вернуться к этому редактору, но без возврата в какое-либо конкретное место.

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

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = page.openEditor( input, MyEditor.ID );
page.getNavigationHistory().markLocation( editor );

Моя проблема в том, что код не работает. Значки панели инструментов для команд org.eclipse.ui.navigate.backwardHistoryи org.eclipse.ui.navigate.forwardHistoryостаются серыми.

5
задан Tom Seidel 9 May 2012 в 09:46
поделиться