As far as i know (please correct me if i’m wrong) the only way to display a Servoy form in a Swing or awt object (for example, the JSplitpane and JInternalFrame beans) is to add the form to a tabpanel and then add that tabpanel to the bean. Because there is no way to create a new “tabpanel instance”, it is impossible to add a newly created form instance to a Swing or awt container.
I have written my own “MDI Desktop” plugin that uses a JDesktopPane and JInternalFrame’s. It works, but at the moment i unfortunately have to use an extremely ugly method to get a new form instance in a new MDI Window: I let Servoy create a non-modal window containing the form and i then ‘steal’ the parent component out of it by literally doing a few getParent() calls on a random form element. (this is impossible from javascript but it works from a java plugin)
I think it would be great if there would be a more elegant way to do this.
Possible solutions:
let the form object itself behave like a java.awt.Component
create a form controller method that returns the Component
Indeed, that allows you to add form instances to an existing tabpanel that’s already in a bean.
It still doesn’t allow you to create a new form instance and to add that form instance to a new swing object, for example a freshly created JInternalFrame.
The problem is that you need a separate tabpanel for each form instance/JInternalFrame pair and there’s no way to create one programmatically.