Как создать новый файл с существующим ресурсом emf

Мне интересно, как я могу создать новый файл с существующим ресурсом 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 моему вновь созданному файлу?

Привет, Фил


person ph09    schedule 08.11.2013    source источник


Ответы (1)


Я не уверен, но попробуйте импортировать ресурс как новый файл. Я имею в виду определить новый файл или проект, а затем импортировать ресурс. Честно говоря, я пробовал аналогичный способ, но он не работал с моим ресурсом (--> это код 10-летней давности).

person Maryam    schedule 27.11.2013