package org.javabuilders.swt;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
import org.eclipse.swt.widgets.Widget;
import org.javabuilders.BuildException;
import org.javabuilders.BuildResult;
import org.javabuilders.Builder;
import org.javabuilders.BuilderConfig;
import org.javabuilders.annotations.BuildFile;
public class SwtJavaBuilder {
public static final String MARGIN_BOTTOM = "marginBottom";
public static final String MARGIN_HEIGHT = "marginHeight";
public static final String MARGIN_WIDTH = "marginWidth";
public static final String MARGIN_TOP = "marginTop";
public static final String MARGIN_LEFT = "marginLeft";
public static final String MARGIN_RIGHT = "marginRight";
public static final String SPACING = "spacing";
public static final String STYLE = "style";
public static final String TEXT = "text";
public static final String ON_SELECTION = "onSelection";
public static final String PARENT = "parent";
private static final SwtJavaBuilderConfig config = new SwtJavaBuilderConfig();
/**
* @return SWT builder config
*/
public static SwtJavaBuilderConfig getConfig() {return config;}
/**
* Main SWT building method
* @param caller
* @param bundles
* @return
* @throws IOException
* @throws BuildException
*/
public static BuildResult build(Object caller, ResourceBundle...bundles) throws BuildException {
return Builder.build(getConfig(),caller, bundles);
}
/**
* SwingBuilder method that accepts passed in YAML instead of looking for a separate file
* @param caller The calling object
* @param bundles Optional list of bundles
* @param yaml Valid YAML content
* @return Buld result
*/
public static BuildResult build(Object caller, String yaml, ResourceBundle...bundles) {
return Builder.buildFromString(getConfig(),caller, yaml, bundles);
}
/**
* Main SWT building method
* @param caller
* @param bundles
* @param Explicit parent (if required)
* @return
* @throws IOException
* @throws BuildException
*/
public static BuildResult build(Widget parent, Object caller, ResourceBundle...bundles) throws BuildException {
Map<String,Widget> map = new HashMap<String, Widget>();
map.put(SwtJavaBuilder.PARENT, parent);
return Builder.build(getConfig(),caller, map, bundles);
}
/**
* SwingBuilder method that accepts passed in YAML instead of looking for a separate file
* @param caller The calling object
* @param bundles Optional list of bundles
* @param yaml Valid YAML content
* @return Buld result
*/
public static BuildResult build(Widget parent, Object caller, String yaml, ResourceBundle...bundles) {
Map<String,Widget> map = new HashMap<String, Widget>();
map.put(SwtJavaBuilder.PARENT, parent);
return Builder.buildFromString(getConfig(),caller, yaml, map, bundles);
}
/**
* Builds from a specific file
* @param parent Parent
* @param caller Caller
* @param fileName File name (relative to caller's location)
* @param resourceBundles Resource Bundles
* @return
*/
public static BuildResult buildFromFile(Widget parent, Object caller, String fileName,
ResourceBundle...resourceBundles) {
Map<String,Widget> map = new HashMap<String, Widget>();
map.put(SwtJavaBuilder.PARENT, parent);
return Builder.build(getConfig(),caller, fileName, map, resourceBundles);
}
}