package no.playtrd.runtime; import org.eclipse.e4.tm.ui.ModelContext; import org.eclipse.e4.tm.ui.ModelPartContent; import org.eclipse.e4.tm.ui.TmPartStyle; public class TmRuntimeComponent extends AbstractRuntime.Component { private TmPartStyle partStyle; private ModelContext modelContext; public TmRuntimeComponent(AbstractRuntime runtime) { super(runtime); } private TmPartStyle getTmPartStyle() { if (partStyle == null) { partStyle = (TmPartStyle)runtime.getContextAdapter(TmPartStyle.class); } return partStyle; } public void setPartStyle(TmPartStyle partStyle) { this.partStyle = partStyle; } private ModelContext getModelContext() { if (modelContext == null) { modelContext = (ModelContext)runtime.getContextAdapter(ModelContext.class); } return modelContext; } public void setModelContext(ModelContext modelContext) { this.modelContext = modelContext; } @Override public Object getAdapter(Class adapter) { if (adapter.equals(ModelContext.class)) { return modelContext; } return super.getAdapter(adapter); } protected ModelPartContent modelContent; @Override protected void doStart() { modelContent = new ModelPartContent(getTmPartStyle().getTmComposite(runtime)); modelContent.setModelContext(getModelContext()); super.doStart(); } @Override protected void doPause() { super.doPause(); } @Override protected void doResume() { super.doResume(); } @Override protected void doStop() { modelContent.dispose(); super.doStop(); } }