/**
* (c) 2011, Alejandro Serrano
* Released under the terms of the EPL.
*/
package net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.overview;
import java.util.ArrayList;
import java.util.List;
import net.sf.eclipsefp.haskell.core.cabal.CabalImplementationManager;
import net.sf.eclipsefp.haskell.ui.internal.editors.cabal.forms.Choice;
import org.osgi.framework.Version;
/**
* Possible versions of Cabal that may be set as minimal version required.
* @author Alejandro Serrano
*
*/
public class CabalVersionChoice extends Choice<String> {
private static String[] values = new String[] { "1.2", "1.4", "1.6", "1.8", "1.10", "1.12" };
static {
Version v=CabalImplementationManager.getCabalLibraryVersion();
if (v!=null){
int min=v.getMinor();
int max=v.getMajor();
List<String> vals=new ArrayList<>();
for (int a=1;a<=max;a++){
for (int b=2;b<=min;b+=2){
vals.add( a+"."+b );
}
}
values=vals.toArray( new String[vals.size()]);
}
}
@Override
public String[] getValues() {
return values;
}
@Override
public boolean allowOther() {
return true;
}
@Override
public String fromCabalString( final String s ) {
return s;
}
@Override
public String toCabalString( final String o ) {
return o;
}
@Override
public String fromShownString( final String s ) {
return s;
}
@Override
public String toShownString( final String o ) {
return o;
}
}