[groovy-user] adding a custom subclass of JSplitPane in SwingBuilder using container() causes IllegalArgumentException

2 views
Skip to first unread message

Dieter Rehbein

unread,
Mar 15, 2012, 2:14:24 AM3/15/12
to us...@groovy.codehaus.org
Hi all,

I'm new to groovy and griffon and currently playing around a little bit with SwingBuilder. I would like to add a subclass of JSplitPane (which uses a thin divider as described at http://www.formdev.com/blog/swing-tip-jsplitpane-with-zero-size-divider/) but it doesn't work.

Below you can find the view definition script. I've used a container()-Element to add my Splitpane-subclass. When I start my application, I get the exception below. Any ideas how to solve this problem?

2012-03-15 06:45:01,778 [AWT-EventQueue-0] ERROR org.codehaus.griffon.runtime.builder.UberBuilder - An error occurred while building at.rehdie.dbexp.main.ExplorerFrameView@59c87031
java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: null
at java_awt_Container$add.call(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7_closure8.doCall(ExplorerFrameView.groovy:54)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7_closure8.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7.doCall(ExplorerFrameView.groovy:49)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4.doCall(ExplorerFrameView.groovy:47)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2.doCall(ExplorerFrameView.groovy:31)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:167)
at at.rehdie.dbexp.main.ExplorerFrameView.run(ExplorerFrameView.groovy:23)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:151)
at org.codehaus.griffon.runtime.builder.UberBuilder.build(UberBuilder.groovy:155)
at org.codehaus.griffon.runtime.core.AbstractMVCGroup$1.run(AbstractMVCGroup.java:129)
2012-03-15 06:45:01,781 [main] ERROR griffon.util.GriffonExceptionHandler - Uncaught Exception
java.lang.RuntimeException: java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: null
at griffon.swing.SwingUIThreadHandler.executeSync(SwingUIThreadHandler.java:46)
at griffon.core.UIThreadManager.executeSync(UIThreadManager.java:247)
at org.codehaus.griffon.runtime.core.AbstractMVCGroup.buildScriptMember(AbstractMVCGroup.java:127)
at org.codehaus.griffon.runtime.core.DefaultMVCGroupManager.initializeMembers(DefaultMVCGroupManager.java:230)
at org.codehaus.griffon.runtime.core.DefaultMVCGroupManager.buildMVCGroup(DefaultMVCGroupManager.java:149)
at org.codehaus.griffon.runtime.core.AbstractMVCGroupManager.createMVCGroup(AbstractMVCGroupManager.java:238)
at org.codehaus.griffon.runtime.core.AbstractMVCGroupManager.createMVCGroup(AbstractMVCGroupManager.java:186)
at org.codehaus.griffon.runtime.core.AbstractGriffonApplication.createMVCGroup(AbstractGriffonApplication.java:499)
at org.codehaus.griffon.runtime.core.AbstractGriffonApplication.startup(AbstractGriffonApplication.java:313)
at griffon.swing.AbstractSwingGriffonApplication.realize(AbstractSwingGriffonApplication.java:78)
at griffon.swing.AbstractSwingGriffonApplication.run(AbstractSwingGriffonApplication.java:132)
at griffon.swing.SwingApplication.main(SwingApplication.java:36)
Caused by: java.lang.IllegalArgumentException: cannot add to layout: unknown constraint: null
at java_awt_Container$add.call(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7_closure8.doCall(ExplorerFrameView.groovy:54)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7_closure8.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7.doCall(ExplorerFrameView.groovy:49)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4_closure7.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4.doCall(ExplorerFrameView.groovy:47)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2_closure4.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:140)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2.doCall(ExplorerFrameView.groovy:31)
at at.rehdie.dbexp.main.ExplorerFrameView$_run_closure2.doCall(ExplorerFrameView.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeFactoryMethod(UberInterceptorMetaClass.groovy:96)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.this$3$invokeFactoryMethod(UberInterceptorMetaClass.groovy)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass$this$3$invokeFactoryMethod.callCurrent(Unknown Source)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:167)
at at.rehdie.dbexp.main.ExplorerFrameView.run(ExplorerFrameView.groovy:23)
at org.codehaus.griffon.runtime.builder.UberInterceptorMetaClass.invokeMethod(UberInterceptorMetaClass.groovy:151)
at org.codehaus.griffon.runtime.builder.UberBuilder.build(UberBuilder.groovy:155)
at org.codehaus.griffon.runtime.core.AbstractMVCGroup$1.run(AbstractMVCGroup.java:129)


-----------------------------------------------------------------------------------------------------------------------
and here is the view definition:
-----------------------------------------------------------------------------------------------------------------------

frame(id:"frame",
title: 'The new database explorer implemented with groovy/griffon',
size: [600, 400],
locationByPlatform:true,
iconImage: imageIcon('/griffon-icon-48x48.png').image,
iconImages: [imageIcon('/griffon-icon-48x48.png').image,
imageIcon('/griffon-icon-32x32.png').image,
imageIcon('/griffon-icon-16x16.png').image]) {

panel (id:'mainPanel',
opaque:false) {
borderLayout()
toolBar(id:'toolBar',
constraints:NORTH,
floatable:false,
opaque: false,
preferredSize: new Dimension(200,50)) {
hglue()
textField(id:'search', "clientPropertyJTextField.variant":"search",
maximumSize: new Dimension(150,35),
preferredSize: new Dimension(150,35))
}
panel(id: 'centerPanel',
constraints: CENTER,
opaque: true,
background: new Color(238, 238, 238)) {
borderLayout()
container (new SplitPaneWithThinDivider(),
id:'mainSplitPane',
constraints: CENTER,
dividerLocation: 150
) {
scrollPane(id:'treeScroller', border:null) {
tree(id:'explorerTree',
rootVisible: false)
}
scrollPane(border:null) {
textArea()
}
}
}
}
}


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email


Reply all
Reply to author
Forward
0 new messages