package fr.opensagres.nosql.ide.ui.editors; import org.eclipse.ui.IEditorInput; import fr.opensagres.nosql.ide.ui.dialogs.StackTraceErrorDialog; public abstract class ModelFormEditor<EditorInput extends IEditorInput, Model> extends AbstractFormEditor<EditorInput> { private Model model; @Override protected void onAfterAddPages() { super.onAfterAddPages(); // // Load model try { loadModel(); } catch (Exception e) { StackTraceErrorDialog.openError(getSite().getShell(), "Error loading", "Error loading model", e); } } private void loadModel() throws Exception { model = onLoad(getEditorInput()); } public Model getModelObject() { return (Model) model; } /** * Implement onLoad to retrieve the model object by the editor input object. */ protected abstract Model onLoad(EditorInput input) throws Exception; }