【问题标题】:How to create a new file with an existing emf resource如何使用现有的 emf 资源创建新文件
【发布时间】:2013-11-28 02:30:50
【问题描述】:

我想知道如何使用现有的 emf 资源创建一个新文件。目前,我的 org.eclipse.ui.menus DefaultHandler 中有以下代码,它可以获取现有的 emf 资源并创建一个新的(空)文件:

if (element instanceof IResource) {
        IResource pldFile = (IResource) element;

    String path = pldFile.getLocation().toString();
    URI uri = URI.createFileURI(path);

    // Obtain a new resource set
    ResourceSet resSet = new ResourceSetImpl();
    // Get the existing resource
    Resource emfResource = resSet.getResource(uri, true);

    IProject project = pldFile.getProject();
    String fileName = pldFile.getName().replace(pldFile.getFileExtension(), "plc");

    IFile plcFile = project.getFile(new Path(fileName));
    byte[] bytes = "".getBytes();
    try {
        InputStream source = new ByteArrayInputStream(bytes);
        if (plcFile.exists()) {
            int i = 1;
            String tmp = "";
            do {
                    tmp = fileName;
                int index = tmp.indexOf(".plc");
                tmp = tmp.substring(0, index) + i + tmp.substring(index, tmp.length());
                plcFile = project.getFile(new Path(tmp));
                i++;
            } while (plcFile.exists());
            plcFile.create(source, IResource.NONE, null);
        } else {
            plcFile.create(source, IResource.NONE, null);
        }
        PlcEditorInput input = new PlcEditorInput(emfResource);
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
        IWorkbenchPage page = window.getActivePage();
        IDE.openEditor(page, plcFile);      
    } catch (CoreException e) {
        e.printStackTrace();
    } 

我现在如何将现有的 emf 资源分配给我新创建的文件?

干杯, 菲尔

【问题讨论】:

    标签: java eclipse resources eclipse-emf eclipse-emf-ecore


    【解决方案1】:

    我不确定,但尝试将资源作为新文件导入。我的意思是定义一个新文件或项目,然后导入资源。 老实说,我尝试了一种类似的方法,但它不适用于我的资源(--> 这是一个 10 年前的代码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-24
      • 2023-03-07
      • 1970-01-01
      • 2023-02-23
      • 2021-04-13
      • 2020-12-11
      • 1970-01-01
      • 2019-08-27
      相关资源
      最近更新 更多