diff options
author | David Inglis | 2003-09-19 14:58:42 +0000 |
---|---|---|
committer | David Inglis | 2003-09-19 14:58:42 +0000 |
commit | 75031996e14a113afd06dcb6a4ace57d8d511902 (patch) | |
tree | 0976b1ef90f47d155695fb311a93597d33bf65a1 /build | |
parent | 313f632a5d6cd694a47eb7e0dbe7274918dd3a83 (diff) | |
download | org.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.java | 20 | ||||
-rw-r--r-- | build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/BuildTargetDialog.java | 13 |
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(); } } |