Добавление всплывающего меню "Копировать / Вставить в Eclipse CNF"
Мы добавили новый пользовательский вид в нашу среду Eclipse Kepler. Новое представление аналогично представлению навигатора и представлению Project Explorer, за исключением того, что оно фильтрует и переупорядочивает отображаемые ресурсы в соответствии с нашими особыми потребностями. После создания пользовательского представления с использованием Eclipse Common Navigator Framework (CNF) мы обнаруживаем, что в контекстном меню всплывающих окон нет таких элементов редактирования, как "Копировать" или "Вставить", и они отключены в обычном выпадающем меню. Так что теперь нам нужно добавить их. Несколько других сообщений обсуждают эту проблему, но ни один, кажется, не дает полного ответа.
То, что мы имеем до сих пор (показано только для Copy, другие похожи):
В plugin.xml мы добавили расширение меню для размещения элементов во всплывающем меню:
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:com.company.views.CustomView?before=import">
<command
commandId="org.eclipse.ui.edit.copy"
icon="icons/copy_16x16.png"
label="Copy"
style="push">
</command>
</menuContribution>
</extension>
Далее в plugin.xml мы добавили расширение обработчиков, чтобы сделать пункт меню функциональным:
<extension
point="org.eclipse.ui.handlers">
<handler
commandId="org.eclipse.ui.edit.copy"
class="com.company.views.CustomViewCopyHandler">
<enabledWhen>
<not>
<count value="0"/>
</not>
</enabledWhen>
<activeWhen>
<with variable="activePartId">
<equals value="com.company.views.CustomView"/>
</with>
</activeWhen>
</handler>
</extension>
И наконец мы реализовали класс обработчика:
public class CustomViewCopyHandler
extends AbstractHandler
implements IHandler
{
public Object execute( ExecutionEvent event )
throws ExecutionException
{
return null;
}
}
Это прекрасно работает, насколько это возможно. Копия добавляется во всплывающее меню и щелчок по ней вызывает функцию execute() класса.
Но что должен выполнить execute()? В этом смысл этого поста. Мы нашли классы Eclipse org.eclipse.ui.internal.navigator.resources.actions.CopyAction и org.eclipse.ui.internal.navigator.resources.actions.EditActionGroup, но не можем найти способ их использования. Поскольку они называются "внутренними", неудивительно, что они не предназначены для прямого доступа пользователей.
Кто-нибудь когда-либо успешно делал это? Любая помощь или указатели, но особенно рабочие примеры кода, с благодарностью.
Ура, Билл:-)