package de.ralfebert.rcputils.parts; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.resource.LocalResourceManager; import org.eclipse.jface.resource.ResourceManager; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; public abstract class AbstractEditorPart<INPUT extends IEditorInput> extends EditorPart { private ResourceManager resources; @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); } @Override public final void createPartControl(Composite parent) { this.resources = new LocalResourceManager(JFaceResources.getResources(), parent); onBeforeUi(parent); onCreateUi(parent); onAfterUi(parent); } protected void onBeforeUi(Composite parent) { } protected void onAfterUi(Composite parent) { } /** * Implement onCreateUi to create your UI. */ protected abstract void onCreateUi(Composite parent); @Override public boolean isSaveAsAllowed() { return false; } @Override public void doSaveAs() { throw new UnsupportedOperationException(); } @Override @SuppressWarnings("unchecked") public INPUT getEditorInput() { return (INPUT) super.getEditorInput(); } protected Display getDisplay() { return getSite().getShell().getDisplay(); } protected ResourceManager getResources() { return resources; } }