package org.eclipse.gmf.examples.eclipsecon.diagram.part;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.util.IDEEditorFileCreator;
import org.eclipse.gmf.runtime.diagram.ui.resources.editor.util.DiagramFileCreator;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
/**
* @generated
*/
public class EclipseconDiagramFileCreator extends IDEEditorFileCreator {
/**
* @generated
*/
private static EclipseconDiagramFileCreator INSTANCE = new EclipseconDiagramFileCreator();
/**
* @generated
*/
public static DiagramFileCreator getInstance() {
return INSTANCE;
}
/**
* @generated
*/
public String getExtension() {
return ".eclipsecon_diagram"; //$NON-NLS-1$
}
/**
* @generated
*/
public String getUniqueFileName(IPath containerPath, String fileName) {
int nFileNumber = 1;
fileName = removeExtensionFromFileName(fileName);
String newFileName = fileName;
IPath diagramFilePath = containerPath
.append(appendExtensionToFileName(newFileName));
IPath modelFilePath = containerPath
.append(appendExtensionToModelFileName(newFileName));
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
while (workspaceRoot.exists(diagramFilePath)
|| workspaceRoot.exists(modelFilePath)) {
nFileNumber++;
newFileName = fileName + nFileNumber;
diagramFilePath = containerPath
.append(appendExtensionToFileName(newFileName));
modelFilePath = containerPath
.append(appendExtensionToModelFileName(newFileName));
}
return newFileName;
}
/**
* @generated
*/
private String removeExtensionFromFileName(String fileName) {
if (fileName.endsWith(getExtension())) {
return fileName.substring(0, fileName.length()
- getExtension().length());
}
return fileName;
}
/**
* @generated
*/
private String appendExtensionToModelFileName(String fileName) {
return fileName + ".eclipsecon";
}
}