package org.javabuilders.swing.handler.type; import java.awt.Container; import java.util.Map; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.BuilderConfig; import org.javabuilders.Node; import org.javabuilders.handler.ITypeHandlerFinishProcessor; import org.javabuilders.swing.SwingJavaBuilderUtils; /** * Handles implementing custom focus policy * @author Jacek Furmankiewicz */ public class FocusFinishProcessor implements ITypeHandlerFinishProcessor { @Override public void finish(BuilderConfig config, BuildProcess process, Node current, String key, Map<String, Object> typeDefinition) throws BuildException { Focus focus = (Focus) current.getMainObject(); //get all the specified control names //attach focus policy to parent Container c = SwingJavaBuilderUtils.getParentContainer(current); if (c != null) { c.setFocusTraversalPolicy(focus); } else { throw new BuildException("Unable to find parent container for Focus: {0}", typeDefinition); } } }