/**
* Copyright (c) 2005-2006 Aptana, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html. If redistributing this code,
* this entire header must remain intact.
*/
package com.aptana.radrails.rcp.main.preferences;
import java.util.List;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.help.internal.base.HelpBasePlugin;
import org.eclipse.ui.internal.browser.BrowserManager;
import org.eclipse.ui.internal.browser.IBrowserDescriptor;
import org.osgi.framework.Version;
import com.aptana.ide.core.IdeLog;
import com.aptana.radrails.rcp.main.MainPlugin;
/**
* Class used to initialize default preference values.
*/
@SuppressWarnings("restriction")
public class PreferenceInitializer extends AbstractPreferenceInitializer
{
/**
* @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
*/
public void initializeDefaultPreferences()
{
Preferences store = HelpBasePlugin.getDefault().getPluginPreferences();
store.setDefault(getOpenInEditorKey(), true);
store = MainPlugin.getDefault().getPluginPreferences();
store.setDefault(IPreferenceConstants.REOPEN_EDITORS_ON_STARTUP, true);
if (store.getBoolean(IPreferenceConstants.WORKSPACE_ENCODING_SET) == false)
{
try
{
ResourcesPlugin.getWorkspace().getRoot().setDefaultCharset("UTF-8", null); //$NON-NLS-1$
}
catch (CoreException e)
{
IdeLog.logError(MainPlugin.getDefault(), Messages.PreferenceInitializer_Cannot_Set_Default_Encoding);
}
store.setValue(IPreferenceConstants.WORKSPACE_ENCODING_SET, true);
MainPlugin.getDefault().savePluginPreferences();
}
// Attempt to set the default browser to Firefox so that external links
// in portal pages will work out of the box
if (Platform.OS_LINUX.equals(Platform.getOS())) {
try {
BrowserManager browserManager = BrowserManager.getInstance();
List webBrowsers = browserManager.getWebBrowsers();
for (Object browserObject : webBrowsers) {
if (browserObject instanceof IBrowserDescriptor) {
IBrowserDescriptor browserDescriptor = (IBrowserDescriptor) browserObject;
if ("Firefox".equals(browserDescriptor.getName())) { //$NON-NLS-1$
browserManager.setCurrentWebBrowser(browserDescriptor);
break;
}
}
}
} catch (Throwable t) {
// Ignore
}
}
}
private String getOpenInEditorKey()
{
String rawVersion = (String) Platform.getBundle("org.eclipse.core.runtime").getHeaders().get("Bundle-Version"); //$NON-NLS-1$ //$NON-NLS-2$
Version v = new Version(rawVersion);
if (v.compareTo(new Version("3.5.0")) >= 0) //$NON-NLS-1$
{
return "in editor"; // 3.5 //$NON-NLS-1$
}
return "open_in_browser"; //$NON-NLS-1$
}
}