Scout Eclipse 扩展菜单
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);
}
}
我错过了什么?为什么这不起作用?
使您的桌面扩展基础 class AbstractExtensibleDesktop。常规 AbstractDesktop
class 不加载扩展。
如果是这种情况,AbstractExtensibleDesktop#AbstractExtensibleDesktop 处的断点应该提供一个良好的调试起点。
很抱歉用这个问题误导了你。
以上代码有效,我的问题是我没有在产品文件中添加客户端。这导致客户端不可用,因此无法添加扩展。
无论如何感谢您的回答,是的,绝对需要 AbstractExtensibleDesktop。
相关论坛帖子: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);
}
}
}
结果:
- 您 XML 中的绝对 class 名称是否正确?
- 你的扩展是否正确启动?
我有一个核心项目和一些扩展核心的其他项目。 我知道如何扩展大纲以及如何将页面添加到扩展大纲,但我的问题是菜单。
我想在扩展项目上扩展菜单。
我在网上找到了一些示例,我认为我理解了,但这对我不起作用。
我有的是:
<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);
}
}
我错过了什么?为什么这不起作用?
使您的桌面扩展基础 class AbstractExtensibleDesktop。常规 AbstractDesktop
class 不加载扩展。
如果是这种情况,AbstractExtensibleDesktop#AbstractExtensibleDesktop 处的断点应该提供一个良好的调试起点。
很抱歉用这个问题误导了你。
以上代码有效,我的问题是我没有在产品文件中添加客户端。这导致客户端不可用,因此无法添加扩展。
无论如何感谢您的回答,是的,绝对需要 AbstractExtensibleDesktop。
相关论坛帖子: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);
}
}
}
结果:
- 您 XML 中的绝对 class 名称是否正确?
- 你的扩展是否正确启动?