帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

63 lines
1.7 KiB

package com.fr.extended.chart;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.i18n.Toolkit;
import com.fr.general.GeneralUtils;
import com.fr.stable.StringUtils;
import java.util.List;
/**
* Created by shine on 2018/9/27.
*/
public class UIComboBoxWithNone extends UIComboBox {
protected String getDefaultLocaleString() {
return Toolkit.i18nText("Fine-Design_Chart_Use_None");
}
public UIComboBoxWithNone() {
super();
addDefaultItem();
setDefaultSelectedItem();
}
protected void setDefaultSelectedItem() {
// JComboBox.setSelectedItem(o)
// if(o!=null)寻找o对应的下拉选项 如果找不到 还是选中之前选中的
// 所以空字符串 不是选中空 是选中上次选中的
// 所以这边 可以写setSelectedItem(null) or setSelectedIndex(-1)
setSelectedIndex(-1);
}
@Override
public void refreshBoxItems(List list) {
super.refreshBoxItems(list);
addDefaultItem();
}
@Override
public void clearBoxItems() {
super.clearBoxItems();
addDefaultItem();
}
private void addDefaultItem() {
addItem(getDefaultLocaleString());
}
@Override
public void setSelectedItem(Object anObject) {
super.setSelectedItem(anObject);
//找不到的都选中无。中文的无 英文下是none。
//改正:找不到的且anObject不是null的 全部选中无。
//改正:找不到的且anObject不是null的且anObject不是空字符串的 全部选中无。
if (getSelectedIndex() == -1 && StringUtils.isNotEmpty(GeneralUtils.objectToString(anObject))) {
super.setSelectedItem(getDefaultLocaleString());
}
}
}