public DockingFrame floatDockable(Dockable dockable, Component frameOwner, Rectangle screenBounds) {
if(dockable==null || screenBounds==null)
return null;
// create the frame
DockingFrame frame = getDockingFrame(dockable, frameOwner);
if(screenBounds!=null)
frame.setBounds(screenBounds);
// undock the current Dockable instance from it's current parent container
DockingManager.undock(dockable);
// add to the floating frame
frame.addDockable(dockable);
// display and return
if(!frame.isVisible())
frame.setVisible(true);
return frame;
}