diff --git a/java/compiler/charts/resources/intellij.java.compiler.charts.xml b/java/compiler/charts/resources/intellij.java.compiler.charts.xml
index e5193d371e10..be5dcea81948 100644
--- a/java/compiler/charts/resources/intellij.java.compiler.charts.xml
+++ b/java/compiler/charts/resources/intellij.java.compiler.charts.xml
@@ -20,6 +20,8 @@
icon="AllIcons.Graph.ZoomOut" use-shortcut-of="CollapseAll"/>
+
diff --git a/java/compiler/charts/resources/messages/CompilationChartsBundle.properties b/java/compiler/charts/resources/messages/CompilationChartsBundle.properties
index 8f22fca1252c..3ef9a506e5d4 100644
--- a/java/compiler/charts/resources/messages/CompilationChartsBundle.properties
+++ b/java/compiler/charts/resources/messages/CompilationChartsBundle.properties
@@ -7,8 +7,8 @@ charts.test.type=Test
charts.memory.type=Memory
charts.cpu.type=CPU
charts.search.results={0} results
-charts.scroll.to.end.action.title=Scroll to End
-charts.scroll.to.end.action.description=Scrolls to end in compilation charts
+action.CompilationChartsScrollToEndAction.text=Scroll to End
+action.CompilationChartsScrollToEndAction.description=Scrolls to end in compilation charts
action.CompilationChartsZoomInAction.text=Zoom In Compilation Charts
action.CompilationChartsZoomInAction.description=Increases zoom of compilation charts
action.CompilationChartsZoomOutAction.text=Zoom Out Compilation Charts
diff --git a/java/compiler/charts/src/com/intellij/java/compiler/charts/CompilationChartsViewModel.kt b/java/compiler/charts/src/com/intellij/java/compiler/charts/CompilationChartsViewModel.kt
index ec2bbcd1e4b1..ee21e94773ed 100644
--- a/java/compiler/charts/src/com/intellij/java/compiler/charts/CompilationChartsViewModel.kt
+++ b/java/compiler/charts/src/com/intellij/java/compiler/charts/CompilationChartsViewModel.kt
@@ -19,9 +19,6 @@ class CompilationChartsViewModel(val lifetime: Lifetime) {
val statistics: Statistics = Statistics()
val cpuMemory: RdProperty = RdProperty(CpuMemoryStatisticsType.MEMORY)
val filter: RdProperty = RdProperty(Filter())
- val scrollToEndEvent: RdProperty = RdProperty(ScrollToEndEvent())
-
- fun requestScrollToEnd() = scrollToEndEvent.set(ScrollToEndEvent())
fun started(values: List) {
values.forEach { value ->
@@ -112,8 +109,6 @@ class CompilationChartsViewModel(val lifetime: Lifetime) {
}
}
- class ScrollToEndEvent
-
enum class CpuMemoryStatisticsType {
CPU {
override fun max(statistics: Statistics): Long = 100
diff --git a/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/ActionPanel.kt b/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/ActionPanel.kt
index 4d16d55f03ce..dc600204cb02 100644
--- a/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/ActionPanel.kt
+++ b/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/ActionPanel.kt
@@ -109,7 +109,6 @@ class ActionPanel(private val project: Project, private val vm: CompilationChart
val actionGroup = ActionManager.getInstance().getAction("CompilationChartsActionGroup") as? DefaultActionGroup
if (actionGroup != null) {
actionGroup.addAction(CompilationChartsStatsActionHolder(vm), Constraints.FIRST)
- actionGroup.addAction(ScrollToEndAction(vm), Constraints.LAST)
val toolbar = ActionManager.getInstance().createActionToolbar(COMPILATION_CHARTS_TOOLBAR_NAME, actionGroup, true).apply {
targetComponent = this@ActionPanel
}
@@ -139,11 +138,10 @@ class ActionPanel(private val project: Project, private val vm: CompilationChart
}
}
- private class ScrollToEndAction(private val vm: CompilationChartsViewModel) : DumbAwareAction(
- CompilationChartsBundle.message("charts.scroll.to.end.action.title"),
- CompilationChartsBundle.message("charts.scroll.to.end.action.description"),
- AllIcons.Actions.Forward) {
- override fun actionPerformed(e: AnActionEvent) = vm.requestScrollToEnd()
+ internal class ScrollToEndAction : CompilationChartsActionBase() {
+ override fun actionPerformed(e: AnActionEvent) {
+ e.getData(COMPILATION_CHARTS_VIEW_KEY)?.scrollToEnd()
+ }
}
internal abstract class CompilationChartsActionBase: DumbAwareAction() {
diff --git a/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/CompilationChartsView.kt b/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/CompilationChartsView.kt
index f5464bef6e9f..6a0913aaaef9 100644
--- a/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/CompilationChartsView.kt
+++ b/java/compiler/charts/src/com/intellij/java/compiler/charts/ui/CompilationChartsView.kt
@@ -82,16 +82,16 @@ class CompilationChartsView(project: Project, private val vm: CompilationChartsV
diagrams.cpuMemory = filter
diagrams.smartDraw(true, false)
}
-
- vm.scrollToEndEvent.advise(vm.lifetime) { _ ->
- rightAdhesionScrollBarListener.scrollToEnd()
- }
}
override fun uiDataSnapshot(sink: DataSink) {
sink[COMPILATION_CHARTS_VIEW_KEY] = this
}
+ internal fun scrollToEnd() {
+ rightAdhesionScrollBarListener.scrollToEnd()
+ }
+
internal fun zoom(zoomType: ZoomEvent) {
when (zoomType) {
ZoomEvent.IN -> rightAdhesionScrollBarListener.increase()