/**
* Copyright (c) 2012 by JP Moresmau
* 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.preferences.scion;
import java.io.IOException;
import net.sf.eclipsefp.haskell.style.stylishhaskell.SHConfiguration;
import net.sf.eclipsefp.haskell.style.stylishhaskell.StylishHaskell;
import net.sf.eclipsefp.haskell.style.stylishhaskell.ui.SHConfigurationComposite;
import net.sf.eclipsefp.haskell.style.util.StyleText;
import net.sf.eclipsefp.haskell.ui.internal.preferences.IPreferenceConstants;
import net.sf.eclipsefp.haskell.ui.internal.util.UITexts;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/**
* Configure path to stylish-haskell
* @author JP Moresmau
*
*/
public class StylishHaskellPP extends ExecutablePP {
private SHConfigurationComposite confComp;
/**
* format on save?
*/
private BooleanFieldEditor formatOnSave;
public StylishHaskellPP(){
super("stylish-haskell","stylish-haskell",IPreferenceConstants.STYLISHHASKELL_EXECUTABLE);
}
/* (non-Javadoc)
* @see net.sf.eclipsefp.haskell.ui.internal.preferences.scion.ExecutablePP#createContents(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createContents( final Composite parentComposite ) {
Control c=super.createContents( parentComposite );
confComp=new SHConfigurationComposite( parentComposite, SWT.NONE );
confComp.setConfiguration( StylishHaskell.getWorkspaceConfiguration() );
formatOnSave = new BooleanFieldEditor( IPreferenceConstants.STYLISHHASKELL_SAVE,
UITexts.sh_save,
parentComposite );
formatOnSave.setPage(this);
formatOnSave.setPreferenceStore( getPreferenceStore() );
formatOnSave.load();
return c;
}
/* (non-Javadoc)
* @see net.sf.eclipsefp.haskell.ui.internal.preferences.scion.ExecutablePP#performOk()
*/
@Override
public boolean performOk() {
SHConfiguration conf=confComp.getConfiguration();
try {
StylishHaskell.setWorkspaceConfiguration( conf );
formatOnSave.store();
return super.performOk();
} catch (IOException ioe){
MessageDialog.openError( getShell(), StyleText.sh_save_error, ioe.getLocalizedMessage() );
return false;
}
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performDefaults()
*/
@Override
protected void performDefaults() {
confComp.setConfiguration(new SHConfiguration());
formatOnSave.loadDefault();
super.performDefaults();
}
}