/** * */ package org.javabuilders.gtk.handler.type; import java.util.Map; import java.util.Set; import org.gnome.gtk.Paned; import org.gnome.gtk.Widget; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.BuilderConfig; import org.javabuilders.Node; import org.javabuilders.handler.ITypeHandlerFinishProcessor; /** * Paned finish processor * @author Jacek Furmankiewicz * */ public class PanedFinishProcessor implements ITypeHandlerFinishProcessor { /* (non-Javadoc) * @see org.javabuilders.handler.ITypeHandlerFinishProcessor#finish(org.javabuilders.BuilderConfig, org.javabuilders.BuildProcess, org.javabuilders.Node, java.lang.String, java.util.Map) */ public void finish(BuilderConfig config, BuildProcess process, Node current, String key, Map<String, Object> typeDefinition) throws BuildException { //add children Set<Node> n = current.getContentNodes(Widget.class); Node[] nodes = n.toArray(new Node[n.size()]); //take first two nodes only if (nodes.length > 0) { Paned p = (Paned) current.getMainObject(); p.add1((Widget) nodes[0].getMainObject()); if (nodes.length > 1) { p.add2((Widget) nodes[1].getMainObject()); } if (nodes.length > 2) { throw new BuildException("Only two widgets can be specified under a Panel objects: {0}",typeDefinition); } } } }