Index: /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java
===================================================================
--- /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 32176)
+++ /applications/editors/josm/plugins/roadsigns/src/org/openstreetmap/josm/plugins/roadsigns/RoadSignInputDialog.java	(revision 32177)
@@ -24,4 +24,5 @@
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -67,6 +68,8 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.gui.ExtendedDialog;
-import org.openstreetmap.josm.gui.widgets.MultiSplitLayout;
+import org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Divider;
+import org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Leaf;
 import org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Node;
+import org.openstreetmap.josm.gui.widgets.MultiSplitLayout.Split;
 import org.openstreetmap.josm.gui.widgets.MultiSplitPane;
 import org.openstreetmap.josm.plugins.roadsigns.RoadSignsPlugin.PresetMetaData;
@@ -179,10 +182,4 @@
 
     private JComponent buildSignsPanel() {
-        String layoutDef =
-            "(COLUMN "+
-                "(ROW weight=0.3 (LEAF name=upperleft weight=1.0) upperright) "+
-                "(ROW weight=0.5 (LEAF name=middleleft weight=0.5) (LEAF name=middleright weight=0.5)) "+
-                "(LEAF name=bottom weight=0.2))";
-
         FlowLayout fLayout = new FlowLayout(FlowLayout.LEFT);
         fLayout.setAlignOnBaseline(true);
@@ -201,6 +198,32 @@
             multiSplitPane.getMultiSplitLayout().setModel(model);
             multiSplitPane.getMultiSplitLayout().setFloatingDividers(false);
-        } catch (Exception ex) {
-            Node modelRoot = MultiSplitLayout.parseModel(layoutDef);
+        } catch (IOException ex) {
+            // (COLUMN
+            //    (ROW weight=0.3 (LEAF name=upperleft weight=1.0) upperright)
+            //    (ROW weight=0.5 (LEAF name=middleleft weight=0.5) (LEAF name=middleright weight=0.5))
+            //    (LEAF name=bottom weight=0.2))
+
+            Split modelRoot = new Split();
+            modelRoot.setRowLayout(false);
+
+            Split row1 = new Split();
+            row1.setWeight(0.3);
+            Leaf upperleft = new Leaf("upperleft");
+            upperleft.setWeight(1.0);
+            row1.setChildren(Arrays.asList(upperleft, new Divider(), new Leaf("upperright")));
+
+            Split row2 = new Split();
+            row2.setWeight(0.5);
+            Leaf middleleft = new Leaf("middleleft");
+            middleleft.setWeight(0.5);
+            Leaf middleright = new Leaf("middleright");
+            middleright.setWeight(0.5);
+            row2.setChildren(Arrays.asList(middleleft, new Divider(), middleright));
+
+            Leaf bottom = new Leaf("bottom");
+            bottom.setWeight(0.2);
+
+            modelRoot.setChildren(Arrays.asList(row1, new Divider(), row2, new Divider(), bottom));
+
             multiSplitPane.getMultiSplitLayout().setModel(modelRoot);
         }
