mbtarranger.preferences.PreferenceInitializer.java Source code

Java tutorial

Introduction

Here is the source code for mbtarranger.preferences.PreferenceInitializer.java

Source

/*******************************************************************************
 * Copyright (c) 2013, 2014 ETAS GmbH.
 * 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
 *
 * Contributors:
 * Dennis Eder (ETAS GmbH) - initial API and implementation and/or initial documentation
 *******************************************************************************/
package mbtarranger.preferences;

import java.io.File;
import java.util.Map;

import mbtarranger.Activator;

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.jface.preference.IPreferenceStore;

/**
 * Class used to initialize default preference values.
 */
public class PreferenceInitializer extends AbstractPreferenceInitializer {

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
     * initializeDefaultPreferences()
     */
    public void initializeDefaultPreferences() {
        IPreferenceStore store = Activator.getDefault().getPreferenceStore();
        if (isLinux()) {
            store.setDefault(PreferenceConstants.P_GRAPHVIZ_DIR, "/usr/bin/Graphviz2.26.3/");
            store.setDefault(PreferenceConstants.P_MSVC_COMMONTOOLS_DIR, "--n.a.--");
            store.setDefault(PreferenceConstants.P_SMV_DIR, "/usr/bin/nusmv258");
            store.setDefault(PreferenceConstants.P_PLATFORM_CHOICE, PreferenceConstants.const_Platform_LinuxGCC);
        } else {
            /* Graphviz2 */
            if (new File("C:\\Program Files\\Graphviz2.26.3\\bin\\dot.exe").exists()) {
                store.setDefault(PreferenceConstants.P_GRAPHVIZ_DIR, "C:\\Program Files\\Graphviz2.26.3\\bin");
            } else if (new File("C:\\Program Files (x86)\\Graphviz2.26.3\\bin\\dot.exe").exists()) {
                store.setDefault(PreferenceConstants.P_GRAPHVIZ_DIR,
                        "C:\\Program Files (x86)\\Graphviz2.26.3\\bin");
            } else {
                store.setDefault(PreferenceConstants.P_GRAPHVIZ_DIR, "???\\Graphviz2.26.3\\bin");
            }
            /* SMV */
            if (new File("C:\\Program Files\\NuSMV\\2.5.4\\bin\\nusmv\\nusmv.exe").exists()) {
                store.setDefault(PreferenceConstants.P_SMV_DIR, "C:\\Program Files\\NuSMV\\2.5.4\\bin\\nusmv");
            } else if (new File("C:\\Program Files (x86)\\NuSMV\\2.5.4\\bin\\nusmv\\nusmv.exe").exists()) {
                store.setDefault(PreferenceConstants.P_SMV_DIR,
                        "C:\\Program Files (x86)\\NuSMV\\2.5.4\\bin\\nusmv");
            } else {
                store.setDefault(PreferenceConstants.P_SMV_DIR, "???\\nusmv2.5.4");
            }
            /* C Compiler */
            if (isMsVisualStudio2010CompilerToolchain()) {
                store.setDefault(PreferenceConstants.P_MSVC_COMMONTOOLS_DIR,
                        "C:\\Program Files\\Microsoft Visual Studio 10.0\\Common7\\Tools"/* "%VS100COMNTOOLS%vsvars32.bat" */);
                store.setDefault(PreferenceConstants.P_PLATFORM_CHOICE,
                        PreferenceConstants.const_Platform_WindowsMSSVS);
            } else if (isMsVisualStudio2012CompilerToolchain()) {
                store.setDefault(PreferenceConstants.P_MSVC_COMMONTOOLS_DIR,
                        "C:\\Program Files\\Microsoft Visual Studio 11.0\\Common7\\Tools"/* "%VS110COMNTOOLS%vsvars32.bat" */);
                store.setDefault(PreferenceConstants.P_PLATFORM_CHOICE,
                        PreferenceConstants.const_Platform_WindowsMSSVS);
            } else if (isMsVisualStudio2008CompilerToolchain()) {
                store.setDefault(PreferenceConstants.P_MSVC_COMMONTOOLS_DIR,
                        "C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\Tools"/* "%VS90COMNTOOLS%vsvars32.bat" */);
                store.setDefault(PreferenceConstants.P_PLATFORM_CHOICE,
                        PreferenceConstants.const_Platform_WindowsMSSVS);
            } else {
                store.setDefault(PreferenceConstants.P_MSVC_COMMONTOOLS_DIR,
                        "???\\Microsoft Visual Studio ???\\Common7\\Tools"/* "%VS100COMNTOOLS%vsvars32.bat" */);
                store.setDefault(PreferenceConstants.P_PLATFORM_CHOICE,
                        PreferenceConstants.const_Platform_WindowsMinGW);
            }
        }
    }

    private boolean isLinux() {
        Map<String, String> env = System.getenv();
        if (env.containsKey("OS") && env.get("OS").toLowerCase().contains("win"))
            return false;
        return true;
    }

    private boolean isMsVisualStudio2008CompilerToolchain() {
        Map<String, String> env = System.getenv();
        if (env.containsKey("VS90COMNTOOLS") && env.get("VS90COMNTOOLS").contains("9.0\\Common7\\Tools"))
            return true;
        return false;
    }

    private boolean isMsVisualStudio2010CompilerToolchain() {
        Map<String, String> env = System.getenv();
        if (env.containsKey("VS100COMNTOOLS") && env.get("VS100COMNTOOLS").contains("10.0\\Common7\\Tools"))
            return true;
        return false;
    }

    private boolean isMsVisualStudio2012CompilerToolchain() {
        Map<String, String> env = System.getenv();
        if (env.containsKey("VS110COMNTOOLS") && env.get("VS110COMNTOOLS").contains("11.0\\Common7\\Tools"))
            return true;
        return false;
    }

}