mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[PyCharm] DataView (fix): Fixed wrong dataView panel size in Dialog window. #PY-70685 Fixed
Also added saving of dialog window size and position. GitOrigin-RevId: 9a1f6f70f98f8acec0813d585dae656901f2c7e3
This commit is contained in:
committed by
intellij-monorepo-bot
parent
1a011c6040
commit
4653aff32e
@@ -64,6 +64,8 @@ class PyDataViewDialog(private val myProject: Project, value: PyDebugValue) : Di
|
||||
init()
|
||||
}
|
||||
|
||||
override fun getDimensionServiceKey() = "#com.jetbrains.python.debugger.containerview.PyDataViewDialog"
|
||||
|
||||
private fun createBottomElements(): JPanel {
|
||||
val colored = JBCheckBox(PyBundle.message("debugger.data.view.colored.cells"))
|
||||
colored.setSelected(isColoringEnabled(myProject))
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.intellij.codeInsight.completion.PrioritizedLookupElement
|
||||
import com.intellij.codeInsight.lookup.LookupElementBuilder
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.editor.EditorFactory
|
||||
import com.intellij.openapi.editor.ex.EditorEx
|
||||
import com.intellij.openapi.observable.properties.AtomicBooleanProperty
|
||||
@@ -15,7 +15,11 @@ import com.intellij.openapi.util.NlsContexts
|
||||
import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.ui.EditorTextField
|
||||
import com.intellij.ui.JBColor
|
||||
import com.intellij.ui.dsl.builder.*
|
||||
import com.intellij.ui.dsl.builder.Align
|
||||
import com.intellij.ui.dsl.builder.AlignX
|
||||
import com.intellij.ui.dsl.builder.Cell
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.ui.dsl.builder.text
|
||||
import com.intellij.util.TextFieldCompletionProvider
|
||||
import com.intellij.util.ui.UIUtil
|
||||
import com.jetbrains.python.PyBundle
|
||||
@@ -114,10 +118,8 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
init {
|
||||
PyDataViewCompletionProvider().apply(sliceTextFieldOldTable)
|
||||
|
||||
val panel = panel {
|
||||
row {
|
||||
cell(tablePanel).align(Align.FILL).resizableColumn()
|
||||
}.resizableRow()
|
||||
add(tablePanel, BorderLayout.CENTER)
|
||||
add(panel {
|
||||
row {
|
||||
cell(sliceTextFieldOldTable).align(AlignX.FILL).resizableColumn()
|
||||
label(PyBundle.message("form.data.viewer.format"))
|
||||
@@ -126,9 +128,7 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
row {
|
||||
errorLabel = text("").apply { component.setForeground(JBColor.RED) }
|
||||
}
|
||||
}
|
||||
|
||||
add(panel, BorderLayout.CENTER)
|
||||
}, BorderLayout.SOUTH)
|
||||
|
||||
setupChangeListener()
|
||||
}
|
||||
@@ -189,7 +189,11 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
protected open fun getOrCreateMainTable(): AbstractDataViewTable {
|
||||
val mainTable = JBTableWithRowHeaders(PyDataView.isAutoResizeEnabled(project))
|
||||
mainTable.scrollPane.border = BorderFactory.createEmptyBorder()
|
||||
tablePanel.add(mainTable.scrollPane, BorderLayout.CENTER)
|
||||
tablePanel.apply {
|
||||
add(mainTable.scrollPane, BorderLayout.CENTER)
|
||||
revalidate()
|
||||
repaint()
|
||||
}
|
||||
table = mainTable
|
||||
return mainTable
|
||||
}
|
||||
@@ -245,13 +249,13 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
ApplicationManager.getApplication().invokeLater { setError(e.localizedMessage, modifier) } //NON-NLS
|
||||
}
|
||||
catch (e: PyDebuggerException) {
|
||||
LOG.error(e)
|
||||
thisLogger().error(e)
|
||||
}
|
||||
catch (e: Exception) {
|
||||
if (e.message?.let { "Numpy is not available" in it } == true) {
|
||||
setError(PyBundle.message("debugger.data.view.numpy.is.not.available", type), modifier)
|
||||
}
|
||||
LOG.error(e)
|
||||
thisLogger().error(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -288,8 +292,10 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun updateUI(chunk: ArrayChunk, originalDebugValue: PyDebugValue,
|
||||
strategy: DataViewStrategy, modifier: Boolean) {
|
||||
protected open fun updateUI(
|
||||
chunk: ArrayChunk, originalDebugValue: PyDebugValue,
|
||||
strategy: DataViewStrategy, modifier: Boolean,
|
||||
) {
|
||||
val debugValue = chunk.value
|
||||
val model = strategy.createTableModel(chunk.rows, chunk.columns, this, debugValue)
|
||||
model.addToCache(chunk)
|
||||
@@ -392,16 +398,15 @@ open class PyDataViewerPanel(@JvmField protected val project: Project, val frame
|
||||
}
|
||||
}
|
||||
catch (e: Exception) {
|
||||
LOG.error(e)
|
||||
thisLogger().error(e)
|
||||
}
|
||||
return values
|
||||
}
|
||||
}
|
||||
|
||||
open fun closeEditorTabs() {}
|
||||
open fun closeEditorTabs() = Unit
|
||||
|
||||
companion object {
|
||||
private val LOG = Logger.getInstance(PyDataViewerPanel::class.java)
|
||||
private const val MODIFIED_VARIABLE_FORMAT = "%s*"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user