📄 carbackingbean.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 + -