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

Aquiring EMF编辑域

孙成化
2023-03-14

我在Eclipse插件中创建了一个EMF模型。我想在星云网格中显示模型内容(使用GridTreeViewer进行显示,并使用选项卡式属性表进行编辑)。

public class OverviewViewLabelProvider extends ColumnLabelProvider {
    [...]
    public void update(ViewerCell cell) {
        AbstractEntry entry = (AbstractEntry) cell.getElement();
        GridItem item = (GridItem) cell.getItem();
        switch (cell.getColumnIndex()) {...}
    }
}

在主视图类中设置选择提供程序

public class OverviewViewPart extends ViewPart implements ITabbedPropertySheetPageContributor {
[...]
this.getSite().setSelectionProvider(this.viewer);
[...]
public Object getAdapter(Class adapter) {
    if (adapter == IPropertySheetPage.class) {
        return new TabbedPropertySheetPage(this);
    }
    return super.getAdapter(adapter);
}
public String getContributorId() {
    return TaxEditorPlugin.PLUGIN_ID;
}

选项卡式属性表

这与EMF数据绑定配合得很好,下面是一个字段的例子:

this.descriptionText.setText(this.entry.getDescription());
this.descriptionText.setData(this.entry);
emfDataBindingContext.bindValue(
    WidgetProperties.text(SWT.Modify).observe(this.descriptionText),
    EMFProperties.value(ModelPackage.Literals.ABSTRACT_ENTRY__DESCRIPTION).observe(this.entry)
);
public class OverviewViewUpdateAdapter extends EContentAdapter{
    public void notifyChanged(Notification notification) {
        super.notifyChanged(notification);
        this.viewer.refresh();
    }
}
Editing domain = TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain("at.liebhart.tax.editor.domain");
Resource resource = domain.getResourceSet().createResource(URI.createURI(taxModel.toString() + ".taxgui"));
resource.getContents().add(taxModel);       

我也试过:

this.domain = new AdapterFactoryEditingDomain(new AdapterFactoryImpl(), this.stack);

两者都不起作用。谁能帮我得到一个工作的编辑域没有整个模型。编辑东西,这似乎不支持星云小部件。

共有1个答案

阎德辉
2023-03-14
TransactionalEditingDomain.Registry.INSTANCE.getEditingDomain(String)

用于检索与特定ID关联的EditingDomain(通常是因为您希望重用现有编辑器的EditingDomain等)。

我猜你想用:

org.eclipse.emf.transaction.TransactionalEditingDomain.Factory.createEditingDomain(ResourceSet)
 类似资料:
  • 在JavaFX 8中,我尝试在将新行添加到表中后编辑单元格,以优化用户体验。 选择了正确的行,但单元不会进入编辑模式。嗯,我很偶然地看到了这种情况,但很难再现。我做错了什么?

  •   复制 剪切 字符 y x 行 yy dd 需先在可视模式中选取 p 在光标后粘贴 P 在光标前粘贴 u 撤消 Ctrl+r 重做 Ctrl+y 逐字克隆上一行内容 Ctrl+e 逐字克隆下一行内容

  • 问题内容: 使用什么是能够编辑内容的最佳方法? 在我理想的情况下, 添加的 生日将是一个超链接,点击该链接将显示一个编辑表单-与带有更新按钮的当前添加表单相同。 实时预览(插播) HTML: App.js: 问题答案: 您应该将表单放在每个节点内,分别使用和启用和禁用编辑。像这样: 这里的关键点是: 我已将控件更改为本地范围 已添加到,因此我们可以在编辑时显示它 添加了带有的,以便在编辑时隐藏内容

  • Vim提供了许多命令,使编辑功能非常强大。 在本章中,将讨论以下主题内容 - 插入 附加 打开新行 替换 更改 更换 加入 1. 在光标前插入文本 要在光标之前插入文本执行以下步骤 - 打开Vim 切换到插入模式 在行的开头插入文本 假设位于行的中间,并且希望在当前行的开头插入文本,然后执行以下步骤 - 切换到命令模式 激活插入模式 此操作将光标移动到当前行的开头并在插入模式下切换Vim。 在光标

  • 概述 Sublime Text 有非常多的编辑功能,这里只能介绍一点皮毛。 多文本选择 多文本选择让你高效地修改文本,任何的赞美都无法形容它了,原因: 选择一些文本,按下Ctrl+D进行多选,如果想跳过当前项,按下Ctrl+K,Ctrl+D。 误选了按Ctrl+U撤销最后一次选中项。 多行选择合并成一行 Ctrl+L选中单行文本,Ctrl+Shift+L把多行选择变成单行选择的编辑状态。 列选择

  • 复制、粘贴、选择、查找、替换应该是我们在编写代码时最常用的操作了,Android Studio可以让这些操作变得简单和高效。

  • 基础 安装 扩展市场 任务 调试 为什么选用VSCode 版本控制 易用性 与时俱进的编辑体验

  • 因为要编辑项目需要的代码,所以你需要选择一款文本编辑器。不需要在挑选编辑器上花太多时间,一开始,您只需要一款现代的,使用简单的编辑器就行了。用你已经熟悉的,还没谱的话可以使用我推荐的 Atom 编辑器。 Atom Brackets Sublime Visual Studio Code