package org.javabuilders.vaadin;
import org.javabuilders.BuilderConfig;
import org.javabuilders.ICustomCommand;
import org.javabuilders.IStringLiteralControlConfig;
import org.javabuilders.event.IBackgroundProcessingHandler;
import org.javabuilders.handler.validation.IValidationMessageHandler;
import com.vaadin.data.Container;
import com.vaadin.data.util.HierarchicalContainer;
import com.vaadin.data.util.IndexedContainer;
import com.vaadin.event.ShortcutAction;
import com.vaadin.terminal.gwt.client.ui.Action;
import com.vaadin.terminal.gwt.client.ui.Icon;
import com.vaadin.terminal.gwt.client.ui.SimpleFocusablePanel;
import com.vaadin.terminal.gwt.client.ui.TreeAction;
import com.vaadin.ui.AbstractField;
import com.vaadin.ui.Accordion;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Component;
import com.vaadin.ui.ComponentContainer;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.DateField;
import com.vaadin.ui.Form;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.InlineDateField;
import com.vaadin.ui.Label;
import com.vaadin.ui.Link;
import com.vaadin.ui.ListSelect;
import com.vaadin.ui.LoginForm;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.NativeButton;
import com.vaadin.ui.NativeSelect;
import com.vaadin.ui.Panel;
import com.vaadin.ui.PopupDateField;
import com.vaadin.ui.PopupView;
import com.vaadin.ui.ProgressIndicator;
import com.vaadin.ui.RichTextArea;
import com.vaadin.ui.Select;
import com.vaadin.ui.Slider;
import com.vaadin.ui.SplitPanel;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.Tree;
import com.vaadin.ui.TwinColSelect;
import com.vaadin.ui.Upload;
import com.vaadin.ui.Window;
/**
* Main configuration for the Vaadin domain
*/
public class VaadinBuilderConfig extends BuilderConfig implements IStringLiteralControlConfig
{
public VaadinBuilderConfig(IBackgroundProcessingHandler backgroundProcessingHandler,
IValidationMessageHandler validationMessageHandler, ICustomCommand<Boolean> confirmCommand) {
super(backgroundProcessingHandler, validationMessageHandler, confirmCommand);
//types
addType(Accordion.class,
Action.class,
Button.class,
CheckBox.class,
ComboBox.class,
Container.class,
CustomComponent.class,
DateField.class,
Form.class,
FormLayout.class,
GridLayout.class,
HierarchicalContainer.class,
HorizontalLayout.class,
Icon.class,
IndexedContainer.class,
InlineDateField.class,
Label.class,
Link.class,
ListSelect.class,
LoginForm.class,
MenuBar.class,
NativeButton.class,
NativeSelect.class,
Panel.class,
PopupDateField.class,
PopupView.class,
ProgressIndicator.class,
RichTextArea.class,
Select.class,
ShortcutAction.class,
SimpleFocusablePanel.class,
Slider.class,
SplitPanel.class,
Table.class,
TabSheet.class,
TextField.class,
Tree.class,
TreeAction.class,
TwinColSelect.class,
Upload.class,
Window.class);
//customize types
forType(AbstractField.class).localize("caption","description","requiredError");
forType(CustomComponent.class).children(Component.class,0,1)
.typeAsMethod(Component.class, "setCompositionRoot");
forType(ComponentContainer.class).typeAsMethod(Component.class, "addComponent")
.children(Component.class, 0, Integer.MAX_VALUE)
.children(ComponentContainer.class, 0, 1);
//customize layout managers
}
/* (non-Javadoc)
* @see org.javabuilders.IStringLiteralControlConfig#getStringLiteralControlPrefix()
*/
public String getStringLiteralControlPrefix() {
return (String) getCustomProperties().get(PROPERY_STRING_LITERAL_CONTROL_PREFIX);
}
/* (non-Javadoc)
* @see org.javabuilders.IStringLiteralControlConfig#getStringLiteralControlSuffix()
*/
public String getStringLiteralControlSuffix() {
return (String) getCustomProperties().get(PROPERY_STRING_LITERAL_CONTROL_SUFFIX);
}
/* (non-Javadoc)
* @see org.javabuilders.IStringLiteralControlConfig#setStringLiteralControlPrefix(java.lang.String)
*/
public void setStringLiteralControlPrefix(String prefix) {
getCustomProperties().put(PROPERY_STRING_LITERAL_CONTROL_PREFIX, prefix);
}
/* (non-Javadoc)
* @see org.javabuilders.IStringLiteralControlConfig#setStringLiteralControlSuffix(java.lang.String)
*/
public void setStringLiteralControlSuffix(String suffix) {
getCustomProperties().put(PROPERY_STRING_LITERAL_CONTROL_SUFFIX, suffix);
}
}