⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 carbackingbean.java

📁 adf-faces 甲骨文的jsf组件,功能很强.开源免费.
💻 JAVA
字号:
package oracle.adfdemo.view.faces;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.faces.component.UISelectItems;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

import oracle.adf.view.faces.component.UIXOutput;
import oracle.adf.view.faces.component.core.nav.CoreCommandLink;

import oracle.adf.view.faces.event.ReturnEvent;

public class CarBackingBean
{
  public List getMakes()
  {
    return _MAKE_ITEMS;
  }
 
  public void makeChanged(ValueChangeEvent vce)
  {
       
    if ("".equals(vce.getNewValue()))
      _modelItems.setValue(Collections.EMPTY_LIST);
      
    Object newValue = vce.getNewValue();
    if (newValue instanceof Car)
    {
      String newCar = ((Car)newValue).getName();
      if ("cordera".equals(newCar))
        _modelItems.setValue(_CORDERA_MODELS);
      else if ("autumno".equals(newCar))
        _modelItems.setValue(_AUTUMNO_MODELS);
      else if ("grabowski".equals(newCar))
        _modelItems.setValue(_GRABOWSKI_MODELS);
    }
      
    _options.setValue(null);
    _price.setValue(null);
    _launchOptions.setDisabled(true);
  }

  public void modelChanged(ValueChangeEvent vce)
  {
    _price.setValue(_getPriceOfCar(vce.getNewValue()));
    _options.setValue(null);
    _launchOptions.setDisabled("".equals(vce.getNewValue()));
  }

  public UISelectItems getModelItems() { return _modelItems; } 
  public void setModelItems(UISelectItems modelItems) { _modelItems = modelItems; }

  public UIXOutput getPrice() { return _price; }
  public void setPrice(UIXOutput price) { _price = price; }

  public UIXOutput getOptions() { return _options; }
  public void setOptions(UIXOutput options) { _options = options; }

  public CoreCommandLink getLaunchOptions() { return _launchOptions; }
  public void setLaunchOptions(CoreCommandLink launchOptions) { _launchOptions = launchOptions; }

  public Object _getPriceOfCar(Object model)
  {
    return _PRICES.get(model);
  }

  public void returnOptions(ReturnEvent event)
  {
    Object value = event.getReturnValue();
    StringBuffer buffer = new StringBuffer();
    int addedPrice = 0;
    if (value instanceof List)
    {
      Iterator options = ((List) value).iterator();
      while (options.hasNext())
      {
        CarOption option = (CarOption) options.next();
        addedPrice = addedPrice + option.getPrice();
        if (buffer.length() != 0)
          buffer.append(", ");
        buffer.append(option.getName());
      }
    }

    _options.setValue(buffer.toString());

    Integer price = (Integer) _price.getValue();
    _price.setValue(new Integer(price.intValue() + addedPrice));
  }

  private UIXOutput      _price;
  private UIXOutput      _options;
  private CoreCommandLink _launchOptions;
  private UISelectItems  _modelItems;

  static private final List _MAKE_ITEMS = new ArrayList();
  static private final List _CORDERA_MODELS = new ArrayList();
  static private final List _AUTUMNO_MODELS = new ArrayList();
  static private final List _GRABOWSKI_MODELS = new ArrayList();

  static private final Map _PRICES = new HashMap();

  static private final SelectItem _NULL_SELECT_ITEM = new SelectItem("");

  static
  {
    _MAKE_ITEMS.add(_NULL_SELECT_ITEM);
    // test a Car Object instead of a String in SelectItem.
    // If you do not have a converter, 
    // make sure to use "useIndexValue='true'" in selectOne/selectMany
    // component.
    _MAKE_ITEMS.add(new SelectItem(new Car("cordera"), "Cordera Ltd."));
    _MAKE_ITEMS.add(new SelectItem(new Car("autumno"), "Autumno Inc."));
    _MAKE_ITEMS.add(new SelectItem(new Car("grabowski"), "Grabowski Motors"));

    _CORDERA_MODELS.add(_NULL_SELECT_ITEM);
    _CORDERA_MODELS.add(new SelectItem("XL", "XL"));
    _CORDERA_MODELS.add(new SelectItem("SV", "SV"));
    _CORDERA_MODELS.add(new SelectItem("DUH", "DUH"));

    _AUTUMNO_MODELS.add(_NULL_SELECT_ITEM);
    _AUTUMNO_MODELS.add(new SelectItem("390"));
    _AUTUMNO_MODELS.add(new SelectItem("490"));
    _AUTUMNO_MODELS.add(new SelectItem("585"));

    _GRABOWSKI_MODELS.add(_NULL_SELECT_ITEM);
    _GRABOWSKI_MODELS.add(new SelectItem("OneAndOnly"));
    
    _PRICES.put("XL", new Integer(25000));
    _PRICES.put("SV", new Integer(17000));
    _PRICES.put("DUH", new Integer(12000));
    _PRICES.put("390", new Integer(29500));
    _PRICES.put("490", new Integer(39500));
    _PRICES.put("585", new Integer(49500));
    _PRICES.put("OneAndOnly", new Integer(116500));
  }

  // this is used to test a Car Object instead of a String in SelectItem
  static private class Car
  {
    public Car (String name)
    {
      _name = name;
    }
    public String getName()
    {
      return _name;
    }

    private String _name;

  } 

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -