3
3
import com .intellij .openapi .application .ApplicationManager ;
4
4
import com .intellij .openapi .editor .Editor ;
5
5
import com .intellij .openapi .fileEditor .FileEditorManager ;
6
+ import com .intellij .openapi .fileEditor .FileEditorManagerEvent ;
7
+ import com .intellij .openapi .fileEditor .FileEditorManagerListener ;
6
8
import com .intellij .openapi .project .Project ;
7
9
import com .intellij .openapi .ui .DialogWrapper ;
8
10
import com .intellij .psi .*;
18
20
import groovyjarjarantlr4 .v4 .misc .OrderedHashMap ;
19
21
import groovyjarjarantlr4 .v4 .runtime .misc .OrderedHashSet ;
20
22
import org .apache .commons .lang3 .StringUtils ;
21
- import org .apache . logging . log4j . util . Strings ;
23
+ import org .jetbrains . annotations . NotNull ;
22
24
import org .jetbrains .annotations .Nullable ;
23
25
24
26
import javax .swing .*;
@@ -73,6 +75,13 @@ public UMLDiagramView(Project project) {
73
75
mainPanel .add (browser .getComponent (), BorderLayout .CENTER );
74
76
75
77
updateDiagram ();
78
+
79
+ project .getMessageBus ().connect ().subscribe (FileEditorManagerListener .FILE_EDITOR_MANAGER , new FileEditorManagerListener () {
80
+ @ Override
81
+ public void selectionChanged (@ NotNull FileEditorManagerEvent event ) {
82
+ updateDiagram ();
83
+ }
84
+ });
76
85
}
77
86
78
87
public void redraw () {
@@ -85,7 +94,8 @@ public JPanel getComponent() {
85
94
86
95
private void updateDiagram () {
87
96
zoomLevel = 1 ;
88
- String html = "<!DOCTYPE html>\n " +
97
+ String uml = generateUML ();
98
+ browser .loadHTML (uml != null ? ("<!DOCTYPE html>\n " +
89
99
"<html>\n " +
90
100
"<head>\n " +
91
101
" <meta charset=\" UTF-8\" >\n " +
@@ -107,16 +117,18 @@ private void updateDiagram() {
107
117
"<body>\n " +
108
118
" <div id=\" diagram-container\" >\n " +
109
119
" <div id=\" diagram-scale-wrapper\" >\n " +
110
- " <div class=\" mermaid\" >\n " + generateUML () + "</div>\n " +
120
+ " <div class=\" mermaid\" >\n " + uml + "</div>\n " +
111
121
" </div>\n " +
112
122
" </div>\n " +
113
123
"</body>\n " +
114
- "</html>" ;
115
- browser .loadHTML (html );
124
+ "</html>" ) : "" );
116
125
}
117
126
118
127
private void export () {
119
- new ExportUMLDialog (generateUML ()).show ();
128
+ String uml = generateUML ();
129
+ if (uml != null ) {
130
+ new ExportUMLDialog (uml ).show ();
131
+ }
120
132
}
121
133
122
134
private String generateUML () {
0 commit comments