blob: f42735289e542cd34dd6ba36c69b36ab382dce88 [file] [log] [blame]
/*
* 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.examples.dom.builder;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.builder.shared.DivBuilder;
import com.google.gwt.dom.builder.shared.ElementBuilderFactory;
import com.google.gwt.dom.builder.shared.OptionBuilder;
import com.google.gwt.dom.builder.shared.SelectBuilder;
import com.google.gwt.dom.builder.shared.StylesBuilder;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Element;
/**
* Example of using {@link ElementBuilderFactory} to construct an element using
* each builder as an object.
*/
public class ElementBuilderFactoryNonChainingExample implements EntryPoint {
@Override
public void onModuleLoad() {
/*
* Create a builder for the outermost element. The initial state of the
* builder is a started element ready for attributes (eg. "<div").
*/
DivBuilder divBuilder = ElementBuilderFactory.get().createDivBuilder();
// Add attributes to the div.
divBuilder.id("myId");
divBuilder.title("This is a div");
// Add style properties to the div.
StylesBuilder divStyle = divBuilder.style();
divStyle.trustedBackgroundColor("red");
divStyle.endStyle();
// Append a child select element to the div.
SelectBuilder selectBuilder = divBuilder.startSelect();
// Append three options to the select element.
for (int i = 0; i < 3; i++) {
OptionBuilder optionBuilder = selectBuilder.startOption();
optionBuilder.value("value" + i);
optionBuilder.text("Option " + i);
optionBuilder.endOption();
}
/*
* End the select and div elements. Note that ending the remaining elements
* before calling asElement() below is optional, but a good practice. If we
* did not call endOption() above, we would append each option element to
* the preceding option element, which is not what we want.
*
* In general, you must pay close attention to ensure that you close
* elements correctly.
*/
selectBuilder.endSelect();
divBuilder.endDiv();
// Get the element out of the builder.
Element div = divBuilder.finish();
// Attach the element to the page.
Document.get().getBody().appendChild(div);
}
}