1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

bug 293704: refactored for cleaner self-documented code

This commit is contained in:
Andrew Gvozdev 2010-04-12 03:01:44 +00:00
parent 58eaef33c6
commit d1273a1f0e

View file

@ -7,10 +7,12 @@
* *
* Contributors: * Contributors:
* QNX Software Systems - Initial API and implementation * QNX Software Systems - Initial API and implementation
* Andrew Gvozdev (Quoin Inc) - bunch of improvements and bug fixes
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.make.ui.dialogs; package org.eclipse.cdt.make.ui.dialogs;
import org.eclipse.cdt.make.core.IMakeBuilderInfo; import org.eclipse.cdt.make.core.IMakeBuilderInfo;
import org.eclipse.cdt.make.core.IMakeCommonBuildInfo;
import org.eclipse.cdt.make.core.IMakeTarget; import org.eclipse.cdt.make.core.IMakeTarget;
import org.eclipse.cdt.make.core.IMakeTargetManager; import org.eclipse.cdt.make.core.IMakeTargetManager;
import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.MakeCorePlugin;
@ -44,6 +46,8 @@ import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Text;
/** /**
* The class represents Create/Modify Make Target Dialog in Make Targets View.
*
* @noextend This class is not intended to be subclassed by clients. * @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients. * @noinstantiate This class is not intended to be instantiated by clients.
*/ */
@ -67,28 +71,28 @@ public class MakeTargetDialog extends Dialog {
private static final String MAKE_CMD_LABEL = SETTING_PREFIX + ".makeCmd.label"; //$NON-NLS-1$ private static final String MAKE_CMD_LABEL = SETTING_PREFIX + ".makeCmd.label"; //$NON-NLS-1$
private Text targetNameText; private Text targetNameText;
private Button stopOnErrorButton; private Button sameAsNameCheckBox;
private Button runAllBuildersButton;
private Text commandText;
private Button defButton;
private Text targetText; private Text targetText;
private Button useBuilderCommandCheckBox;
private Text commandText;
private Button stopOnErrorCheckBox;
private Button runAllBuildersCheckBox;
private final IMakeTargetManager fTargetManager; private final IMakeTargetManager fTargetManager;
private final IContainer fContainer; private final IContainer fContainer;
private IPath buildCommand; private final IPath builderCommand;
private final String defaultBuildCommand; private final String builderArguments;
private final String defaultBuildArguments; private boolean isUsingBuilderCommand = true;
private boolean isDefaultCommand;
private boolean isStopOnError; private boolean isStopOnError;
private boolean runAllBuilders = true; private boolean runAllBuilders = true;
private String buildArguments; private IPath targetBuildCommand;
private String targetBuildArguments;
private String targetString; private String targetString;
private String targetName; private String targetName;
private String targetBuildID; private String targetBuildID;
private IMakeTarget fTarget; private IMakeTarget fTarget;
private boolean initializing = true; private boolean initializing = true;
private Button sameAsNameCheck;
/** /**
* A Listener class to verify correctness of input and display an error message * A Listener class to verify correctness of input and display an error message
@ -136,9 +140,11 @@ public class MakeTargetDialog extends Dialog {
this(parentShell, target.getContainer()); this(parentShell, target.getContainer());
fTarget = target; fTarget = target;
isStopOnError = target.isStopOnError(); isStopOnError = target.isStopOnError();
isDefaultCommand = target.isDefaultBuildCmd(); isUsingBuilderCommand = target.isDefaultBuildCmd();
buildCommand = target.getBuildCommand(); if (!isUsingBuilderCommand) {
buildArguments = target.getBuildArguments(); targetBuildCommand = target.getBuildCommand();
targetBuildArguments = target.getBuildArguments();
}
targetName = target.getName(); targetName = target.getName();
targetString = target.getBuildAttribute(IMakeTarget.BUILD_TARGET, ""); //$NON-NLS-1$ targetString = target.getBuildAttribute(IMakeTarget.BUILD_TARGET, ""); //$NON-NLS-1$
targetBuildID = target.getTargetBuilderID(); targetBuildID = target.getTargetBuilderID();
@ -166,11 +172,11 @@ public class MakeTargetDialog extends Dialog {
IMakeBuilderInfo buildInfo = MakeCorePlugin.createBuildInfo(container.getProject(), IMakeBuilderInfo buildInfo = MakeCorePlugin.createBuildInfo(container.getProject(),
fTargetManager.getBuilderID(targetBuildID)); fTargetManager.getBuilderID(targetBuildID));
isStopOnError = buildInfo.isStopOnError(); isStopOnError = buildInfo.isStopOnError();
isDefaultCommand = true; isUsingBuilderCommand = true;
buildCommand = buildInfo.getBuildCommand(); builderCommand = buildInfo.getBuildCommand();
defaultBuildCommand = buildCommand.toString(); targetBuildCommand = builderCommand;
buildArguments = buildInfo.getBuildArguments(); builderArguments = buildInfo.getBuildArguments();
defaultBuildArguments = buildArguments; targetBuildArguments = builderArguments;
targetString = buildInfo.getIncrementalBuildTarget(); targetString = buildInfo.getIncrementalBuildTarget();
setShellStyle(getShellStyle() | SWT.RESIZE); setShellStyle(getShellStyle() | SWT.RESIZE);
@ -234,9 +240,9 @@ public class MakeTargetDialog extends Dialog {
protected void createSettingControls(Composite parent) { protected void createSettingControls(Composite parent) {
Group group = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(MAKE_SETTING_GROUP), 1); Group group = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(MAKE_SETTING_GROUP), 1);
stopOnErrorButton = new Button(group, SWT.CHECK); stopOnErrorCheckBox = new Button(group, SWT.CHECK);
stopOnErrorButton.setText(MakeUIPlugin.getResourceString(MAKE_SETTING_STOP_ERROR)); stopOnErrorCheckBox.setText(MakeUIPlugin.getResourceString(MAKE_SETTING_STOP_ERROR));
stopOnErrorButton.addSelectionListener(new SelectionAdapter() { stopOnErrorCheckBox.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
@ -245,16 +251,16 @@ public class MakeTargetDialog extends Dialog {
}); });
if (isStopOnError) { if (isStopOnError) {
stopOnErrorButton.setSelection(true); stopOnErrorCheckBox.setSelection(true);
} }
if (isDefaultCommand) { if (isUsingBuilderCommand) {
stopOnErrorButton.setEnabled(true); stopOnErrorCheckBox.setEnabled(true);
} else { } else {
stopOnErrorButton.setEnabled(false); stopOnErrorCheckBox.setEnabled(false);
} }
runAllBuildersButton = new Button(group, SWT.CHECK); runAllBuildersCheckBox = new Button(group, SWT.CHECK);
runAllBuildersButton.setText(MakeUIPlugin.getResourceString("SettingsBlock.makeSetting.runAllBuilders")); //$NON-NLS-1$ runAllBuildersCheckBox.setText(MakeUIPlugin.getResourceString("SettingsBlock.makeSetting.runAllBuilders")); //$NON-NLS-1$
runAllBuildersButton.addSelectionListener(new SelectionAdapter() { runAllBuildersCheckBox.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
@ -262,7 +268,7 @@ public class MakeTargetDialog extends Dialog {
} }
}); });
if (runAllBuilders) { if (runAllBuilders) {
runAllBuildersButton.setSelection(true); runAllBuildersCheckBox.setSelection(true);
} }
} }
@ -275,31 +281,30 @@ public class MakeTargetDialog extends Dialog {
GridData gd = new GridData(GridData.FILL_HORIZONTAL); GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.widthHint = convertWidthInCharsToPixels(50); gd.widthHint = convertWidthInCharsToPixels(50);
group.setLayoutData(gd); group.setLayoutData(gd);
defButton = ControlFactory.createCheckBox(group, MakeUIPlugin.getResourceString(MAKE_CMD_USE_BUILDER_SETTINGS)); useBuilderCommandCheckBox = ControlFactory.createCheckBox(group, MakeUIPlugin.getResourceString(MAKE_CMD_USE_BUILDER_SETTINGS));
defButton.addSelectionListener(new SelectionAdapter() { useBuilderCommandCheckBox.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
if (defButton.getSelection() == true) { if (useBuilderCommandCheckBox.getSelection() == true) {
StringBuffer cmd = new StringBuffer(defaultBuildCommand); StringBuffer cmd = new StringBuffer(builderCommand.toString());
String args = defaultBuildArguments; if (builderArguments != null && !builderArguments.equals("")) { //$NON-NLS-1$
if (args != null && !args.equals("")) { //$NON-NLS-1$
cmd.append(" "); //$NON-NLS-1$ cmd.append(" "); //$NON-NLS-1$
cmd.append(args); cmd.append(builderArguments);
} }
commandText.setText(cmd.toString()); commandText.setText(cmd.toString());
commandText.setEnabled(false); commandText.setEnabled(false);
stopOnErrorButton.setEnabled(true); stopOnErrorCheckBox.setEnabled(true);
} else { } else {
commandText.setEnabled(true); commandText.setEnabled(true);
stopOnErrorButton.setEnabled(false); stopOnErrorCheckBox.setEnabled(false);
} }
updateButtons(); updateButtons();
} }
}); });
gd = new GridData(GridData.FILL_HORIZONTAL); gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2; gd.horizontalSpan = 2;
defButton.setLayoutData(gd); useBuilderCommandCheckBox.setLayoutData(gd);
Label label = ControlFactory.createLabel(group, MakeUIPlugin.getResourceString(MAKE_CMD_LABEL)); Label label = ControlFactory.createLabel(group, MakeUIPlugin.getResourceString(MAKE_CMD_LABEL));
((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING; ((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING;
((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false; ((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false;
@ -309,12 +314,12 @@ public class MakeTargetDialog extends Dialog {
commandText.addListener(SWT.Modify, new UpdateStatusLineListener()); commandText.addListener(SWT.Modify, new UpdateStatusLineListener());
if (isDefaultCommand) { if (isUsingBuilderCommand) {
commandText.setEnabled(false); commandText.setEnabled(false);
} else { } else {
commandText.setEnabled(true); commandText.setEnabled(true);
} }
defButton.setSelection(isDefaultCommand); useBuilderCommandCheckBox.setSelection(isUsingBuilderCommand);
} }
private void createTargetControl(Composite parent) { private void createTargetControl(Composite parent) {
@ -327,16 +332,16 @@ public class MakeTargetDialog extends Dialog {
gd.widthHint = convertWidthInCharsToPixels(50); gd.widthHint = convertWidthInCharsToPixels(50);
group.setLayoutData(gd); group.setLayoutData(gd);
sameAsNameCheck = new Button(group, SWT.CHECK); sameAsNameCheckBox = new Button(group, SWT.CHECK);
gd = new GridData(); gd = new GridData();
gd.horizontalSpan = 2; gd.horizontalSpan = 2;
sameAsNameCheck.setLayoutData(gd); sameAsNameCheckBox.setLayoutData(gd);
sameAsNameCheck.setText(MakeUIPlugin.getResourceString("SettingsBlock.makeSetting.sameAsTarget")); //$NON-NLS-1$ sameAsNameCheckBox.setText(MakeUIPlugin.getResourceString("SettingsBlock.makeSetting.sameAsTarget")); //$NON-NLS-1$
/* Add a listener to the target name text to update the targetText */ /* Add a listener to the target name text to update the targetText */
targetNameText.addModifyListener(new ModifyListener() { targetNameText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) { public void modifyText(ModifyEvent e) {
if (sameAsNameCheck.getSelection()) { if (sameAsNameCheckBox.getSelection()) {
targetText.setText(targetNameText.getText()); targetText.setText(targetNameText.getText());
} }
} }
@ -355,20 +360,20 @@ public class MakeTargetDialog extends Dialog {
} }
}); });
sameAsNameCheck.addSelectionListener(new SelectionAdapter() { sameAsNameCheckBox.addSelectionListener(new SelectionAdapter() {
@Override @Override
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
sameAsNameSelected(); sameAsNameSelected();
} }
}); });
/* set sameAsNameCheck if targetName and targetString are equal */ /* set sameAsNameCheck if targetName and targetString are equal */
sameAsNameCheck.setSelection(targetString.equals(targetName) || (targetString.length()==0 && targetName==null)); sameAsNameCheckBox.setSelection(targetString.equals(targetName) || (targetString.length()==0 && targetName==null));
sameAsNameSelected(); sameAsNameSelected();
} }
protected void sameAsNameSelected() { protected void sameAsNameSelected() {
targetText.setEnabled(!sameAsNameCheck.getSelection()); targetText.setEnabled(!sameAsNameCheckBox.getSelection());
if (sameAsNameCheck.getSelection()) { if (sameAsNameCheckBox.getSelection()) {
targetText.setText(targetNameText.getText()); targetText.setText(targetNameText.getText());
} }
} }
@ -390,12 +395,11 @@ public class MakeTargetDialog extends Dialog {
targetNameText.setText(generateUniqueName(targetString)); targetNameText.setText(generateUniqueName(targetString));
} }
targetNameText.selectAll(); targetNameText.selectAll();
if (buildCommand != null) { if (targetBuildCommand != null) {
StringBuffer cmd = new StringBuffer(buildCommand.toOSString()); StringBuffer cmd = new StringBuffer(targetBuildCommand.toOSString());
String args = buildArguments; if (targetBuildArguments != null && !targetBuildArguments.equals("")) { //$NON-NLS-1$
if (args != null && !args.equals("")) { //$NON-NLS-1$
cmd.append(" "); //$NON-NLS-1$ cmd.append(" "); //$NON-NLS-1$
cmd.append(args); cmd.append(targetBuildArguments);
} }
commandText.setText(cmd.toString()); commandText.setText(cmd.toString());
} }
@ -417,7 +421,7 @@ public class MakeTargetDialog extends Dialog {
if (runAllBuilders != runAllBuilders()) { if (runAllBuilders != runAllBuilders()) {
return true; return true;
} }
if (isDefaultCommand != useDefaultBuildCmd()) { if (isUsingBuilderCommand != isUsingBuilderCommand()) {
return true; return true;
} }
if (!targetName.equals(getTargetName())) { if (!targetName.equals(getTargetName())) {
@ -426,8 +430,8 @@ public class MakeTargetDialog extends Dialog {
if (!targetString.equals(getTarget())) { if (!targetString.equals(getTarget())) {
return true; return true;
} }
if (!isDefaultCommand) { if (!isUsingBuilderCommand) {
StringBuffer cmd = new StringBuffer(buildCommand.toOSString()).append(buildArguments); StringBuffer cmd = new StringBuffer(targetBuildCommand.toOSString()).append(targetBuildArguments);
if (!getBuildLine().equals(cmd.toString())) { if (!getBuildLine().equals(cmd.toString())) {
return true; return true;
} }
@ -449,15 +453,15 @@ public class MakeTargetDialog extends Dialog {
} }
private boolean isStopOnError() { private boolean isStopOnError() {
return stopOnErrorButton.getSelection(); return stopOnErrorCheckBox.getSelection();
} }
private boolean runAllBuilders() { private boolean runAllBuilders() {
return runAllBuildersButton.getSelection(); return runAllBuildersCheckBox.getSelection();
} }
private boolean useDefaultBuildCmd() { private boolean isUsingBuilderCommand() {
return defButton.getSelection(); return useBuilderCommandCheckBox.getSelection();
} }
private String getBuildLine() { private String getBuildLine() {
@ -501,16 +505,16 @@ public class MakeTargetDialog extends Dialog {
container.setSessionProperty(new QualifiedName(MakeUIPlugin.getUniqueIdentifier(), "lastTarget"), //$NON-NLS-1$ container.setSessionProperty(new QualifiedName(MakeUIPlugin.getUniqueIdentifier(), "lastTarget"), //$NON-NLS-1$
path.toString()); path.toString());
} }
fTargetManager.renameTarget(target, targetName); fTargetManager.renameTarget(target, targetName);
} }
} }
target.setStopOnError(isStopOnError()); target.setStopOnError(isStopOnError());
target.setRunAllBuilders(runAllBuilders()); target.setRunAllBuilders(runAllBuilders());
target.setUseDefaultBuildCmd(useDefaultBuildCmd()); target.setUseDefaultBuildCmd(isUsingBuilderCommand());
if (useDefaultBuildCmd()) { if (isUsingBuilderCommand()) {
target.setBuildAttribute(IMakeTarget.BUILD_COMMAND, defaultBuildCommand); target.setBuildAttribute(IMakeCommonBuildInfo.BUILD_COMMAND, builderCommand.toString());
target.setBuildAttribute(IMakeTarget.BUILD_ARGUMENTS, defaultBuildArguments); target.setBuildAttribute(IMakeCommonBuildInfo.BUILD_ARGUMENTS, builderArguments);
} else { } else {
String bldLine = getBuildLine(); String bldLine = getBuildLine();
int start = 0; int start = 0;
@ -527,12 +531,12 @@ public class MakeTargetDialog extends Dialog {
} else { } else {
path = new Path(bldLine.substring(start, end)); path = new Path(bldLine.substring(start, end));
} }
target.setBuildAttribute(IMakeTarget.BUILD_COMMAND, path.toString()); target.setBuildAttribute(IMakeCommonBuildInfo.BUILD_COMMAND, path.toString());
String args = ""; //$NON-NLS-1$ String args = ""; //$NON-NLS-1$
if (end != -1) { if (end != -1) {
args = bldLine.substring(end + 1); args = bldLine.substring(end + 1);
} }
target.setBuildAttribute(IMakeTarget.BUILD_ARGUMENTS, args); target.setBuildAttribute(IMakeCommonBuildInfo.BUILD_ARGUMENTS, args);
} }
target.setBuildAttribute(IMakeTarget.BUILD_TARGET, getTarget()); target.setBuildAttribute(IMakeTarget.BUILD_TARGET, getTarget());