1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-09-10 12:03:16 +02:00

Bug #189303: C++ Build page requires manual resizing of project properties dialog

This commit is contained in:
Oleg Krasilnikov 2007-06-05 12:12:38 +00:00
parent 4caaa19d5a
commit 781426f7b8
5 changed files with 360 additions and 204 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

View file

@ -68,6 +68,7 @@ Tool.settings=Tool settings
Build.steps=Build steps
Build.artifact=Build artifact
Builder.settings=Builder settings
WBB.settings=Behaviour
Includes=Includes
Symbols=Symbols
Libraries=Libraries

View file

@ -141,16 +141,14 @@
point="org.eclipse.ui.actionSets">
<actionSet
id="org.eclipse.cdt.managedbuilder.ui.BuildAllActionSet"
label="%BuildCfgMenu.label"
visible="true">
label="%BuildCfgMenu.label">
<action
class="org.eclipse.cdt.managedbuilder.ui.actions.BuildAllAction"
enablesFor="+"
id="org.eclipse.cdt.managedbuilder.ui.buildAllAction0"
label="%BuildMenu.label"
menubarPath="project/org.eclipse.cdt.ui.prjmenu/gm1"
style="pulldown"
/>
style="pulldown"/>
</actionSet>
</extension>
<extension
@ -211,6 +209,12 @@
name="%Builder.settings"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_head_build"
weight="004"/>
<tab
class="org.eclipse.cdt.managedbuilder.ui.properties.BuildBehaviourTab"
icon="icons/obj16/target_obj.gif"
name="%WBB.settings"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_head_build"
weight="005"/>
<tab
class="org.eclipse.cdt.managedbuilder.ui.properties.CPropertyVarsTab"
name="(Single) CDT Vars (macros)"
@ -344,11 +348,16 @@
name="%Discovery.options"
parent="org.eclipse.cdt.managedbuilder.ui.preferences.PrefPage_NewCDTProject"
/>
<tab
<tab
class="org.eclipse.cdt.managedbuilder.ui.properties.BuilderSettingsTab"
icon="icons/obj16/build_settings.gif"
name="%Builder.settings"
parent="org.eclipse.cdt.managedbuilder.ui.preferences.PrefPage_NewCDTProject"/>
<tab
class="org.eclipse.cdt.managedbuilder.ui.properties.BuildBehaviourTab"
icon="icons/obj16/target_obj.gif"
name="%WBB.settings"
parent="org.eclipse.cdt.managedbuilder.ui.preferences.PrefPage_NewCDTProject"/>
<tab
class="org.eclipse.cdt.managedbuilder.ui.preferences.PreferredToolchainsTab"
name="%Preferred.toolchains"

View file

@ -0,0 +1,327 @@
/*******************************************************************************
* Copyright (c) 2007 Intel Corporation and others.
* 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:
* Intel Corporation - Initial API and implementation
* IBM Corporation
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.ui.properties;
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
import org.eclipse.cdt.managedbuilder.core.IBuilder;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.internal.buildmodel.BuildProcessManager;
import org.eclipse.cdt.managedbuilder.internal.core.Configuration;
import org.eclipse.cdt.newmake.core.IMakeBuilderInfo;
import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
import org.eclipse.cdt.ui.newui.TriButton;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.AccessibleAdapter;
import org.eclipse.swt.accessibility.AccessibleEvent;
import org.eclipse.swt.accessibility.AccessibleListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
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.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;
public class BuildBehaviourTab extends AbstractCBuildPropertyTab {
// Widgets
//3
private TriButton b_stopOnError;
private TriButton b_parallel;
private Button b_parallelOpt;
private Button b_parallelNum;
private Spinner parallelProcesses;
private Label title2;
private Button b_autoBuild;
private Text t_autoBuild;
private Button b_cmdBuild;
private Text t_cmdBuild;
private Button b_cmdClean;
private Text t_cmdClean;
private IBuilder bld;
private Configuration cfg;
protected final int cpuNumber = BuildProcessManager.checkCPUNumber();
public void createControls(Composite parent) {
super.createControls(parent);
usercomp.setLayout(new GridLayout(1, false));
// Build setting group
Group g3 = setupGroup(usercomp, Messages.getString("BuilderSettingsTab.9"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
GridLayout gl = new GridLayout(2, true);
gl.verticalSpacing = 0;
gl.marginWidth = 0;
g3.setLayout(gl);
Composite c1 = new Composite(g3, SWT.NONE);
setupControl(c1, 1, GridData.FILL_BOTH);
GridData gd = (GridData)c1.getLayoutData();
gd.verticalSpan = 2;
gd.verticalIndent = 0;
c1.setLayoutData(gd);
gl = new GridLayout(1, false);
gl.verticalSpacing = 0;
gl.marginWidth = 0;
gl.marginHeight = 0;
c1.setLayout(gl);
b_stopOnError = setupTri(c1, Messages.getString("BuilderSettingsTab.10"), 1, GridData.BEGINNING); //$NON-NLS-1$
Composite c2 = new Composite(g3, SWT.NONE);
setupControl(c2, 1, GridData.FILL_BOTH);
gl = new GridLayout(1, false);
gl.verticalSpacing = 0;
gl.marginWidth = 0;
gl.marginHeight = 0;
c2.setLayout(gl);
b_parallel = setupTri(c2, Messages.getString("BuilderSettingsTab.11"), 1, GridData.BEGINNING); //$NON-NLS-1$
Composite c3 = new Composite(g3, SWT.NONE);
setupControl(c3, 1, GridData.FILL_BOTH);
gl = new GridLayout(2, false);
gl.verticalSpacing = 0;
gl.marginWidth = 0;
gl.marginHeight = 0;
c3.setLayout(gl);
b_parallelOpt= new Button(c3, SWT.RADIO);
b_parallelOpt.setText(Messages.getString("BuilderSettingsTab.12")); //$NON-NLS-1$
setupControl(b_parallelOpt, 2, GridData.BEGINNING);
((GridData)(b_parallelOpt.getLayoutData())).horizontalIndent = 15;
b_parallelOpt.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
cfg.setParallelDef(b_parallelOpt.getSelection());
updateButtons();
}});
b_parallelNum= new Button(c3, SWT.RADIO);
b_parallelNum.setText(Messages.getString("BuilderSettingsTab.13")); //$NON-NLS-1$
setupControl(b_parallelNum, 1, GridData.BEGINNING);
((GridData)(b_parallelNum.getLayoutData())).horizontalIndent = 15;
b_parallelNum.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
cfg.setParallelDef(!b_parallelNum.getSelection());
updateButtons();
}});
parallelProcesses = new Spinner(c3, SWT.BORDER);
setupControl(parallelProcesses, 1, GridData.BEGINNING);
parallelProcesses.setValues(cpuNumber, 1, 10000, 0, 1, 10);
parallelProcesses.addSelectionListener(new SelectionAdapter () {
public void widgetSelected(SelectionEvent e) {
cfg.setParallelNumber(parallelProcesses.getSelection());
updateButtons();
}
});
// Workbench behaviour group
AccessibleListener makeTargetLabelAccessibleListener = new AccessibleAdapter() {
public void getName(AccessibleEvent e) {
e.result = Messages.getString("BuilderSettingsTab.16"); //$NON-NLS-1$
}
};
Group g4 = setupGroup(usercomp, Messages.getString("BuilderSettingsTab.14"), 3, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
setupLabel(g4, Messages.getString("BuilderSettingsTab.15"), 1, GridData.BEGINNING); //$NON-NLS-1$
title2 = setupLabel(g4, Messages.getString("BuilderSettingsTab.16"), 2, GridData.BEGINNING); //$NON-NLS-1$
b_autoBuild = setupCheck(g4, Messages.getString("BuilderSettingsTab.17"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_autoBuild = setupBlock(g4, b_autoBuild);
t_autoBuild.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, t_autoBuild.getText());
} catch (CoreException ex) {}
}} );
t_autoBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
setupLabel(g4, Messages.getString("BuilderSettingsTab.18"), 3, GridData.BEGINNING); //$NON-NLS-1$
b_cmdBuild = setupCheck(g4, Messages.getString("BuilderSettingsTab.19"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_cmdBuild = setupBlock(g4, b_cmdBuild);
t_cmdBuild.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, t_cmdBuild.getText());
} catch (CoreException ex) {}
}} );
t_cmdBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
b_cmdClean = setupCheck(g4, Messages.getString("BuilderSettingsTab.20"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_cmdClean = setupBlock(g4, b_cmdClean);
t_cmdClean.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, t_cmdClean.getText());
} catch (CoreException ex) {}
}} );
t_cmdClean.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
}
/**
* sets widgets states
*/
protected void updateButtons() {
bld = cfg.getEditableBuilder();
b_stopOnError.setSelection(bld.isStopOnError());
b_stopOnError.setEnabled(
bld.supportsStopOnError(true) &&
bld.supportsStopOnError(false));
// parallel
b_parallel.setSelection(cfg.getInternalBuilderParallel());
b_parallelOpt.setSelection(cfg.getParallelDef());
b_parallelNum.setSelection(!cfg.getParallelDef());
int n = cfg.getParallelNumber();
if (n < 0) n = -n;
parallelProcesses.setSelection(n);
b_parallel.setVisible(bld.supportsParallelBuild());
b_parallelOpt.setVisible(bld.supportsParallelBuild());
b_parallelNum.setVisible(bld.supportsParallelBuild());
parallelProcesses.setVisible(bld.supportsParallelBuild());
b_autoBuild.setSelection(bld.isAutoBuildEnable());
t_autoBuild.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_AUTO, EMPTY_STR));
b_cmdBuild.setSelection(bld.isIncrementalBuildEnabled());
t_cmdBuild.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_INCREMENTAL, EMPTY_STR));
b_cmdClean.setSelection(bld.isCleanBuildEnabled());
t_cmdClean.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR));
boolean external = ! cfg.isInternalBuilderEnabled();
boolean parallel = b_parallel.getSelection();
b_parallelNum.setEnabled(parallel);
b_parallelOpt.setEnabled(parallel);
parallelProcesses.setEnabled(parallel & b_parallelNum.getSelection());
title2.setVisible(external);
t_autoBuild.setVisible(external);
((Control)t_autoBuild.getData()).setVisible(external);
t_cmdBuild.setVisible(external);
((Control)t_cmdBuild.getData()).setVisible(external);
t_cmdClean.setVisible(external);
((Control)t_cmdClean.getData()).setVisible(external);
if (external) {
checkPressed(b_autoBuild);
checkPressed(b_cmdBuild);
checkPressed(b_cmdClean);
}
}
/**
* Sets up text + corresponding button
* Checkbox can be implemented either by Button or by TriButton
*/
private Text setupBlock(Composite c, Control check) {
Text t = setupText(c, 1, GridData.FILL_HORIZONTAL);
Button b = setupButton(c, VARIABLESBUTTON_NAME, 1, GridData.END);
b.setData(t); // to get know which text is affected
t.setData(b); // to get know which button to enable/disable
b.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
buttonVarPressed(event);
}});
if (check != null) check.setData(t);
return t;
}
/*
* Unified handler for "Variables" buttons
*/
private void buttonVarPressed(SelectionEvent e) {
Widget b = e.widget;
if (b == null || b.getData() == null) return;
if (b.getData() instanceof Text) {
String x = AbstractCPropertyTab.getVariableDialog(usercomp.getShell(), getResDesc().getConfiguration());
if (x != null) ((Text)b.getData()).insert(x);
}
}
public void checkPressed(SelectionEvent e) {
checkPressed((Control)e.widget);
updateButtons();
}
private void checkPressed(Control b) {
if (b == null) return;
boolean val = false;
if (b instanceof Button) val = ((Button)b).getSelection();
else if (b instanceof TriButton) val = ((TriButton)b).getSelection();
if (b.getData() instanceof Text) {
Text t = (Text)b.getData();
t.setEnabled(val);
if (t.getData() != null && t.getData() instanceof Control) {
Control c = (Control)t.getData();
c.setEnabled(val);
}
}
try {
if (b == b_autoBuild) {
bld.setAutoBuildEnable(val);
} else if (b == b_cmdBuild) {
bld.setIncrementalBuildEnable(val);
} else if (b == b_cmdClean) {
bld.setCleanBuildEnable(val);
} else if (b == b_stopOnError) {
bld.setStopOnError(val);
} else if (b == b_parallel) {
bld.setParallelBuildOn(val);
}
} catch (CoreException e) {}
}
/*
* Performs common settings for all controls
* (Copy from config to widgets)
* @param cfgd -
*/
public void updateData(ICResourceDescription cfgd) {
if (cfgd == null) return;
IConfiguration icfg = getCfg(cfgd.getConfiguration());
if (!(icfg instanceof Configuration)) return;
cfg = (Configuration)icfg;
updateButtons();
}
public void performApply(ICResourceDescription src, ICResourceDescription dst) {
Configuration cfg01 = (Configuration)getCfg(src.getConfiguration());
Configuration cfg02 = (Configuration)getCfg(dst.getConfiguration());
cfg02.enableInternalBuilder(cfg01.isInternalBuilderEnabled());
BuilderSettingsTab.copyBuilders(cfg01.getBuilder(), cfg02.getEditableBuilder());
}
// This page can be displayed for project only
public boolean canBeVisible() {
return page.isForProject() || page.isForPrefs();
}
public void setVisible (boolean b) {
super.setVisible(b);
}
protected void performDefaults() {
BuilderSettingsTab.copyBuilders(bld.getSuperClass(), bld);
updateData(getResDesc());
}
}

View file

@ -14,17 +14,11 @@ package org.eclipse.cdt.managedbuilder.ui.properties;
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
import org.eclipse.cdt.managedbuilder.core.IBuilder;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.internal.buildmodel.BuildProcessManager;
import org.eclipse.cdt.managedbuilder.internal.core.Configuration;
import org.eclipse.cdt.newmake.core.IMakeBuilderInfo;
import org.eclipse.cdt.ui.newui.AbstractCPropertyTab;
import org.eclipse.cdt.ui.newui.TriButton;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.AccessibleAdapter;
import org.eclipse.swt.accessibility.AccessibleEvent;
import org.eclipse.swt.accessibility.AccessibleListener;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
@ -37,7 +31,6 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;
@ -45,52 +38,27 @@ import org.eclipse.swt.widgets.Widget;
public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
// Widgets
//1
TriButton b_useDefault;
Combo c_builderType;
Text t_buildCmd;
private TriButton b_useDefault;
private Combo c_builderType;
private Text t_buildCmd;
//2
TriButton b_genMakefileAuto;
TriButton b_expandVars;
//3
TriButton b_stopOnError;
TriButton b_parallel;
Button b_parallelOpt;
Button b_parallelNum;
Spinner parallelProcesses;
//4
Label title2;
Button b_autoBuild;
Text t_autoBuild;
Button b_cmdBuild;
Text t_cmdBuild;
Button b_cmdClean;
Text t_cmdClean;
private TriButton b_genMakefileAuto;
private TriButton b_expandVars;
//5
Text t_dir;
Button b_dirWsp;
Button b_dirFile;
Button b_dirVars;
private Text t_dir;
private Button b_dirWsp;
private Button b_dirFile;
private Button b_dirVars;
protected final int cpuNumber = BuildProcessManager.checkCPUNumber();
IBuilder bld;
Configuration cfg;
public void createControls(Composite parent) {
super.createControls(parent);
usercomp.setLayout(new GridLayout(1, false));
ScrolledComposite sc = new ScrolledComposite(usercomp, SWT.V_SCROLL | SWT.H_SCROLL);
sc.setLayoutData(new GridData(GridData.FILL_BOTH));
sc.setExpandHorizontal(true);
sc.setExpandVertical(true);
Composite comp = new Composite(sc, SWT.NONE);
sc.setContent(comp);
comp.setLayout(new GridLayout(1, false));
// Builder group
Group g1 = setupGroup(comp, Messages.getString("BuilderSettingsTab.0"), 3, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
Group g1 = setupGroup(usercomp, Messages.getString("BuilderSettingsTab.0"), 3, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
setupLabel(g1, Messages.getString("BuilderSettingsTab.1"), 1, GridData.BEGINNING); //$NON-NLS-1$
c_builderType = new Combo(g1, SWT.READ_ONLY | SWT.DROP_DOWN | SWT.BORDER);
setupControl(c_builderType, 2, GridData.FILL_HORIZONTAL);
@ -118,112 +86,14 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
}});
Group g2 = setupGroup(comp, Messages.getString("BuilderSettingsTab.6"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
Group g2 = setupGroup(usercomp, Messages.getString("BuilderSettingsTab.6"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
((GridLayout)(g2.getLayout())).makeColumnsEqualWidth = true;
b_genMakefileAuto = setupTri(g2, Messages.getString("BuilderSettingsTab.7"), 1, GridData.BEGINNING); //$NON-NLS-1$
b_expandVars = setupTri(g2, Messages.getString("BuilderSettingsTab.8"), 1, GridData.BEGINNING); //$NON-NLS-1$
// Build setting group
Group g3 = setupGroup(comp, Messages.getString("BuilderSettingsTab.9"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
((GridLayout)(g3.getLayout())).makeColumnsEqualWidth = true;
((GridLayout)(g3.getLayout())).verticalSpacing = 0;
Composite c1 = new Composite(g3, SWT.NONE);
setupControl(c1, 1, GridData.FILL_BOTH);
GridData gd = (GridData)c1.getLayoutData();
gd.verticalSpan = 2;
c1.setLayoutData(gd);
GridLayout gl = new GridLayout(1, false);
gl.marginWidth = 0;
c1.setLayout(gl);
b_stopOnError = setupTri(c1, Messages.getString("BuilderSettingsTab.10"), 1, GridData.BEGINNING); //$NON-NLS-1$
Composite c2 = new Composite(g3, SWT.NONE);
setupControl(c2, 1, GridData.FILL_BOTH);
gl = new GridLayout(1, false);
gl.marginWidth = 0;
c2.setLayout(gl);
b_parallel = setupTri(c2, Messages.getString("BuilderSettingsTab.11"), 1, GridData.BEGINNING); //$NON-NLS-1$
Composite c3 = new Composite(g3, SWT.NONE);
setupControl(c3, 1, GridData.FILL_BOTH);
gl = new GridLayout(2, false);
gl.marginWidth = 0;
c3.setLayout(gl);
b_parallelOpt= new Button(c3, SWT.RADIO);
b_parallelOpt.setText(Messages.getString("BuilderSettingsTab.12")); //$NON-NLS-1$
setupControl(b_parallelOpt, 2, GridData.BEGINNING);
((GridData)(b_parallelOpt.getLayoutData())).horizontalIndent = 15;
b_parallelOpt.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
cfg.setParallelDef(b_parallelOpt.getSelection());
updateButtons();
}});
b_parallelNum= new Button(c3, SWT.RADIO);
b_parallelNum.setText(Messages.getString("BuilderSettingsTab.13")); //$NON-NLS-1$
setupControl(b_parallelNum, 1, GridData.BEGINNING);
((GridData)(b_parallelNum.getLayoutData())).horizontalIndent = 15;
b_parallelNum.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
cfg.setParallelDef(!b_parallelNum.getSelection());
updateButtons();
}});
parallelProcesses = new Spinner(c3, SWT.BORDER);
setupControl(parallelProcesses, 1, GridData.BEGINNING);
parallelProcesses.setValues(cpuNumber, 1, 10000, 0, 1, 10);
parallelProcesses.addSelectionListener(new SelectionAdapter () {
public void widgetSelected(SelectionEvent e) {
cfg.setParallelNumber(parallelProcesses.getSelection());
updateButtons();
}
});
// Workbench behaviour group
AccessibleListener makeTargetLabelAccessibleListener = new AccessibleAdapter() {
public void getName(AccessibleEvent e) {
e.result = Messages.getString("BuilderSettingsTab.16"); //$NON-NLS-1$
}
};
Group g4 = setupGroup(comp, Messages.getString("BuilderSettingsTab.14"), 3, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
setupLabel(g4, Messages.getString("BuilderSettingsTab.15"), 1, GridData.BEGINNING); //$NON-NLS-1$
title2 = setupLabel(g4, Messages.getString("BuilderSettingsTab.16"), 2, GridData.BEGINNING); //$NON-NLS-1$
b_autoBuild = setupCheck(g4, Messages.getString("BuilderSettingsTab.17"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_autoBuild = setupBlock(g4, b_autoBuild);
t_autoBuild.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_AUTO, t_autoBuild.getText());
} catch (CoreException ex) {}
}} );
t_autoBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
setupLabel(g4, Messages.getString("BuilderSettingsTab.18"), 3, GridData.BEGINNING); //$NON-NLS-1$
b_cmdBuild = setupCheck(g4, Messages.getString("BuilderSettingsTab.19"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_cmdBuild = setupBlock(g4, b_cmdBuild);
t_cmdBuild.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_INCREMENTAL, t_cmdBuild.getText());
} catch (CoreException ex) {}
}} );
t_cmdBuild.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
b_cmdClean = setupCheck(g4, Messages.getString("BuilderSettingsTab.20"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_cmdClean = setupBlock(g4, b_cmdClean);
t_cmdClean.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
try {
bld.setBuildAttribute(IMakeBuilderInfo.BUILD_TARGET_CLEAN, t_cmdClean.getText());
} catch (CoreException ex) {}
}} );
t_cmdClean.getAccessible().addAccessibleListener(makeTargetLabelAccessibleListener);
// Build location group
Group g5 = setupGroup(comp, Messages.getString("BuilderSettingsTab.21"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
Group g5 = setupGroup(usercomp, Messages.getString("BuilderSettingsTab.21"), 2, GridData.FILL_HORIZONTAL); //$NON-NLS-1$
setupLabel(g5, Messages.getString("BuilderSettingsTab.22"), 1, GridData.BEGINNING); //$NON-NLS-1$
t_dir = setupText(g5, 1, GridData.FILL_HORIZONTAL);
t_dir.addModifyListener(new ModifyListener() {
@ -239,8 +109,6 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
b_dirWsp = setupBottomButton(c, WORKSPACEBUTTON_NAME);
b_dirFile = setupBottomButton(c, FILESYSTEMBUTTON_NAME);
b_dirVars = setupBottomButton(c, VARIABLESBUTTON_NAME);
sc.setMinSize(comp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
void setManagedBuild(boolean enable) {
@ -267,24 +135,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
cfg.canEnableInternalBuilder(false));
t_buildCmd.setText(getMC());
b_stopOnError.setSelection(bld.isStopOnError());
b_stopOnError.setEnabled(
bld.supportsStopOnError(true) &&
bld.supportsStopOnError(false));
// parallel
b_parallel.setSelection(cfg.getInternalBuilderParallel());
b_parallelOpt.setSelection(cfg.getParallelDef());
b_parallelNum.setSelection(!cfg.getParallelDef());
int n = cfg.getParallelNumber();
if (n < 0) n = -n;
parallelProcesses.setSelection(n);
b_parallel.setVisible(bld.supportsParallelBuild());
b_parallelOpt.setVisible(bld.supportsParallelBuild());
b_parallelNum.setVisible(bld.supportsParallelBuild());
parallelProcesses.setVisible(bld.supportsParallelBuild());
if(!bld.canKeepEnvironmentVariablesInBuildfile())
b_expandVars.setEnabled(false);
else {
@ -300,15 +151,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
b_dirWsp.setEnabled(!mbOn);
b_dirFile.setEnabled(!mbOn);
b_autoBuild.setSelection(bld.isAutoBuildEnable());
t_autoBuild.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_AUTO, EMPTY_STR));
b_cmdBuild.setSelection(bld.isIncrementalBuildEnabled());
t_cmdBuild.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_INCREMENTAL, EMPTY_STR));
b_cmdClean.setSelection(bld.isCleanBuildEnabled());
t_cmdClean.setText(bld.getBuildAttribute(IBuilder.BUILD_TARGET_CLEAN, EMPTY_STR));
boolean external = (c_builderType.getSelectionIndex() == 0);
boolean parallel = b_parallel.getSelection();
b_useDefault.setEnabled(external);
t_buildCmd.setEnabled(external);
@ -316,23 +159,9 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
b_genMakefileAuto.setEnabled(external && cfg.supportsBuild(true));
b_expandVars.setEnabled(external && b_genMakefileAuto.getSelection());
b_parallelNum.setEnabled(parallel);
b_parallelOpt.setEnabled(parallel);
parallelProcesses.setEnabled(parallel & b_parallelNum.getSelection());
title2.setVisible(external);
t_autoBuild.setVisible(external);
((Control)t_autoBuild.getData()).setVisible(external);
t_cmdBuild.setVisible(external);
((Control)t_cmdBuild.getData()).setVisible(external);
t_cmdClean.setVisible(external);
((Control)t_cmdClean.getData()).setVisible(external);
if (external) {
checkPressed(b_useDefault);
checkPressed(b_autoBuild);
checkPressed(b_cmdBuild);
checkPressed(b_cmdClean);
}
}
@ -354,7 +183,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
* Sets up text + corresponding button
* Checkbox can be implemented either by Button or by TriButton
*/
Text setupBlock(Composite c, Control check) {
private Text setupBlock(Composite c, Control check) {
Text t = setupText(c, 1, GridData.FILL_HORIZONTAL);
Button b = setupButton(c, VARIABLESBUTTON_NAME, 1, GridData.END);
b.setData(t); // to get know which text is affected
@ -370,7 +199,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
/*
* Unified handler for "Variables" buttons
*/
void buttonVarPressed(SelectionEvent e) {
private void buttonVarPressed(SelectionEvent e) {
Widget b = e.widget;
if (b == null || b.getData() == null) return;
if (b.getData() instanceof Text) {
@ -393,7 +222,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
updateButtons();
}
void checkPressed(Control b) {
private void checkPressed(Control b) {
if (b == null) return;
boolean val = false;
@ -410,23 +239,13 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
}
}
try {
if (b == b_autoBuild) {
bld.setAutoBuildEnable(val);
} else if (b == b_cmdBuild) {
bld.setIncrementalBuildEnable(val);
} else if (b == b_cmdClean) {
bld.setCleanBuildEnable(val);
} else if (b == b_useDefault) {
if (b == b_useDefault) {
bld.setUseDefaultBuildCmd(!val);
} else if (b == b_genMakefileAuto) {
setManagedBuild(val);
} else if (b == b_expandVars) {
if(bld.canKeepEnvironmentVariablesInBuildfile())
bld.setKeepEnvironmentVariablesInBuildfile(!val);
} else if (b == b_stopOnError) {
bld.setStopOnError(val);
} else if (b == b_parallel) {
bld.setParallelBuildOn(val);
}
} catch (CoreException e) {}
}
@ -462,7 +281,7 @@ public class BuilderSettingsTab extends AbstractCBuildPropertyTab {
copyBuilders(cfg01.getBuilder(), cfg02.getEditableBuilder());
}
private void copyBuilders(IBuilder b1, IBuilder b2) {
static void copyBuilders(IBuilder b1, IBuilder b2) {
try {
b2.setUseDefaultBuildCmd(b1.isDefaultBuildCmd());
if (!b1.isDefaultBuildCmd()) {