package org.angularjs.codeInsight.attributes;
import com.intellij.lang.javascript.psi.stubs.JSImplicitElement;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiElement;
import com.intellij.util.NotNullFunction;
import com.intellij.xml.XmlAttributeDescriptor;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author Dennis.Ushakov
*/
public class AngularEventHandlerDescriptor extends AngularAttributeDescriptor {
public static final String OUTPUT = "Output";
public static final NotNullFunction<Pair<PsiElement, String>, XmlAttributeDescriptor> FACTORY = AngularEventHandlerDescriptor::createEventHandler;
public AngularEventHandlerDescriptor(PsiElement element,
String attributeName) {
super(element.getProject(), attributeName, null, element);
}
public static XmlAttributeDescriptor[] getEventHandlerDescriptors(JSImplicitElement declaration) {
return getFieldBasedDescriptors(declaration, OUTPUT, FACTORY);
}
@NotNull
private static AngularEventHandlerDescriptor createEventHandler(Pair<PsiElement, String> dom) {
return new AngularEventHandlerDescriptor(dom.first, "(" + dom.second + ")");
}
@Nullable
@Override
public String handleTargetRename(@NotNull @NonNls String newTargetName) {
return "(" + newTargetName + ")";
}
}