/** * (c) 2011, Alejandro Serrano * Released under the terms of the EPL. */ package net.sf.eclipsefp.haskell.ui.internal.editors.uuagcOptions; import net.sf.eclipsefp.haskell.ui.HaskellUIPlugin; import net.sf.eclipsefp.haskell.ui.internal.util.UITexts; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.IDocument; import org.eclipse.ui.IFileEditorInput; import org.eclipse.ui.PartInitException; import org.eclipse.ui.forms.editor.FormEditor; /** * Editor for uuagc_options file, including visual * and source views of it. * @author Alejandro Serrano * */ public class UuagcOptionsFormEditor extends FormEditor { private UuagcOptionsPage optionsPage; private UuagcTextEditor sourceEditor; public IDocument getModel() { IDocument result = null; if( sourceEditor != null ) { result = sourceEditor.getDocument(); } return result; } @Override protected void addPages() { try { IFileEditorInput input = (IFileEditorInput)getEditorInput(); optionsPage = new UuagcOptionsPage( this, input.getFile().getProject() ); addPage( optionsPage ); sourceEditor = new UuagcTextEditor(); addPage( sourceEditor, input ); setPageText( 1, UITexts.uuagcEditor_source ); } catch( PartInitException ex ) { HaskellUIPlugin.log( "Unable to create form pages.", ex ); //$NON-NLS-1$ } } @Override public void doSave( final IProgressMonitor monitor ) { if( sourceEditor != null ) { sourceEditor.doSave( monitor ); } } @Override public void doSaveAs() { if( sourceEditor != null ) { sourceEditor.doSaveAs(); } } @Override public boolean isSaveAsAllowed() { boolean result = false; if( sourceEditor != null ) { result = sourceEditor.isSaveAsAllowed(); } return result; } }