in app-inspection/inspectors/database/src/com/android/tools/idea/sqlite/ui/exportToFile/ExportToFileDialogLayout.kt [31:215]
fun createLayout(
fileTypeLabel: JComponent,
formatDbRadioButton: JComponent,
formatSqlRadioButton: JComponent,
formatCsvRadioButton: JComponent,
delimiterLabel: JComponent,
delimiterComboBox: JComponent,
saveLocationLabel: JComponent,
saveLocationTextField: JComponent,
): JComponent {
// panels to position elements
val fileFormatPanel = JPanel()
val delimiterPanel = JPanel()
val saveLocationPanel = JPanel()
val mainContentPanel = JPanel()
val result = JPanel()
// file format selection
val fileFormatPanelLayout = GroupLayout(fileFormatPanel)
fileFormatPanel.layout = fileFormatPanelLayout
fileFormatPanelLayout.setHorizontalGroup(
fileFormatPanelLayout
.createParallelGroup(LEADING)
.addComponent(fileTypeLabel, DEFAULT_SIZE, DEFAULT_SIZE, MAX_VALUE.toInt())
.addGroup(
fileFormatPanelLayout
.createSequentialGroup()
.addGap(20.scaled)
.addGroup(
fileFormatPanelLayout
.createParallelGroup(LEADING)
.addComponent(formatCsvRadioButton)
.addComponent(formatSqlRadioButton)
.addComponent(formatDbRadioButton)
)
)
.addGroup(
fileFormatPanelLayout
.createSequentialGroup()
.addGap(40.scaled)
.addComponent(delimiterPanel, DEFAULT_SIZE, DEFAULT_SIZE, MAX_VALUE.toInt())
)
)
fileFormatPanelLayout.setVerticalGroup(
fileFormatPanelLayout
.createParallelGroup(LEADING)
.addGroup(
fileFormatPanelLayout
.createSequentialGroup()
.addComponent(fileTypeLabel)
.addPreferredGap(RELATED)
.addComponent(formatDbRadioButton)
.addPreferredGap(RELATED)
.addComponent(formatSqlRadioButton)
.addPreferredGap(RELATED)
.addComponent(formatCsvRadioButton)
.addPreferredGap(RELATED)
.addComponent(delimiterPanel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
.addGap(0)
)
)
// delimiter selection
val delimiterPanelLayout = GroupLayout(delimiterPanel)
delimiterPanel.layout = delimiterPanelLayout
delimiterPanelLayout.setHorizontalGroup(
delimiterPanelLayout
.createParallelGroup(LEADING)
.addGroup(
delimiterPanelLayout
.createSequentialGroup()
.addComponent(delimiterLabel)
.addPreferredGap(RELATED)
.addComponent(delimiterComboBox, 0, DEFAULT_SIZE, MAX_VALUE.toInt())
.addGap(0)
)
)
delimiterPanelLayout.setVerticalGroup(
delimiterPanelLayout
.createParallelGroup(LEADING)
.addGroup(
delimiterPanelLayout
.createSequentialGroup()
.addGroup(
delimiterPanelLayout
.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(delimiterLabel)
.addComponent(delimiterComboBox, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
)
.addGap(0)
)
)
// destination file selection
val saveLocationPanelLayout = GroupLayout(saveLocationPanel)
saveLocationPanel.layout = saveLocationPanelLayout
saveLocationPanelLayout.setHorizontalGroup(
saveLocationPanelLayout
.createParallelGroup(LEADING)
.addGroup(
saveLocationPanelLayout
.createSequentialGroup()
.addComponent(saveLocationLabel)
.addPreferredGap(RELATED)
.addComponent(saveLocationTextField, DEFAULT_SIZE, 275.scaled, MAX_VALUE.toInt())
.addGap(0)
)
)
saveLocationPanelLayout.setVerticalGroup(
saveLocationPanelLayout
.createParallelGroup(LEADING)
.addGroup(
saveLocationPanelLayout
.createSequentialGroup()
.addGroup(
saveLocationPanelLayout
.createParallelGroup(GroupLayout.Alignment.CENTER)
.addComponent(saveLocationLabel)
.addComponent(saveLocationTextField, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
)
.addGap(0)
)
)
// putting the above together
val mainContentPanelLayout = GroupLayout(mainContentPanel)
mainContentPanel.layout = mainContentPanelLayout
mainContentPanelLayout.setHorizontalGroup(
mainContentPanelLayout
.createParallelGroup(LEADING)
.addGroup(
mainContentPanelLayout
.createSequentialGroup()
.addGroup(
mainContentPanelLayout
.createParallelGroup(LEADING)
.addComponent(saveLocationPanel, DEFAULT_SIZE, DEFAULT_SIZE, MAX_VALUE.toInt())
.addComponent(fileFormatPanel, DEFAULT_SIZE, DEFAULT_SIZE, MAX_VALUE.toInt())
)
.addGap(0)
)
)
mainContentPanelLayout.setVerticalGroup(
mainContentPanelLayout
.createParallelGroup(LEADING)
.addGroup(
mainContentPanelLayout
.createSequentialGroup()
.addComponent(fileFormatPanel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
.addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(saveLocationPanel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
)
)
// adding padding
val layout = GroupLayout(result)
result.layout = layout
layout.setHorizontalGroup(
layout
.createParallelGroup(LEADING)
.addGroup(
GroupLayout.Alignment.TRAILING,
layout
.createSequentialGroup()
.addGap(20.scaled)
.addComponent(mainContentPanel, DEFAULT_SIZE, DEFAULT_SIZE, MAX_VALUE.toInt())
.addGap(20.scaled),
)
)
layout.setVerticalGroup(
layout
.createParallelGroup(LEADING)
.addGroup(
layout
.createSequentialGroup()
.addGap(20.scaled)
.addComponent(mainContentPanel, PREFERRED_SIZE, DEFAULT_SIZE, PREFERRED_SIZE)
.addGap(20.scaled)
)
)
// done
return result
}