Ben Konrath 48ff123
? @dot
Ben Konrath 48ff123
? build.xml
Ben Konrath 48ff123
? org.eclipse.update.ui_3.1.0.jar
Andrew Overholt 5f25d4d
Index: src/org/eclipse/update/internal/ui/wizards/TargetPage.java
Andrew Overholt 5f25d4d
===================================================================
Andrew Overholt 5f25d4d
RCS file: /home/eclipse/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java,v
Andrew Overholt 5f25d4d
retrieving revision 1.67
Andrew Overholt 5f25d4d
diff -u -r1.67 TargetPage.java
Andrew Overholt 5f25d4d
--- src/org/eclipse/update/internal/ui/wizards/TargetPage.java	1 Mar 2005 20:29:25 -0000	1.67
Ben Konrath 48ff123
+++ src/org/eclipse/update/internal/ui/wizards/TargetPage.java	19 Apr 2005 23:05:52 -0000
Ben Konrath 48ff123
@@ -10,24 +10,45 @@
Andrew Overholt 5f25d4d
  *******************************************************************************/
Andrew Overholt 5f25d4d
 package org.eclipse.update.internal.ui.wizards;
Andrew Overholt 5f25d4d
 
Andrew Overholt 5f25d4d
-import java.io.*;
Andrew Overholt 5f25d4d
-import java.util.*;
Andrew Overholt 5f25d4d
+import java.io.File;
Andrew Overholt 5f25d4d
+import java.util.HashSet;
Andrew Overholt 5f25d4d
+import java.util.Iterator;
Ben Konrath 48ff123
 
Andrew Overholt 5f25d4d
+import org.eclipse.core.runtime.CoreException;
Andrew Overholt 5f25d4d
+import org.eclipse.core.runtime.IStatus;
Andrew Overholt 5f25d4d
 import org.eclipse.jface.dialogs.Dialog;
Andrew Overholt 5f25d4d
-import org.eclipse.jface.resource.*;
Andrew Overholt 5f25d4d
-import org.eclipse.jface.viewers.*;
Andrew Overholt 5f25d4d
-import org.eclipse.swt.*;
Andrew Overholt 5f25d4d
-import org.eclipse.swt.events.*;
Andrew Overholt 5f25d4d
-import org.eclipse.swt.graphics.*;
Andrew Overholt 5f25d4d
-import org.eclipse.swt.layout.*;
Andrew Overholt 5f25d4d
-import org.eclipse.swt.widgets.*;
Andrew Overholt 5f25d4d
-import org.eclipse.ui.help.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.configuration.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.core.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.internal.operations.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.internal.ui.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.internal.ui.parts.*;
Andrew Overholt 5f25d4d
-import org.eclipse.update.operations.*;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.resource.ImageDescriptor;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.ISelectionChangedListener;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.IStructuredContentProvider;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.IStructuredSelection;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.ITableLabelProvider;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.LabelProvider;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.SelectionChangedEvent;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.StructuredSelection;
Andrew Overholt 5f25d4d
+import org.eclipse.jface.viewers.TableViewer;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.SWT;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.events.SelectionAdapter;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.events.SelectionEvent;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.graphics.Image;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.layout.GridData;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.layout.GridLayout;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.widgets.Button;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.widgets.Composite;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.widgets.Control;
Andrew Overholt 5f25d4d
+import org.eclipse.swt.widgets.Label;
Andrew Overholt 5f25d4d
+import org.eclipse.ui.help.WorkbenchHelp;
Andrew Overholt 5f25d4d
+import org.eclipse.update.configuration.IConfiguredSite;
Andrew Overholt 5f25d4d
+import org.eclipse.update.configuration.IInstallConfiguration;
Andrew Overholt 5f25d4d
+import org.eclipse.update.configuration.IInstallConfigurationChangedListener;
Andrew Overholt 5f25d4d
+import org.eclipse.update.configuration.LocalSystemInfo;
Andrew Overholt 5f25d4d
+import org.eclipse.update.core.IFeature;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.operations.UpdateUtils;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.ui.UpdateLabelProvider;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.ui.UpdateUI;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.ui.UpdateUIImages;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.ui.parts.DefaultContentProvider;
Andrew Overholt 5f25d4d
+import org.eclipse.update.internal.ui.parts.SWTUtil;
Andrew Overholt 5f25d4d
+import org.eclipse.update.operations.IInstallFeatureOperation;
Andrew Overholt 5f25d4d
 
Andrew Overholt 5f25d4d
 public class TargetPage extends BannerPage implements IDynamicPage {
Andrew Overholt 5f25d4d
 	private TableViewer jobViewer;
Ben Konrath 48ff123
@@ -149,7 +170,7 @@
Andrew Overholt 5f25d4d
         label.setLayoutData(gd);
Andrew Overholt 5f25d4d
 
Andrew Overholt 5f25d4d
 		installLocation = new Label(client, SWT.NULL);
Andrew Overholt 5f25d4d
-        installLocation.setText("foo");
Andrew Overholt 5f25d4d
+        installLocation.setText("");
Andrew Overholt 5f25d4d
         gd = new GridData(GridData.FILL_HORIZONTAL);
Andrew Overholt 5f25d4d
         installLocation.setLayoutData(gd);
Andrew Overholt 5f25d4d
         
Ben Konrath 48ff123
@@ -362,9 +383,27 @@
Ben Konrath 48ff123
 				jobs[i].setTargetSite(defaultSite);
Andrew Overholt 5f25d4d
 				continue;
Andrew Overholt 5f25d4d
 			}
Ben Konrath 48ff123
+			
Ben Konrath 48ff123
+			IConfiguredSite csite = getFirstTargetSite(jobs[i]);
Andrew Overholt 5f25d4d
 
Andrew Overholt 5f25d4d
-			jobs[i].setTargetSite(getFirstTargetSite(jobs[i]));
Ben Konrath 48ff123
-
Andrew Overholt 5f25d4d
+			if (csite == null) {
Andrew Overholt 5f25d4d
+				// there are no updateable sites, make one in the user's home direcotry
Andrew Overholt 5f25d4d
+				String sitePath = System.getProperty("user.home") + File.separator  + ".eclipse/updates"; //$NON-NLS-1$ //$NON-NLS-2$
Andrew Overholt 5f25d4d
+
Andrew Overholt 5f25d4d
+				try {	
Andrew Overholt 5f25d4d
+					csite = config.createConfiguredSite(new File(sitePath));
Andrew Overholt 5f25d4d
+					config.addConfiguredSite(csite);
Andrew Overholt 5f25d4d
+					IStatus status = csite.verifyUpdatableStatus();
Andrew Overholt 5f25d4d
+					if (!status.isOK())
Andrew Overholt 5f25d4d
+						throw new CoreException(status);
Andrew Overholt 5f25d4d
+				
Andrew Overholt 5f25d4d
+				} catch (CoreException e) {
Andrew Overholt 5f25d4d
+						// there was a problem, the user must choose an installation site
Andrew Overholt 5f25d4d
+						csite = null;
Andrew Overholt 5f25d4d
+				}
Andrew Overholt 5f25d4d
+			}
Andrew Overholt 5f25d4d
+			
Andrew Overholt 5f25d4d
+			jobs[i].setTargetSite(csite);
Andrew Overholt 5f25d4d
 		}
Andrew Overholt 5f25d4d
 	}
Ben Konrath 48ff123
 	
Ben Konrath 48ff123
@@ -373,7 +412,7 @@
Ben Konrath 48ff123
 		IConfiguredSite[] sites = config.getConfiguredSites();
Ben Konrath 48ff123
 		for (int i = 0; i < sites.length; i++) {
Ben Konrath 48ff123
 			IConfiguredSite csite = sites[i];
Ben Konrath 48ff123
-			if (getSiteVisibility(csite, job)) 
Ben Konrath 48ff123
+			if (getSiteVisibility(csite, job) && csite.verifyUpdatableStatus().isOK() == true) 
Ben Konrath 48ff123
 				return csite;
Ben Konrath 48ff123
 		}
Ben Konrath 48ff123
 		return null;