Add a new DebugTools object for debugging methods
This commit is contained in:
parent
b962c62209
commit
ad7118c0fe
@ -0,0 +1,43 @@
|
||||
package org.gerweck.scalafx.util
|
||||
|
||||
import scalafx.scene.input.Dragboard
|
||||
|
||||
import org.log4s._
|
||||
|
||||
/** Miscellaneous utility methods for debugging activity. */
|
||||
object ScalaFXDebugTools {
|
||||
|
||||
/** Print information about drag-and-drop content to the logs.
|
||||
*
|
||||
* This can get quite noisy if you do it on DragOver, so typically this
|
||||
* would only be used during debugging and disabled altogether in the real
|
||||
* product.
|
||||
*/
|
||||
def logDragboardInfo(logger: Logger, level: LogLevel, showData: Boolean = true)(drb: Dragboard): Unit = {
|
||||
val summary = {
|
||||
val m =
|
||||
Map("html" -> drb.hasHtml,
|
||||
"text" -> drb.hasString,
|
||||
"url" -> drb.hasUrl,
|
||||
"image" -> drb.hasImage,
|
||||
"rtf" -> drb.hasRtf)
|
||||
m.map{case (k, v) => s"has${k.capitalize}: $v"}.mkString("; ")
|
||||
}
|
||||
var pieces: Seq[String] = Vector(summary)
|
||||
if (showData) {
|
||||
if (drb.hasUrl) {
|
||||
pieces :+= s"Dragboard URL: ${drb.url}"
|
||||
}
|
||||
if (drb.hasHtml) {
|
||||
pieces :+= s"Dragboard HTML: ${drb.html}"
|
||||
}
|
||||
if (drb.hasString) {
|
||||
pieces :+= s"Dragboard String: ${drb.string}"
|
||||
}
|
||||
if (drb.hasRtf) {
|
||||
pieces :+= s"Dragboard RTF: ${drb.rtf}"
|
||||
}
|
||||
}
|
||||
logger(level)(pieces.mkString("\n"))
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user