Это было бы огромной задачей. Project Matisse проделал большую работу над этим, который теперь включен в IDE Netbeans. Эта ссылка является интервью с человеком, стоящим за проектом Матисса, и рассказывает о некоторых трудностях и о том, как команда их преодолела. Вы можете использовать созданный ими менеджер компоновки, и просмотр исходного кода Netbeans, вероятно, даст вам некоторое представление о том, как сделать то, что вы хотите.