// Copyright (c) 2003-2005 by Leif Frenzel - see http://leiffrenzel.de
package net.sf.eclipsefp.haskell.ghccompiler.ui.preferences;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import net.sf.eclipsefp.common.ui.dialog.DialogField;
import net.sf.eclipsefp.haskell.ghccompiler.core.GhcParameter;
import net.sf.eclipsefp.haskell.ghccompiler.core.GhcParameterType;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/** <p>Tab for Language options on the ghc preference page.</p>
*
* @author Leif Frenzel
*/
public class LanguageTab extends GhcCompilerTab {
private final List<DialogField> fields=new LinkedList<>();
public LanguageTab( final IPreferenceStore store ) {
super( store );
}
// interface methods of Tab
///////////////////////////
@Override
public Control createControl( final Composite parent ) {
Composite composite = new Composite( parent, SWT.NONE );
composite.setLayout( new GridLayout() );
for (GhcParameter p:GhcParameter.values()){
if (GhcParameterType.LANGUAGE.equals( p.getType() )){
fields.add( createBooleanField( composite, p ));
}
}
return composite;
}
@Override
public void propertyChange( final PropertyChangeEvent event ) {
Iterator<DialogField> it=fields.iterator();
for (GhcParameter p:GhcParameter.values()){
if (GhcParameterType.LANGUAGE.equals( p.getType() )){
it.next().setInfo( getFromStore(p.getName()) );
}
}
}
}