debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/BuildOptionsSelectionPage.java
changeset 273 c2533fd23253
child 566 960058f9da89
child 569 369485fbe634
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/BuildOptionsSelectionPage.java	Thu Jun 18 16:52:27 2009 -0500
@@ -0,0 +1,132 @@
+/* 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.cdt.internal.debug.launch.wizard;
+
+import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.PreferencesUtil;
+
+/**
+ * A wizard page that handles build options.
+ *
+ */
+public class BuildOptionsSelectionPage extends WizardPage {
+
+	private Button fDisableBuildButton;
+	private Button fEnableBuildButton;
+	private Button fWorkspaceSettingsButton;
+	private Link fWorkpsaceSettingsLink;
+
+	/**
+	 * Constructor.
+	 */
+	public BuildOptionsSelectionPage() {
+		super("BuildOptionsSelectionPage"); //$NON-NLS-1$
+		setTitle(Messages.getString("BuildOptionsSelectionPage.Title")); //$NON-NLS-1$
+		setDescription(Messages.getString("BuildOptionsSelectionPage.Description")); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		final Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout(1, false));
+        composite.setLayoutData(new GridData());
+		setControl(composite);
+
+		Group optionsGroup = new Group(composite, SWT.NONE);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 2;
+		gridLayout.marginHeight = 5;
+		gridLayout.marginWidth = 5;
+		gridLayout.makeColumnsEqualWidth= true;
+		optionsGroup.setLayoutData(gridData);
+		optionsGroup.setLayout(gridLayout);
+		optionsGroup.setText(Messages.getString("BuildOptionsSelectionPage.OptionsGroupLabel"));
+
+		fDisableBuildButton = new Button(optionsGroup, SWT.RADIO);
+		fDisableBuildButton.setText(Messages.getString("BuildOptionsSelectionPage.DisableButtonLabel")); //$NON-NLS-1$
+		fDisableBuildButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.DisableButtonToolTip")); //$NON-NLS-1$
+		new Label(optionsGroup, SWT.NONE);
+		fEnableBuildButton = new Button(optionsGroup, SWT.RADIO);
+		fEnableBuildButton.setText(Messages.getString("BuildOptionsSelectionPage.EnableButtonLabel")); //$NON-NLS-1$
+		fEnableBuildButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.EnableButtonToolTip")); //$NON-NLS-1$
+		new Label(optionsGroup, SWT.NONE);
+		fWorkspaceSettingsButton = new Button(optionsGroup, SWT.RADIO);
+		fWorkspaceSettingsButton.setText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsButtonLabel")); //$NON-NLS-1$
+		fWorkspaceSettingsButton.setToolTipText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsButtonToolTip")); //$NON-NLS-1$
+		
+		fWorkpsaceSettingsLink = new Link(optionsGroup, SWT.NONE);
+		fWorkpsaceSettingsLink.setText(Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsLinkLabel")); //$NON-NLS-1$
+		fWorkpsaceSettingsLink.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				PreferencesUtil.createPreferenceDialogOn(
+						composite.getShell(), 
+						Messages.getString("BuildOptionsSelectionPage.WorkspaceSettingsPageID"), //$NON-NLS-1$
+						null, 
+						null).open();
+			}
+		});
+
+		setDefaults();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.DialogPage#performHelp()
+	 */
+	public void performHelp() {
+		PlatformUI.getWorkbench().getHelpSystem().displayHelp(LaunchWizardHelpIds.BUILD_OPTIONS_SELECTION_PAGE);
+	}
+
+    /**
+     * Initialize the default values for this page
+     */
+    public void setDefaults() {
+    	fWorkspaceSettingsButton.setSelection(true);
+    }
+
+	/**
+	 * Copy build option value to the given launch configuration
+	 * @param config - launch configuration provided by caller
+	 */
+    public void updateConfiguration(ILaunchConfigurationWorkingCopy config) {
+		int buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_USE_WORKSPACE_SETTING;
+		if (fDisableBuildButton.getSelection()) {
+			buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_DISABLED;
+		} else if (fEnableBuildButton.getSelection()) {
+			buildBeforeLaunchValue = ICDTLaunchConfigurationConstants.BUILD_BEFORE_LAUNCH_ENABLED;
+		}
+		config.setAttribute(ICDTLaunchConfigurationConstants.ATTR_BUILD_BEFORE_LAUNCH, buildBeforeLaunchValue);
+    }
+
+}
\ No newline at end of file