|
|
|
@ -8,61 +8,65 @@ import com.fr.data.util.function.MinFunction;
|
|
|
|
|
import com.fr.data.util.function.NoneFunction; |
|
|
|
|
import com.fr.data.util.function.SumFunction; |
|
|
|
|
import com.fr.design.gui.icombobox.UIComboBox; |
|
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
|
import com.fr.general.ComparatorUtils; |
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
import com.fr.plugin.chart.base.FirstFunction; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 公式选择. |
|
|
|
|
* @author kunsnat E-mail:kunsnat@gmail.com |
|
|
|
|
* @version 创建时间:2013-1-8 上午09:52:15 |
|
|
|
|
* |
|
|
|
|
* @author kunsnat E-mail:kunsnat@gmail.com |
|
|
|
|
* @version 创建时间:2013-1-8 上午09:52:15 |
|
|
|
|
*/ |
|
|
|
|
public class CalculateComboBox extends UIComboBox{ |
|
|
|
|
public class CalculateComboBox extends UIComboBox { |
|
|
|
|
|
|
|
|
|
public static final String[] CALCULATE_ARRAY = {com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_None"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_Sum"), |
|
|
|
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_Average"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_Max"), |
|
|
|
|
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_Min"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_Count")}; |
|
|
|
|
public static final Class[] CLASS_ARRAY = {NoneFunction.class, SumFunction.class, AverageFunction.class, |
|
|
|
|
MaxFunction.class, MinFunction.class, CountFunction.class}; |
|
|
|
|
|
|
|
|
|
public CalculateComboBox() { |
|
|
|
|
super(CALCULATE_ARRAY); |
|
|
|
|
setSelectedIndex(0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void reset() { |
|
|
|
|
this.setSelectedItem(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Function_None")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新公式选择. |
|
|
|
|
*/ |
|
|
|
|
public void populateBean(AbstractDataFunction function) { |
|
|
|
|
for(int i = 0; i < CLASS_ARRAY.length; i++) { |
|
|
|
|
if(function != null && ComparatorUtils.equals(function.getClass(), CLASS_ARRAY[i])) { |
|
|
|
|
setSelectedIndex(i); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 返回当前选择的公式 |
|
|
|
|
*/ |
|
|
|
|
public AbstractDataFunction updateBean() { |
|
|
|
|
try { |
|
|
|
|
int selectIndex = getSelectedIndex(); |
|
|
|
|
if(selectIndex >= 0 && selectIndex < CLASS_ARRAY.length) { |
|
|
|
|
return (AbstractDataFunction)CLASS_ARRAY[selectIndex].newInstance(); |
|
|
|
|
} |
|
|
|
|
} catch (InstantiationException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error("Function Error"); |
|
|
|
|
return null; |
|
|
|
|
} catch (IllegalAccessException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error("Function Error"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
public static final String[] CALCULATE_ARRAY = {Toolkit.i18nText("Fine-Design_Chart_Data_Function_First"), Toolkit.i18nText("Fine-Design_Chart_Data_Function_Last"), |
|
|
|
|
Toolkit.i18nText("Fine-Design_Chart_Data_Function_Sum"), Toolkit.i18nText("Fine-Design_Chart_Data_Function_Average"), |
|
|
|
|
Toolkit.i18nText("Fine-Design_Chart_Data_Function_Max"), Toolkit.i18nText("Fine-Design_Chart_Data_Function_Min"), |
|
|
|
|
Toolkit.i18nText("Fine-Design_Chart_Data_Function_Count")}; |
|
|
|
|
public static final Class[] CLASS_ARRAY = {FirstFunction.class, NoneFunction.class, SumFunction.class, AverageFunction.class, |
|
|
|
|
MaxFunction.class, MinFunction.class, CountFunction.class}; |
|
|
|
|
|
|
|
|
|
public CalculateComboBox() { |
|
|
|
|
super(CALCULATE_ARRAY); |
|
|
|
|
setSelectedIndex(2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void reset() { |
|
|
|
|
this.setSelectedItem(Toolkit.i18nText("Fine-Design_Chart_Data_Function_Sum")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 更新公式选择. |
|
|
|
|
*/ |
|
|
|
|
public void populateBean(AbstractDataFunction function) { |
|
|
|
|
for (int i = 0; i < CLASS_ARRAY.length; i++) { |
|
|
|
|
if (function != null && ComparatorUtils.equals(function.getClass(), CLASS_ARRAY[i])) { |
|
|
|
|
setSelectedIndex(i); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 返回当前选择的公式 |
|
|
|
|
*/ |
|
|
|
|
public AbstractDataFunction updateBean() { |
|
|
|
|
try { |
|
|
|
|
int selectIndex = getSelectedIndex(); |
|
|
|
|
if (selectIndex >= 0 && selectIndex < CLASS_ARRAY.length) { |
|
|
|
|
return (AbstractDataFunction) CLASS_ARRAY[selectIndex].newInstance(); |
|
|
|
|
} |
|
|
|
|
} catch (InstantiationException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error("Function Error"); |
|
|
|
|
return null; |
|
|
|
|
} catch (IllegalAccessException e) { |
|
|
|
|
FineLoggerFactory.getLogger().error("Function Error"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
} |