private void updateAllWarnings(@Nullable VirtualFile vf) { if (IdeMain.getTestMode() == TestMode.CORE_TEST) return; for (FileEditor editor : myFileEditorManager.getAllEditors()) { if (editor instanceof MPSFileNodeEditor) { MPSFileNodeEditor mpsEditor = (MPSFileNodeEditor) editor; if (!mpsEditor.isDisposed()) { if (vf == null || vf.equals(mpsEditor.getFile())) { updateWarnings(mpsEditor); } } } } }
private void doUpdateWarnings(final MPSFileNodeEditor editor) { List<WarningPanel> newWarnings = new ArrayList<WarningPanel>(); Editor nodeEditor = editor.getNodeEditor(); if (nodeEditor == null) return; EditorComponent editorComponent = nodeEditor.getCurrentEditorComponent(); if (editorComponent != null && editorComponent.isDisposed()) return; SNode node = editor.getFile().getNode(); if (node == null) return; EditorWarningsProvider[] providers = Extensions.getExtensions(EditorWarningsProvider.EP_NAME); for (EditorWarningsProvider provider : providers) { WarningPanel panel = provider.getWarningPanel(node, myProject); if (panel != null) { newWarnings.add(panel); } } replaceWarningPanels(editor, newWarnings); }