Skip to content

Commit 3061647

Browse files
committed
UMLDiagram: File listener
1 parent 25c3657 commit 3061647

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/com/lsfusion/dependencies/UMLDiagramView.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.intellij.openapi.application.ApplicationManager;
44
import com.intellij.openapi.editor.Editor;
55
import com.intellij.openapi.fileEditor.FileEditorManager;
6+
import com.intellij.openapi.fileEditor.FileEditorManagerEvent;
7+
import com.intellij.openapi.fileEditor.FileEditorManagerListener;
68
import com.intellij.openapi.project.Project;
79
import com.intellij.openapi.ui.DialogWrapper;
810
import com.intellij.psi.*;
@@ -18,7 +20,7 @@
1820
import groovyjarjarantlr4.v4.misc.OrderedHashMap;
1921
import groovyjarjarantlr4.v4.runtime.misc.OrderedHashSet;
2022
import org.apache.commons.lang3.StringUtils;
21-
import org.apache.logging.log4j.util.Strings;
23+
import org.jetbrains.annotations.NotNull;
2224
import org.jetbrains.annotations.Nullable;
2325

2426
import javax.swing.*;
@@ -73,6 +75,13 @@ public UMLDiagramView(Project project) {
7375
mainPanel.add(browser.getComponent(), BorderLayout.CENTER);
7476

7577
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+
});
7685
}
7786

7887
public void redraw() {
@@ -85,7 +94,8 @@ public JPanel getComponent() {
8594

8695
private void updateDiagram() {
8796
zoomLevel = 1;
88-
String html = "<!DOCTYPE html>\n" +
97+
String uml = generateUML();
98+
browser.loadHTML(uml != null ? ("<!DOCTYPE html>\n" +
8999
"<html>\n" +
90100
"<head>\n" +
91101
" <meta charset=\"UTF-8\">\n" +
@@ -107,16 +117,18 @@ private void updateDiagram() {
107117
"<body>\n" +
108118
" <div id=\"diagram-container\">\n" +
109119
" <div id=\"diagram-scale-wrapper\">\n" +
110-
" <div class=\"mermaid\">\n" + generateUML() + "</div>\n" +
120+
" <div class=\"mermaid\">\n" + uml + "</div>\n" +
111121
" </div>\n" +
112122
" </div>\n" +
113123
"</body>\n" +
114-
"</html>";
115-
browser.loadHTML(html);
124+
"</html>") : "");
116125
}
117126

118127
private void export() {
119-
new ExportUMLDialog(generateUML()).show();
128+
String uml = generateUML();
129+
if(uml != null) {
130+
new ExportUMLDialog(uml).show();
131+
}
120132
}
121133

122134
private String generateUML() {

0 commit comments

Comments
 (0)