core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/AbstractImportExportPage.java
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/AbstractImportExportPage.java Fri Aug 13 11:58:38 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/AbstractImportExportPage.java Fri Aug 13 13:39:46 2010 -0500
@@ -25,8 +25,10 @@
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
@@ -54,6 +56,8 @@
protected Text pathText;
protected Button browseButton;
protected CheckboxTableViewer viewer;
+ protected Button checkAllButton;
+ protected Button checkNoneButton;
protected static final ImageDescriptor FEATURE_IMGDESC = Activator
.getImageDescriptor("icons/iu_obj.gif"); //$NON-NLS-1$
protected Image featureImg;
@@ -146,22 +150,32 @@
GridDataFactory.swtDefaults().align(SWT.END, SWT.BEGINNING)
.applyTo(buttonComposite);
buttonComposite.setLayout(new GridLayout());
- Button checkAllButton = new Button(buttonComposite, SWT.PUSH);
+ checkAllButton = new Button(buttonComposite, SWT.PUSH);
checkAllButton.setText(Messages.AbstractImportExportPage_CheckAllLabel);
setButtonLayoutData(checkAllButton);
checkAllButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
viewer.setAllChecked(true);
+ enableButtons();
+ setPageComplete(validatePage());
}
});
- Button checkNoneButton = new Button(buttonComposite, SWT.PUSH);
+ checkNoneButton = new Button(buttonComposite, SWT.PUSH);
checkNoneButton.setText(Messages.AbstractImportExportPage_CheckNoneLabel);
setButtonLayoutData(checkNoneButton);
checkNoneButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
viewer.setAllChecked(false);
+ enableButtons();
+ setPageComplete(validatePage());
+ }
+ });
+ viewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ enableButtons();
+ setPageComplete(validatePage());
}
});
}
@@ -187,9 +201,15 @@
protected void updateViewer() {
packColumns();
viewer.setAllChecked(true);
+ enableButtons();
setPageComplete(validatePage());
}
+ private void enableButtons() {
+ checkAllButton.setEnabled(viewer.getTable().getItemCount() > viewer.getCheckedElements().length);
+ checkNoneButton.setEnabled(viewer.getCheckedElements().length > 0);
+ }
+
@Override
public void dispose() {
super.dispose();