package com.intellij.javascript.flex;
import com.intellij.lang.javascript.JavaScriptSupportLoader;
import com.intellij.lang.javascript.psi.JSFile;
import com.intellij.lang.javascript.refactoring.RenameMoveUtils;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlFile;
import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFileHandler;
import com.intellij.usageView.UsageInfo;
import com.intellij.util.IncorrectOperationException;
import java.util.List;
import java.util.Map;
/**
* @author Maxim.Mossienko
* Date: Sep 18, 2008
* Time: 3:49:24 PM
*/
public class FlexMoveFileHandler extends MoveFileHandler {
public boolean canProcessElement(final PsiFile element) {
return element instanceof JSFile || JavaScriptSupportLoader.isFlexMxmFile(element);
}
public void prepareMovedFile(final PsiFile file, PsiDirectory moveDestination, Map<PsiElement, PsiElement> oldToNewMap) {
if (file instanceof JSFile) {
RenameMoveUtils.prepareMovedFile((JSFile)file);
} else if (file instanceof XmlFile) {
RenameMoveUtils.prepareMovedMxmlFile((XmlFile)file, null);
}
}
@Override
public List<UsageInfo> findUsages(PsiFile psiFile, PsiDirectory newParent, boolean searchInComments, boolean searchInNonJavaFiles) {
return null;
}
@Override
public void retargetUsages(List<UsageInfo> usageInfos, Map<PsiElement, PsiElement> oldToNewMap) {
}
public void updateMovedFile(final PsiFile file) throws IncorrectOperationException {
if (file instanceof JSFile) {
RenameMoveUtils.updateMovedFile((JSFile)file);
} else if (file instanceof XmlFile) {
RenameMoveUtils.updateMovedMxmlFile((XmlFile)file);
}
}
}