Mercurial > cgi-bin > hgweb.cgi > ImagePrep
diff src/name/blackcap/imageprep/MaxDimSpinner.kt @ 20:71029c9bf7cd
Commit overlooked files.
author | David Barts <n5jrn@me.com> |
---|---|
date | Sat, 21 Nov 2020 10:15:35 -0800 |
parents | |
children | 0f3634a0816d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/name/blackcap/imageprep/MaxDimSpinner.kt Sat Nov 21 10:15:35 2020 -0800 @@ -0,0 +1,34 @@ +/* + * A standard spinner for inputting the maximum dimension of an image. + */ +package name.blackcap.imageprep + +import java.awt.Toolkit +import javax.swing.* +import javax.swing.event.ChangeEvent +import javax.swing.event.ChangeListener +import java.util.logging.Level +import java.util.logging.Logger + +/* maximum allowable maximum dimension */ +private val MAXDIM = 16384 + +/* preferred standard dimensions */ +private val STDDIMS = listOf<Int>(1600, 1280, 1024, 800, 640, 512, 400, 320) + +class MaxDimSpinner(val default: Int): JSpinner(SpinnerListModel(STDDIMS)) +{ + init { + editor = JSpinner.ListEditor(this) + value = default + noTaller() + addChangeListener( ChangeListener { + val v = value as? Int ?: (value as? String)?.toIntOrNull() + if ( v == null || v < 1 || v > MAXDIM ) { + LOGGER.log(Level.INFO, "bad max dimension: $value") + value = default + Toolkit.getDefaultToolkit().beep() + } + }) + } +}