From ee17defa60440cac0e00f6fbac14ea54767a6a31 Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 21 Feb 2007 16:45:32 +0000 Subject: [PATCH] [174852] fix for file type filtering --- .../dstore/files/DStoreFileService.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java index 80de0283e62..3b9c0e1b310 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/services/dstore/files/DStoreFileService.java @@ -40,10 +40,12 @@ import org.eclipse.dstore.core.model.IDataStoreProvider; import org.eclipse.rse.dstore.universal.miners.IUniversalDataStoreConstants; import org.eclipse.rse.dstore.universal.miners.filesystem.UniversalByteStreamHandler; import org.eclipse.rse.dstore.universal.miners.filesystem.UniversalFileSystemMiner; +import org.eclipse.rse.services.clientserver.FileTypeMatcher; +import org.eclipse.rse.services.clientserver.IMatcher; import org.eclipse.rse.services.clientserver.IServiceConstants; import org.eclipse.rse.services.clientserver.ISystemFileTypes; +import org.eclipse.rse.services.clientserver.NamePatternMatcher; import org.eclipse.rse.services.clientserver.PathUtility; -import org.eclipse.rse.services.clientserver.StringCompare; import org.eclipse.rse.services.clientserver.archiveutils.ArchiveHandlerManager; import org.eclipse.rse.services.clientserver.messages.ISystemMessageProvider; import org.eclipse.rse.services.clientserver.messages.SystemMessage; @@ -828,9 +830,15 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer _fileElementMap.put(path, element); return file; } - - protected IHostFile[] convertToHostFiles(DataElement[] elements, String filter) + protected IHostFile[] convertToHostFiles(DataElement[] elements, String fileFilter) { + IMatcher filematcher = null; + if (fileFilter.endsWith(",")) { //$NON-NLS-1$ + String[] types = fileFilter.split(","); //$NON-NLS-1$ + filematcher = new FileTypeMatcher(types, true); + } else { + filematcher = new NamePatternMatcher(fileFilter, true, true); + } ArrayList results = new ArrayList(elements.length); for (int i = 0; i < elements.length; i++) { @@ -841,7 +849,7 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer // filter files if (type.equals(UNIVERSAL_FILE_DESCRIPTOR) || type.equals(UNIVERSAL_VIRTUAL_FILE_DESCRIPTOR)) { - if (StringCompare.compare(filter, element.getName(), true)) + if (filematcher.matches(element.getName())) { results.add(convertToHostFile(element)); } @@ -854,6 +862,8 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer } return (IHostFile[]) results.toArray(new IHostFile[results.size()]); } + + public IHostFile getUserHome() {