package com.intellij.lang.javascript.uml;
import com.intellij.lang.javascript.psi.ecmal4.XmlBackedJSClassFactory;
import com.intellij.lang.javascript.psi.JSFile;
import com.intellij.lang.javascript.psi.impl.JSPsiImplUtils;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlFile;
import com.intellij.diagram.extras.providers.DiagramDnDProvider;
public class FlashUmlDndProvider implements DiagramDnDProvider<Object> {
public boolean isAcceptedForDnD(Object o, Project project) {
if (o instanceof PsiFile || o instanceof PsiDirectory) {
return FlashUmlElementManager.isAcceptableAsNodeStatic(o);
}
return false;
}
public Object[] wrapToModelObject(Object o, Project project) {
Object result = null;
if (o instanceof PsiDirectory) {
result = FlashUmlVfsResolver.getQualifiedNameStatic(o);
}
else if (o instanceof JSFile) {
result = JSPsiImplUtils.findQualifiedElement((JSFile)o);
}
else if (o instanceof XmlFile) {
result = XmlBackedJSClassFactory.getXmlBackedClass((XmlFile)o);
}
return result == null ? null : new Object[]{result};
}
}