classic-launcher/src/main/kotlin/LatestUpdatePane.kt
2021-08-10 11:39:44 -05:00

72 lines
No EOL
2.2 KiB
Kotlin

import org.jsoup.Jsoup
import org.jsoup.nodes.Element
import org.jsoup.nodes.Node
import java.awt.Color
import java.awt.Dimension
import java.awt.Graphics
import java.awt.Rectangle
import javax.swing.JButton
import javax.swing.JComponent
import javax.swing.JScrollPane
import javax.swing.JTextPane
import javax.swing.plaf.basic.BasicScrollBarUI
class LatestUpdatePane(url: String) : JScrollPane() {
val texPane = JTextPane()
init {
texPane.contentType = "text/html"
texPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, true)
border = null
val doc = Jsoup.connect(url).get()
doc.getElementsByTag("img").remove()
removeComments(doc)
val postBody = doc.select(".rightpanel").select(".msgcontents")
texPane.text = postBody.toString()
setViewportView(texPane)
texPane.isEditable = false
getViewport().background = Color(153,132,104)
texPane.background = Color(153,132,104)
background = Color(153,132,104)
getVerticalScrollBar().ui = object : BasicScrollBarUI() {
override fun configureScrollBarColors() {
this.thumbColor = Color(75,69,53)
}
override fun paintTrack(p0: Graphics?, p1: JComponent?, p2: Rectangle?) {}
override fun createDecreaseButton(p0: Int): JButton {
return object : JButton() {
override fun getPreferredSize(): Dimension {
return Dimension()
}
}
}
override fun createIncreaseButton(p0: Int): JButton {
return object : JButton() {
override fun getPreferredSize(): Dimension {
return Dimension()
}
}
}
}
getVerticalScrollBar().background = Color(49,45,37)
}
private fun removeComments(node: Node) {
var i = 0
while (i < node.childNodeSize()) {
val child = node.childNode(i)
if (child.nodeName() == "#comment") child.remove()
else {
removeComments(child)
i++
}
}
}
}