当前位置: 首页 > 知识库问答 >
问题:

如何为我们的部件实现“另存为”功能

西门飞星
2023-03-14

我正在创建E4 RCP应用程序,因为我有一个部分。我想为我的部分实现“另存为”功能,因为它是为编辑器实现的(例如:Java文件编辑器)。

要求:

  1. 当用户单击我的零件时,应启用“另存为”选项

因此,我的问题是,我应该做什么,我必须实现任何扩展点或任何其他?

共有2个答案

端木宏才
2023-03-14

在Eclipse 3兼容模式下,您可以在您的编辑器部分中实现doSaveAs和isSaveAsAllowed方法。

禹德水
2023-03-14

在纯e4应用程序中,没有内置的“另存为”支持,因此您需要自己编写代码。

为了与Save的Persist支持保持一致,我建议使用注释来实现这一点,我们将其称为PersistAs:

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface PersistAs
{
}

您必须以通常的方式添加“另存为”的命令定义以及处理程序和菜单项。

另存为的处理程序如下所示:

@Execute
public void execute(@Named(IServiceConstants.ACTIVE_PART) final MPart part)
{
  Object client = part.getObject();
  ContextInjectionFactory.invoke(client, PersistAs.class, part.getContext());
}

就你而言,你会:

@PersistAs
public void saveAs()
{
  // You save as code
}
 类似资料:
  • 问题内容: 假设我有实体。是否有任何通用方法将其存储为另一行,该行将具有相同的实体数据但具有另一个主键? 为什么需要这个:我正在实现某种临时数据库模式,而不是更新行,而只需要创建另一行。 问题答案: 尝试克隆并将以下方法添加到您的实体中 您可能需要先分离实体,然后再保留它。我现在没有开发机可以方便地对此进行测试。 更新资料 刚刚尝试使用简单的SQLite演示。您不需要做任何事情。以下对我有用,而无

  • 我计划使用这里记录的实时订阅系统,因为它解释了我们可以订阅一个位置ID,并在该位置接收关于新媒体的通知。我们推出了它,但立即开始失败,因为有一个未发布的30个订阅的限制(我想我们应该在开始构建它之前做更多的谷歌搜索)。 这基本上是在这里概述的相同的问题,但谈话真的很陈旧,我不确定最终目标是完全相同的,因为提出的解决方案对我没有帮助。 有太多的客户帐户注册更多的应用程序以获得足够的订阅(我们将不得不

  • 问题内容: 我有一个XML文件 我必须将此XML转换为CSV文件。我听说我们可以使用XSLT进行此类操作。如何在Java中(带有/不带有XSLT)执行此操作? 问题答案: 用伪代码: 这个快速的小循环将在每行的末尾写一个逗号,但是我敢肯定您可以弄清楚如何删除它。 为了实际解析XML,我建议使用JDOM。它具有非常直观的API。

  • 问题内容: 我们通过将一个表的PK(作为FK)添加到 另一表来实现一对多关系。我们通过 在第三个表中添加2个表的PK来实现多对多关系。 我们如何实现IS-A关系? 实体分别是技术人员和行政人员。我 可以在表EMPLOYEE中使用一个额外的字段(id,名称,姓氏, 角色…AdminFields…,…TechFields…) 但我想探索IS-A选项。 编辑:我按照Donnie的建议做了,但没有角色字段

  • 我将我的按钮放入一个数组中,但当我调用它们时,它们不在那里。如果我打印出阵列,我会得到: 我只是不知道我做错了什么。

  • 但这会产生以下错误: 更新 我试图创建一个类,实现,它基本上试图将对象表示为,其中对象可以是任何类型。当前正在使用和操作和方法中的字段,并使用上述方法创建和对象以调用getter和setter方法。我想知道是否可以将这两个单独的方法合并为一个。 可用作到的示例类: 下面是预期的用法: