94353 InstallWizard1 should be a checkbox list, not tree
diff --git a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
index 2ddbfa9..78e7a65 100644
--- a/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
+++ b/update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java
@@ -15,13 +15,14 @@
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.events.SelectionAdapter;
@@ -33,7 +34,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.forms.HyperlinkSettings;
import org.eclipse.ui.forms.widgets.ScrolledFormText;
@@ -45,7 +46,6 @@
import org.eclipse.update.internal.ui.model.SiteBookmark;
import org.eclipse.update.internal.ui.model.SiteCategory;
import org.eclipse.update.internal.ui.model.UpdateModel;
-import org.eclipse.update.internal.ui.parts.DefaultContentProvider;
import org.eclipse.update.internal.ui.parts.SWTUtil;
import org.eclipse.update.operations.IUpdateModelChangedListener;
import org.eclipse.update.search.EnvironmentFilter;
@@ -54,56 +54,12 @@
public class SitePage extends BannerPage implements ISearchProvider {
- class TreeContentProvider
- extends DefaultContentProvider
- implements ITreeContentProvider {
-
- public Object[] getElements(Object parent) {
- return getAllSiteBookmarks();
- }
-
- public Object[] getChildren(final Object parent) {
-// if (parent instanceof SiteBookmark) {
-// final SiteBookmark bookmark = (SiteBookmark) parent;
-// if (bookmark.isUnavailable())
-// return new Object[0];
-// final Object[] children =
-// getSiteCatalogWithIndicator(
-// bookmark,
-// !bookmark.isSiteConnected());
-// treeViewer.getControl().getDisplay().asyncExec(new Runnable() {
-// public void run() {
-// if (children.length > 0)
-// handleSiteExpanded(bookmark, children);
-// }
-// });
-// return children;
-// }
- return new Object[0];
- }
-
- public Object getParent(Object element) {
-// if (element instanceof SiteCategory)
-// return ((SiteCategory) element).getBookmark();
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return false;
-// return (element instanceof SiteBookmark);
- }
-
- }
-
- class TreeLabelProvider extends LabelProvider {
+ class SitesLabelProvider extends LabelProvider {
public Image getImage(Object obj) {
if (obj instanceof SiteBookmark)
return UpdateUI.getDefault().getLabelProvider().get(
UpdateUIImages.DESC_SITE_OBJ);
- if (obj instanceof SiteCategory)
- return UpdateUI.getDefault().getLabelProvider().get(
- UpdateUIImages.DESC_CATEGORY_OBJ);
return super.getImage(obj);
}
@@ -117,23 +73,23 @@
class ModelListener implements IUpdateModelChangedListener {
public void objectChanged(Object object, String property) {
- treeViewer.refresh();
+ viewer.refresh();
checkItems();
}
public void objectsAdded(Object parent, Object[] children) {
- treeViewer.refresh();
+ viewer.refresh();
checkItems();
}
public void objectsRemoved(Object parent, Object[] children) {
- treeViewer.refresh();
+ viewer.refresh();
checkItems();
}
}
private static DiscoveryFolder discoveryFolder = new DiscoveryFolder();
- private CheckboxTreeViewer treeViewer;
+ private CheckboxTableViewer viewer;
private ScrolledFormText descLabel;
private Button addSiteButton;
private Button addLocalButton;
@@ -193,7 +149,7 @@
gd.horizontalSpan = 2;
label.setLayoutData(gd);
- createTreeViewer(client);
+ createViewer(client);
Composite buttonContainer = new Composite(client, SWT.NULL);
buttonContainer.setLayoutData(new GridData(GridData.FILL_VERTICAL));
@@ -317,32 +273,38 @@
return client;
}
- private void createTreeViewer(Composite parent) {
- treeViewer =
- new CheckboxTreeViewer(
+ private void createViewer(Composite parent) {
+ viewer =
+ CheckboxTableViewer.newCheckList(
parent,
SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- treeViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
- treeViewer.setContentProvider(new TreeContentProvider());
- treeViewer.setLabelProvider(new TreeLabelProvider());
- treeViewer.setInput(UpdateUI.getDefault().getUpdateModel());
+ viewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
+ viewer.setContentProvider(new IStructuredContentProvider() {
+ public Object[] getElements(Object parent) {
+ return getAllSiteBookmarks();
+ }
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput,
+ Object newInput) {
+ }
+ });
+ viewer.setLabelProvider(new SitesLabelProvider());
+ viewer.setInput(UpdateUI.getDefault().getUpdateModel());
+
initializeItems();
- treeViewer.addCheckStateListener(new ICheckStateListener() {
+ viewer.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent e) {
Object element = e.getElement();
if (element instanceof SiteBookmark)
handleSiteChecked((SiteBookmark) element, e.getChecked());
-// else if (element instanceof SiteCategory) {
-// handleCategoryChecked(
-// (SiteCategory) element,
-// e.getChecked());
-// }
}
});
- treeViewer
+ viewer
.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent e) {
handleSelectionChanged((IStructuredSelection) e.getSelection());
@@ -357,13 +319,10 @@
}
private void checkItems() {
- TreeItem[] items = treeViewer.getTree().getItems();
+ TableItem[] items = viewer.getTable().getItems();
for (int i = 0; i < items.length; i++) {
SiteBookmark bookmark = (SiteBookmark) items[i].getData();
- treeViewer.setChecked(bookmark, bookmark.isSelected());
-// String[] ignoredCats = bookmark.getIgnoredCategories();
-// treeViewer.setGrayed(bookmark, ignoredCats.length > 0
-// && bookmark.isSelected());
+ viewer.setChecked(bookmark, bookmark.isSelected());
}
}
@@ -406,12 +365,12 @@
private void handleRemove() {
BusyIndicator
- .showWhile(treeViewer.getControl().getDisplay(), new Runnable() {
+ .showWhile(viewer.getControl().getDisplay(), new Runnable() {
public void run() {
UpdateModel updateModel =
UpdateUI.getDefault().getUpdateModel();
IStructuredSelection ssel =
- (IStructuredSelection) treeViewer.getSelection();
+ (IStructuredSelection) viewer.getSelection();
SiteBookmark bookmark = (SiteBookmark) ssel.getFirstElement();
String selName = bookmark.getLabel();
boolean answer = MessageDialog
@@ -431,7 +390,7 @@
private void handleEdit() {
IStructuredSelection ssel =
- (IStructuredSelection) treeViewer.getSelection();
+ (IStructuredSelection) viewer.getSelection();
SiteBookmark bookmark = (SiteBookmark) ssel.getFirstElement();
URL oldURL = bookmark.getURL();
EditSiteDialog dialog = new EditSiteDialog(getShell(), bookmark, getAllSiteBookmarks());
@@ -485,7 +444,7 @@
private void handleSiteChecked(SiteBookmark bookmark, boolean checked) {
if (bookmark.isUnavailable()) {
bookmark.setSelected(false);
- treeViewer.setChecked(bookmark, false);
+ viewer.setChecked(bookmark, false);
return;
}
@@ -515,7 +474,7 @@
}
private void updateSearchRequest() {
- Object[] checked = treeViewer.getCheckedElements();
+ Object[] checked = viewer.getCheckedElements();
UpdateSearchScope scope = new UpdateSearchScope();
int nsites = 0;
@@ -567,6 +526,6 @@
}
public boolean isPageComplete() {
- return treeViewer.getCheckedElements().length != 0;
+ return viewer.getCheckedElements().length != 0;
}
}