package net.sf.eclipsefp.haskell.core.project; import net.sf.eclipsefp.haskell.core.HaskellCorePlugin; import net.sf.eclipsefp.haskell.core.internal.project.DescriptorFileInfo; import net.sf.eclipsefp.haskell.core.internal.project.ProjectCreationOperation; import net.sf.eclipsefp.haskell.core.preferences.ICorePreferenceNames; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.preferences.IPreferencesService; public class HaskellProjectCreationOperation extends ProjectCreationOperation { public HaskellProjectCreationOperation() { super(); } @Override protected String[] getProjectNatures() { return new String[] { HaskellNature.NATURE_ID }; } @Override protected String[] getDirectories() { if (! createFolders() ) { return new String[0]; } //IPreferencesService service = Platform.getPreferencesService(); //String sourcePath = service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_SRC, null, null ); //String outputPath = service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_OUT, null, null ); return new String[] { getSourceDir() }; // , outputPath } public static String getSourceDir(){ String sourcePath=null; if (createFolders() ) { IPreferencesService service = Platform.getPreferencesService(); sourcePath = service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_SRC, null, null ); } return sourcePath; } @Override protected DescriptorFileInfo getDescFileInfo() { return null; // new DescriptorFileInfo( // HaskellProjectManager.HASKELL_PROJECT_DESCRIPTOR, // createDescriptorContent()); } // private String createDescriptorContent() { // if (! createFolders() ) { // return ""; //$NON-NLS-1$ // } // IPreferencesService service = Platform.getPreferencesService(); // return HaskellProjectManager.createDescriptorContent( // service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_SRC, null, null ), // // service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_OUT, null, null ), // //service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.TARGET_BINARY, null, null ), // service.getString( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.SELECTED_COMPILER, null, null )); // } public static boolean createFolders() { return Platform.getPreferencesService().getBoolean( HaskellCorePlugin.getPluginId(), ICorePreferenceNames.FOLDERS_IN_NEW_PROJECT, false, null ); } }