com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for com.nokia.carbide.cdt.internal.builder.ui.BuilderPreferencePage.java

Source

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: 
*
*/
package com.nokia.carbide.cdt.internal.builder.ui;

import com.nokia.carbide.cdt.builder.BuilderPreferenceConstants;
import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;

import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.*;

public class BuilderPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {

    private BuildSettingsUI buildSettingsUI;

    public BuilderPreferencePage() {
        super();
    }

    protected Control createContents(Composite parent) {
        buildSettingsUI = new BuildSettingsUI(parent.getShell(), SBSv2Utils.enableSBSv1Support(),
                SBSv2Utils.enableSBSv2Support(), false);
        Control control = buildSettingsUI.createControl(parent);

        buildSettingsUI.setBuildTestComponents(isBuildingTestComps());
        buildSettingsUI.setUseIncrementalBuilder(useIncrementalBuilder());
        buildSettingsUI.setUseConcurrentBuilding(useConcurrentBuilding());
        buildSettingsUI.setNumConcurrentBuildJobs(concurrentBuildJobs());
        buildSettingsUI.setUseBuiltInEnvVars(useBuiltInX86Vars());

        if (SBSv2Utils.enableSBSv1Support()) {
            buildSettingsUI.setDefaultCleanLevelv1(getCleanLevel());
            buildSettingsUI.setManageDependencies(manageDependencies());
            buildSettingsUI.setPromptForMMPChangedAction(promptForMMPChangedAction());
            buildSettingsUI.setDefaultMMPChangedAction(defaultMMPChangedAction());
            buildSettingsUI.setDontPromtTrackDeps(promtDontTrackDependencies());
        }

        if (SBSv2Utils.enableSBSv2Support()) {
            buildSettingsUI.setDefaultCleanLevelv2(getCleanLevelv2());
            buildSettingsUI.setKeepGoing(keepGoing());
            buildSettingsUI.setDebugCheck(debugMode());
            buildSettingsUI.setOverrideDefaultMakeEngine(overrideDefaultMakeEngine());
            buildSettingsUI.setMakeEngineText(makeEngine());
            buildSettingsUI.setExtraSBSv2Args(extraSBSv2ArgsTextStore());
        }

        PlatformUI.getWorkbench().getHelpSystem().setHelp(control,
                CarbideCPPBuilderUIHelpIds.CARBIDE_BUILDER_PREFERENCE_PAGE);

        return control;
    }

    public void init(IWorkbench workbench) {
    }

    @Override
    public boolean performOk() {
        performApply();
        return super.performOk();
    }

    @Override
    protected void performApply() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        store.setValue(BuilderPreferenceConstants.PREF_BUILD_TEST_COMPS, buildSettingsUI.getBuildTestComponents());
        store.setValue(BuilderPreferenceConstants.PREF_USE_INCREMENTAL_BUILDER,
                buildSettingsUI.getUseIncrementalBuilder());
        store.setValue(BuilderPreferenceConstants.PREF_USE_CONCURRENT_BUILDING,
                buildSettingsUI.getUseConcurrentBuilding());
        store.setValue(BuilderPreferenceConstants.PREF_CONCURRENT_BUILD_JOBS,
                buildSettingsUI.getNumConcurrentBuildJobs());
        store.setValue(BuilderPreferenceConstants.PREF_USE_BUILIN_X86_VARS, buildSettingsUI.getUseBuiltInEnvVars());

        if (SBSv2Utils.enableSBSv1Support() && buildSettingsUI.wantsSBSv1()) {
            store.setValue(BuilderPreferenceConstants.PREF_CLEAN_LEVEL, buildSettingsUI.getDefaultCleanLevelv1());
            store.setValue(BuilderPreferenceConstants.PREF_MANAGE_DEPENDENCIES,
                    buildSettingsUI.getManageDependencies());
            store.setValue(BuilderPreferenceConstants.PREF_MMP_CHANGED_ACTION_PROMPT,
                    buildSettingsUI.getPromptForMMPChangedAction());
            store.setValue(BuilderPreferenceConstants.PREF_DEFAULT_MMP_CHANGED_ACTION,
                    buildSettingsUI.getDefaultMMPChangedAction());
            store.setValue(BuilderPreferenceConstants.PREF_DONT_PROMPT_FOR_DEPENDENCY_MISMATCH,
                    buildSettingsUI.getDontPromtTrackDeps()); // global setting only
        }

        if (SBSv2Utils.enableSBSv2Support()) {
            store.setValue(BuilderPreferenceConstants.PREF_CLEAN_LEVEL_V2,
                    buildSettingsUI.getDefaultCleanLevelv2());
            store.setValue(BuilderPreferenceConstants.PREF_KEEP_GOING, buildSettingsUI.getKeepGoing());
            store.setValue(BuilderPreferenceConstants.PREF_DEBUG_MODE, buildSettingsUI.getDebugMode());
            store.setValue(BuilderPreferenceConstants.PREF_OVERRIDE_MAKE_ENGINE,
                    buildSettingsUI.getOverrideDefaultMakeEngine());
            store.setValue(BuilderPreferenceConstants.PREF_MAKE_ENGINE, buildSettingsUI.getMakeEngine());
            store.setValue(BuilderPreferenceConstants.PREF_SBSV2_EXTRA_ARGS, buildSettingsUI.getExtraSBSv2Args());
        }
    }

    protected void performDefaults() {
        buildSettingsUI.setBuildTestComponents(true);
        buildSettingsUI.setUseIncrementalBuilder(false);
        buildSettingsUI.setUseConcurrentBuilding(true);
        buildSettingsUI.setNumConcurrentBuildJobs(4);
        buildSettingsUI.setUseBuiltInEnvVars(true);

        if (SBSv2Utils.enableSBSv1Support()) {
            buildSettingsUI.setDefaultCleanLevelv1(0);
            buildSettingsUI.setManageDependencies(true);
            buildSettingsUI.setPromptForMMPChangedAction(true);
            buildSettingsUI.setDefaultMMPChangedAction(0);
            buildSettingsUI.setDontPromtTrackDeps(false);
        }

        if (SBSv2Utils.enableSBSv2Support()) {
            buildSettingsUI.setDefaultCleanLevelv2(0);
            buildSettingsUI.setKeepGoing(false);
            buildSettingsUI.setDebugCheck(false);
            buildSettingsUI.setOverrideDefaultMakeEngine(false);
            buildSettingsUI.setMakeEngineText("make"); //$NON-NLS-1$
        }
    }

    public static boolean useBuiltInX86Vars() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_USE_BUILIN_X86_VARS);
    }

    public static boolean isBuildingTestComps() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_BUILD_TEST_COMPS);
    }

    public static boolean manageDependencies() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_MANAGE_DEPENDENCIES);
    }

    public static boolean useConcurrentBuilding() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_USE_CONCURRENT_BUILDING);
    }

    public static int concurrentBuildJobs() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getInt(BuilderPreferenceConstants.PREF_CONCURRENT_BUILD_JOBS);
    }

    public static boolean useIncrementalBuilder() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_USE_INCREMENTAL_BUILDER);
    }

    public static int getCleanLevel() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getInt(BuilderPreferenceConstants.PREF_CLEAN_LEVEL);
    }

    public static boolean promptForMMPChangedAction() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_MMP_CHANGED_ACTION_PROMPT);
    }

    /**
     * For SBSv1 global preferences only
     * @return
     */
    public static boolean promtDontTrackDependencies() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_DONT_PROMPT_FOR_DEPENDENCY_MISMATCH);
    }

    public static int defaultMMPChangedAction() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getInt(BuilderPreferenceConstants.PREF_DEFAULT_MMP_CHANGED_ACTION);
    }

    public static int getCleanLevelv2() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getInt(BuilderPreferenceConstants.PREF_CLEAN_LEVEL_V2);
    }

    public static boolean keepGoing() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_KEEP_GOING);
    }

    public static boolean debugMode() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_DEBUG_MODE);
    }

    public static boolean overrideDefaultMakeEngine() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getBoolean(BuilderPreferenceConstants.PREF_OVERRIDE_MAKE_ENGINE);
    }

    public static String makeEngine() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getString(BuilderPreferenceConstants.PREF_MAKE_ENGINE);
    }

    public static String extraSBSv2ArgsTextStore() {
        IPreferenceStore store = CarbideBuilderPlugin.getDefault().getPreferenceStore();
        return store.getString(BuilderPreferenceConstants.PREF_SBSV2_EXTRA_ARGS);
    }

}