Skip to main content
summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorDavid Inglis2003-09-19 14:58:42 +0000
committerDavid Inglis2003-09-19 14:58:42 +0000
commit75031996e14a113afd06dcb6a4ace57d8d511902 (patch)
tree0976b1ef90f47d155695fb311a93597d33bf65a1 /build
parent313f632a5d6cd694a47eb7e0dbe7274918dd3a83 (diff)
downloadorg.eclipse.cdt-75031996e14a113afd06dcb6a4ace57d8d511902.tar.gz
org.eclipse.cdt-75031996e14a113afd06dcb6a4ace57d8d511902.tar.xz
org.eclipse.cdt-75031996e14a113afd06dcb6a4ace57d8d511902.zip
more check to prevent NPE plus "build" will dismiss the target dialog before building
Diffstat (limited to 'build')
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/TargetListViewerPart.java20
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java13
2 files changed, 22 insertions, 11 deletions
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/TargetListViewerPart.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/TargetListViewerPart.java
index fead8fb5dba..ae02f6e1397 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/TargetListViewerPart.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/TargetListViewerPart.java
@@ -42,16 +42,18 @@ public class TargetListViewerPart extends StructuredViewerPart {
tableViewer = new TableViewer(parent, SWT.SINGLE | SWT.BORDER);
Table table = (Table) tableViewer.getControl();
TableLayout layout = new TableLayout();
- table.setLayout(layout);
- table.setHeaderVisible(true);
layout.addColumnData(new ColumnWeightData(50));
- TableColumn tc = new TableColumn(table, SWT.NONE);
+ TableColumn tc = new TableColumn(table, SWT.NONE, 0);
tc.setText("Targets");
+
layout.addColumnData(new ColumnWeightData(50));
- tc = new TableColumn(table, SWT.NONE);
+ tc = new TableColumn(table, SWT.NONE, 1);
tc.setText("Location");
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
TargetListViewerPart.this.selectionChanged((IStructuredSelection) e.getSelection());
@@ -100,13 +102,15 @@ public class TargetListViewerPart extends StructuredViewerPart {
protected void selectionChanged(IStructuredSelection selection) {
fSelectedTarget = (IMakeTarget) selection.getFirstElement();
- updateEnabledState();
+ if (getViewer() != null) {
+ updateEnabledState();
+ }
}
public void setSelectedTarget(IMakeTarget target) {
fSelectedTarget = target;
if (tableViewer != null) {
- tableViewer.setSelection(new StructuredSelection(fSelectedTarget), true);
+ tableViewer.setSelection(new StructuredSelection(fSelectedTarget), false);
}
}
@@ -128,8 +132,8 @@ public class TargetListViewerPart extends StructuredViewerPart {
public void createControl(Composite parent, int style, int span) {
super.createControl(parent, style, span);
updateEnabledState();
- if (fSelectedTarget != null) {
- tableViewer.setSelection(new StructuredSelection(fSelectedTarget), true);
+ if (getViewer() != null && fSelectedTarget != null) {
+ getViewer().setSelection(new StructuredSelection(fSelectedTarget));
}
}
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java
index 542bf7dd78d..f9fd94f3e54 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java
@@ -8,6 +8,8 @@ import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
@@ -43,6 +45,7 @@ public class BuildTargetDialog extends Dialog {
// create Build and Cancel buttons by default
createButton(parent, IDialogConstants.OK_ID, "Build", true);
createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
+ getButton(IDialogConstants.OK_ID).setEnabled(targetPart.getSelectedTarget() != null);
}
protected Control createDialogArea(Composite parent) {
@@ -64,16 +67,20 @@ public class BuildTargetDialog extends Dialog {
okPressed();
}
});
-
+ targetPart.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ getButton(IDialogConstants.OK_ID).setEnabled(targetPart.getSelectedTarget() != null);
+ }
+ });
return composite;
}
protected void okPressed() {
IMakeTarget selected = targetPart.getSelectedTarget();
+ super.okPressed();
if (selected != null) {
- TargetBuild.runWithProgressDialog(getShell(), new IMakeTarget[] { selected });
+ TargetBuild.runWithProgressDialog(getParentShell(), new IMakeTarget[] { selected });
}
- super.okPressed();
}
}

Back to the top