blob: 1a8219dee693de87441e7b49ab512e1b0c4274ca [file] [log] [blame]
/**
* Copyright (c) 2010-2012 ISBAN S.L
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Ruben De Dios (ISBAN S.L)
* Andrez Alvarez Mattos (ISBAN S.L)
*/
package org.eclipse.gmf.tooling.simplemap.migrate.ui;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.jface.viewers.IStructuredSelection;
public class WizardUtil {
public static String getDefaultFileName(IStructuredSelection selection, String defaultName, String extension) {
if (selection != null && !selection.isEmpty()) {
Object selected = selection.getFirstElement();
if (selected instanceof IFile) {
return getDefaultFileName((IFile) selected, extension);
}
}
return defaultName + '.' + extension;
}
public static String getDefaultFileName(IFile file, String extension) {
String fileNameBase = getFileBaseName(file);
String modelFilename = fileNameBase + '.' + extension;
for (int i = 1; file.getParent().findMember(modelFilename) != null; ++i) {
modelFilename = fileNameBase + i + '.' + extension;
}
return modelFilename;
}
/**
* In case selection points to file resource, tries to find file
* with same name and specified extension.
*
* @param selection context to look at
* @param fileExt filename extension to look for
* @return
*/
public static IFile findExistingFile(IStructuredSelection selection, String fileExt) {
if (selection == null || selection.isEmpty() || false == selection.getFirstElement() instanceof IFile) {
return null;
}
IFile selected = (IFile) selection.getFirstElement();
String fileNameBase = getFileBaseName(selected);
IResource candidate = selected.getParent().findMember(fileNameBase + '.' + fileExt);
if (candidate != null && candidate.getType() == IResource.FILE && candidate.exists()) {
return (IFile) candidate;
}
return null;
}
private static String getFileBaseName(IFile file) {
String fileNameBase = file.getName();
if (file.getFileExtension() != null) {
fileNameBase = fileNameBase.substring(0, fileNameBase.length() - (file.getFileExtension().length() + 1));
}
return fileNameBase;
}
}