I looked at what I wanted the editor to look like and what solutions already exist. For GUI I had Swing, for scripting I had Rhino, for serialisation I found Jackson, for graph editing I found jGraph, for property editing I found L2FProd, for text editing I found RSyntaxTextArea.