/** * */ package org.javabuilders.swt.handler.type.layout; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_BOTTOM; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_HEIGHT; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_LEFT; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_RIGHT; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_TOP; import static org.javabuilders.swt.SwtJavaBuilder.MARGIN_WIDTH; import static org.javabuilders.swt.SwtJavaBuilder.SPACING; import java.util.Map; import org.eclipse.swt.layout.FormLayout; import org.javabuilders.BuildException; import org.javabuilders.BuildProcess; import org.javabuilders.BuilderConfig; import org.javabuilders.InvalidPropertyFormatException; import org.javabuilders.Node; import org.javabuilders.handler.AbstractTypeHandler; /** * FormLayout handler * @author Jacek Furmankiewicz * */ public class FormLayoutHandler extends AbstractTypeHandler { /** * Constructor */ public FormLayoutHandler() { super(MARGIN_BOTTOM,MARGIN_HEIGHT,MARGIN_LEFT,MARGIN_RIGHT, MARGIN_TOP, MARGIN_WIDTH, SPACING); } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeHandler#createNewInstance(org.javabuilders.BuilderConfig, org.javabuilders.BuildProcess, org.javabuilders.Node, java.lang.String, java.util.Map) */ public Node createNewInstance(BuilderConfig config, BuildProcess process, Node parent, String key, Map<String, Object> typeDefinition) throws BuildException { FormLayout instance = new FormLayout(); return useExistingInstance(config, process, parent, key, typeDefinition, instance); } /* (non-Javadoc) * @see org.javabuilders.handler.ITypeHandler#useExistingInstance(org.javabuilders.BuilderConfig, org.javabuilders.BuildProcess, org.javabuilders.Node, java.lang.String, java.util.Map, java.lang.Object) */ public Node useExistingInstance(BuilderConfig config, BuildProcess process, Node parent, String key, Map<String, Object> typeDefinition, Object instance) throws BuildException { Node node = new Node(parent,key,typeDefinition); node.setMainObject(instance); //process all the child properties by hand - SWT API does not use //JavaBean standard for layout objects, so we can't use default logic...sad. for(String property : typeDefinition.keySet()) { String value = String.valueOf(typeDefinition.get(property)); try { @SuppressWarnings("unused") Integer intValue = Integer.parseInt(value); // TODO: add code } catch (NumberFormatException ex) { throw new InvalidPropertyFormatException(key,property,value, property + ": int", property + ": 8"); } } return node; } /* (non-Javadoc) * @see org.javabuilders.IKeyValueConsumer#getApplicableClass() */ public Class<FormLayout> getApplicableClass() { return FormLayout.class; } }