L'impostazione mi sembra buona. Un ulteriore livello di separazione tra interfaccia e oggetti potrebbe essere quella di creare una classe che si interpone tra l'interfaccia e gli oggetti da crare; questa classe, chiamiamola DocumentBuilder, offre tutti i metodi per creare i vari oggetti che rappresentano i blocchi del documento. Tutti i pannelli avranno quindi un riferimento ad un DocumentBuilder a cui inoltrare i messaggi per settare le impostazioni. Comuqnue questa impostazione non è detto che porti reali vantaggi in ogni caso, ma dipende dalle situazioni.