import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.eclipse.ui.dialogs.FileSystemElement;
import org.eclipse.ui.dialogs.IOverwriteQuery;
import org.eclipse.ui.dialogs.WizardResourceImportPage;
+import org.eclipse.ui.internal.ide.dialogs.IElementFilter;
import org.eclipse.ui.model.AdaptableList;
import org.eclipse.ui.model.WorkbenchContentProvider;
import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
* @author Francois Chouinard
* @since 2.0
*/
+@SuppressWarnings("restriction")
public class ImportTraceWizardPage extends WizardResourceImportPage {
// ------------------------------------------------------------------------
// ------------------------------------------------------------------------
// Determine if the finish button can be enabled
// ------------------------------------------------------------------------
-
@Override
public boolean validateSourceGroup() {
return false;
}
- List<FileSystemElement> resourcesToImport = getSelectedResources();
- if (resourcesToImport.size() == 0) {
+ if (selectionGroup.getCheckedElementCount() == 0) {
setMessage(null);
setErrorMessage(Messages.ImportTraceWizard_SelectTraceNoneSelected);
return false;
String currentPath = null;
final Map<String, TraceFileSystemElement> folderElements = new HashMap<>();
try {
- List<TraceFileSystemElement> fileSystemElements = getSelectedResources();
+
+ final ArrayList<TraceFileSystemElement> fileSystemElements = new ArrayList<>();
+ IElementFilter passThroughFilter = new IElementFilter() {
+
+ @Override
+ public void filterElements(Collection elements, IProgressMonitor monitor) {
+ fileSystemElements.addAll(elements);
+ }
+ @Override
+ public void filterElements(Object[] elements, IProgressMonitor monitor) {
+ for (int i = 0; i < elements.length; i++) {
+ fileSystemElements.add((TraceFileSystemElement)elements[i]);
+ }
+ }
+ };
+
+ // List fileSystemElements will be filled using the passThroughFilter
+ SubMonitor subMonitor = SubMonitor.convert(progressMonitor, 1);
+ getSelectedResources(passThroughFilter, subMonitor);
+
+ // Check if operation was cancelled.
+ ModalContext.checkCanceled(subMonitor);
+
Iterator<TraceFileSystemElement> fileSystemElementsIter = fileSystemElements.iterator();
- SubMonitor subMonitor = SubMonitor.convert(progressMonitor, fileSystemElements.size());
+ subMonitor = SubMonitor.convert(progressMonitor, fileSystemElements.size());
while (fileSystemElementsIter.hasNext()) {
ModalContext.checkCanceled(progressMonitor);