update api-dumps

GitOrigin-RevId: 7bd4fd1530673a8bcc29caa814338ee0437f991c
This commit is contained in:
Gregory.Shrago
2024-06-17 02:09:09 +04:00
committed by intellij-monorepo-bot
parent 11f09487f1
commit 144d3d5ca0
6 changed files with 42 additions and 38 deletions

View File

@@ -4325,12 +4325,12 @@ a:com.intellij.openapi.vcs.changes.savedPatches.SavedPatchesOperationsGroup
com.intellij.openapi.vcs.changes.savedPatches.SavedPatchesProvider
- a:buildPatchesTree(com.intellij.openapi.vcs.changes.ui.TreeModelBuilder,Z):V
- a:getApplyAction():com.intellij.openapi.actionSystem.AnAction
- a:getData(java.lang.String,java.util.stream.Stream):java.lang.Object
- a:getDataClass():java.lang.Class
- a:getPopAction():com.intellij.openapi.actionSystem.AnAction
- a:getTag():com.intellij.openapi.vcs.changes.ui.ChangesBrowserNode$Tag
- a:isEmpty():Z
- a:subscribeToPatchesListChanges(com.intellij.openapi.Disposable,kotlin.jvm.functions.Function0):V
- a:uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink,java.lang.Iterable):V
com.intellij.openapi.vcs.changes.savedPatches.SavedPatchesProvider$ChangeObject
- com.intellij.openapi.vcs.changes.ui.PresentableChange
- asChange():com.intellij.openapi.vcs.changes.Change
@@ -4401,12 +4401,12 @@ f:com.intellij.openapi.vcs.changes.savedPatches.ShelfProvider
- buildPatchesTree(com.intellij.openapi.vcs.changes.ui.TreeModelBuilder,Z):V
- dispose():V
- getApplyAction():com.intellij.openapi.actionSystem.AnAction
- getData(java.lang.String,java.util.stream.Stream):java.lang.Object
- getDataClass():java.lang.Class
- getPopAction():com.intellij.openapi.actionSystem.AnAction
- getTag():com.intellij.openapi.vcs.changes.ui.ChangesBrowserNode$Tag
- isEmpty():Z
- subscribeToPatchesListChanges(com.intellij.openapi.Disposable,kotlin.jvm.functions.Function0):V
- uiDataSnapshot(com.intellij.openapi.actionSystem.DataSink,java.lang.Iterable):V
f:com.intellij.openapi.vcs.changes.savedPatches.ShelfProvider$ShelfObject
- com.intellij.openapi.vcs.changes.savedPatches.SavedPatchesProvider$PatchObject
- <init>(com.intellij.openapi.vcs.changes.savedPatches.ShelfProvider,com.intellij.openapi.vcs.changes.shelf.ShelvedChangeList):V

View File

@@ -3,14 +3,17 @@ package com.intellij.openapi.vcs.changes.savedPatches
import com.intellij.openapi.Disposable
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.project.Project
import com.intellij.openapi.vcs.FilePath
import com.intellij.openapi.vcs.changes.Change
import com.intellij.openapi.vcs.changes.ui.*
import com.intellij.openapi.vcs.changes.ui.ChangeDiffRequestChain
import com.intellij.openapi.vcs.changes.ui.ChangesBrowserNode.Tag
import com.intellij.openapi.vcs.changes.ui.ChangesTree
import com.intellij.openapi.vcs.changes.ui.PresentableChange
import com.intellij.openapi.vcs.changes.ui.TreeModelBuilder
import org.jetbrains.annotations.Nls
import java.util.concurrent.CompletableFuture
import java.util.stream.Stream
import javax.swing.JComponent
interface SavedPatchesProvider<S> {
@@ -23,7 +26,8 @@ interface SavedPatchesProvider<S> {
fun subscribeToPatchesListChanges(disposable: Disposable, listener: () -> Unit)
fun isEmpty(): Boolean
fun buildPatchesTree(modelBuilder: TreeModelBuilder, showRootNode: Boolean)
fun getData(dataId: String, selectedObjects: Stream<PatchObject<*>>): Any?
fun uiDataSnapshot(sink: DataSink, selectedObjects: Iterable<PatchObject<*>>)
interface PatchObject<S> {
val data: S

View File

@@ -1,10 +1,11 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.openapi.vcs.changes.savedPatches
import com.intellij.ide.impl.DataValidators
import com.intellij.ide.util.treeView.TreeState
import com.intellij.openapi.Disposable
import com.intellij.openapi.actionSystem.DataProvider
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.actionSystem.DataSnapshotProvider
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ClearableLazyValue
import com.intellij.openapi.util.Disposer
@@ -23,7 +24,6 @@ import com.intellij.util.ui.tree.TreeUtil
import org.jetbrains.annotations.Nls
import java.awt.BorderLayout
import java.awt.Component
import java.util.stream.Stream
import javax.swing.JComponent
import javax.swing.JTree
import javax.swing.tree.DefaultTreeModel
@@ -67,17 +67,17 @@ class SavedPatchesTree(project: Project,
if (visibleProvidersList.isNotEmpty()) {
val selectedObjects = selectedPatchObjects()
visibleProvidersList.forEach { provider ->
DataSink.uiDataSnapshot(sink, DataProvider { dataId ->
provider.getData(dataId, selectedObjects)
DataSink.uiDataSnapshot(sink, object : DataSnapshotProvider, DataValidators.SourceWrapper {
override fun dataSnapshot(sink: DataSink) = provider.uiDataSnapshot(sink, selectedObjects)
override fun unwrapSource(): Any = provider
})
}
}
}
internal fun selectedPatchObjects(): Stream<SavedPatchesProvider.PatchObject<*>> {
internal fun selectedPatchObjects(): Iterable<SavedPatchesProvider.PatchObject<*>> {
return VcsTreeModelData.selected(this)
.iterateUserObjects(SavedPatchesProvider.PatchObject::class.java)
.toStream()
}
override fun getToggleClickCount(): Int = 2

View File

@@ -11,7 +11,6 @@ import com.intellij.openapi.vcs.changes.EditorTabDiffPreviewManager
import com.intellij.ui.*
import com.intellij.util.EditSourceOnDoubleClickHandler
import com.intellij.util.Processor
import com.intellij.util.containers.orNull
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.ProportionKey
import com.intellij.util.ui.TwoKeySplitter
@@ -180,7 +179,7 @@ open class SavedPatchesUi(project: Project,
return null
}
private fun selectedPatchObjectOrNull() = patchesTree.selectedPatchObjects().findAny().orNull()
private fun selectedPatchObjectOrNull() = patchesTree.selectedPatchObjects().firstOrNull()
private fun selectedProvider(): SavedPatchesProvider<*> {
val selectedPatch = selectedPatchObjectOrNull() ?: return providers.first()

View File

@@ -4,6 +4,7 @@ package com.intellij.openapi.vcs.changes.savedPatches
import com.intellij.openapi.Disposable
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.progress.ProgressManager
import com.intellij.openapi.progress.util.BackgroundTaskUtil
@@ -18,11 +19,10 @@ import com.intellij.openapi.vcs.changes.ui.ChangesBrowserNodeRenderer
import com.intellij.openapi.vcs.changes.ui.TreeModelBuilder
import com.intellij.ui.SimpleTextAttributes
import com.intellij.util.concurrency.AppExecutorUtil
import com.intellij.util.containers.JBIterable
import com.intellij.util.text.DateFormatUtil
import one.util.streamex.StreamEx
import java.util.concurrent.CompletableFuture
import java.util.concurrent.TimeUnit
import java.util.stream.Stream
class ShelfProvider(private val project: Project, parent: Disposable) : SavedPatchesProvider<ShelvedChangeList>, Disposable {
private val executor = AppExecutorUtil.createBoundedApplicationPoolExecutor("Shelved Changes Loader", 1)
@@ -75,7 +75,8 @@ class ShelfProvider(private val project: Project, parent: Disposable) : SavedPat
val shelvesList = mainLists().sortedByDescending { it.date }
val shelvesRoot = if (showRootNode) SavedPatchesTree.TagWithCounterChangesBrowserNode(tag).also {
modelBuilder.insertSubtreeRoot(it)
} else {
}
else {
modelBuilder.myRoot
}
@@ -96,23 +97,22 @@ class ShelfProvider(private val project: Project, parent: Disposable) : SavedPat
}
}
override fun getData(dataId: String, selectedObjects: Stream<SavedPatchesProvider.PatchObject<*>>): Any? {
if (ShelvedChangesViewManager.SHELVED_CHANGELIST_KEY.`is`(dataId)) {
return filterLists(selectedObjects) { l -> !l.isRecycled && !l.isDeleted }
}
else if (ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY.`is`(dataId)) {
return filterLists(selectedObjects) { l -> l.isRecycled && !l.isDeleted }
}
else if (ShelvedChangesViewManager.SHELVED_DELETED_CHANGELIST_KEY.`is`(dataId)) {
return filterLists(selectedObjects) { l -> l.isDeleted }
}
return null
override fun uiDataSnapshot(sink: DataSink, selectedObjects: Iterable<SavedPatchesProvider.PatchObject<*>>) {
sink[ShelvedChangesViewManager.SHELVED_CHANGELIST_KEY] =
filterLists(selectedObjects) { l -> !l.isRecycled && !l.isDeleted }
sink[ShelvedChangesViewManager.SHELVED_RECYCLED_CHANGELIST_KEY] =
filterLists(selectedObjects) { l -> l.isRecycled && !l.isDeleted }
sink[ShelvedChangesViewManager.SHELVED_DELETED_CHANGELIST_KEY] =
filterLists(selectedObjects) { l -> l.isDeleted }
}
private fun filterLists(selectedObjects: Stream<SavedPatchesProvider.PatchObject<*>>,
private fun filterLists(selectedObjects: Iterable<SavedPatchesProvider.PatchObject<*>>,
predicate: (ShelvedChangeList) -> Boolean): List<ShelvedChangeList> {
return StreamEx.of(selectedObjects.map(SavedPatchesProvider.PatchObject<*>::data)).filterIsInstance(dataClass)
.filter(predicate).toList()
return JBIterable.from(selectedObjects)
.map(SavedPatchesProvider.PatchObject<*>::data)
.filter(dataClass)
.filter(predicate)
.toList()
}
override fun dispose() {

View File

@@ -5,6 +5,7 @@ import com.intellij.dvcs.ui.RepositoryChangesBrowserNode
import com.intellij.openapi.Disposable
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ClearableLazyValue
@@ -26,6 +27,7 @@ import com.intellij.openapi.vcs.changes.ui.VcsTreeModelData.allUnder
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.ui.SimpleTextAttributes
import com.intellij.util.FontUtil
import com.intellij.util.containers.JBIterable
import com.intellij.util.text.DateFormatUtil
import com.intellij.vcs.log.Hash
import com.intellij.vcs.log.ui.render.LabelIconCache
@@ -39,12 +41,10 @@ import git4idea.stash.isNotEmpty
import git4idea.ui.StashInfo
import git4idea.ui.StashInfo.Companion.branchName
import git4idea.ui.StashInfo.Companion.subject
import one.util.streamex.StreamEx
import org.jetbrains.annotations.Nls
import org.jetbrains.annotations.PropertyKey
import java.util.concurrent.CancellationException
import java.util.concurrent.CompletableFuture
import java.util.stream.Stream
import javax.swing.JComponent
class GitStashProvider(val project: Project, parent: Disposable) : SavedPatchesProvider<StashInfo>, Disposable {
@@ -82,7 +82,8 @@ class GitStashProvider(val project: Project, parent: Disposable) : SavedPatchesP
val stashesMap = stashTracker.stashes
val stashesRoot = if (showRootNode) {
SavedPatchesTree.TagWithCounterChangesBrowserNode(tag).also { modelBuilder.insertSubtreeRoot(it) }
} else {
}
else {
modelBuilder.myRoot
}
for ((root, stashesList) in stashesMap) {
@@ -117,11 +118,11 @@ class GitStashProvider(val project: Project, parent: Disposable) : SavedPatchesP
insertSubtreeRoot(errorNode, parent)
}
override fun getData(dataId: String, selectedObjects: Stream<SavedPatchesProvider.PatchObject<*>>): Any? {
if (STASH_INFO.`is`(dataId)) {
return StreamEx.of(selectedObjects.map(SavedPatchesProvider.PatchObject<*>::data)).filterIsInstance(dataClass).toList()
}
return null
override fun uiDataSnapshot(sink: DataSink, selectedObjects: Iterable<SavedPatchesProvider.PatchObject<*>>) {
sink[STASH_INFO] = JBIterable.from(selectedObjects)
.map(SavedPatchesProvider.PatchObject<*>::data)
.filter(dataClass)
.toList()
}
override fun dispose() {