While testing out my little browser thumbnail service, I thought I’d throw together a little thumbnail Swing client to tinker with (I was super inspired by Geertjan’s work on Soap clients). You can type in a URL, invoke the Thumbnail service over XMLRPC, then have a look at the image returned:
![]()
If you’re keen for a play, download the latest XML RPC jar (I’m using v0.3), and copy it to your ~/.groovy/lib directory (or %USERPROFILE%.groovylib on Windows). Then fire up groovyConsole and cut and paste….
import groovy.net.xmlrpc.*
def server = new XMLRPCServerProxy("http://www.groovyblogs.org:7999")
def swing=new groovy.swing.SwingBuilder()
def frame=swing.frame(title: 'Thumbnail Service',
preferredSize: [700, 500],
background: java.awt.Color.lightGray) {
vbox {
panel {
label 'Enter URL:'
textField(id: 'url', columns: 40, "http://www.google.com.au/")
button(text: "Get Thumb", actionPerformed: { event ->
println "Retrieving URL: $swing.url.text"
def thumbs = server.getThumbnail(swing.url.text)
def large = new javax.swing.ImageIcon(thumbs[0])
def small = new javax.swing.ImageIcon(thumbs[1])
swing.smallicon.icon = small
swing.bigicon.icon = large
})
}
panel {
label(id: 'smallicon')
label(id:'bigicon')
}
}
}
frame.pack()
frame.show()
The service only exposes one method, getThumbnail(url) which returns an array of byte[]. The first element is the large thumbnail bytes, the second is the small one. The format returned is jpeg. Be patient, it can take a few seconds to return…
Once I have a public download of the thumbnail service code, I’ll cut the public API, but it’s a fun experiment of what you can do with a few lines of groovy plus some XMLRPC goodness!