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