core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java
Implement variant support for SBSv2 configuration management. Variants aren't selectable, only the global prefs allow you to create variants, if they exist in an SDK.
/*
* Copyright (c) 2006-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.cpp.internal.api.sdk.ui;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;
import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils;
import com.nokia.carbide.cpp.internal.sdk.ui.Messages;
import com.nokia.carbide.cpp.internal.sdk.ui.SDKUIHelpIds;
public class BuildPlatformFilterPage extends PreferencePage implements IWorkbenchPreferencePage {
SBSv1PlatformFilterComposite sbsv1Tab;
SBSv2PlatformFilterComposite sbsv2Tab;
SBSv2ConfigManager sbsConfigManagerTab;
public BuildPlatformFilterPage() {
super();
}
public Control createContents(Composite parent) {
Composite content = new Composite(parent, SWT.NONE);
GridLayout gridLayout = new GridLayout();
content.setLayout(gridLayout);
TabFolder tabFolder = new TabFolder(content, SWT.NONE);
GridData tabFolderGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
tabFolder.setLayoutData(tabFolderGridData);
if (SBSv2Utils.enableSBSv2Support()) {
TabItem sbsv2TabItem = new TabItem(tabFolder, SWT.NONE);
sbsv2TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv2TabText")); //$NON-NLS-1$
sbsv2TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv2TabToolTip")); //$NON-NLS-1$
sbsv2Tab = new SBSv2PlatformFilterComposite(tabFolder);
sbsv2Tab.createControls();
sbsv2TabItem.setControl(sbsv2Tab);
// TODO: We will likely remove this suggested approach
// which means removing the SBSv2PlatformFilterComposite page too
// // New SBS config manager, to replace SBSv2PlatformFilterComposite
// TabItem sbsConfigMgrItem = new TabItem(tabFolder, SWT.NONE);
// sbsConfigMgrItem.setText("SBS Configuration Manager"); //$NON-NLS-1$
// sbsConfigMgrItem.setToolTipText("TODO"); //$NON-NLS-1$
//
// sbsConfigManagerTab = new SBSv2ConfigManager(tabFolder);
// sbsConfigManagerTab.createControls();
// sbsConfigMgrItem.setControl(sbsConfigManagerTab);
}
if (SBSv2Utils.enableSBSv1Support()) {
TabItem sbsv1TabItem = new TabItem(tabFolder, SWT.NONE);
sbsv1TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv1TabText")); //$NON-NLS-1$
sbsv1TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv1TabToolTip")); //$NON-NLS-1$
sbsv1Tab = new SBSv1PlatformFilterComposite(tabFolder);
sbsv1Tab.createControls();
sbsv1TabItem.setControl(sbsv1Tab);
}
PlatformUI.getWorkbench().getHelpSystem().setHelp(super.getControl(), SDKUIHelpIds.SDK_BUILD_FILTER_PAGE);
return content;
}
public void init(IWorkbench workbench) {
}
public boolean performOk() {
if (sbsv1Tab != null) {
sbsv1Tab.performOk();
}
if (sbsv2Tab != null) {
sbsv2Tab.performOk();
}
return super.performOk();
}
@Override
protected void performApply() {
performOk();
super.performApply();
}
@Override
protected void performDefaults() {
if (sbsv1Tab != null) {
sbsv1Tab.setDefaults();
}
if (sbsv2Tab != null) {
sbsv2Tab.setDefaults();
}
super.performDefaults();
}
}