package edu.ualberta.med.biobank.mvp.view.form; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorSite; import org.eclipse.ui.ISaveablePart; import org.eclipse.ui.PartInitException; import org.eclipse.ui.part.EditorPart; import edu.ualberta.med.biobank.mvp.event.EmptyClickEvent; import edu.ualberta.med.biobank.mvp.user.ui.HasButton; import edu.ualberta.med.biobank.mvp.view.IFormView; import edu.ualberta.med.biobank.mvp.view.ISaveableView; /** * * @author jferland * */ public class FormViewEditorPart extends EditorPart { public static final String ID = "edu.ualberta.med.biobank.mvp.view.FormViewEditorPart"; //$NON-NLS-1$ private IFormView formView; private boolean dirty = false; @Override public void doSave(IProgressMonitor monitor) { // always cancel the monitor so the Presenter can handle the save and // handle closing the form monitor.setCanceled(true); if (formView instanceof ISaveableView) { HasButton save = ((ISaveableView) formView).getSave(); save.fireEvent(new EmptyClickEvent()); } } @Override public void doSaveAs() { } @Override public boolean isSaveAsAllowed() { return false; } @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { setSite(site); setInput(input); formView = ((FormViewEditorInput) getEditorInput()).getFormView(); } @Override public boolean isDirty() { return dirty; } public void setDirty(boolean dirty) { this.dirty = dirty; firePropertyChange(ISaveablePart.PROP_DIRTY); } @Override public void createPartControl(Composite parent) { if (formView instanceof IHasEditor) { ((IHasEditor) formView).setEditor(this); } formView.create(parent); } @Override public void setFocus() { // not sure who to set focus on } @Override public void setPartName(String partName) { super.setPartName(partName); } @Override public void setTitleImage(Image titleImage) { super.setTitleImage(titleImage); } @Override public void setTitleToolTip(String titleToolTip) { super.setTitleToolTip(titleToolTip); } }