package fr.adrienbrault.idea.symfony2plugin.form.completion; import com.intellij.codeInsight.lookup.LookupElementPresentation; import com.jetbrains.php.lang.psi.elements.PhpClass; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.completion.lookup.ClassConstantLookupElementAbstract; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class FormClassConstantsLookupElement extends ClassConstantLookupElementAbstract { public FormClassConstantsLookupElement(@NotNull PhpClass phpClass) { super(phpClass); } @Override public void renderElement(LookupElementPresentation presentation) { // provides parent and string alias name List<String> tailsText = new ArrayList<>(); String getName = PhpElementsUtil.getMethodReturnAsString(phpClass, "getName"); if(getName != null) { tailsText.add(getName); } // @TODO: getParent should String getParent = PhpElementsUtil.getMethodReturnAsString(phpClass, "getParent"); if(getParent != null && !getParent.equals("form")) { tailsText.add(getParent); } if(tailsText.size() > 0) { presentation.setTailText("(" + StringUtils.join(tailsText, ",") + ")", true); } presentation.setIcon(Symfony2Icons.FORM_TYPE); super.renderElement(presentation); } }