@@ -10,7 +10,8 @@ import javax.swing.tree.TreeModel
1010import bitlap.sbt.analyzer.jbexternal.SbtDAArtifact
1111
1212import com.intellij.icons.AllIcons
13- import com.intellij.openapi.actionSystem.DataProvider
13+ import com.intellij.openapi.actionSystem.DataSink
14+ import com.intellij.openapi.actionSystem.UiDataProvider
1415import com.intellij.openapi.application.invokeLater
1516import com.intellij.openapi.externalSystem.dependency.analyzer.DependencyAnalyzerView
1617import com.intellij.openapi.externalSystem.util.ExternalSystemBundle
@@ -86,8 +87,8 @@ private fun SimpleColoredComponent.customizeCellRenderer(
8687}
8788
8889internal abstract class AbstractDependencyList (
89- model : ListModel <DependencyGroup >, private val dataProvider : DataProvider
90- ) : JBList<DependencyGroup>(model), DataProvider {
90+ model : ListModel <DependencyGroup >
91+ ) : JBList<DependencyGroup>(model), UiDataProvider {
9192
9293 private val dependencyProperty = AtomicProperty <Dependency ?>(null )
9394 private val dependencyGroupProperty = AtomicProperty <DependencyGroup ?>(null )
@@ -96,12 +97,9 @@ internal abstract class AbstractDependencyList(
9697 dependencyProperty.bind(property)
9798 }
9899
99- override fun getData (dataId : String ): Any? {
100- return when (dataId) {
101- DependencyAnalyzerView .DEPENDENCY .name -> dependencyProperty.get()
102- DependencyAnalyzerView .DEPENDENCIES .name -> dependencyGroupProperty.get()
103- else -> dataProvider.getData(dataId)
104- }
100+ override fun uiDataSnapshot (sink : DataSink ) {
101+ sink[DependencyAnalyzerView .DEPENDENCY ] = dependencyProperty.get()
102+ sink[DependencyAnalyzerView .DEPENDENCIES ] = dependencyGroupProperty.get()?.variances
105103 }
106104
107105 init {
@@ -113,8 +111,8 @@ internal abstract class AbstractDependencyList(
113111}
114112
115113internal abstract class AbstractDependencyTree (
116- model : TreeModel , private val dataProvider : DataProvider
117- ) : SimpleTree(model), DataProvider {
114+ model : TreeModel
115+ ) : SimpleTree(model), UiDataProvider {
118116
119117 private val dependencyProperty = AtomicProperty <Dependency ?>(null )
120118 private val dependencyGroupProperty = AtomicProperty <DependencyGroup ?>(null )
@@ -123,12 +121,9 @@ internal abstract class AbstractDependencyTree(
123121 dependencyProperty.bind(property)
124122 }
125123
126- override fun getData (dataId : String ): Any? {
127- return when (dataId) {
128- DependencyAnalyzerView .DEPENDENCY .name -> dependencyProperty.get()
129- DependencyAnalyzerView .DEPENDENCIES .name -> dependencyGroupProperty.get()
130- else -> dataProvider.getData(dataId)
131- }
124+ override fun uiDataSnapshot (sink : DataSink ) {
125+ sink[DependencyAnalyzerView .DEPENDENCY ] = dependencyProperty.get()
126+ sink[DependencyAnalyzerView .DEPENDENCIES ] = dependencyGroupProperty.get()?.variances
132127 }
133128
134129 init {
@@ -140,12 +135,11 @@ internal abstract class AbstractDependencyTree(
140135 }
141136}
142137
143- internal class DependencyList (
138+ internal open class DependencyList (
144139 model : ListModel <DependencyGroup >,
145140 showGroupIdProperty : ObservableProperty <Boolean >,
146141 showSizeProperty : ObservableProperty <Boolean >,
147- dataProvider : DataProvider
148- ) : AbstractDependencyList(model, dataProvider) {
142+ ) : AbstractDependencyList(model) {
149143 init {
150144 ListUiUtil .Selection .installSelectionOnRightClick(this )
151145 PopupHandler .installPopupMenu(
@@ -155,12 +149,11 @@ internal class DependencyList(
155149 }
156150}
157151
158- internal class DependencyTree (
152+ internal open class DependencyTree (
159153 model : TreeModel ,
160154 showGroupIdProperty : ObservableProperty <Boolean >,
161155 showSizeProperty : ObservableProperty <Boolean >,
162- dataProvider : DataProvider
163- ) : AbstractDependencyTree(model, dataProvider) {
156+ ) : AbstractDependencyTree(model) {
164157 init {
165158 PopupHandler .installPopupMenu(
166159 this , " ExternalSystem.DependencyAnalyzer.DependencyTreeGroup" , DependencyAnalyzerView .ACTION_PLACE
@@ -169,12 +162,11 @@ internal class DependencyTree(
169162 }
170163}
171164
172- internal class UsagesTree (
165+ internal open class UsagesTree (
173166 model : TreeModel ,
174167 showGroupIdProperty : ObservableProperty <Boolean >,
175168 showSizeProperty : ObservableProperty <Boolean >,
176- dataProvider : DataProvider
177- ) : AbstractDependencyTree(model, dataProvider) {
169+ ) : AbstractDependencyTree(model) {
178170 init {
179171 PopupHandler .installPopupMenu(
180172 this , " ExternalSystem.DependencyAnalyzer.UsagesTreeGroup" , DependencyAnalyzerView .ACTION_PLACE
0 commit comments