// Copyright (c) 2008 by Leif Frenzel - see http://leiffrenzel.de // Copyright (c) 2011 by Alejandro Serrano // This code is made available under the terms of the Eclipse Public License, // version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html package net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.overview; import net.sf.eclipsefp.haskell.core.cabalmodel.PackageDescription; import net.sf.eclipsefp.haskell.core.cabalmodel.PackageDescriptionStanza; import net.sf.eclipsefp.haskell.ui.internal.editors.cabal.CabalFormEditor; import net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.CabalFormPage; import net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.CabalFormSection; import net.sf.eclipsefp.haskell.ui.internal.util.UITexts; import org.eclipse.core.resources.IProject; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IFormPart; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; /** * <p> * The overview page on the Cabal form editor lets the user enter elements of * the Cabal descriptions in a form-based UI. * </p> * * @author Leif Frenzel */ public class OverviewPage extends CabalFormPage { public OverviewPage( final FormEditor editor, final IProject project ) { super( editor, OverviewPage.class.getName(), UITexts.overviewPage_title, project ); } // interface methods of FormPage // ////////////////////////////// @Override protected void createFormContent( final IManagedForm managedForm ) { ScrolledForm form = managedForm.getForm(); FormToolkit toolkit = managedForm.getToolkit(); toolkit.decorateFormHeading( form.getForm() ); form.updateToolBar(); form.setText( UITexts.overviewPage_title ); form.getBody().setLayout( createGridLayout( 1, 6, 12 ) ); Composite top = toolkit.createComposite( form.getBody() ); top.setLayout( createGridLayout( 2, 0, 0 ) ); top.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) ); Composite bottom = toolkit.createComposite( form.getBody() ); bottom.setLayout( createGridLayout( 2, 0, 0 ) ); bottom.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) ); Composite extra = toolkit.createComposite( form.getBody() ); extra.setLayout( createGridLayout( 2, 0, 0 ) ); extra.setLayoutData( new GridData( GridData.FILL_HORIZONTAL ) ); CabalFormEditor formEditor = ( CabalFormEditor )getEditor(); managedForm.addPart( new GeneralSection( this, top, formEditor, project ) ); managedForm.addPart( new DescriptionSection( this, top, formEditor, project ) ); managedForm.addPart (new BuildSection(this, bottom, formEditor, project)); managedForm.addPart( new LegalSection( this, bottom, formEditor, project ) ); managedForm.addPart (new TestedWithSection(this, extra, formEditor, project)); CabalFormSection dataFiles = new DataFilesSection(this, extra, formEditor, project); dataFiles.getSection().setDescription( UITexts.advancedPage_selectDataFiles ); managedForm.addPart (dataFiles); this.finishedLoading(); } @Override protected void setPackageDescriptionInternal( final PackageDescription packageDescription ) { PackageDescriptionStanza stanza = packageDescription.getPackageStanza(); for( IFormPart p: getManagedForm().getParts() ) { if( p instanceof CabalFormSection ) { ( ( CabalFormSection )p ).setStanza( stanza,false ); } } } }