| /* |
| * Created on Feb 15, 2004 |
| * |
| */ |
| package groovy.swt.factory; |
| |
| import groovy.swt.SwtUtils; |
| |
| import java.util.Map; |
| |
| import org.codehaus.groovy.GroovyException; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Layout; |
| import org.eclipse.swt.widgets.Widget; |
| |
| /** |
| * @author <a href="mailto:ckl@dacelo.nl">Christiaan ten Klooster </a> |
| * @version $Revision$ |
| */ |
| public class LayoutFactory extends AbstractSwtFactory implements SwtFactory { |
| |
| private Class beanClass; |
| |
| /** |
| * @param beanClass |
| */ |
| public LayoutFactory(Class beanClass) { |
| this.beanClass = beanClass; |
| } |
| |
| /* |
| * @see groovy.swt.impl.SwtFactory#newInstance(java.util.Map, |
| * java.lang.Object) |
| */ |
| public Object newInstance(Map properties, Object parent) |
| throws GroovyException { |
| |
| Layout layout; |
| try { |
| layout = (Layout) beanClass.newInstance(); |
| } catch (InstantiationException e) { |
| throw new GroovyException(e.getMessage()); |
| } catch (IllegalAccessException e) { |
| throw new GroovyException(e.getMessage()); |
| } |
| |
| if (layout != null) { |
| setBeanProperties(layout, properties); |
| } |
| |
| Widget parentComposite = (Widget) SwtUtils.getParentWidget(parent, properties); |
| if (parentComposite != null) { |
| ((Composite) parentComposite).setLayout(layout); |
| } |
| |
| return layout; |
| } |
| } |