Sha256: b8a8182c34c8938e5a4957b2dd4b448c20977cafe45c620fbf5f5ecfacb3fdd3

Contents?: true

Size: 1.66 KB

Versions: 1

Compression:

Stored size: 1.66 KB

Contents

/**
 * Sencha GXT 3.1.1 - Sencha for GWT
 * Copyright(c) 2007-2014, Sencha, Inc.
 * licensing@sencha.com
 *
 * http://www.sencha.com/products/gxt/license/
 */
package com.dldinternet.aws.cfn.stacker.desktop.client.widget;

import com.sencha.gxt.cell.core.client.form.ComboBoxCell.TriggerAction;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.widget.core.client.form.ComboBox;

/**
 * Provides general purpose combo box support for Java enumerated types. The
 * {@link Enum#toString()} method is invoked to retrieve the text for each
 * choice. To support translatable text, override the {@code toString} method
 * for the enumerated type and/or choices.
 * 
 * @param <T>
 */
public class EnumComboBox<T extends Enum<T>> extends ComboBox<T> {

  /**
   * Constructs an enumerated combo box with the specified values. To include
   * all of the values for an enum, use:
   * <p/>
   * <code>
   * EnumComboBox myEnumComboBox{@code <MyEnum>} = new EnumComboBox{@code <MyEnum>}(MyEnum.values());
   * </code>
   * 
   * @param values
   */
  public EnumComboBox(T... values) {
    super(new ListStore<T>(new ModelKeyProvider<T>() {
      @Override
      public String getKey(T item) {
        return item.name();
      }
    }), new LabelProvider<T>() {
      @Override
      public String getLabel(T item) {
        return item.toString();
      }
    });

    for (T value : values) {
      getStore().add(value);
    }

    if (values.length > 0) {
      select(0);
    }

    setEditable(false);
    setForceSelection(true);
    setTriggerAction(TriggerAction.ALL);
  }

}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aws-cfn-stacker-0.0.6 ui/src/com/dldinternet/aws/cfn/stacker/desktop/client/widget/EnumComboBox.java