2012-06-07 3 views
1

Я пытаюсь выяснить какое-то время, как вызвать элемент меню Eclipse из подключаемого модуля, который я разрабатываю. Скажем, ради этой публикации я хочу вызвать пункт меню «Форматирование» в меню «Щелчок правой кнопкой мыши», чтобы отформатировать источник, как бы я это сделал, вызвав этот элемент (т. Е. Не просто подражая эффекту этого пункта меню) , на самом деле называя это)?Программный вызов пункта меню с помощью Eclipse JDT, разработка плагинов

Я не ищу, как форматировать код, просто идея вызова пункта меню.

Я склонялся к информации API на IWorkbench, Shell, ToolBar, ToolItem и т. Д., Но я действительно не знаю. Я не смог найти что-либо по этой теме в API или где-либо еще в Интернете. Есть ли лучший подход к этому, а не программному?

Eclipse, JDT - http://help.eclipse.org/indigo/index.jsp?nav=%2F3

EDIT:

String commandId = "org.eclipse.jdt.ui.edit.text.java.format"; 
IHandlerService handlerService = (IHandlerService)(IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class); 
handlerService.executeCommand(commandId, null); 

просто. Самая сложная часть - найти commandId, который можно легко найти, как упоминал rlegendi. Это именно то, чего я хотел. Он обращается к этому плагину через идентификатор, а затем выполняет его. Простой и эффективный. Всем спасибо!

+0

«Есть ли лучший подход» Да, не делайте этого вообще! Элементы GUI не должны запускаться программно. Вместо этого активируйте базовую функциональность. –

+0

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

+0

Я знаю, это не твоя вина. Eclipse полна ужасного тесно связанного кода. Надеюсь, что некоторые из них будут лучше в E4 –

ответ

1

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

BTW, если вы установите Платформа Eclipse SDK плагин (доступен по умолчанию), вы можете взглянуть на исходный код любой плагин, который является частью вашего текущего продукта Eclipse, (попробуйте Ctrl+Shift+T и набрав ISourceViewer для Например, вы найдете FORMAT, для которого вы можете выполнить поиск с помощью Ctrl+Shift+G), и вы можете импортировать любые из этих проектов плагинов в свое рабочее пространство для изучения.

+0

Удивительный! это меня куда-то. Я как-то должен привязать несколько команд к одному элементу, пытаясь понять, что на данный момент, опубликует ответ после его решения. – HJM

+0

Спасибо, что направили меня в правильном направлении! Отлично! – HJM

+0

Добро пожаловать, gl hf! – rlegendi