core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/ExportWizard.java
--- a/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/ExportWizard.java Wed Aug 25 14:02:53 2010 -0500
+++ b/core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/wizard/ExportWizard.java Wed Aug 25 15:24:01 2010 -0500
@@ -19,14 +19,24 @@
package com.nokia.carbide.internal.discovery.ui.wizard;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
+import java.net.URI;
+import java.net.URL;
import java.text.MessageFormat;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.osgi.service.datalocation.Location;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;
@@ -61,8 +71,42 @@
public void init(IWorkbench workbench, IStructuredSelection selection) {
setDefaultPageImageDescriptor(Activator.getImageDescriptor("icons\\install_wiz.gif")); //$NON-NLS-1$
setWindowTitle(Messages.ExportWizard_Title);
- exportPage = new ExportPage();
+ exportPage = new ExportPage(getFilteredFeatureIds());
addPage(exportPage);
}
+ private Collection<String> getFilteredFeatureIds() {
+ Collection<FeatureInfo> installedFeatures = null;
+ Location installLocation = Platform.getInstallLocation();
+ URL url = installLocation.getURL();
+ IPath path = new Path(url.getPath());
+ path = path.append("configuration/installedFeatures.xml"); //$NON-NLS-1$
+ File file = path.toFile();
+ if (!file.exists()) {
+ installedFeatures = P2Utils.getInstalledFeatures(new NullProgressMonitor());
+ ImportExportData data = new ImportExportData(false, Collections.<URI>emptyList(), installedFeatures);
+ try {
+ Streamer.writeToXML(new FileOutputStream(file), data);
+ } catch (Exception e) {
+ Activator.logError("Could not write installed features file: " + file, e);
+ }
+ }
+ else {
+ try {
+ ImportExportData data = Streamer.readFromXML(new FileInputStream(file));
+ installedFeatures = data.getFeatureInfos();
+ } catch (Exception e) {
+ Activator.logError("Could not read installed features file: " + file, e);
+ }
+ }
+
+ Collection<String> filteredIds = new ArrayList<String>();
+ if (installedFeatures != null) {
+ for (FeatureInfo featureInfo : installedFeatures) {
+ filteredIds.add(featureInfo.getId());
+ }
+ }
+ return filteredIds;
+ }
+
}