/** * */ package org.nocket.gen.domain.visitor.html.styling.bootstrap2; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ecs.Element; import org.apache.ecs.html.Div; import org.apache.ecs.html.Input; import org.apache.ecs.html.Label; import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.request.resource.CssResourceReference; import org.apache.wicket.request.resource.JavaScriptResourceReference; import org.apache.wicket.request.resource.PackageResourceReference; import org.apache.wicket.request.resource.ResourceReference; import org.nocket.gen.domain.element.DomainElementI; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultButtonBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultCheckBoxBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultDropDownBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultFeedbackPanelBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultFileUploadFieldBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultImageBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultLinkBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultListMultipleChoiceBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultLoginStatusBarBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultModalWindowBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultPasswordTextFieldBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultRadioChoiceBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultRepeatingViewBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultTabbedPanelBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultTableBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultTextAreaBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultTextFieldBuilder; import org.nocket.gen.domain.visitor.html.styling.bootstrap2.builder.DefaultWebMenuBuilder; import org.nocket.gen.domain.visitor.html.styling.common.AbstractStylingStrategyImpl; import org.nocket.gen.domain.visitor.html.styling.common.ButtonBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.CheckBoxBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.DropDownBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.FeedbackPanelBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.FileUploadBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.ImageBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.LinkBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.ListMultipleChoiceBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.LoginStatusBarBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.ModalWindowBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.PasswordTextFieldBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.RadioChoiceBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.RepeatingViewBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.TabbedPanelBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.TableBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.TextAreaBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.TextFieldBuilderI; import org.nocket.gen.domain.visitor.html.styling.common.WebMenuBuilderI; /** * Styling-Strategie f�r BootStrap2 Optik * * @author Thomas.Veit@Bertelsmann.de * */ public class DefaultStylingStrategy extends AbstractStylingStrategyImpl { @Override protected Element wrapComponent(DomainElementI<?> e, Element element) { //<div class="control-group"> Div controlGroup = new Div(); controlGroup.addAttribute(ATTR_CLASS, "control-group"); if (isInputButton(element)) ((Input) element).setValue(e.getPrompt()); else { // <label for="vertrag.Vertragsnummer" class="control-label">Salutation</label> Label label = createLabel(e, element); label.addAttribute(ATTR_CLASS, "control-label"); controlGroup.addElement(label); } // <div class="controls controls-row"> Div controlsRow = new Div(); controlsRow.addAttribute(ATTR_CLASS, "controls"); // <select class="span4" wicket:id="vertrag.Vertragsnummer" id="vertrag.Vertragsnummer" size="1"><option>[option]</option></select> controlsRow.addElement(element); // </div> controlGroup.addElement(controlsRow); //</div> return controlGroup; } @Override public WebMenuBuilderI getWebMenuBuilder() { return new DefaultWebMenuBuilder(); } @Override public FeedbackPanelBuilderI getFeedbackPanelBuilder() { return new DefaultFeedbackPanelBuilder(); } @Override public ListMultipleChoiceBuilderI<String> getListMultipleChoiceBuilder() { return new DefaultListMultipleChoiceBuilder(); } @Override public RadioChoiceBuilderI<?> getRadioChoiceBuilder() { return new DefaultRadioChoiceBuilder(); } @Override public TabbedPanelBuilderI<ITab> getTabbedPanelBuilder() { return new DefaultTabbedPanelBuilder(); } @Override public TableBuilderI<?, ?> getTableBuilder() { return new DefaultTableBuilder(); } @Override public List<CssResourceReference> getCssStyleFiles() { return new ArrayList<CssResourceReference>() {{ add(new CssResourceReference(getClass(), "resources/css/bootstrap.min.css")); }}; } @Override public List<JavaScriptResourceReference> getJavascriptFiles() { return new ArrayList<JavaScriptResourceReference>() {{ add(new JavaScriptResourceReference(getClass(), "resources/js/bootstrap.min.js")); }}; } @Override public Map<String, ResourceReference> getGlobalResources() { return new HashMap<String, ResourceReference>() {{ put("/img/glyphicons-halflings-white.png", new PackageResourceReference(getClass(), "resources/img/glyphicons-halflings-white.png")); put("/img/glyphicons-halflings.png", new PackageResourceReference(getClass(), "resources/img/glyphicons-halflings.png")); }}; } @Override public TextFieldBuilderI getTextFieldBuilder() { return new DefaultTextFieldBuilder(); } @Override public FileUploadBuilderI getFileUploadBuilder() { return new DefaultFileUploadFieldBuilder(); } @Override public PasswordTextFieldBuilderI getPasswordTextFieldBuilder() { return new DefaultPasswordTextFieldBuilder(); } @Override public TextAreaBuilderI getTextAreaBuilder() { return new DefaultTextAreaBuilder(); } @Override public CheckBoxBuilderI getCheckBoxBuilder() { return new DefaultCheckBoxBuilder(); } @Override public ImageBuilderI getImageBuilder() { return new DefaultImageBuilder(); } @Override public LinkBuilderI getLinkBuilder() { return new DefaultLinkBuilder(); } @Override public DropDownBuilderI getDropDownBuilder() { return new DefaultDropDownBuilder(); } @Override public ButtonBuilderI getButtonBuilder() { return new DefaultButtonBuilder(); } @Override public RepeatingViewBuilderI getRepeatingViewBuilder() { return new DefaultRepeatingViewBuilder(); } @Override public ModalWindowBuilderI getModalWindowBuilder() { return new DefaultModalWindowBuilder(); } @Override public LoginStatusBarBuilderI getLoginStatusBarBuilder() { return new DefaultLoginStatusBarBuilder(); } }