/*******************************************************************************
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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
*******************************************************************************/
package gov.redhawk.ide.preferences;
import gov.redhawk.eclipsecorba.library.IdlLibrary;
import gov.redhawk.eclipsecorba.library.LibraryFactory;
import gov.redhawk.eclipsecorba.library.PreferenceNodePathSet;
import gov.redhawk.ide.RedhawkIdeActivator;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
/**
* Class used to initialize default REDHAWK IDE preferences:
* <p />
* <ul>
* <li>Runtime path (i.e. OSSIEHOME)</li>
* <li>IDL include path</li>
* <li>IDL include path delimiter</li>
* </ul>
*/
public class RedhawkIdePreferenceInitializer extends AbstractPreferenceInitializer {
public RedhawkIdePreferenceInitializer() {
}
/**
* {@inheritDoc}
*/
@Override
public void initializeDefaultPreferences() {
final IEclipsePreferences defaultNode = DefaultScope.INSTANCE.getNode(RedhawkIdeActivator.PLUGIN_ID);
if (defaultNode != null) {
if (Platform.getOS().equals(Platform.OS_WIN32)) {
// The RH Runtime cannot be installed on Windows...yet
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_RUNTIME_PATH_PREFERENCE, "");
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE, "");
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE_DELIMITER, ";");
} else {
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_RUNTIME_PATH_PREFERENCE, "${OSSIEHOME}");
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE,
"${OssieHome}/share/idl:/usr/share/idl/omniORB:/usr/share/idl/omniORB/COS");
defaultNode.put(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE_DELIMITER, ":");
}
}
}
/**
* Configures the {@link IdlLibrary}'s paths. They are set to reference the IDE's preference settings.
*
* @since 3.0
*/
public static void initializeIdlLibraryToDefaults(final IdlLibrary library) {
final PreferenceNodePathSet pathSet = LibraryFactory.eINSTANCE.createPreferenceNodePathSet();
IEclipsePreferences node = DefaultScope.INSTANCE.getNode(RedhawkIdeActivator.PLUGIN_ID);
pathSet.setDelimiter(node.get(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE_DELIMITER,
RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE_DELIMITER));
pathSet.setFileUri(true);
pathSet.setKey(RedhawkIdePreferenceConstants.RH_IDE_IDL_INCLUDE_PATH_PREFERENCE);
pathSet.setQualifier(RedhawkIdeActivator.PLUGIN_ID);
pathSet.setReplaceEnv(true);
library.getPaths().clear();
library.getPaths().add(pathSet);
}
}