2015-09-21 3 views
0

У меня есть один проект Core и другой проект, расширяющий ядро. Я знаю, как расширить контур и как добавить страницы в расширенные контуры, но мои проблемы - это меню.Scout Eclipse extends Menu

Я хотел бы расширить меню на расширенный проект.

Я нахожу пример в Интернете, и я думаю, что я понимаю, но это не работает для меня.

Что у меня есть:

<extension 
    name="" 
    point="org.eclipse.scout.rt.extension.client.desktopExtensions"> 
    <desktopExtension 
     class="com.sixt.leasing.pd.scout.client.ui.desktop.DesktopExtension" 
     active="true"> 
    </desktopExtension> 
</extension> 
<extension 
    point="org.eclipse.scout.rt.extension.client.menus"> 
    <menuContribution 
     active="true" 
     class="com.sixt.leasing.pd.scout.client.menu.JobRunnerMenu" 
     order="22"> 
    <desktop 
      class="com.sixt.leasing.core.scout.client.ui.desktop.Desktop"> 
    </desktop> 
    </menuContribution> 
</extension> 

внутри plugin.xml

и мои JobRunnerMenu выглядеть следующим образом:

public class JobRunnerMenu extends AbstractExtensibleMenu { 

    @Override 
    protected String getConfiguredText() { 

    return TEXTS.get("Job"); 
    } 

    @Override 
    protected void execAction() throws ProcessingException { 

    // TODO Auto-generated method stub. 
    super.execAction(); 
    } 

    @Override 
    protected void execToggleAction(final boolean selected) throws ProcessingException { 

    // TODO Auto-generated method stub. 
    super.execToggleAction(selected); 
    } 
} 

Что мне не хватает? Почему это не работает?

ответ

1

Похожие форум Тема: Multi Modul - Menu Extension


Я просто проверял эту модель, и она работает, как ожидалось.

Вот содержание моего (в расширении клиента) plugin.xml:

<extension 
    point="org.eclipse.scout.rt.extension.client.menus"> 
<menuContribution 
     active="true" 
     class="myapp.extension.client.menu.MyMenu" 
     order="22"> 
    <desktop 
      class="myapp.client.ui.desktop.Desktop"> 
    </desktop> 
</menuContribution> 
</extension> 

Поскольку «menuContribution» определяет «рабочий стол» в качестве контейнера, в меню вы будете добавлять в свой вклад в рабочий стол. Обычно эти меню являются меню верхнего уровня и содержат детские меню.

public class MyMenu extends AbstractExtensibleMenu { 

    @Override 
    protected String getConfiguredText() { 
    return "My Menu"; 
    } 

    public class MessageBoxTestMenu extends AbstractExtensibleMenu { 

    @Override 
    protected String getConfiguredText() { 
     return "Test MessageBox"; 
    } 

    @Override 
    protected void execAction() throws ProcessingException { 
     MessageBox.showOkMessage(null, "This is a test", null); 
    } 
    } 
} 

Результат:

Sceenshot


  • ли абсолютные имена классов в вашем XML правильно?
  • Правильно ли установлено ваше расширение?
0

Сделайте свой рабочий стол расширением базового класса AbstractExtensibleDesktop. Обычный класс AbstractDesktop не загружает расширения.

В таком случае точка останова на AbstractExtensibleDesktop # AbstractExtensibleDesktop должна обеспечивать хорошую отправную точку для отладки.

0

Извините, что обманом в этом вопросе.

Приведенная выше работа кода, моя проблема заключалась в том, что я не добавил клиента в файл продукта. Этот клиент не будет доступен, поэтому расширение не может быть добавлено.

Спасибо за ответ в любом случае, и да AbstractExtensibleDesktop абсолютно необходим.

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

  • Нет связанных вопросов^_^