core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/FeatureInstallOperation.java
changeset 1826 48569468eaf3
parent 1824 7e34f628583a
equal deleted inserted replaced
1824:7e34f628583a 1826:48569468eaf3
    24 import java.util.Set;
    24 import java.util.Set;
    25 
    25 
    26 import org.eclipse.core.runtime.CoreException;
    26 import org.eclipse.core.runtime.CoreException;
    27 import org.eclipse.core.runtime.IProgressMonitor;
    27 import org.eclipse.core.runtime.IProgressMonitor;
    28 import org.eclipse.core.runtime.IStatus;
    28 import org.eclipse.core.runtime.IStatus;
       
    29 import org.eclipse.core.runtime.NullProgressMonitor;
    29 import org.eclipse.core.runtime.OperationCanceledException;
    30 import org.eclipse.core.runtime.OperationCanceledException;
    30 import org.eclipse.core.runtime.SubMonitor;
    31 import org.eclipse.core.runtime.SubMonitor;
    31 import org.eclipse.equinox.p2.core.ProvisionException;
    32 import org.eclipse.equinox.p2.core.ProvisionException;
    32 import org.eclipse.equinox.p2.metadata.IInstallableUnit;
    33 import org.eclipse.equinox.p2.metadata.IInstallableUnit;
    33 import org.eclipse.equinox.p2.operations.InstallOperation;
    34 import org.eclipse.equinox.p2.operations.InstallOperation;
    34 import org.eclipse.equinox.p2.operations.ProvisioningSession;
    35 import org.eclipse.equinox.p2.operations.ProvisioningSession;
    35 import org.eclipse.equinox.p2.operations.RepositoryTracker;
    36 import org.eclipse.equinox.p2.operations.RepositoryTracker;
    36 import org.eclipse.equinox.p2.query.IQuery;
    37 import org.eclipse.equinox.p2.query.IQuery;
    37 import org.eclipse.equinox.p2.query.IQueryResult;
    38 import org.eclipse.equinox.p2.query.IQueryResult;
       
    39 import org.eclipse.equinox.p2.query.IQueryable;
    38 import org.eclipse.equinox.p2.query.QueryUtil;
    40 import org.eclipse.equinox.p2.query.QueryUtil;
    39 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
    41 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
    40 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
    42 import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
    41 import org.eclipse.equinox.p2.ui.ProvisioningUI;
    43 import org.eclipse.equinox.p2.ui.ProvisioningUI;
    42 import org.eclipse.jface.operation.IRunnableWithProgress;
    44 import org.eclipse.jface.operation.IRunnableWithProgress;
    43 import org.eclipse.swt.widgets.Display;
    45 import org.eclipse.swt.widgets.Display;
    44 
    46 
    45 import com.nokia.carbide.discovery.ui.Messages;
    47 import com.nokia.carbide.discovery.ui.Messages;
    46 
    48 
    47 public class FeatureInstallOperation implements IRunnableWithProgress {
    49 class FeatureInstallOperation implements IRunnableWithProgress {
    48 	
    50 	
    49 	private Collection<URI> uris;
    51 	private Collection<URI> uris;
    50 	private Collection<FeatureInfo> featureInfos;
    52 	private Collection<FeatureInfo> featureInfos;
    51 	private boolean wantVersions;
    53 	private boolean wantVersions;
    52 	private ProvisioningUI provisioningUI;
    54 	private ProvisioningUI provisioningUI;
    78 		findInstallableUnits(subMonitor.newChild(40));
    80 		findInstallableUnits(subMonitor.newChild(40));
    79 		final InstallOperation operation = resolve(subMonitor.newChild(30));
    81 		final InstallOperation operation = resolve(subMonitor.newChild(30));
    80 		Display.getDefault().asyncExec(new Runnable() {
    82 		Display.getDefault().asyncExec(new Runnable() {
    81 			@Override
    83 			@Override
    82 			public void run() {
    84 			public void run() {
    83 				provisioningUI.openInstallWizard(ius, operation, null);
    85 				IQueryable<IInstallableUnit> additions = operation.getProvisioningPlan().getAdditions();
       
    86 				IQueryResult<IInstallableUnit> result = additions.query(QueryUtil.createIUGroupQuery(), new NullProgressMonitor());
       
    87 				provisioningUI.openInstallWizard(result.toSet(), operation, null);
    84 			}
    88 			}
    85 		});
    89 		});
    86 	}
    90 	}
    87 
    91 
    88 	private void getRepositories(SubMonitor monitor) throws ProvisionException, OperationCanceledException {
    92 	private void getRepositories(SubMonitor monitor) throws ProvisionException, OperationCanceledException {
   138 			throw new ProvisionException(sb.toString());
   142 			throw new ProvisionException(sb.toString());
   139 		}
   143 		}
   140 		monitor.done();
   144 		monitor.done();
   141 	}
   145 	}
   142 	
   146 	
   143 //	private FeatureInfo findInfo(Collection<FeatureInfo> featureInfos, String id, Version version) {
       
   144 //		for (FeatureInfo featureInfo : featureInfos) {
       
   145 //			boolean sameId = featureInfo.getId().equals(id);
       
   146 //			if (sameId && (!wantVersions || version.toString().equals(featureInfo.getVersion().toString())))
       
   147 //				return featureInfo;
       
   148 //		}
       
   149 //		return null;
       
   150 //	}
       
   151 	
       
   152 	private InstallOperation resolve(SubMonitor monitor) throws CoreException {
   147 	private InstallOperation resolve(SubMonitor monitor) throws CoreException {
   153 		checkIfCanceled(monitor);
   148 		checkIfCanceled(monitor);
   154 		URI[] uris = (URI[]) urisUsed.toArray(new URI[urisUsed.size()]);
   149 		URI[] uris = (URI[]) urisUsed.toArray(new URI[urisUsed.size()]);
   155 		InstallOperation installOperation = provisioningUI.getInstallOperation(ius, uris);
   150 		InstallOperation installOperation = provisioningUI.getInstallOperation(ius, uris);
   156 		IStatus operationStatus = installOperation.resolveModal(monitor);
   151 		IStatus operationStatus = installOperation.resolveModal(monitor);