|
1 | 1 | package org.digma.intellij.plugin.dashboard; |
2 | 2 |
|
| 3 | +import com.intellij.openapi.application.ApplicationManager; |
3 | 4 | import com.intellij.openapi.fileEditor.*; |
4 | 5 | import com.intellij.openapi.project.Project; |
5 | 6 | import com.intellij.openapi.util.*; |
|
8 | 9 | import org.cef.CefApp; |
9 | 10 | import org.cef.browser.*; |
10 | 11 | import org.cef.handler.CefLifeSpanHandlerAdapter; |
| 12 | +import org.digma.intellij.plugin.reload.ReloadObserver; |
11 | 13 | import org.digma.intellij.plugin.ui.jcef.JBCefBrowserBuilderCreator; |
12 | 14 | import org.digma.intellij.plugin.ui.settings.*; |
13 | 15 | import org.jetbrains.annotations.*; |
@@ -66,11 +68,13 @@ public void onAfterCreated(CefBrowser browser) { |
66 | 68 | jbCefBrowser.getJBCefClient().addLifeSpanHandler(lifeSpanHandler, jbCefBrowser.getCefBrowser()); |
67 | 69 |
|
68 | 70 | Disposer.register(this, () -> jbCefBrowser.getJBCefClient().removeLifeSpanHandler(lifeSpanHandler, jbCefBrowser.getCefBrowser())); |
| 71 | + |
| 72 | + ApplicationManager.getApplication().getService(ReloadObserver.class).register(project, "Dashboard." + file.getName(), jbCefBrowser.getComponent(), this); |
69 | 73 | } |
70 | 74 |
|
71 | 75 | private void registerAppSchemeHandler(Project project, DashboardVirtualFile file) { |
72 | 76 | CefApp.getInstance().registerSchemeHandlerFactory("http", DOMAIN_NAME, |
73 | | - new DashboardSchemeHandlerFactory(project,file)); |
| 77 | + new DashboardSchemeHandlerFactory(project, file)); |
74 | 78 | } |
75 | 79 |
|
76 | 80 | @Override |
@@ -120,8 +124,10 @@ public void removePropertyChangeListener(@NotNull PropertyChangeListener listene |
120 | 124 |
|
121 | 125 | @Override |
122 | 126 | public void dispose() { |
123 | | - jbCefBrowser.dispose(); |
124 | | - cefMessageRouter.dispose(); |
| 127 | + if (jbCefBrowser != null) { |
| 128 | + Disposer.dispose(jbCefBrowser); |
| 129 | + cefMessageRouter.dispose(); |
| 130 | + } |
125 | 131 | } |
126 | 132 |
|
127 | 133 | } |
0 commit comments