private void setRootElement()

in src/main/java/idea/plugin/psiviewer/view/PsiViewerPanel.java [316:337]


    private void setRootElement(PsiElement rootElement)
    {
        if (rootElement instanceof PsiFile)
        {
            FileViewProvider viewProvider = ((PsiFile) rootElement).getViewProvider();

            // iteration need, because getLanguages returns Set, not list, order is random
            _projectComponent.updateLanguagesList(ContainerUtil.map(viewProvider.getAllFiles(), PsiElement::getLanguage));
            Language selectedLanguage = _projectComponent.getSelectedLanguage();

            if (selectedLanguage != null)
            {
                PsiElement selectedRoot = viewProvider.getPsi(selectedLanguage);
                if( selectedRoot != null )
                {
                    rootElement = selectedRoot;
                }
            }
        }
        _rootElement = rootElement;
        showRootElement();
    }