| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.gwt.dom.builder.client; |
| |
| import com.google.gwt.dom.builder.shared.AbstractElementBuilderBase; |
| import com.google.gwt.dom.builder.shared.AnchorBuilder; |
| import com.google.gwt.dom.builder.shared.AreaBuilder; |
| import com.google.gwt.dom.builder.shared.AudioBuilder; |
| import com.google.gwt.dom.builder.shared.BRBuilder; |
| import com.google.gwt.dom.builder.shared.BaseBuilder; |
| import com.google.gwt.dom.builder.shared.BodyBuilder; |
| import com.google.gwt.dom.builder.shared.ButtonBuilder; |
| import com.google.gwt.dom.builder.shared.CanvasBuilder; |
| import com.google.gwt.dom.builder.shared.DListBuilder; |
| import com.google.gwt.dom.builder.shared.DivBuilder; |
| import com.google.gwt.dom.builder.shared.ElementBuilder; |
| import com.google.gwt.dom.builder.shared.ElementBuilderBase; |
| import com.google.gwt.dom.builder.shared.FieldSetBuilder; |
| import com.google.gwt.dom.builder.shared.FormBuilder; |
| import com.google.gwt.dom.builder.shared.FrameBuilder; |
| import com.google.gwt.dom.builder.shared.FrameSetBuilder; |
| import com.google.gwt.dom.builder.shared.HRBuilder; |
| import com.google.gwt.dom.builder.shared.HeadBuilder; |
| import com.google.gwt.dom.builder.shared.HeadingBuilder; |
| import com.google.gwt.dom.builder.shared.IFrameBuilder; |
| import com.google.gwt.dom.builder.shared.ImageBuilder; |
| import com.google.gwt.dom.builder.shared.InputBuilder; |
| import com.google.gwt.dom.builder.shared.LIBuilder; |
| import com.google.gwt.dom.builder.shared.LabelBuilder; |
| import com.google.gwt.dom.builder.shared.LegendBuilder; |
| import com.google.gwt.dom.builder.shared.LinkBuilder; |
| import com.google.gwt.dom.builder.shared.MapBuilder; |
| import com.google.gwt.dom.builder.shared.MetaBuilder; |
| import com.google.gwt.dom.builder.shared.OListBuilder; |
| import com.google.gwt.dom.builder.shared.OptGroupBuilder; |
| import com.google.gwt.dom.builder.shared.OptionBuilder; |
| import com.google.gwt.dom.builder.shared.ParagraphBuilder; |
| import com.google.gwt.dom.builder.shared.ParamBuilder; |
| import com.google.gwt.dom.builder.shared.PreBuilder; |
| import com.google.gwt.dom.builder.shared.QuoteBuilder; |
| import com.google.gwt.dom.builder.shared.ScriptBuilder; |
| import com.google.gwt.dom.builder.shared.SelectBuilder; |
| import com.google.gwt.dom.builder.shared.SourceBuilder; |
| import com.google.gwt.dom.builder.shared.SpanBuilder; |
| import com.google.gwt.dom.builder.shared.StyleBuilder; |
| import com.google.gwt.dom.builder.shared.TableBuilder; |
| import com.google.gwt.dom.builder.shared.TableCaptionBuilder; |
| import com.google.gwt.dom.builder.shared.TableCellBuilder; |
| import com.google.gwt.dom.builder.shared.TableColBuilder; |
| import com.google.gwt.dom.builder.shared.TableRowBuilder; |
| import com.google.gwt.dom.builder.shared.TableSectionBuilder; |
| import com.google.gwt.dom.builder.shared.TextAreaBuilder; |
| import com.google.gwt.dom.builder.shared.UListBuilder; |
| import com.google.gwt.dom.builder.shared.VideoBuilder; |
| import com.google.gwt.dom.client.Element; |
| |
| /** |
| * Implementation of {@link ElementBuilderBase} that delegates to a |
| * {@link DomBuilderImpl}. |
| * |
| * <p> |
| * Subclasses of {@link DomElementBuilderBase} operate directly on the |
| * {@link Element} being built. |
| * </p> |
| * |
| * @param <R> the builder type returned from build methods |
| * @param <E> the {@link Element} type |
| */ |
| public class DomElementBuilderBase<R extends ElementBuilderBase<?>, E extends Element> extends |
| AbstractElementBuilderBase<R> { |
| |
| private final DomBuilderImpl delegate; |
| |
| /** |
| * Construct a new {@link DomElementBuilderBase}. |
| * |
| * @param delegate the delegate that builds the element |
| */ |
| DomElementBuilderBase(DomBuilderImpl delegate) { |
| this(delegate, false); |
| } |
| |
| /** |
| * Construct a new {@link DomElementBuilderBase}. |
| * |
| * @param delegate the delegate that builds the element |
| * @param isEndTagForbidden true if the end tag is forbidden for this element |
| */ |
| DomElementBuilderBase(DomBuilderImpl delegate, boolean isEndTagForbidden) { |
| super(delegate, isEndTagForbidden); |
| this.delegate = delegate; |
| } |
| |
| @Override |
| public R attribute(String name, int value) { |
| assertCanAddAttribute().setAttribute(name, String.valueOf(value)); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R attribute(String name, String value) { |
| assertCanAddAttribute().setAttribute(name, value); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R className(String className) { |
| assertCanAddAttribute().setClassName(className); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R dir(String dir) { |
| assertCanAddAttribute().setDir(dir); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R draggable(String draggable) { |
| assertCanAddAttribute().setDraggable(draggable); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R id(String id) { |
| assertCanAddAttribute().setId(id); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R lang(String lang) { |
| assertCanAddAttribute().setLang(lang); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public AnchorBuilder startAnchor() { |
| return delegate.startAnchor(); |
| } |
| |
| @Override |
| public AreaBuilder startArea() { |
| return delegate.startArea(); |
| } |
| |
| @Override |
| public AudioBuilder startAudio() { |
| return delegate.startAudio(); |
| } |
| |
| @Override |
| public BaseBuilder startBase() { |
| return delegate.startBase(); |
| } |
| |
| @Override |
| public QuoteBuilder startBlockQuote() { |
| return delegate.startBlockQuote(); |
| } |
| |
| @Override |
| public BodyBuilder startBody() { |
| return delegate.startBody(); |
| } |
| |
| @Override |
| public BRBuilder startBR() { |
| return delegate.startBR(); |
| } |
| |
| @Override |
| public InputBuilder startButtonInput() { |
| return delegate.startButtonInput(); |
| } |
| |
| @Override |
| public CanvasBuilder startCanvas() { |
| return delegate.startCanvas(); |
| } |
| |
| @Override |
| public InputBuilder startCheckboxInput() { |
| return delegate.startCheckboxInput(); |
| } |
| |
| @Override |
| public TableColBuilder startCol() { |
| return delegate.startCol(); |
| } |
| |
| @Override |
| public TableColBuilder startColGroup() { |
| return delegate.startColGroup(); |
| } |
| |
| @Override |
| public DivBuilder startDiv() { |
| return delegate.startDiv(); |
| } |
| |
| @Override |
| public DListBuilder startDList() { |
| return delegate.startDList(); |
| } |
| |
| @Override |
| public FieldSetBuilder startFieldSet() { |
| return delegate.startFieldSet(); |
| } |
| |
| @Override |
| public InputBuilder startFileInput() { |
| return delegate.startFileInput(); |
| } |
| |
| @Override |
| public FormBuilder startForm() { |
| return delegate.startForm(); |
| } |
| |
| @Override |
| public FrameBuilder startFrame() { |
| return delegate.startFrame(); |
| } |
| |
| @Override |
| public FrameSetBuilder startFrameSet() { |
| return delegate.startFrameSet(); |
| } |
| |
| @Override |
| public HeadingBuilder startH1() { |
| return delegate.startH1(); |
| } |
| |
| @Override |
| public HeadingBuilder startH2() { |
| return delegate.startH2(); |
| } |
| |
| @Override |
| public HeadingBuilder startH3() { |
| return delegate.startH3(); |
| } |
| |
| @Override |
| public HeadingBuilder startH4() { |
| return delegate.startH4(); |
| } |
| |
| @Override |
| public HeadingBuilder startH5() { |
| return delegate.startH5(); |
| } |
| |
| @Override |
| public HeadingBuilder startH6() { |
| return delegate.startH6(); |
| } |
| |
| @Override |
| public HeadBuilder startHead() { |
| return delegate.startHead(); |
| } |
| |
| @Override |
| public InputBuilder startHiddenInput() { |
| return delegate.startHiddenInput(); |
| } |
| |
| @Override |
| public HRBuilder startHR() { |
| return delegate.startHR(); |
| } |
| |
| @Override |
| public IFrameBuilder startIFrame() { |
| return delegate.startIFrame(); |
| } |
| |
| @Override |
| public ImageBuilder startImage() { |
| return delegate.startImage(); |
| } |
| |
| @Override |
| public InputBuilder startImageInput() { |
| return delegate.startImageInput(); |
| } |
| |
| @Override |
| public LabelBuilder startLabel() { |
| return delegate.startLabel(); |
| } |
| |
| @Override |
| public LegendBuilder startLegend() { |
| return delegate.startLegend(); |
| } |
| |
| @Override |
| public LIBuilder startLI() { |
| return delegate.startLI(); |
| } |
| |
| @Override |
| public LinkBuilder startLink() { |
| return delegate.startLink(); |
| } |
| |
| @Override |
| public MapBuilder startMap() { |
| return delegate.startMap(); |
| } |
| |
| @Override |
| public MetaBuilder startMeta() { |
| return delegate.startMeta(); |
| } |
| |
| @Override |
| public OListBuilder startOList() { |
| return delegate.startOList(); |
| } |
| |
| @Override |
| public OptGroupBuilder startOptGroup() { |
| return delegate.startOptGroup(); |
| } |
| |
| @Override |
| public OptionBuilder startOption() { |
| return delegate.startOption(); |
| } |
| |
| @Override |
| public ParagraphBuilder startParagraph() { |
| return delegate.startParagraph(); |
| } |
| |
| @Override |
| public ParamBuilder startParam() { |
| return delegate.startParam(); |
| } |
| |
| @Override |
| public InputBuilder startPasswordInput() { |
| return delegate.startPasswordInput(); |
| } |
| |
| @Override |
| public PreBuilder startPre() { |
| return delegate.startPre(); |
| } |
| |
| @Override |
| public ButtonBuilder startPushButton() { |
| return delegate.startPushButton(); |
| } |
| |
| @Override |
| public QuoteBuilder startQuote() { |
| return delegate.startQuote(); |
| } |
| |
| @Override |
| public InputBuilder startRadioInput(String name) { |
| return delegate.startRadioInput(name); |
| } |
| |
| @Override |
| public ButtonBuilder startResetButton() { |
| return delegate.startResetButton(); |
| } |
| |
| @Override |
| public InputBuilder startResetInput() { |
| return delegate.startResetInput(); |
| } |
| |
| @Override |
| public ScriptBuilder startScript() { |
| return delegate.startScript(); |
| } |
| |
| @Override |
| public SelectBuilder startSelect() { |
| return delegate.startSelect(); |
| } |
| |
| @Override |
| public SourceBuilder startSource() { |
| return delegate.startSource(); |
| } |
| |
| @Override |
| public SpanBuilder startSpan() { |
| return delegate.startSpan(); |
| } |
| |
| @Override |
| public StyleBuilder startStyle() { |
| return delegate.startStyle(); |
| } |
| |
| @Override |
| public ButtonBuilder startSubmitButton() { |
| return delegate.startSubmitButton(); |
| } |
| |
| @Override |
| public InputBuilder startSubmitInput() { |
| return delegate.startSubmitInput(); |
| } |
| |
| @Override |
| public TableBuilder startTable() { |
| return delegate.startTable(); |
| } |
| |
| @Override |
| public TableCaptionBuilder startTableCaption() { |
| return delegate.startTableCaption(); |
| } |
| |
| @Override |
| public TableSectionBuilder startTBody() { |
| return delegate.startTBody(); |
| } |
| |
| @Override |
| public TableCellBuilder startTD() { |
| return delegate.startTD(); |
| } |
| |
| @Override |
| public TextAreaBuilder startTextArea() { |
| return delegate.startTextArea(); |
| } |
| |
| @Override |
| public InputBuilder startTextInput() { |
| return delegate.startTextInput(); |
| } |
| |
| @Override |
| public TableSectionBuilder startTFoot() { |
| return delegate.startTFoot(); |
| } |
| |
| @Override |
| public TableCellBuilder startTH() { |
| return delegate.startTH(); |
| } |
| |
| @Override |
| public TableSectionBuilder startTHead() { |
| return delegate.startTHead(); |
| } |
| |
| @Override |
| public TableRowBuilder startTR() { |
| return delegate.startTR(); |
| } |
| |
| @Override |
| public UListBuilder startUList() { |
| return delegate.startUList(); |
| } |
| |
| @Override |
| public VideoBuilder startVideo() { |
| return delegate.startVideo(); |
| } |
| |
| @Override |
| public R tabIndex(int tabIndex) { |
| assertCanAddAttribute().setTabIndex(tabIndex); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public R title(String title) { |
| assertCanAddAttribute().setTitle(title); |
| return getReturnBuilder(); |
| } |
| |
| @Override |
| public ElementBuilder trustedStart(String tagName) { |
| return delegate.trustedStart(tagName); |
| } |
| |
| /** |
| * Assert that the builder is in a state where an attribute can be added. |
| * |
| * @return the element on which the attribute can be set |
| */ |
| protected E assertCanAddAttribute() { |
| /* |
| * An explicit parameterized return type on cast() is required by some javac |
| * compilers. |
| */ |
| return delegate.assertCanAddAttribute().<E> cast(); |
| } |
| |
| DomBuilderImpl getDelegate() { |
| return delegate; |
| } |
| } |