generalize canOpenInBrowser impl

This commit is contained in:
Vladimir Krivosheev
2013-06-18 18:17:21 +02:00
parent 730ee8aed4
commit a1485e5950
@@ -37,9 +37,10 @@ import java.util.List;
public class WebBrowserServiceImpl extends WebBrowserService {
@Override
public boolean canOpenInBrowser(@NotNull PsiElement psiElement) {
final PsiFile psiFile = psiElement instanceof PsiFile ? (PsiFile)psiElement : psiElement.getContainingFile();
return psiFile != null && psiFile.getVirtualFile() != null &&
(HtmlUtil.isHtmlFile(psiFile) || getProvider(psiElement) != null);
PsiFile psiFile = psiElement instanceof PsiFile ? (PsiFile)psiElement : psiElement.getContainingFile();
VirtualFile virtualFile = psiFile == null ? null : psiFile.getVirtualFile();
return virtualFile != null &&
((HtmlUtil.isHtmlFile(psiFile) && !(virtualFile instanceof LightVirtualFile)) || getProvider(psiElement, psiFile) != null);
}
@Override
@@ -94,10 +95,10 @@ public class WebBrowserServiceImpl extends WebBrowserService {
@Nullable
public static Pair<WebBrowserUrlProvider, Url> getProvider(@Nullable PsiElement element) {
PsiFile psiFile = element == null ? null : element.getContainingFile();
if (psiFile == null) {
return null;
}
return psiFile == null ? null : getProvider(element, psiFile);
}
private static Pair<WebBrowserUrlProvider, Url> getProvider(PsiElement element, PsiFile psiFile) {
Ref<Url> result = Ref.create();
List<WebBrowserUrlProvider> allProviders = Arrays.asList(WebBrowserUrlProvider.EP_NAME.getExtensions());
for (WebBrowserUrlProvider urlProvider : DumbService.getInstance(element.getProject()).filterByDumbAwareness(allProviders)) {