Coverage Summary for Class: AppSettingsComponent (ru.eda.plgn.bizgen.plugin.ui)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| AppSettingsComponent |
0%
(0/4)
|
|
0%
(0/18)
|
0%
(0/84)
|
| AppSettingsComponent$Companion |
|
| Total |
0%
(0/4)
|
|
0%
(0/18)
|
0%
(0/84)
|
package ru.eda.plgn.bizgen.plugin.ui
import com.intellij.openapi.Disposable
import com.intellij.openapi.util.Disposer
import com.intellij.ui.OnePixelSplitter
import com.intellij.util.ui.FormBuilder
import java.awt.BorderLayout
import javax.swing.JPanel
/**
* Основной компонент настроек плагина.
*
* Включает в себя две области, разделенные вертикально:
* - Левая область - перечень доступных генераторов и их настройка
* - Правая область - настройки уведомлений и окно пред просмотра работы выбранного генератора
*
* @author Dmitry_Emelyanenko
*/
class AppSettingsComponent : Disposable {
private val mainPanel = JPanel(BorderLayout())
private val splitter = OnePixelSplitter(false, SPLITTER_PROPORTION_KEY, DEFAULT_SPLITTER_PROPORTION).apply {
firstComponent = AppActionsSettingComponent().createComponent()
secondComponent = createNotifyAndPreviewPanel()
}
init {
mainPanel.add(splitter)
}
/**
* Создание компонента настроек плагина.
*
* @return созданный компонент
*/
fun createComponent(): JPanel = mainPanel
private fun createNotifyAndPreviewPanel(): JPanel = FormBuilder.createFormBuilder()
.addComponent(NotificationAndClipboardSettingsComponent().createComponent())
.addComponentFillVertically(JPanel(), 0)
.addComponent(
ActionResultPreviewComponent()
.also { Disposer.register(this, it) }.rootComponent
).panel
/** Освобождение ресурса. */
override fun dispose() = Unit
private companion object {
const val SPLITTER_PROPORTION_KEY = "ru.eda.plgn.bizgen.AppSettingsComponent"
const val DEFAULT_SPLITTER_PROPORTION = 0.25f
}
}