mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[Kotlin UI DSL] Moving API into common platform place
GitOrigin-RevId: d1140b983c8944f3f768e1ab9ade93e31bb5dfa7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f146f208e7
commit
edbf3b5222
@@ -25,10 +25,7 @@ import com.intellij.ui.EditorTextField
|
||||
import com.intellij.ui.JBColor
|
||||
import com.intellij.ui.OnePixelSplitter
|
||||
import com.intellij.ui.SimpleListCellRenderer
|
||||
import com.intellij.ui.dsl.builder.IntelliJSpacingConfiguration
|
||||
import com.intellij.ui.dsl.builder.RightGap
|
||||
import com.intellij.ui.dsl.builder.Row
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import com.intellij.ui.dsl.gridLayout.HorizontalAlign
|
||||
import com.intellij.ui.dsl.gridLayout.UnscaledGaps
|
||||
import com.intellij.ui.dsl.gridLayout.VerticalAlign
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.ui.components.DropDownLink
|
||||
import com.intellij.ui.components.panels.VerticalLayout
|
||||
import com.intellij.ui.dsl.builder.AlignX
|
||||
import com.intellij.ui.dsl.builder.RightGap
|
||||
import com.intellij.ui.dsl.builder.actionsButton
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.intellij.util.ui.components.BorderLayoutPanel
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.ui.ExperimentalUI
|
||||
import com.intellij.ui.StateRestoringCheckBox
|
||||
import com.intellij.ui.dsl.builder.IntelliJSpacingConfiguration
|
||||
import com.intellij.ui.dsl.builder.RightGap
|
||||
import com.intellij.ui.dsl.builder.actionButton
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.dsl.gridLayout.UnscaledGaps
|
||||
import com.intellij.ui.dsl.gridLayout.toUnscaledGaps
|
||||
|
||||
@@ -216,14 +216,27 @@ interface Row {
|
||||
|
||||
fun button(@NlsContexts.Button text: String, action: AnAction, @NonNls actionPlace: String = ActionPlaces.UNKNOWN): Cell<JButton>
|
||||
|
||||
fun actionButton(action: AnAction, @NonNls actionPlace: String = ActionPlaces.UNKNOWN): Cell<ActionButton>
|
||||
/**
|
||||
* This method is moved into extension because Kotlin UI DSL is going to be moved into public API, but [ActionButton] is a part of impl API
|
||||
* To fix compilation issue add `import com.intellij.ui.dsl.builder.actionButton`
|
||||
*/
|
||||
@Deprecated("Use extension function com.intellij.ui.dsl.builder.ExtensionsKt.actionButton instead", level = DeprecationLevel.HIDDEN)
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
fun actionButton(action: AnAction, @NonNls actionPlace: String = ActionPlaces.UNKNOWN): Cell<ActionButton> {
|
||||
return actionButton(action, actionPlace)
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an [ActionButton] with [icon] and menu with provided [actions]
|
||||
* This method is moved into extension because Kotlin UI DSL is going to be moved into public API, but [ActionButton] is a part of impl API.
|
||||
* To fix compilation issue add `import com.intellij.ui.dsl.builder.actionsButton`
|
||||
*/
|
||||
@Deprecated("Use extension function com.intellij.ui.dsl.builder.ExtensionsKt.actionButton instead", level = DeprecationLevel.HIDDEN)
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
fun actionsButton(vararg actions: AnAction,
|
||||
@NonNls actionPlace: String = ActionPlaces.UNKNOWN,
|
||||
icon: Icon = AllIcons.General.GearPlain): Cell<ActionButton>
|
||||
icon: Icon = AllIcons.General.GearPlain): Cell<ActionButton> {
|
||||
return actionsButton(*actions, actionPlace = actionPlace, icon = icon)
|
||||
}
|
||||
|
||||
@Deprecated("Use overloaded method", level = DeprecationLevel.HIDDEN)
|
||||
@ApiStatus.ScheduledForRemoval
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.ui.dsl.builder
|
||||
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.openapi.actionSystem.*
|
||||
import com.intellij.openapi.actionSystem.impl.ActionButton
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory
|
||||
import com.intellij.openapi.ui.popup.util.PopupUtil
|
||||
import org.jetbrains.annotations.NonNls
|
||||
import javax.swing.Icon
|
||||
|
||||
// This file contains extension functions that relates to platform-impl package only.
|
||||
// Common platform related functionality should be put in correspondent module
|
||||
|
||||
|
||||
fun Row.actionButton(action: AnAction, @NonNls actionPlace: String = ActionPlaces.UNKNOWN): Cell<ActionButton> {
|
||||
val component = ActionButton(action, action.templatePresentation.clone(), actionPlace, ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE)
|
||||
return cell(component)
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an [ActionButton] with [icon] and menu with provided [actions]
|
||||
*/
|
||||
fun Row.actionsButton(vararg actions: AnAction,
|
||||
@NonNls actionPlace: String = ActionPlaces.UNKNOWN,
|
||||
icon: Icon = AllIcons.General.GearPlain): Cell<ActionButton> {
|
||||
val actionGroup = PopupActionGroup(arrayOf(*actions))
|
||||
actionGroup.templatePresentation.icon = icon
|
||||
return cell(ActionButton(actionGroup, actionGroup.templatePresentation.clone(), actionPlace, ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE))
|
||||
}
|
||||
|
||||
private class PopupActionGroup(private val actions: Array<AnAction>) : ActionGroup(), DumbAware {
|
||||
init {
|
||||
isPopup = true
|
||||
templatePresentation.isPerformGroup = actions.isNotEmpty()
|
||||
}
|
||||
|
||||
override fun getChildren(e: AnActionEvent?): Array<AnAction> = actions
|
||||
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
val popup = JBPopupFactory.getInstance().createActionGroupPopup(null, this, e.dataContext,
|
||||
JBPopupFactory.ActionSelectionAid.MNEMONICS, true)
|
||||
PopupUtil.showForActionButtonEvent(popup, e)
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,16 @@
|
||||
package com.intellij.ui.dsl.builder.impl
|
||||
|
||||
import com.intellij.BundleBase
|
||||
import com.intellij.openapi.actionSystem.*
|
||||
import com.intellij.openapi.actionSystem.AnAction
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
||||
import com.intellij.openapi.actionSystem.ex.ActionUtil
|
||||
import com.intellij.openapi.actionSystem.impl.ActionButton
|
||||
import com.intellij.openapi.fileChooser.FileChooserDescriptor
|
||||
import com.intellij.openapi.observable.properties.GraphProperty
|
||||
import com.intellij.openapi.observable.properties.ObservableProperty
|
||||
import com.intellij.openapi.observable.properties.whenPropertyChanged
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.ui.ComboBox
|
||||
import com.intellij.openapi.ui.TextFieldWithBrowseButton
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory
|
||||
import com.intellij.openapi.ui.popup.util.PopupUtil
|
||||
import com.intellij.openapi.util.NlsContexts
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.ui.ContextHelpLabel
|
||||
@@ -222,17 +219,6 @@ internal open class RowImpl(private val dialogPanelConfig: DialogPanelConfig,
|
||||
return result
|
||||
}
|
||||
|
||||
override fun actionButton(action: AnAction, actionPlace: String): Cell<ActionButton> {
|
||||
val component = ActionButton(action, action.templatePresentation.clone(), actionPlace, ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE)
|
||||
return cell(component)
|
||||
}
|
||||
|
||||
override fun actionsButton(vararg actions: AnAction, actionPlace: String, icon: Icon): Cell<ActionButton> {
|
||||
val actionGroup = PopupActionGroup(arrayOf(*actions))
|
||||
actionGroup.templatePresentation.icon = icon
|
||||
return cell(ActionButton(actionGroup, actionGroup.templatePresentation.clone(), actionPlace, ActionToolbar.DEFAULT_MINIMUM_BUTTON_SIZE))
|
||||
}
|
||||
|
||||
override fun <T> segmentedButton(options: Collection<T>, property: GraphProperty<T>, renderer: (T) -> @Nls String): Cell<SegmentedButtonToolbar> {
|
||||
val actionGroup = DefaultActionGroup(options.map { DeprecatedSegmentedButtonAction(it, property, renderer(it)) })
|
||||
val toolbar = SegmentedButtonToolbar(actionGroup, parent.spacingConfiguration)
|
||||
@@ -475,18 +461,3 @@ internal open class RowImpl(private val dialogPanelConfig: DialogPanelConfig,
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
private class PopupActionGroup(private val actions: Array<AnAction>): ActionGroup(), DumbAware {
|
||||
init {
|
||||
isPopup = true
|
||||
templatePresentation.isPerformGroup = actions.isNotEmpty()
|
||||
}
|
||||
|
||||
override fun getChildren(e: AnActionEvent?): Array<AnAction> = actions
|
||||
|
||||
override fun actionPerformed(e: AnActionEvent) {
|
||||
val popup = JBPopupFactory.getInstance().createActionGroupPopup(null, this, e.dataContext,
|
||||
JBPopupFactory.ActionSelectionAid.MNEMONICS, true)
|
||||
PopupUtil.showForActionButtonEvent(popup, e)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,10 +23,7 @@ import com.intellij.settingsSync.auth.SettingsSyncAuthService
|
||||
import com.intellij.ui.JBAccountInfoService
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.JBScrollPane
|
||||
import com.intellij.ui.dsl.builder.Panel
|
||||
import com.intellij.ui.dsl.builder.Row
|
||||
import com.intellij.ui.dsl.builder.RowLayout
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import com.intellij.util.io.Compressor
|
||||
import com.intellij.util.ui.JBUI
|
||||
import com.intellij.util.ui.UIUtil
|
||||
|
||||
Reference in New Issue
Block a user