package com.vci.client.framework.systemConfig.usedSpaceStatis;
|
|
import java.awt.BorderLayout;
|
import java.awt.Color;
|
import java.awt.Dimension;
|
import java.text.DecimalFormat;
|
|
import javax.swing.JPanel;
|
import javax.swing.JProgressBar;
|
import javax.swing.border.TitledBorder;
|
|
import com.vci.client.ClientSession;
|
import com.vci.client.common.VCIBasePanel;
|
import com.vci.client.framework.appConfig.object.AppConfigDetailObject;
|
import com.vci.client.framework.delegate.AppConfigDetailClientDelegate;
|
import com.vci.client.framework.rightConfig.object.FunctionObject;
|
import com.vci.client.framework.specialrole.ModuleInterface.IModuleShow;
|
import com.vci.client.ui.exception.VCIException;
|
import com.vci.client.ui.swing.components.VCIJLabel;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.framework.data.DataSourceInfo;
|
|
public class UsedSpaceStatisAndPcPanel extends VCIBasePanel implements IModuleShow {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
VCIJLabel sysDBALabel = new VCIJLabel("系统数据库(表空间)");
|
VCIJLabel sysLogLabel = new VCIJLabel("系统日志表容量");
|
|
public UsedSpaceStatisAndPcPanel(FunctionObject funcObj) {
|
super(funcObj);
|
// TODO Auto-generated constructor stub
|
init();
|
}
|
|
private void init() {
|
this.setLayout(new BorderLayout());
|
this.setBorder(new TitledBorder("使用空间统计"));
|
JPanel mainPanel = new JPanel();
|
JPanel contentPanel = initContentPanel();
|
mainPanel.setLayout(new BorderLayout());
|
mainPanel.add(contentPanel, BorderLayout.LINE_START);
|
this.add(mainPanel, BorderLayout.LINE_START);
|
}
|
|
private JPanel initContentPanel() {
|
String[][] data=getData();
|
String sysDBAData="总大小:"+data[0][0]+" 已使用大小:"+data[0][1];
|
String sysLogData="最大条数:"+data[1][0]+" 实际条数:"+data[1][1];
|
VCIJLabel sysDBADataLabel = new VCIJLabel(sysDBAData);
|
VCIJLabel sysLogDataLabel = new VCIJLabel(sysLogData);
|
VCIJLabel sysDBADataRatLabel = new VCIJLabel("使用比率:"+data[0][2]);
|
VCIJLabel sysLogDataRatLabel = new VCIJLabel("使用比率:"+data[1][2]);
|
JPanel contentPanel = new JPanel();
|
contentPanel.setLayout(null);
|
contentPanel.setPreferredSize(new Dimension(3000,40));
|
sysDBALabel.setBounds(20, 10, 200, 25);
|
sysDBADataLabel.setBounds(30, 30, 500, 25);
|
sysDBADataRatLabel.setBounds(340, 30, 120, 25);
|
sysLogLabel.setBounds(20, 80, 200, 25);
|
sysLogDataLabel.setBounds(30, 100, 500, 25);
|
sysLogDataRatLabel.setBounds(340, 100, 120, 25);
|
contentPanel.add(sysDBADataLabel,BorderLayout.LINE_START);
|
contentPanel.add(sysLogDataLabel,BorderLayout.LINE_START);
|
contentPanel.add(sysDBADataRatLabel,BorderLayout.LINE_START);
|
contentPanel.add(sysLogDataRatLabel,BorderLayout.LINE_START);
|
contentPanel.add(sysDBALabel,BorderLayout.LINE_START);
|
contentPanel.add(sysLogLabel,BorderLayout.LINE_START);
|
JProgressBar barSysDBA = new JProgressBar();
|
JProgressBar barSysLog = new JProgressBar();
|
barSysDBA.setMinimum(0);
|
barSysDBA.setMaximum(100);
|
barSysDBA.setValue(Integer.parseInt(data[0][3]));
|
barSysDBA.setStringPainted(true);
|
barSysDBA.setPreferredSize(new Dimension(200,20));
|
barSysDBA.setBounds(470, 32, 200, 20);
|
barSysLog.setMinimum(0);
|
barSysLog.setMaximum(100);
|
barSysLog.setValue(Integer.parseInt(data[1][3]));
|
barSysLog.setStringPainted(true);
|
barSysLog.setPreferredSize(new Dimension(200,20));
|
barSysLog.setBounds(470, 102, 200, 20);
|
if(Integer.parseInt(data[0][3])>=90){
|
barSysDBA.setForeground(new Color(255,0,0));
|
}else if(Integer.parseInt(data[1][3])>=90){
|
barSysLog.setForeground(new Color(255,0,0));
|
}
|
contentPanel.add(barSysDBA,BorderLayout.LINE_START);
|
contentPanel.add(barSysLog,BorderLayout.LINE_START);
|
return contentPanel;
|
}
|
|
private String[][] getData(){
|
String[][] data=new String[2][4];
|
try {
|
DataSourceInfo dsInfo = ClientSession.getFrameworkService().getDataSourceInfo();//系统数据信息
|
String[] dataBase=new String[]{getFormatString(dsInfo.tbSpaceTotal),getFormatString(dsInfo.tbSpaceUsed)}; //系统数据总大小,已使用大小
|
AppConfigDetailObject logMaxCount;
|
logMaxCount = new AppConfigDetailClientDelegate(null).getAppConfigDetailByKey("LogMaxCount");
|
String logMaxCountValue=logMaxCount.getValue();//系统日志最大条数
|
if (logMaxCountValue.isEmpty())
|
logMaxCountValue = "100000";
|
|
String logCount = dsInfo.pllogCount;//系统日志实际条数
|
String[] rate=new String[2];//使用比率值
|
String[] rateShow=new String[2];//使用比率显示图值
|
float dataBaseRate= Float.parseFloat(dataBase[1])/Float.parseFloat(dataBase[0]);
|
if(dataBaseRate>0 && dataBaseRate<0.01){
|
rate[0]="< 1%";
|
rateShow[0]="1";
|
}else if(dataBaseRate==0){
|
rate[0]="0%";
|
rateShow[0]="0";
|
}else if(dataBaseRate>=0.99){
|
rate[0]=new DecimalFormat("##.##").format(dataBaseRate*100);
|
rate[0]=rate[0]+"%";
|
rateShow[0]="99";
|
}else{
|
rate[0]=new DecimalFormat("##.##").format(dataBaseRate*100);
|
rate[0]=rate[0]+"%";
|
rateShow[0]=new DecimalFormat("0").format(dataBaseRate*100);
|
}
|
//系统日志表
|
String[] logRateShow=new String[2];
|
float logRate= Float.parseFloat(logCount)/Float.parseFloat(logMaxCountValue);
|
if(logRate>0 && logRate<0.01){
|
logRateShow[0]="< 1%";
|
logRateShow[1]="1";
|
}else if(logRate==0){
|
logRateShow[0]="0%";
|
logRateShow[1]="0";
|
}else if(logRate>=0.99 && logRate<1){
|
logRateShow[0]=new DecimalFormat("##.##").format(logRate*100);
|
logRateShow[0]=logRateShow[0]+"%";
|
logRateShow[1]="99";
|
}else if(logRate>=1){
|
logRateShow[0]=new DecimalFormat("##.##").format(logRate*100);
|
logRateShow[0]=logRateShow[0]+"%";
|
logRateShow[1]="100";
|
}
|
else{
|
logRateShow[0]=new DecimalFormat("##.##").format(logRate*100);
|
logRateShow[0]=logRateShow[0]+"%";
|
logRateShow[1]=new DecimalFormat("0").format(logRate*100);
|
}
|
|
for(int i=0;i<dataBase.length;i++){
|
String temp = dataBase[i];
|
if (temp.isEmpty())
|
dataBase[i] = "0";
|
else{
|
float size = Float.parseFloat(temp);
|
if(size > 1024){
|
dataBase[i]=String.valueOf(new DecimalFormat("##.##").format(size/1024))+"G";
|
}else{
|
dataBase[i]=dataBase[i]+"M";
|
}
|
}
|
}
|
data[0][0]=dataBase[0];
|
data[0][1]=dataBase[1];
|
data[0][2]=rate[0];
|
data[0][3]=rateShow[0];
|
data[1][0]=logMaxCountValue;
|
data[1][1]=logCount;
|
data[1][2]=logRateShow[0];
|
data[1][3]=logRateShow[1];
|
} catch (VCIError e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}catch (VCIException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return data;
|
}
|
|
|
private String getFormatString(String value){
|
String[] split = value.split("\\.");
|
if(split.length == 2 && split[1].length() > 2){
|
return split[0] + "." + split[1].substring(0, 2);
|
}
|
return value;
|
}
|
|
@Override
|
public String getUserID() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public String getRoleID() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public JPanel getModuleComponent() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public String getModuleName() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public String getIconName() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public String getModuleShowInfo() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
}
|