package org.ovirt.engine.ui.webadmin.widget; import org.ovirt.engine.ui.webadmin.widget.editor.EntityModelTextBoxEditor; import org.ovirt.engine.ui.webadmin.widget.editor.ListModelListBoxEditor; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.resources.client.CssResource; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Widget; public class ComboBox extends Composite { interface WidgetUiBinder extends UiBinder<Widget, ComboBox> { WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class); } @UiField WidgetStyle style; @UiField(provided = true) ListModelListBoxEditor<Object> listBoxEditor; @UiField(provided = true) EntityModelTextBoxEditor textBoxEditor; public ComboBox(ListModelListBoxEditor<Object> listBoxEditor, EntityModelTextBoxEditor textBoxEditor) { this.listBoxEditor = listBoxEditor; this.textBoxEditor = textBoxEditor; initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this)); addStyles(); } void addStyles() { listBoxEditor.addLabelStyleName(style.listBoxLabel()); textBoxEditor.addLabelStyleName(style.textBoxLabel()); textBoxEditor.addContentWidgetStyleName(style.textBoxWidget()); Element textBox = textBoxEditor.getContentWidgetContainer().getElement(); Element input = textBox.getElementsByTagName("input").getItem(0); input.addClassName(style.textBoxInput()); Element selectBox = listBoxEditor.getContentWidgetContainer().getElement(); Element select = selectBox.getElementsByTagName("select").getItem(0); select.addClassName(style.selectBoxInput()); } interface WidgetStyle extends CssResource { String textBoxWidget(); String textBoxInput(); String selectBoxInput(); String textBoxLabel(); String listBoxLabel(); } }