I think in this case we could maybe use a mixin class that we could mix into multiple other classes (one descending from FormPanel, one from Popup), see this for an example: https://github.com/opengeo/gxp/blob/master/src/script/plugins/SchemaAnnotations.js