// Path: proclipsing.core/src/proclipsing/core/Activator.java
// public class Activator extends AbstractUIPlugin {
// 
// 	// The plug-in ID
// 	public static final String PLUGIN_ID = "proclipsing.core";
// 	
// 	// The shared instance
// 	private static Activator plugin;
// 	
// 	public static final String PROJECT_DECORATOR = "icons/project_decorator.png";
// 	
// 	/**
// 	 * The constructor
// 	 */
// 	public Activator() {
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
// 	 */
// 	public void start(BundleContext context) throws Exception {
// 		super.start(context);
// 		plugin = this;
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
// 	 */
// 	public void stop(BundleContext context) throws Exception {
// 		plugin = null;
// 		super.stop(context);
// 	}
// 
// 	/**
// 	 * Returns the shared instance
// 	 *
// 	 * @return the shared instance
// 	 */
// 	public static Activator getDefault() {
// 		return plugin;
// 	}
// 
// 	@Override
// 	protected void initializeImageRegistry(ImageRegistry reg) {
// 		super.initializeImageRegistry(reg);
// 		reg.put(PROJECT_DECORATOR, imageDescriptorFromPlugin(PLUGIN_ID, PROJECT_DECORATOR));
// 	}
// }
// 
// Path: proclipsing.core/src/proclipsing/os/OS.java
// public class OS {
// 	
// 	private static OSHelper helper;
// 	
// 	/**
// 	 * Get a platform specific version of OSHelper
// 	 * Keep the instance around and re-use it after it's created
// 	 * 
// 	 * @return
// 	 */
// 	public static synchronized OSHelper helper() {
// 		if (helper == null) {
// 			synchronized (OSHelper.class) {
// 				if (helper == null)
// 					helper = createHelper();
// 			}
// 		}
// 		return helper;
// 	}
// 	
// 	private static OSHelper createHelper() {
// 		if (isWindows())
// 			return new WindowsOSHelper();
// 		if (isMac())
// 			return new MacOSHelper();
// 		if (isLinux())
// 			return new LinuxOSHelper();
// 		
// 		throw new RuntimeException(
// 				"Your Platform " + System.getProperty("os.name") + " is not supported.");
// 	}
// 	
// 	private static boolean isWindows() {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("windows") > -1;
// 	}
// 	
// 	private static boolean isMac() {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("mac") > -1;
// 	}
// 	
// 	private static boolean isLinux () {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("linux") > -1;
// 	}
// }


import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import proclipsing.core.Activator;
import proclipsing.os.OS;
	
    //private List<String> libraries;
    private List<String> baselibs;
    private List<String> userlibs;
    private String name;
    private String app_path;
    private String sketch_path;

    
    public ProjectPreferences() {
    	this(null, getDefaultAppPath(), getDefaultSketchPath(), 
    	        new ArrayList<String>(), new ArrayList<String>());
    }
    
    public ProjectPreferences(ProjectPreferences prefs) {
    	this(prefs.getName(), prefs.getAppPath(), prefs.getSketchPath(), 
    	        new ArrayList<String>(prefs.getBaselibs()),  
    	        new ArrayList<String>(prefs.getUserlibs()));
    }
    
    public ProjectPreferences(String name, 
    		String appPath, String sketchPath, 
    		List<String> baselibs, List<String> userlibs) {
    	this.name = name;
    	this.app_path = appPath;
    	this.sketch_path = sketchPath;
    	this.baselibs = baselibs;
    	this.userlibs = userlibs;
    }

// Path: proclipsing.core/src/proclipsing/core/Activator.java
// public class Activator extends AbstractUIPlugin {
// 
// 	// The plug-in ID
// 	public static final String PLUGIN_ID = "proclipsing.core";
// 	
// 	// The shared instance
// 	private static Activator plugin;
// 	
// 	public static final String PROJECT_DECORATOR = "icons/project_decorator.png";
// 	
// 	/**
// 	 * The constructor
// 	 */
// 	public Activator() {
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
// 	 */
// 	public void start(BundleContext context) throws Exception {
// 		super.start(context);
// 		plugin = this;
// 	}
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
// 	 */
// 	public void stop(BundleContext context) throws Exception {
// 		plugin = null;
// 		super.stop(context);
// 	}
// 
// 	/**
// 	 * Returns the shared instance
// 	 *
// 	 * @return the shared instance
// 	 */
// 	public static Activator getDefault() {
// 		return plugin;
// 	}
// 
// 	@Override
// 	protected void initializeImageRegistry(ImageRegistry reg) {
// 		super.initializeImageRegistry(reg);
// 		reg.put(PROJECT_DECORATOR, imageDescriptorFromPlugin(PLUGIN_ID, PROJECT_DECORATOR));
// 	}
// }
// 
// Path: proclipsing.core/src/proclipsing/os/OS.java
// public class OS {
// 	
// 	private static OSHelper helper;
// 	
// 	/**
// 	 * Get a platform specific version of OSHelper
// 	 * Keep the instance around and re-use it after it's created
// 	 * 
// 	 * @return
// 	 */
// 	public static synchronized OSHelper helper() {
// 		if (helper == null) {
// 			synchronized (OSHelper.class) {
// 				if (helper == null)
// 					helper = createHelper();
// 			}
// 		}
// 		return helper;
// 	}
// 	
// 	private static OSHelper createHelper() {
// 		if (isWindows())
// 			return new WindowsOSHelper();
// 		if (isMac())
// 			return new MacOSHelper();
// 		if (isLinux())
// 			return new LinuxOSHelper();
// 		
// 		throw new RuntimeException(
// 				"Your Platform " + System.getProperty("os.name") + " is not supported.");
// 	}
// 	
// 	private static boolean isWindows() {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("windows") > -1;
// 	}
// 	
// 	private static boolean isMac() {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("mac") > -1;
// 	}
// 	
// 	private static boolean isLinux () {
// 	    return System.getProperty("os.name").toLowerCase().indexOf("linux") > -1;
// 	}
// }


// Path: proclipsing.core/src/proclipsing/core/preferences/ProjectPreferences.java
import java.util.ArrayList;
import java.util.List;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import proclipsing.core.Activator;
import proclipsing.os.OS;

	
    //private List<String> libraries;
    private List<String> baselibs;
    private List<String> userlibs;
    private String name;
    private String app_path;
    private String sketch_path;

    
    public ProjectPreferences() {
    	this(null, getDefaultAppPath(), getDefaultSketchPath(), 
    	        new ArrayList<String>(), new ArrayList<String>());
    }
    
    public ProjectPreferences(ProjectPreferences prefs) {
    	this(prefs.getName(), prefs.getAppPath(), prefs.getSketchPath(), 
    	        new ArrayList<String>(prefs.getBaselibs()),  
    	        new ArrayList<String>(prefs.getUserlibs()));
    }
    
    public ProjectPreferences(String name, 
    		String appPath, String sketchPath, 
    		List<String> baselibs, List<String> userlibs) {
    	this.name = name;
    	this.app_path = appPath;
    	this.sketch_path = sketchPath;
    	this.baselibs = baselibs;
    	this.userlibs = userlibs;
    }

    public List<String> getBaselibs() {