* Extension for XML files
* @since 2.0
*/
- public static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$
+ public static final String XML_EXTENSION = "xml"; //$NON-NLS-1$
/** Make this class non-instantiable */
private XmlUtils() {
* @return A map with all the XML analysis files
* @since 2.0
*/
- public static synchronized Map<String, File> listFile() {
- Map<String, File> files = new HashMap<>();
- File[] listOfFiles = getXmlFilesPath().toFile().listFiles();
- for (File file : listOfFiles) {
- files.put(file.getName(), file);
+ public static synchronized @NonNull Map<String, File> listFiles() {
+ IPath pathToFiles = XmlUtils.getXmlFilesPath();
+ File folder = pathToFiles.toFile();
+
+ Map<String, File> fileMap = new HashMap<>();
+ if ((folder.isDirectory() && folder.exists())) {
+ File[] listOfFiles = getXmlFilesPath().toFile().listFiles();
+ for (File file : listOfFiles) {
+ IPath path = new Path(file.getName());
+ if (path.getFileExtension().equals(XML_EXTENSION)) {
+ fileMap.put(file.getName(), file);
+ }
+ }
}
- return Collections.unmodifiableMap(files);
+ return Collections.unmodifiableMap(fileMap);
}
/**
* @since 2.0
*/
public static void deleteFile(String name) {
- Map<String, File> files = listFile();
+ Map<String, File> files = listFiles();
File file = files.get(name);
if (file == null) {
return;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
}
private void handleSelection(String[] selection) {
- Map<String, File> files = XmlUtils.listFile();
- File file = files.get(selection[0] + XmlUtils.XML_EXTENSION);
+ Map<String, File> files = XmlUtils.listFiles();
+ File file = files.get(createXmlFileString(selection[0]));
if (file != null && XmlUtils.xmlValidate(file).isOK()) {
fInvalidFileLabel.setVisible(false);
} else {
}
}
- private static void deleteSupplementaryFile(String selection) {
+ private static void deleteSupplementaryFile(String xmlFile) {
// 1. Look for all traces that have this analysis
// 2. Close them if they are opened.
// 3. Delete the related supplementary files
java.util.List<IResource> resourceToDelete = new ArrayList<>();
- java.util.List<String> ids = XmlUtils.getAnalysisIdsFromFile(selection + XmlUtils.XML_EXTENSION);
+ java.util.List<String> ids = XmlUtils.getAnalysisIdsFromFile(xmlFile);
IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(0);
for (IProject project : projects) {
TmfProjectElement pElement = TmfProjectRegistry.getProject(project);
private void fillAnalysesList() {
fAnalysesList.removeAll();
- Map<String, File> files = XmlUtils.listFile();
+ Map<String, File> files = XmlUtils.listFiles();
for (String file : files.keySet()) {
// Remove the extension from the file path. The extension is at the
// end of the file path
- fAnalysesList.add(file.substring(0, file.length() - XmlUtils.XML_EXTENSION.length()));
+ IPath path = new Path(file);
+ fAnalysesList.add(path.removeFileExtension().toString());
}
fDeleteButton.setEnabled(false);
fExportButton.setEnabled(false);
FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell(), SWT.SAVE);
dialog.setText(NLS.bind(Messages.ManageXMLAnalysisDialog_SelectFileExport, fAnalysesList.getSelection()[0]));
dialog.setFilterExtensions(new String[] { XML_FILTER_EXTENSION, "*" }); //$NON-NLS-1$
- dialog.setFileName(fAnalysesList.getSelection()[0] + XmlUtils.XML_EXTENSION);
+ String selection = createXmlFileString(fAnalysesList.getSelection()[0]);
+ dialog.setFileName(selection);
String path = dialog.open();
if (path != null) {
- String selection = fAnalysesList.getSelection()[0];
- if (!XmlUtils.exportXmlFile(selection + XmlUtils.XML_EXTENSION, path).isOK()) {
- Activator.logError(NLS.bind(Messages.ManageXMLAnalysisDialog_FailedToExport, selection + XmlUtils.XML_EXTENSION));
+ if (!XmlUtils.exportXmlFile(selection, path).isOK()) {
+ Activator.logError(NLS.bind(Messages.ManageXMLAnalysisDialog_FailedToExport, selection));
}
}
}
Messages.ManageXMLAnalysisDialog_DeleteFile,
NLS.bind(Messages.ManageXMLAnalysisDialog_DeleteConfirmation, fAnalysesList.getSelection()[0]));
if (confirm) {
- String selection = fAnalysesList.getSelection()[0];
+ String selection = createXmlFileString(fAnalysesList.getSelection()[0]);
deleteSupplementaryFile(selection);
- XmlUtils.deleteFile(selection + XmlUtils.XML_EXTENSION);
+ XmlUtils.deleteFile(selection);
fillAnalysesList();
fInvalidFileLabel.setVisible(false);
XmlAnalysisModuleSource.notifyModuleChange();
}
}
}
+
+ private static String createXmlFileString(String baseName) {
+ IPath path = new Path(baseName).addFileExtension(XmlUtils.XML_EXTENSION);
+ return path.toString();
+ }
}
import java.io.File;
import java.io.IOException;
import java.util.List;
+import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.Activator;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.TmfXmlUiStrings;
@Override
public void moduleCreated(IAnalysisModule module) {
- IPath pathToFiles = XmlUtils.getXmlFilesPath();
- File fFolder = pathToFiles.toFile();
- if (!(fFolder.isDirectory() && fFolder.exists())) {
- return;
- }
- for (File xmlFile : fFolder.listFiles()) {
+ Map<String, File> files = XmlUtils.listFiles();
+ for (File xmlFile : files.values()) {
if (!XmlUtils.xmlValidate(xmlFile).isOK()) {
continue;
}