package com.teechart;
|
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseListener;
|
import java.awt.event.MouseMotionListener;
|
import java.util.ArrayList;
|
|
import javax.swing.JMenuItem;
|
import javax.swing.JPopupMenu;
|
import javax.swing.border.BevelBorder;
|
|
import com.dev.ntm.BattTestData;
|
import com.dev.ntm.ntm_page_datamanage_chart;
|
import com.steema.teechart.TChart;
|
import com.steema.teechart.drawing.Color;
|
import com.steema.teechart.drawing.DashStyle;
|
import com.steema.teechart.events.TextResolver;
|
import com.steema.teechart.styles.Bar;
|
import com.steema.teechart.styles.Line;
|
import com.steema.teechart.styles.MarksStyle;
|
import com.steema.teechart.tools.MarksTip;
|
import com.steema.teechart.tools.MarksTipMouseAction;
|
|
/********************************* Tee Bar Chart ************************************************/
|
public class TBarChart extends TChart
|
{
|
public static final long serialVersionUID = 1L;
|
public static final int Bar_Type_MonVol = 0;
|
public static final int Bar_Type_MonTmp = 1;
|
public static final int Bar_Type_MonRes = 2;
|
public static final int Bar_Type_ConnRes = 3;
|
public static final int Bar_Type_MonSer = 4;
|
public static final int Bar_Type_MonSerPercent = 5;
|
public static final int Bar_Type_MonCapVol = 6;
|
public static final int Bar_Type_MonRealCap = 7;
|
public static final int Bar_Type_MonRestCap = 8;
|
public static final int Bar_Type_MonCapPercent = 9;
|
public static final int Bar_Type_MonCapTmp = 10;
|
|
private static final Color COLOR_MAX = Color.GREEN;
|
private static final Color COLOR_MIN = Color.RED;
|
private static final Color COLOR_AVG = Color.GRAY;
|
private static final Color COLOR_SUBLOW = Color.MAGENTA;
|
private static final Color COLOR_LOW = Color.MAGENTA;
|
|
public Bar bar_ser;
|
public float[] bar_values;
|
private ArrayList<Color> m_colorlist = new ArrayList<Color>();
|
private int m_barvalue_battnum = -1;
|
private int m_barvalue_battnum_ex = -1;
|
|
private double bar_leftAxMax = 0;
|
private int bar_value_count = 0;
|
|
private Line line_ser_avg;
|
private Line line_ser_low;
|
private Line line_ser_sublow;
|
private MarksTip tooltip1;
|
private ntm_page_datamanage_chart m_UI;
|
|
private int mBarType = Bar_Type_MonVol;
|
private int m_UI_GridViewIndex = 0;
|
|
public double max = 0;
|
public double min = 900000;
|
public double avg_val = 0;
|
public double low_val = 0;
|
public double high_val = 0;
|
public int lowcount = 0;
|
public float low_percent = 0;
|
|
public TBarChart(ntm_page_datamanage_chart UI, int bar_type)
|
{
|
m_UI = UI;
|
bar_ser = new Bar();
|
bar_ser.getMarks().setStyle(MarksStyle.VALUE);
|
bar_ser.getMarks().setVisible(false);
|
|
this.setBarValueFormat(bar_type);
|
this.addSeries(bar_ser);
|
|
this.addMouseListener(new MouseListener(){
|
|
@Override
|
public void mouseClicked(MouseEvent arg0) {
|
if(arg0.getClickCount() == 2)
|
{
|
setChartViewState();
|
}
|
else if(arg0.getButton() == MouseEvent.BUTTON1)
|
{
|
// m_UI.m_UiTable.setAndScroledToRow(m_barvalue_battnum);
|
}
|
else if(arg0.getButton() == MouseEvent.BUTTON3)
|
{
|
JPopupMenu popupMenu = new JPopupMenu();
|
m_barvalue_battnum_ex = m_barvalue_battnum;
|
|
JMenuItem tableItem_battindex = new JMenuItem("½öÏÔʾµ¥Ìå" + (m_barvalue_battnum_ex) + " ÇúÏß");
|
JMenuItem tableItem_add_battindex = new JMenuItem("Ìí¼ÓÏÔʾµ¥Ìå" + (m_barvalue_battnum_ex) + " ÇúÏß");
|
JMenuItem tableItem_vol = new JMenuItem("µ¥Ìåµçѹ(V)");
|
JMenuItem tableItem_tmp = new JMenuItem("µ¥ÌåζÈ(¡ãC)");
|
JMenuItem tableItem_realcap = new JMenuItem("µ¥Ìåʵ¼ÊÈÝÁ¿(AH)");
|
JMenuItem tableItem_restcap = new JMenuItem("µ¥ÌåÊ£ÓàÈÝÁ¿(AH)");
|
JMenuItem tableItem_cappercent = new JMenuItem("µ¥ÌåÈÝÁ¿°Ù·Ö±È");
|
|
String text = "";
|
if(m_barvalue_battnum_ex > 0) {
|
text = "²é¿´µ¥Ìå" + (m_barvalue_battnum_ex) + " ÀúÊ·¼Ç¼";
|
} else {
|
text = "²é¿´È«²¿µ¥ÌåÀúÊ·¼Ç¼";
|
}
|
JMenuItem tableItem_historycap = new JMenuItem(text);
|
JMenuItem tableItem_addtofault = new JMenuItem("Ìí¼Óµ½¹ÊÕÏÁбí");
|
|
JMenuItem tableItem_battlow_all = new JMenuItem("ÏÔʾËùÓÐÂäºóµ¥Ìå");
|
JMenuItem tableItem_battlow_now_only = new JMenuItem("½öÏÔʾµ±Ç°Âäºóµ¥Ìå");
|
JMenuItem tableItem_battselect_only = new JMenuItem("½öÏÔʾµ±Ç°Ñ¡ÔñµÄµ¥Ìå");
|
JMenuItem tableItem_batt_all = new JMenuItem("ÏÔʾËùÓе¥Ìå");
|
|
JMenuItem tableItem_restorezomm = new JMenuItem("»¹ÔËõ·Å״̬");
|
JMenuItem tableItem_showbar_label = new JMenuItem("ÏÔʾ/Òþ²ØÊýÖµ");
|
JMenuItem tableItem_max_normal = new JMenuItem("×î´ó/Õý³£»¯Í¼±í");
|
|
ActionListener act_Listener = new ActionListener(){
|
@Override
|
public void actionPerformed(ActionEvent arg0) {
|
if(arg0.getSource() == tableItem_vol)
|
{
|
m_UI.setBarChartDataType(BattTestData.MonData_Vol);
|
}
|
else if(arg0.getSource() == tableItem_tmp)
|
{
|
m_UI.setBarChartDataType(BattTestData.MonData_Tmp);
|
}
|
else if(arg0.getSource() == tableItem_realcap)
|
{
|
m_UI.setBarChartDataType(BattTestData.MonData_RealCap);
|
}
|
else if(arg0.getSource() == tableItem_restcap)
|
{
|
m_UI.setBarChartDataType(BattTestData.MonData_RestCap);
|
}
|
else if(arg0.getSource() == tableItem_cappercent)
|
{
|
m_UI.setBarChartDataType(BattTestData.MonData_CapPercent);
|
}
|
else if(arg0.getSource() == tableItem_historycap)
|
{
|
ArrayList<Integer> Bnums = new ArrayList<Integer>();
|
for(int n=0; n<getBarValueCount(); n++) {
|
Bnums.add(n+1);
|
}
|
/*
|
byte data_type = BattTestData.MonData_CapVol;
|
if ((TBarChart.Bar_Type_MonRealCap == mBarType)
|
|| (TBarChart.Bar_Type_MonRestCap == mBarType)
|
|| (TBarChart.Bar_Type_MonCapPercent == mBarType)) {
|
data_type = BattTestData.MonData_RealCap;
|
} else if (TBarChart.Bar_Type_MonVol == mBarType) {
|
data_type = BattTestData.MonData_Vol;
|
} else if (TBarChart.Bar_Type_MonSer == mBarType) {
|
data_type = BattTestData.MonData_Ser;
|
} else if (TBarChart.Bar_Type_MonSerPercent == mBarType) {
|
data_type = BattTestData.MonData_SerPercent;
|
} else if (TBarChart.Bar_Type_MonRes == mBarType) {
|
data_type = BattTestData.MonData_Res;
|
} else if (TBarChart.Bar_Type_MonTmp == mBarType) {
|
data_type = BattTestData.MonData_Tmp;
|
} else if (TBarChart.Bar_Type_ConnRes == mBarType) {
|
data_type = BattTestData.MonData_ConnRes;
|
}
|
|
//m_UI.main_form.mGL_From.set_DLG_MonomerReportState(true, m_UI.mBattGroupId, data_type,
|
// m_barvalue_battnum_ex, Bnums);
|
*/
|
}
|
else if(arg0.getSource() == tableItem_addtofault)
|
{
|
//m_UI.main_form.mGL_From.set_DLG_BattMaintState(true, m_UI.mBattGroupId);
|
//m_UI.main_form.mGL_From.m_DLG_BattMaintReport
|
//.m_BattMaint_Table.addMaintInf(m_UI.mBattGroupId, m_barvalue_battnum_ex);
|
}
|
else if(arg0.getSource() == tableItem_restorezomm)
|
{
|
restoreZoom();
|
}
|
//------------------------------------------------------------//
|
else if(arg0.getSource() == tableItem_battindex)
|
{
|
m_UI.m_MonLineShowList.clear();
|
m_UI.m_MonLineShowList.add(m_barvalue_battnum_ex);
|
m_UI.upDateLineChartShowNums(false);
|
}
|
else if(arg0.getSource() == tableItem_add_battindex)
|
{
|
if(false == m_UI.m_MonLineShowList.contains(m_barvalue_battnum_ex))
|
{
|
m_UI.m_MonLineShowList.add(m_barvalue_battnum_ex);
|
}
|
m_UI.upDateLineChartShowNums(false);
|
}
|
else if(arg0.getSource() == tableItem_battlow_all)
|
{
|
getLowMonNums(m_UI.m_MonLineShowList);
|
m_UI.setShowBattLowType(ntm_page_datamanage_chart.ShowBattLowType_All);
|
m_UI.upDateLineChartShowNums(true);
|
}
|
else if(arg0.getSource() == tableItem_battlow_now_only)
|
{
|
getLowMonNums(m_UI.m_MonLineShowList);
|
m_UI.setShowBattLowType(ntm_page_datamanage_chart.ShowBattLowType_Now);
|
m_UI.upDateLineChartShowNums(true);
|
}
|
else if(arg0.getSource() == tableItem_battselect_only)
|
{
|
m_UI.setShowBattLowType(ntm_page_datamanage_chart.ShowBattLowType_Sel);
|
m_UI.upDateLineChartShowNums(true);
|
}
|
else if(arg0.getSource() == tableItem_batt_all)
|
{
|
m_UI.m_MonLineShowList.clear();
|
for(int n=0; n<bar_value_count; n++)
|
{
|
m_UI.m_MonLineShowList.add(n+1);
|
}
|
m_UI.setShowBattLowType(ntm_page_datamanage_chart.ShowBattLowType_None);
|
m_UI.upDateLineChartShowNums(true);
|
}
|
//------------------------------------------------------------//
|
else if(arg0.getSource() == tableItem_showbar_label)
|
{
|
bar_ser.getMarks().setVisible(!bar_ser.getMarks().getVisible());
|
}
|
else if(arg0.getSource() == tableItem_max_normal)
|
{
|
setChartViewState();
|
}
|
}
|
};
|
|
tableItem_battindex.addActionListener(act_Listener);
|
tableItem_add_battindex.addActionListener(act_Listener);
|
tableItem_vol.addActionListener(act_Listener);
|
tableItem_tmp.addActionListener(act_Listener);
|
tableItem_realcap.addActionListener(act_Listener);
|
tableItem_restcap.addActionListener(act_Listener);
|
tableItem_cappercent.addActionListener(act_Listener);
|
tableItem_historycap.addActionListener(act_Listener);
|
tableItem_addtofault.addActionListener(act_Listener);
|
tableItem_restorezomm.addActionListener(act_Listener);
|
tableItem_battlow_all.addActionListener(act_Listener);
|
tableItem_battlow_now_only.addActionListener(act_Listener);
|
tableItem_battselect_only.addActionListener(act_Listener);
|
tableItem_batt_all.addActionListener(act_Listener);
|
tableItem_showbar_label.addActionListener(act_Listener);
|
tableItem_max_normal.addActionListener(act_Listener);
|
|
popupMenu.setBorder(new BevelBorder(BevelBorder.RAISED));
|
if((Bar_Type_MonCapVol == mBarType) || (Bar_Type_MonRealCap == mBarType)
|
|| (Bar_Type_MonRestCap == mBarType) || (Bar_Type_MonCapPercent == mBarType)
|
|| (Bar_Type_MonCapTmp == mBarType))
|
{
|
popupMenu.add(tableItem_vol);
|
popupMenu.add(tableItem_tmp);
|
popupMenu.add(tableItem_realcap);
|
popupMenu.add(tableItem_restcap);
|
popupMenu.add(tableItem_cappercent);
|
popupMenu.addSeparator();
|
|
if(m_barvalue_battnum > 0)
|
{
|
popupMenu.add(tableItem_battindex);
|
popupMenu.add(tableItem_add_battindex);
|
popupMenu.addSeparator();
|
}
|
}
|
/*
|
if(!MainForm.is_app_for_bpm7100) {
|
popupMenu.add(tableItem_historycap);
|
popupMenu.addSeparator();
|
|
if(m_UI.main_form.getUsrPermit(PermitParam.p_battfault_add)) {
|
popupMenu.add(tableItem_addtofault);
|
popupMenu.addSeparator();
|
}
|
}
|
*/
|
if(Bar_Type_MonCapVol == mBarType) {
|
popupMenu.add(tableItem_battlow_all);
|
popupMenu.add(tableItem_battlow_now_only);
|
popupMenu.add(tableItem_battselect_only);
|
popupMenu.add(tableItem_batt_all);
|
popupMenu.addSeparator();
|
}
|
|
popupMenu.add(tableItem_restorezomm);
|
popupMenu.add(tableItem_showbar_label);
|
popupMenu.add(tableItem_max_normal);
|
|
popupMenu.show(arg0.getComponent(), arg0.getX(), arg0.getY());
|
}
|
}
|
|
@Override
|
public void mouseEntered(MouseEvent arg0) {
|
// TODO Auto-generated method stub
|
//arg0.getX();
|
|
}
|
|
@Override
|
public void mouseExited(MouseEvent arg0) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mousePressed(MouseEvent arg0) {
|
// TODO Auto-generated method stub
|
|
}
|
|
@Override
|
public void mouseReleased(MouseEvent arg0) {
|
// TODO Auto-generated method stub
|
|
}
|
});
|
|
line_ser_avg = new Line();
|
line_ser_avg.getLinePen().setStyle(DashStyle.DOT);
|
line_ser_avg.setColor(COLOR_AVG);
|
this.addSeries(line_ser_avg);
|
|
line_ser_sublow = new Line();
|
line_ser_sublow.getLinePen().setStyle(DashStyle.DOT);
|
line_ser_sublow.setColor(COLOR_SUBLOW);
|
this.addSeries(line_ser_sublow);
|
|
line_ser_low = new Line();
|
line_ser_low.getLinePen().setStyle(DashStyle.DOT);
|
line_ser_low.setColor(COLOR_LOW);
|
this.addSeries(line_ser_low);
|
|
this.getChart().getTitle().setText("");
|
this.getChart().getTitle().getFont().setColor(Color.GRAY);
|
this.getLegend().setVisible(false);
|
this.getAspect().setView3D(false);
|
this.getPanel().setMarginLeft(0);
|
this.getPanel().setMarginRight(1);
|
this.getPanel().setMarginTop(1.5);
|
this.getPanel().setMarginBottom(2);
|
this.getPanel().setColor(Color.BLACK);
|
this.getAxes().getLeft().getLabels().getFont().setColor(Color.GRAY);
|
this.getAxes().getLeft().getGrid().setColor(Color.fromArgb(50, 50, 50));
|
this.getAxes().getLeft().getAxisPen().setColor(Color.GRAY);
|
this.getAxes().getBottom().getAxisPen().setColor(Color.GRAY);
|
this.getAxes().getBottom().getLabels().getFont().setColor(Color.GRAY);
|
this.getAxes().getBottom().getGrid().setVisible(false);
|
|
tooltip1 = new MarksTip(this.getChart());
|
tooltip1.setMouseDelay(50);
|
tooltip1.setMouseAction(MarksTipMouseAction.MOVE);
|
tooltip1.setStyle(MarksStyle.LABELVALUE);
|
tooltip1.setToolTipResolver(new TextResolver(){
|
@Override
|
public String getText(Object arg0, String arg1) {
|
// TODO Auto-generated method stub
|
return arg1.replace(" ", " ");
|
}
|
});
|
tooltip1.addMouseMotionListener(new MouseMotionListener(){
|
|
@Override
|
public void mouseDragged(MouseEvent arg0) {
|
}
|
|
@Override
|
public void mouseMoved(MouseEvent arg0) {
|
try {
|
if(bar_ser.getYValues().count > 0)
|
{
|
int index = Integer.parseInt(String.format("%1.0f", bar_ser.xScreenToValue(arg0.getX()))) - 1;
|
float bvalue = (float) bar_ser.yScreenToValue(arg0.getY());
|
m_barvalue_battnum = -1;
|
|
for(int n=0; n<m_colorlist.size(); n++)
|
bar_ser.getColors().setColor(n, m_colorlist.get(n));
|
|
if((index >= 0) && (index < bar_ser.getColors().getCount())
|
&& (Math.abs(bvalue) <= Math.abs(bar_ser.getYValues().getValue(index))))
|
{
|
bar_ser.getColors().setColor(index, Color.CYAN);
|
String str = (String) (bar_ser.getLabels().get(index));
|
m_barvalue_battnum = Integer.parseInt(str.substring(1, str.length()).trim());
|
}
|
|
bar_ser.repaint();
|
}
|
} catch(Exception e) {
|
System.out.println(e.getMessage());
|
}
|
}
|
});
|
}
|
|
public void setGridViewIndex(int index) {
|
m_UI_GridViewIndex = index;
|
}
|
public int getGridViewIndex() {
|
return m_UI_GridViewIndex;
|
}
|
|
private void setChartViewState()
|
{
|
m_UI.setChartViewState(getGridViewIndex(), !m_UI.getChartViewState());
|
}
|
|
public int getBarValueCount()
|
{
|
return bar_value_count;
|
}
|
/*
|
public void setShowLowBattOnly(boolean sh)
|
{
|
show_lowbatt_only = sh;
|
if(false == show_lowbatt_only)
|
{
|
restoreZoom();
|
}
|
}
|
*/
|
|
public void setBarValueFormat(int bar_type)
|
{
|
mBarType = bar_type;
|
switch(mBarType)
|
{
|
case Bar_Type_MonVol: bar_ser.setValueFormat("#0.000V"); break;
|
case Bar_Type_MonTmp: bar_ser.setValueFormat("#0.0¡ãC"); break;
|
case Bar_Type_MonRes: bar_ser.setValueFormat("#0.000m¦¸"); break;
|
case Bar_Type_MonSer: bar_ser.setValueFormat("#"); break;
|
case Bar_Type_MonSerPercent: bar_ser.setValueFormat("#0.0%"); break;
|
case Bar_Type_ConnRes: bar_ser.setValueFormat("#0.000m¦¸"); break;
|
case Bar_Type_MonCapVol: bar_ser.setValueFormat("#0.000V"); break;
|
case Bar_Type_MonRealCap: bar_ser.setValueFormat("#AH"); break;
|
case Bar_Type_MonRestCap: bar_ser.setValueFormat("#AH"); break;
|
case Bar_Type_MonCapPercent: bar_ser.setValueFormat("#%"); break;
|
case Bar_Type_MonCapTmp: bar_ser.setValueFormat("#0.0¡ãC"); break;
|
}
|
}
|
|
public void restoreZoom()
|
{
|
this.getZoom().undo();
|
this.getAxes().getBottom().setMinMax(0.2, bar_value_count+0.6);
|
}
|
|
public void clearSerialData()
|
{
|
this.getChart().getTitle().setText("");
|
bar_ser.clear();
|
m_colorlist.clear();
|
line_ser_avg.clear();
|
line_ser_sublow.clear();
|
line_ser_low.clear();
|
//this.getChart().getAxes().getBottom().setMinMax(0, 0);
|
this.getChart().getAxes().getLeft().setMinMax(0, 0);
|
}
|
|
private String getChartTitleString(String value_title, String value_formate)
|
{
|
float param = 1;
|
if(value_formate.contains("%%")) {
|
param = 100;
|
}
|
|
String str = String.format(value_title
|
+ ": MAX = " + value_formate
|
+ "; MIN = " + value_formate
|
+ "; AVG = " + value_formate,
|
// + "; \n\r"
|
// + "LOW = " + value_formate
|
// + "; LC = %d"
|
// + "; LP = %1.1f%%",
|
max*param, min*param, avg_val*param, high_val*param/*, lowcount, low_percent*/);
|
return str;
|
}
|
|
private void getLowMonNums(ArrayList<Integer> al_nums)
|
{
|
al_nums.clear();
|
for(int n=0; n<bar_value_count; n++)
|
{
|
if(bar_values[n] <= high_val)
|
al_nums.add(n+1);
|
}
|
}
|
|
public void updateChartData(int bar_type, float std_var, float val[], int d_count, double leftAxMax)
|
{
|
setBarValueFormat(bar_type);
|
bar_values = val;
|
boolean manulbottomAx = false;
|
|
clearSerialData();
|
|
if(d_count <= 0)
|
return;
|
|
if(this.getSeriesCount() != 3)
|
{
|
this.removeAllSeries();
|
this.addSeries(bar_ser);
|
this.addSeries(line_ser_avg);
|
this.addSeries(line_ser_sublow);
|
this.addSeries(line_ser_low);
|
}
|
|
max = 0;
|
min = 900000;
|
avg_val = 0;
|
high_val = 0;
|
low_val = 0;
|
lowcount = 0;
|
low_percent = 0;
|
|
if(bar_value_count != d_count)
|
{
|
bar_value_count = d_count;
|
manulbottomAx = true;
|
m_colorlist.clear();
|
}
|
|
for(int n=0; n<d_count; n++)
|
{
|
avg_val += bar_values[n];
|
if(max < bar_values[n]) {max = bar_values[n];}
|
if(min > bar_values[n]) {min = bar_values[n];}
|
}
|
avg_val /= d_count;
|
/*
|
if((Bar_Type_MonVol == bar_type) || (Bar_Type_MonCapVol == bar_type)) {
|
if(Config.AnalyseType_AVG == m_UI.m_CFG.showVolAnalyseType ) {
|
high_val = avg_val * (m_UI.m_CFG.showSubLowMonVolPercent/100);
|
low_val = avg_val * (m_UI.m_CFG.showLowMonVolPercent/100);
|
} else {
|
high_val = std_var * (m_UI.m_CFG.showSubLowMonVolPercent/100);
|
low_val = std_var * (m_UI.m_CFG.showLowMonVolPercent/100);
|
}
|
} else if((Bar_Type_MonTmp == bar_type) || (Bar_Type_MonCapTmp == bar_type)){
|
if(Config.AnalyseType_AVG == m_UI.m_CFG.showTmpAnalyseType ) {
|
high_val = avg_val * (m_UI.m_CFG.showSubHighMonTmpPercent/100);
|
low_val = avg_val * (m_UI.m_CFG.showHighMonTmpPercent/100);
|
} else {
|
high_val = std_var * (m_UI.m_CFG.showSubHighMonTmpPercent/100);
|
low_val = std_var * (m_UI.m_CFG.showHighMonTmpPercent/100);
|
}
|
} else if(Bar_Type_MonRes == bar_type) {
|
if(Config.AnalyseType_AVG == m_UI.m_CFG.serAnalyseType ) {
|
high_val = avg_val * (1+(1-m_UI.m_CFG.serAlarmPercent/100));
|
low_val = avg_val * (1+(1-m_UI.m_CFG.serChangePercent/100));
|
} else {
|
high_val = std_var * (1+(1-m_UI.m_CFG.serAlarmPercent/100));
|
low_val = std_var * (1+(1-m_UI.m_CFG.serChangePercent/100));
|
}
|
} else if((Bar_Type_MonSer == bar_type) || (Bar_Type_MonSerPercent == bar_type)) {
|
if(Config.AnalyseType_AVG == m_UI.m_CFG.serAnalyseType ) {
|
high_val = avg_val * (m_UI.m_CFG.serAlarmPercent/100);
|
low_val = avg_val * (m_UI.m_CFG.serChangePercent/100);
|
} else {
|
high_val = std_var * (m_UI.m_CFG.serAlarmPercent/100);
|
low_val = std_var * (m_UI.m_CFG.serChangePercent/100);
|
}
|
} else {
|
if((Bar_Type_MonRealCap == mBarType) || (Bar_Type_MonCapPercent == mBarType)) {
|
if(Config.AnalyseType_AVG == m_UI.m_CFG.realCapAnalyseType ) {
|
high_val = avg_val * (m_UI.m_CFG.realCapAlarmPercent/100);
|
low_val = avg_val * (m_UI.m_CFG.realCapDiePercent/100);
|
} else {
|
high_val = std_var * (m_UI.m_CFG.realCapAlarmPercent/100);
|
low_val = std_var * (m_UI.m_CFG.realCapDiePercent/100);
|
}
|
} else if(Bar_Type_MonRestCap == mBarType) {
|
high_val = 0;
|
low_val = 0;
|
}
|
}
|
*/
|
line_ser_avg.add(0, avg_val, "");
|
line_ser_sublow.add(0, high_val, "");
|
line_ser_low.add(0, low_val, "");
|
int chart_value_show_count = 0;
|
|
if(ntm_page_datamanage_chart.ShowBattLowType_All == m_UI.getShowBattLowType())
|
{
|
m_UI.m_MonLineShowList.clear();
|
}
|
|
for(int n=0; n<d_count; n++)
|
{
|
Color cl = Color.fromArgb(50, 50, 50);
|
//if(true == m_UI.m_CFG.showHighLightBar)
|
// cl = Color.BLUE;
|
|
if((Bar_Type_MonSer==bar_type)) {
|
if(bar_values[n] <= high_val) {cl = COLOR_SUBLOW; lowcount++;}
|
if(bar_values[n] <= low_val) {cl = COLOR_LOW;}
|
if(bar_values[n] >= max) {cl = COLOR_MAX;}
|
if(bar_values[n] <= min) {cl = COLOR_MIN;}
|
} else if((Bar_Type_MonRes==bar_type)||(Bar_Type_ConnRes==bar_type)) {
|
if(bar_values[n] >= high_val) {cl = COLOR_SUBLOW; lowcount++;}
|
if(bar_values[n] >= low_val) {cl = COLOR_LOW;}
|
if(bar_values[n] >= max) {cl = COLOR_MIN;}
|
if(bar_values[n] <= min) {cl = COLOR_MAX;}
|
} else if(/*(Bar_Type_MonVol==bar_type) || */(Bar_Type_MonCapVol==bar_type)
|
||(Bar_Type_MonTmp==bar_type) ||(Bar_Type_MonCapTmp==bar_type)) {
|
if(bar_values[n] >= high_val) {cl = COLOR_SUBLOW; lowcount++;}
|
if(bar_values[n] <= low_val) {cl = COLOR_LOW;}
|
if(bar_values[n] >= max) {cl = COLOR_MIN;}
|
if(bar_values[n] <= min) {cl = COLOR_MAX;}
|
} else if(Bar_Type_MonVol==bar_type) {
|
if(bar_values[n] >= high_val) {cl = COLOR_SUBLOW; lowcount++;}
|
if(bar_values[n] <= low_val) {cl = COLOR_LOW;}
|
if(bar_values[n] >= max) {cl = COLOR_MAX;}
|
if(bar_values[n] <= min) {cl = COLOR_MIN;}
|
} else {
|
if(bar_values[n] <= high_val) {cl = COLOR_SUBLOW; lowcount++;}
|
if(bar_values[n] <= low_val) {cl = COLOR_LOW;}
|
if(bar_values[n] >= max) {cl = COLOR_MAX;}
|
if(bar_values[n] <= min) {cl = COLOR_MIN;}
|
}
|
|
if((ntm_page_datamanage_chart.ShowBattLowType_All == m_UI.getShowBattLowType())
|
&& ((COLOR_SUBLOW == cl) || (COLOR_LOW == cl) || (COLOR_MIN == cl)))
|
{
|
if(false == m_UI.m_MonLineShowList.contains(n+1))
|
{
|
m_UI.m_MonLineShowList.add(n+1);
|
}
|
}
|
|
if((ntm_page_datamanage_chart.ShowBattLowType_None == m_UI.getShowBattLowType())
|
|| (m_UI.m_MonLineShowList.contains(n+1)))
|
{
|
bar_ser.add(chart_value_show_count+1, bar_values[n], "#" + String.valueOf(n+1), cl);
|
m_colorlist.add(cl);
|
line_ser_avg.add(chart_value_show_count+1, avg_val, "#" + String.valueOf(n+1));
|
line_ser_sublow.add(chart_value_show_count+1, high_val, "#" + String.valueOf(n+1));
|
line_ser_low.add(chart_value_show_count+1, low_val, "#" + String.valueOf(n+1));
|
chart_value_show_count++;
|
}
|
}
|
|
if(ntm_page_datamanage_chart.ShowBattLowType_All == m_UI.getShowBattLowType())
|
{
|
m_UI.upDateLineChartShowNums(false);
|
}
|
|
line_ser_avg.add(chart_value_show_count+0.6, avg_val, "");
|
line_ser_sublow.add(chart_value_show_count+0.6, high_val, "");
|
line_ser_low.add(chart_value_show_count+0.6, low_val, "");
|
|
low_percent = ((float)lowcount)*100 / (float)d_count;
|
|
String chart_tile_str = getChartTitleString("MonVol", "%1.3fV");
|
String left_axes_format = "#0.00V";
|
|
float ax_left_pm_min = (float) 0.9;
|
float ax_left_pm_max = (float) 1.08;
|
|
if(Bar_Type_MonRealCap == mBarType) {
|
chart_tile_str = getChartTitleString("RealCap", "%1.0fAH");
|
left_axes_format = "#AH";
|
}
|
else if(Bar_Type_MonRestCap == mBarType) {
|
chart_tile_str = getChartTitleString("RestCap", "%1.0fAH");
|
left_axes_format = "#AH";
|
}
|
else if(Bar_Type_MonCapPercent == mBarType)
|
{
|
chart_tile_str = getChartTitleString("CapPercent", "%1.2f%%");
|
left_axes_format = "#%";
|
}
|
else if((Bar_Type_MonTmp==mBarType) || (Bar_Type_MonCapTmp==bar_type))
|
{
|
chart_tile_str = getChartTitleString("MonTmp", "%1.1f¡ãC");
|
left_axes_format = "#0.0¡ãC";
|
ax_left_pm_min = (float) 0.5;
|
ax_left_pm_max = (float) 1.1;
|
}
|
else if(Bar_Type_MonRes == mBarType)
|
{
|
chart_tile_str = getChartTitleString("MonRes", "%1.3fm¦¸");
|
left_axes_format = "#0.00m¦¸";
|
ax_left_pm_min = (float) 0.5;
|
ax_left_pm_max = (float) 1.1;
|
}
|
else if(Bar_Type_MonSer == mBarType)
|
{
|
chart_tile_str = getChartTitleString("MonSer", "%1.0f");
|
left_axes_format = "#";
|
ax_left_pm_min = (float) 0.5;
|
ax_left_pm_max = (float) 1.1;
|
}
|
else if(Bar_Type_MonSerPercent == mBarType)
|
{
|
chart_tile_str = getChartTitleString("MonSerPercent", "%1.1f%%");
|
left_axes_format = "#%";
|
ax_left_pm_min = (float) 0.5;
|
ax_left_pm_max = (float) 1.1;
|
}
|
else if(Bar_Type_ConnRes == mBarType)
|
{
|
chart_tile_str = getChartTitleString("ConnRes", "%1.3fm¦¸");
|
left_axes_format = "#0.00m¦¸";
|
ax_left_pm_min = (float) 0.5;
|
ax_left_pm_max = (float) 1.1;
|
}
|
|
this.getAxes().getLeft().getLabels().setValueFormat(left_axes_format);
|
this.getChart().getTitle().setText(chart_tile_str);
|
|
float left_ax = (float) Math.abs(bar_ser.getMaxYValue());
|
float left_ax_min = (float) (Math.abs(min)*ax_left_pm_min);
|
if((bar_leftAxMax < (left_ax*1.05)) || (bar_leftAxMax > (left_ax*1.1)))
|
{
|
bar_leftAxMax = (bar_ser.getMaxYValue()*ax_left_pm_max);
|
}
|
leftAxMax = bar_leftAxMax;
|
|
this.getAxes().getLeft().setMinMax(left_ax_min, leftAxMax);
|
if((true == manulbottomAx) || (ntm_page_datamanage_chart.ShowBattLowType_None != m_UI.getShowBattLowType()))
|
{
|
this.getZoom().undo();
|
this.getAxes().getBottom().setMinMax(0.2, chart_value_show_count+0.6);
|
}
|
}
|
}
|
/************************************************************************************************/
|