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
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()); |
|
} |
|
} |
|
|
|
}
|
|
|