package fr.adrienbrault.idea.symfony2plugin.external.toolbox.provider; import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import de.espend.idea.php.toolbox.completion.dict.PhpToolboxCompletionContributorParameter; import de.espend.idea.php.toolbox.extension.PhpToolboxProviderAbstract; import de.espend.idea.php.toolbox.navigation.dict.PhpToolboxDeclarationHandlerParameter; import de.espend.idea.php.toolbox.provider.presentation.ProviderPresentation; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent; import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.Collection; import java.util.Collections; import java.util.HashSet; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class TranslationDomainToolboxProvider extends PhpToolboxProviderAbstract { @NotNull @Override public Collection<LookupElement> getLookupElements(@NotNull PhpToolboxCompletionContributorParameter parameter) { if(!Symfony2ProjectComponent.isEnabled(parameter.getProject())) { return Collections.emptyList(); } return TranslationUtil.getTranslationDomainLookupElements(parameter.getProject()); } @NotNull @Override public Collection<PsiElement> getPsiTargets(@NotNull PhpToolboxDeclarationHandlerParameter parameter) { if(!Symfony2ProjectComponent.isEnabled(parameter.getProject())) { return Collections.emptyList(); } Collection<PsiElement> psiElements = new HashSet<>(); for (PsiFile psiFile : TranslationUtil.getDomainPsiFiles(parameter.getProject(), parameter.getContents())) { psiElements.add(psiFile); } return psiElements; } @NotNull @Override public String getName() { return "symfony.translation.domains"; } @Nullable @Override public ProviderPresentation getPresentation() { return new ProviderPresentation() { @Nullable @Override public Icon getIcon() { return Symfony2Icons.TRANSLATION; } @Nullable @Override public String getDescription() { return "Symfony translation domains"; } }; } }