001 package org.gwtbootstrap3.client.ui;
002
003 /*
004 * #%L
005 * GwtBootstrap3
006 * %%
007 * Copyright (C) 2013 - 2014 GwtBootstrap3
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023
024 import com.google.gwt.text.shared.Renderer;
025 import com.google.gwt.user.client.ui.HasConstrainedValue;
026 import com.google.gwt.user.client.ui.HasName;
027 import com.google.gwt.user.client.ui.Widget;
028 import com.google.gwt.view.client.ProvidesKey;
029 import com.google.gwt.view.client.SimpleKeyProvider;
030
031 /**
032 * Implementation of {@link HasConstrainedValue} based on a
033 * {@link com.google.gwt.dom.client.SelectElement}.
034 * <p/>
035 * A {@link Renderer Renderer<T>} is used to get user-presentable strings to
036 * display in the select element.
037 *
038 * @param <T> the value type
039 */
040 public class ValueListBox<T> extends com.google.gwt.user.client.ui.ValueListBox<T> implements HasName {
041
042 public ValueListBox(final Renderer<T> renderer) {
043 this(renderer, new SimpleKeyProvider<T>());
044 }
045
046 public ValueListBox(final Renderer<T> renderer, final ProvidesKey<T> keyProvider) {
047 super(renderer, keyProvider);
048 }
049
050 @Override
051 protected void initWidget(final Widget widget) {
052 super.initWidget(new ListBox());
053 }
054
055 @Override
056 public void setName(String name) {
057 ((ListBox) getWidget()).setName(name);
058 }
059
060 @Override
061 public String getName() {
062 return ((ListBox) getWidget()).getName();
063 }
064 }