package jetbrains.mps.ide.newModuleDialogs;
/*Generated by MPS */
import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;
import jetbrains.mps.project.AbstractModule;
import jetbrains.mps.project.MPSProject;
import org.jetbrains.annotations.Nullable;
import jetbrains.mps.vfs.IFile;
import jetbrains.mps.smodel.Language;
import jetbrains.mps.project.MPSExtentions;
import jetbrains.mps.project.Solution;
import jetbrains.mps.ide.ui.dialogs.modules.CloneModuleSettings;
import org.jetbrains.annotations.NonNls;
/**
*
* @author Radimir, apyshkin
*/
public final class CloneModuleDialog extends AbstractModuleCreationDialog {
private static final Logger LOG = LogManager.getLogger(CloneModuleDialog.class);
private final AbstractModule myModuleOriginal;
public CloneModuleDialog(MPSProject project, @Nullable String virtualFolder, AbstractModule moduleOriginal) {
super(project, virtualFolder);
setTitle("Clone Module " + moduleOriginal.getModuleName());
myModuleOriginal = moduleOriginal;
init();
}
@Override
protected void runCreation() {
IFile moduleLocationFile = myModuleOriginal.getFileSystem().getFile(mySettings.getModuleLocation()).getDescendant(mySettings.getModuleName() + getExtension());
CopyModuleHelper helper = new CopyModuleHelper(myProject, myModuleOriginal, mySettings.getModuleName(), moduleLocationFile, myVirtualFolder);
myResult = helper.copy();
}
@Override
protected String getExtension() {
if (myModuleOriginal instanceof Language) {
return MPSExtentions.DOT_LANGUAGE;
}
if (myModuleOriginal instanceof Solution) {
return MPSExtentions.DOT_SOLUTION;
}
return null;
}
@Override
protected CloneModuleSettings createSettingsInstance() {
return new CloneModuleSettings(getProjectPath(), myModuleOriginal);
}
@Nullable
@NonNls
@Override
protected String getDimensionServiceKey() {
return CloneModuleDialog.class.getName();
}
}