package org.example.democatalog.application.parts; import java.io.IOException; import javax.annotation.PostConstruct; import org.eclipse.e4.ui.di.Persist; import org.eclipse.e4.ui.model.application.MApplication; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecp.ui.view.ECPRendererException; import org.eclipse.emf.ecp.ui.view.swt.ECPSWTViewRenderer; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; /** * Part for displaying a Forms Editor for a DemoCatalog. * See https://www.vogella.com/tutorials/Eclipse4Services/article.html#implementing-editor-like-behavior. */ public class CatalogPart { private Resource demoCatalogResource; @PostConstruct public void createComposite(MApplication application, Composite parent) { demoCatalogResource = application.getContext().get(Resource.class); EObject energyCatalog = demoCatalogResource.getContents().get(0); try { final Composite content = new Composite(parent, SWT.NONE); content.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); content.setLayout(GridLayoutFactory.fillDefaults().margins(10, 10).create()); ECPSWTViewRenderer.INSTANCE.render(content, energyCatalog); content.layout(); } catch (final ECPRendererException e) { e.printStackTrace(); } parent.layout(); } @Persist public void save() { System.out.println("Saved " + demoCatalogResource); try { demoCatalogResource.save(null); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }