1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 08:55:25 +02:00

more check to prevent NPE plus "build" will dismiss the target dialog before building

This commit is contained in:
David Inglis 2003-09-19 14:58:42 +00:00
parent 313f632a5d
commit 75031996e1
2 changed files with 23 additions and 12 deletions

View file

@ -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));
}
}

View file

@ -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();
if (selected != null) {
TargetBuild.runWithProgressDialog(getShell(), new IMakeTarget[] { selected });
}
super.okPressed();
if (selected != null) {
TargetBuild.runWithProgressDialog(getParentShell(), new IMakeTarget[] { selected });
}
}
}