in src/main/java/org/jetbrains/plugins/spotbugs/gui/common/MultiSplitLayout.java [1254:1282]
private static void parseSplit(final StreamTokenizer st, final Split parent) throws Exception {
int token;
while ((token = st.nextToken()) != StreamTokenizer.TT_EOF) {
if (token == ')') {
break;
} else if (token == StreamTokenizer.TT_WORD) {
if ("WEIGHT".equalsIgnoreCase(st.sval)) {
parseAttribute(st.sval, st, parent);
} else {
addSplitChild(parent, new Leaf(st.sval));
}
} else if (token == '(') {
if (st.nextToken() != StreamTokenizer.TT_WORD) {
throwParseException(st, "invalid node type");
}
final String nodeType = st.sval.toUpperCase(Locale.ENGLISH);
if ("LEAF".equals(nodeType)) {
parseLeaf(st, parent);
} else if ("ROW".equals(nodeType) || "COLUMN".equals(nodeType)) {
final Split split = new Split();
split.setRowLayout("ROW".equals(nodeType));
addSplitChild(parent, split);
parseSplit(st, split);
} else {
throwParseException(st, "unrecognized node type '" + nodeType + '\'');
}
}
}
}