Как переделать ActionSets в Команды - PullRequest
0 голосов
/ 04 октября 2019

Я работаю над приложением, которое работало под Eclipse RCP Galileo. Я импортирую его в последний Eclipse (2019-09) и все еще пытаюсь переопределить каждый ActionSets для команд для некоторых частей.

Он состоит из более чем 30 плагинов и работает, но пользовательский интерфейсне соответствует ожиданиям из-за устаревших точек расширения.

идентификаторы actionSets являются ссылками на классы, которые реализуют IObjectActionDelegate, и используют IAction для некоторых функций.

1 / Возможно ли этосохранить эти классы и создать обработчики, которые связаны с ними? И если да, то как это сделать? ...

2 / Некоторым действиям требуется IAction для получения статуса в качестве параметра. Как сохранить это с помощью команд?

. ,

Дополнительный плагин

Класс ActionDelegate

public class ImageScannerAction implements IWorkbenchWindowActionDelegate {
    private IWorkbenchWindow window;
    /**
     * The constructor.
     */
    public ImageScannerAction() {
    }

    /**
     * The action has been activated. The argument of the
     * method represents the 'real' action sitting
     * in the workbench UI.
     * @see IWorkbenchWindowActionDelegate#run
     */
    public void run(IAction action) {
        new Manager().start(window);
    }

    /**
     * Selection in the workbench has been changed. We 
     * can change the state of the 'real' action here
     * if we want, but this can only happen after 
     * the delegate has been created.
     * @see IWorkbenchWindowActionDelegate#selectionChanged
     */
    public void selectionChanged(IAction action, ISelection selection) {
    }

    /**
     * We can use this method to dispose of any system
     * resources we previously allocated.
     * @see IWorkbenchWindowActionDelegate#dispose
     */
    public void dispose() {
    }

    /**
     * We will cache window object in order to
     * be able to provide parent shell for the message dialog.
     * @see IWorkbenchWindowActionDelegate#init
     */
    public void init(IWorkbenchWindow window) {
        this.window = window;
    } 

Часть плагина

<extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="ImageScanner action"
            visible="true"
            id="com.imagescanner.ImageScannerAction">
         <action
               class="com.imagescanner.actions.ImageScannerAction"
               icon="icons/cd_edit.png"
               id="com.imagescanner.action"
               label="%action.label.ImageScanner"
               menubarPath="tools/toolsGroup"
               style="push"
               toolbarPath="com.tools/toolsGroup"
               tooltip="%action.tooltip.ImageScanner">
         </action>
         <menu
               id="tools"
               label="Tools">
         </menu>
      </actionSet>
   </extension>

Спасибо за вашу помощь,

С уважением,

CL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...