I'm working on a project that use scala 2.9.2 and java 7.
What I'm trying to do is create a GUI using the scala ListView.
Here's a small code snippet:
private val listView = new ListView[Document](someList)
.
.
.
for (selectedDocument <- listView.peer.getSelectedValuesList) {
doSomething(selectedDocument)
}
This gives me the following compile error:
error: something is wrong (wrong class file?): class JList with type parameters [E] gets applied to arguments [], phase = namer for (selectedDocument <- listView.peer.getSelectedValuesList) {
I'm guessing this is because in ListView, peer is defined without type parameter:
override lazy val peer: JList = new JList with SuperMixin
So the question is: is it impossible to use the ListView from scala-swing with Java 7?
Solved this issue by extending Scala's ListView and adding a "typed peer".
class ExtendedListView[A: ClassManifest] extends ListView[A] {
lazy val typedPeer: JList[A] = peer.asInstanceOf[JList[A]]
def selectionEmpty = typedPeer.isSelectionEmpty
// Other functions omitted
}
Works great!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With