Skip to content

Commit 7f55a11

Browse files
committed
updated
1 parent d875dab commit 7f55a11

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

src/main/kotlin/org/digma/intellij/plugin/ui/mainapp/MainAppPanel.kt

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ package org.digma.intellij.plugin.ui.mainapp
33
import com.intellij.openapi.components.service
44
import com.intellij.openapi.project.Project
55
import com.intellij.openapi.util.Disposer
6+
import com.intellij.openapi.vcs.ex.fastCompareLines
67
import com.intellij.ui.jcef.JBCefApp
78
import com.intellij.util.ui.JBUI
9+
import kotlinx.coroutines.CoroutineScope
10+
import kotlinx.coroutines.Dispatchers
11+
import kotlinx.coroutines.launch
12+
import org.digma.intellij.plugin.errorreporting.ErrorReporter
813
import org.digma.intellij.plugin.reload.ReloadService
914
import org.digma.intellij.plugin.ui.insights.InsightsService
1015
import org.digma.intellij.plugin.ui.jcef.DownloadHandlerAdapter
@@ -16,22 +21,62 @@ import org.digma.intellij.plugin.ui.panels.DisposablePanel
1621
import org.digma.intellij.plugin.ui.panels.ReloadablePanel
1722
import org.digma.intellij.plugin.ui.tests.TestsUpdater
1823
import java.awt.BorderLayout
24+
import java.awt.GraphicsEnvironment
1925
import java.awt.Insets
26+
import java.beans.PropertyChangeEvent
27+
import java.beans.PropertyChangeListener
2028
import javax.swing.JComponent
2129
import javax.swing.JLabel
30+
import javax.swing.Timer
31+
2232

2333
class MainAppPanel(private val project: Project) : DisposablePanel(), ReloadablePanel {
2434

2535
private var jCefComponent: JCefComponent? = null
2636

2737
private var parentDisposable = Disposer.newDisposable()
2838

39+
private var graphicsChanged =false;
40+
41+
private var screensNumber = GraphicsEnvironment.getLocalGraphicsEnvironment().screenDevices.size;
42+
43+
2944
init {
3045
jCefComponent = build()
46+
3147
service<ReloadService>().register(this, MainAppService.getInstance(project))
3248
Disposer.register(MainAppService.getInstance(project)) {
3349
dispose()
3450
}
51+
52+
// val timer = Timer(1000) {
53+
//
54+
//
55+
// if (graphicsChanged){
56+
// graphicsChanged= false;
57+
// System.gc();
58+
//
59+
// val screenDevices = GraphicsEnvironment.getLocalGraphicsEnvironment().screenDevices
60+
// GraphicsEnvironment.getLocalGraphicsEnvironment().screenDevices
61+
// var newScreenNumber = screenDevices.size;
62+
// System.out.println("screens:"+ newScreenNumber);
63+
//
64+
// if (screensNumber!=newScreenNumber) {
65+
// screensNumber= newScreenNumber;
66+
//
67+
// try {
68+
// System.out.println("reloading ui");
69+
// service<ReloadService>().reload()
70+
// } catch (e: Throwable) {
71+
// ErrorReporter.getInstance().reportError("ReloadAction.actionPerformed", e)
72+
// }
73+
// }
74+
//
75+
//
76+
//
77+
// }
78+
// }
79+
// timer.start()
3580
}
3681

3782

@@ -41,6 +86,44 @@ class MainAppPanel(private val project: Project) : DisposablePanel(), Reloadable
4186

4287
val jcefUiComponent: JComponent = jCefComponent?.getComponent() ?: JLabel("JCEF not supported")
4388

89+
jcefUiComponent.addPropertyChangeListener("graphicsConfiguration",{ evt: PropertyChangeEvent ->
90+
91+
System.out.println("Property changed:" + evt.propertyName + " old: " + evt.oldValue + " new: " + evt.newValue)
92+
93+
if (evt.propertyName=="graphicsConfiguration" && evt.oldValue!=null && evt.newValue!=null) {
94+
95+
System.out.println("graphicsConfiguration changed:" + " old: " + evt.oldValue + " new: " + evt.newValue)
96+
97+
CoroutineScope(Dispatchers.Main).launch {
98+
if (graphicsChanged) {
99+
graphicsChanged = false;
100+
System.gc();
101+
Thread.sleep(1500);
102+
103+
104+
val screenDevices = GraphicsEnvironment.getLocalGraphicsEnvironment().screenDevices
105+
GraphicsEnvironment.getLocalGraphicsEnvironment().screenDevices
106+
var newScreenNumber = screenDevices.size;
107+
System.out.println("screens:" + newScreenNumber);
108+
109+
if (screensNumber != newScreenNumber) {
110+
screensNumber = newScreenNumber;
111+
112+
try {
113+
System.out.println("reloading ui");
114+
service<ReloadService>().reload()
115+
} catch (e: Throwable) {
116+
ErrorReporter.getInstance().reportError("ReloadAction.actionPerformed", e)
117+
}
118+
}
119+
120+
}
121+
122+
graphicsChanged = true;
123+
124+
}
125+
}});
126+
//jcefUiComponent.addPropertyChangeListener("painting", PropertyChangeListener )
44127
layout = BorderLayout()
45128
border = JBUI.Borders.empty()
46129
add(jcefUiComponent, BorderLayout.CENTER)

0 commit comments

Comments
 (0)