package eu.jucy.gui.settings;
import java.io.File;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.IntegerFieldEditor;
import eu.jucy.gui.Lang;
import uc.PI;
public class DownloadsPreferencePage extends UCPrefpage {
public DownloadsPreferencePage(){
super(PI.PLUGIN_ID);
}
@Override
protected void createFieldEditors() {
//Directories
checkExistance(PI.downloadDirectory);
DirectoryFieldEditor defdownloaddir = new DirectoryFieldEditor(PI.downloadDirectory,
Lang.DefaultDownloadDirectory,
getFieldEditorParent());
addField(defdownloaddir);
checkExistance(PI.tempDownloadDirectory);
DirectoryFieldEditor tempdownloaddir = new DirectoryFieldEditor(PI.tempDownloadDirectory,
Lang.UnfinishedDownloadsDirectory,
getFieldEditorParent());
addField(tempdownloaddir);
//Limits
IntegerFieldEditor maxsimDownloads = new IntegerFieldEditor(PI.maxSimDownloads,
Lang.MaximumSimultaneousDownloads,
getFieldEditorParent());
maxsimDownloads.setValidRange(0, Integer.MAX_VALUE);
addField( maxsimDownloads );
IntegerFieldEditor downlimit = new IntegerFieldEditor(PI.downloadLimit,
Lang.DownloadLimit,
getFieldEditorParent());
downlimit.setValidRange(0, Integer.MAX_VALUE/1024);
addField( downlimit );
}
private static File checkExistance(String pref) {
File dir = new File(PI.get(pref));
if (!dir.isDirectory() && !dir.mkdirs()) {
logger.error("Unable to use directory: "+dir);
dir = new File(DefaultScope.INSTANCE .getNode(PI.PLUGIN_ID).get(pref, dir.toString()));
if (!dir.isDirectory() && !dir.mkdirs()) {
logger.fatal("Unable to set fallback directory. "+pref);
}
}
return dir;
}
}