Mercurial > cgi-bin > hgweb.cgi > JpegWasher
diff src/name/blackcap/exifwasher/Misc.kt @ 8:88d02fa97d78
Got WasherDialog table laying out somewhat sanely.
author | David Barts <n5jrn@me.com> |
---|---|
date | Fri, 10 Apr 2020 15:09:36 -0700 |
parents | dc1f4359659d |
children | 0a106e9b91b4 |
line wrap: on
line diff
--- a/src/name/blackcap/exifwasher/Misc.kt Fri Apr 10 13:44:04 2020 -0700 +++ b/src/name/blackcap/exifwasher/Misc.kt Fri Apr 10 15:09:36 2020 -0700 @@ -5,8 +5,13 @@ import java.awt.Component import java.awt.Cursor +import java.awt.Dimension +import java.awt.Font +import java.awt.FontMetrics +import java.awt.Graphics import java.awt.Toolkit import javax.swing.* +import javax.swing.table.TableColumnModel import kotlin.annotation.* import kotlin.properties.ReadWriteProperty import kotlin.reflect.* @@ -163,3 +168,27 @@ setVisible(false) dispose() } + +/** + * Set column width of a table. + */ +fun JTable.setColWidth(col: Int, width: Int, string: String?) { + val FUZZ = 4 + columnModel.getColumn(col).preferredWidth = if (string.isNullOrEmpty()) { + width + FUZZ + } else { + maxOf(width, graphics.fontMetrics.stringWidth(string)) + FUZZ + } +} + +/** + * Set overall width of a table. + */ +fun JTable.setOverallWidth() { + val tcm = columnModel + var total = 0 + for (i in 0 .. tcm.columnCount - 1) { + total += tcm.getColumn(i).preferredWidth + } + preferredSize = Dimension(total, preferredSize.height) +}