blob: 410eb95e6baa8f7a4dc71fa266156a52313d21c6 [file] [log] [blame]
package com.intellij.ide.actions;
import com.intellij.ide.util.PlatformPackageUtil;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiManager;
import com.intellij.refactoring.copy.CopyHandler;
public class SaveAsAction extends DumbAwareAction {
@Override
public void update(AnActionEvent e) {
final DataContext dataContext = e.getDataContext();
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
final VirtualFile virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(dataContext);
e.getPresentation().setEnabled(project!=null && virtualFile!=null);
}
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext dataContext = e.getDataContext();
final Project project = CommonDataKeys.PROJECT.getData(dataContext);
final VirtualFile virtualFile = CommonDataKeys.VIRTUAL_FILE.getData(dataContext);
@SuppressWarnings({"ConstantConditions"}) final PsiElement element = PsiManager.getInstance(project).findFile(virtualFile);
if(element==null) return;
CopyHandler.doCopy(new PsiElement[] {element.getContainingFile()}, PlatformPackageUtil.getDirectory(element));
}
}