// Copyright (c) 2009-2010 by the projectusus.org contributors
// This software is released under the terms and conditions
// of the Eclipse Public License (EPL) 1.0.
// See http://www.eclipse.org/legal/epl-v10.html for details.
package org.projectusus.projectsettings.core;
import java.util.List;
import org.eclipse.core.resources.IProject;
public class SettingsAccess {
public void transferSettingsFromProject( List<IProject> projects, IProject source, WhichPrefs[] whichPrefs ) {
ProjectPreferences projectPreferences = new ProjectPreferences( source );
for( IProject project : projects ) {
save( project, projectPreferences, whichPrefs );
}
}
public void applySettings( List<IProject> projects, Preferences settings ) {
if( settings == null ) {
return;
}
for( IProject project : projects ) {
save( project, settings, new WhichPrefs[] { WhichPrefs.All } );
}
}
private void save( IProject project, Preferences settings, WhichPrefs[] whichPrefs ) {
ProjectPreferences projectProperties = new ProjectPreferences( project );
for( WhichPrefs prefs : whichPrefs ) {
switch( prefs ) {
case All:
projectProperties.updateFrom( settings.getAll() );
break;
case CodeCompletion:
projectProperties.updateFrom( settings.getCodeCompletePrefs() );
break;
case CompilerWarnings:
projectProperties.updateFrom( settings.getCompilerWarningsPrefs() );
break;
case Formatting:
projectProperties.updateFrom( settings.getFormattingPrefs() );
break;
default:
break;
}
}
projectProperties.persist();
}
}