public class LocationEditUICTEx extends LocationEditUI {
public LocationEditUICTEx() throws Exception {
super();
// TODO Auto-generated constructor stub
}
/**
*
*/
private static final long serialVersionUID = -2829809835023377076L;
KDBizPromptBox provinceP = new KDBizPromptBox();
KDBizPromptBox cityP = new KDBizPromptBox();
KDBizPromptBox countryP = new KDBizPromptBox();
KDTextField txtaddress = new KDTextField();
@Override
public void onLoad() throws Exception {
Hashtable hashTable = new Hashtable();
DEPUtils.findComponent(this, new String[] { "txtaddress", "prmtprovince", "prmtcity", "prmtcountry" }, hashTable);
if (hashTable.size() > 0) {
if ((KDBizPromptBox) hashTable.get("prmtprovince") != null) {
provinceP = (KDBizPromptBox) hashTable.get("prmtprovince"); // 省
cityP = (KDBizPromptBox) hashTable.get("prmtcity"); // 市
countryP = (KDBizPromptBox) hashTable.get("prmtcountry"); // 区县
txtaddress = (KDTextField) hashTable.get("txtaddress"); // 地址
// 省份
provinceP.addDataChangeListener(new DataChangeListener() {
@Override
public void dataChanged(DataChangeEvent arg0) {
try {
prmtprovince_dataChanged(arg0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
cityP.addDataChangeListener(new DataChangeListener() {
@Override
public void dataChanged(DataChangeEvent arg0) {
try {
prmtcity_dataChanged(arg0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
countryP.addDataChangeListener(new DataChangeListener() {
@Override
public void dataChanged(DataChangeEvent arg0) {
try {
prmtcountry_dataChanged(arg0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
cityP.addSelectorListener(new SelectorListener() {
@Override
public void willShow(SelectorEvent paramSelectorEvent) {
ProvinceInfo provinceinfo = null;// 省
if (provinceP.getValue() != null) {
provinceinfo = (ProvinceInfo) provinceP.getValue();
}
// 城市f7过滤
if (provinceinfo != null) {
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("province.id", provinceinfo.getId()));
view.setFilter(filter);
cityP.setEntityViewInfo(view);
cityP.getQueryAgent().resetRuntimeEntityView();
}
}
});
countryP.addSelectorListener(new SelectorListener() {
@Override
public void willShow(SelectorEvent paramSelectorEvent) {
CityInfo city = null;// 市
if (cityP.getValue() != null) {
city = (CityInfo) cityP.getValue();
}
// 区县f7过滤
if (city != null) {
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("city.id", city.getId()));
view.setFilter(filter);
countryP.setEntityViewInfo(view);
countryP.getQueryAgent().resetRuntimeEntityView();
}
}
});
}
}
super.onLoad();
}
/**
* 省份
*
* @param e
* @throws Exception
*/
protected void prmtprovince_dataChanged(DataChangeEvent e) throws Exception {
ProvinceInfo provinceinfo = null;// 省
// true【旧值为空新值不为空 OR 新值和旧值不相同】
boolean flag = (e.getOldValue() != null && e.getNewValue() == null) || (e.getOldValue() == null && e.getNewValue() != null) || (e.getOldValue() != null && e.getNewValue() != null && !e.getOldValue().toString().equals(e.getNewValue().toString()));
if (flag && !isFirstOnload()) {
if (provinceP.getValue() != null) {
provinceinfo = (ProvinceInfo) provinceP.getValue();
}
// 城市f7过滤
if (provinceinfo != null) {
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("province.id", provinceinfo.getId()));
view.setFilter(filter);
cityP.setEntityViewInfo(view);
}
cityP.setValue(null);
countryP.setValue(null);
setAdress(provinceinfo, null, null, txtaddress);// 设置详细地址
}
}
/**
* 城市
*
* @param e
* @throws Exception
*/
protected void prmtcity_dataChanged(DataChangeEvent e) throws Exception {
ProvinceInfo provinceinfo = null;// 省
CityInfo city = null;// 市
// true【旧值为空新值不为空 OR 新值和旧值不相同】
boolean flag = (e.getOldValue() != null && e.getNewValue() == null) || (e.getOldValue() == null && e.getNewValue() != null) || (e.getOldValue() != null && e.getNewValue() != null && !e.getOldValue().toString().equals(e.getNewValue().toString()));
if (flag && !isFirstOnload()) {
if (provinceP.getValue() != null) {
provinceinfo = (ProvinceInfo) provinceP.getValue();
}
if (cityP.getValue() != null) {
city = (CityInfo) cityP.getValue();
}
// 区县f7过滤
if (city != null) {
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("city.id", city.getId()));
view.setFilter(filter);
countryP.setEntityViewInfo(view);
}
countryP.setValue(null);
setAdress(provinceinfo, city, null, txtaddress);// 设置详细地址
}
}
/**
* 区县
*
* @param e
* @throws Exception
*/
protected void prmtcountry_dataChanged(DataChangeEvent e) throws Exception {
ProvinceInfo province = null;// 省
CityInfo city = null;// 市
RegionInfo region = null;// 区县
// true【旧值为空新值不为空 OR 新值和旧值不相同】
boolean flag = (e.getOldValue() != null && e.getNewValue() == null) || (e.getOldValue() == null && e.getNewValue() != null) || (e.getOldValue() != null && e.getNewValue() != null && !e.getOldValue().toString().equals(e.getNewValue().toString()));
if (flag && !isFirstOnload()) {
if (provinceP.getValue() != null) {
province = (ProvinceInfo) provinceP.getValue();
}
if (cityP.getValue() != null) {
city = (CityInfo) cityP.getValue();
}
if (countryP.getValue() != null) {
region = (RegionInfo) countryP.getValue();
}
setAdress(province, city, region, txtaddress);// 设置详细地址
}
}
/**
* 设置详细地址
*
* @param province
* @param city
* @param region
* @param street
*/
private void setAdress(ProvinceInfo province, CityInfo city, RegionInfo region, KDTextField KdtAaddress) {
StringBuffer adress = new StringBuffer();
if (province != null) {
adress.append(province.getName());
}
if (city != null) {
adress.append(" ").append(city.getName());
}
if (region != null) {
adress.append(" ").append(region.getName());
}
KdtAaddress.setText(adress.toString());
}
}
BOS省市区联动代码
最新推荐文章于 2022-12-04 20:38:52 发布