package org.infosec.ismp.applet.manager.component.panel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import org.infosec.ismp.applet.manager.component.panel.info.basic.RoutinePanel;
import org.infosec.ismp.applet.manager.component.panel.info.cpu.CPUPanel;
import org.infosec.ismp.applet.manager.component.panel.info.file.FilePanel;
import org.infosec.ismp.applet.manager.component.panel.info.memory.MemoryPanel;
import org.infosec.ismp.applet.manager.component.panel.info.netport.NetPortScrollPanel;
import org.infosec.ismp.applet.manager.component.panel.info.user.UserNumberPanel;
import org.infosec.ismp.applet.manager.component.panel.info.waitqueue.WaitQueuePanel;
import org.infosec.ismp.applet.manager.component.panel.utils.SJTUUtils;
import twaver.swing.TableLayout;
/**
* 详细信息面板
*/
public class InfoPanel extends JPanel {
public static void main(String[] args) {
SJTUUtils.showCompoentInFrame(new InfoPanel());
}
public InfoPanel() {
initGUI();
initData();
}
public RoutinePanel routinePanel = new RoutinePanel();
private WaitQueuePanel waitQueuePanel = new WaitQueuePanel();
private UserNumberPanel userNumberPanel = new UserNumberPanel();
private CPUPanel cpupPanel = new CPUPanel();
private MemoryPanel memoryPanel = new MemoryPanel();
private FilePanel filePanel = new FilePanel();
private NetPortScrollPanel netPortPanel = new NetPortScrollPanel();
private void initGUI() {
this.setLayout(new BorderLayout(20, 20));
this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.add(createLeftPanel(), BorderLayout.WEST);
this.add(createRightPanel(), BorderLayout.EAST);
this.add(createCenterPanel(), BorderLayout.CENTER);
}
private JPanel createLeftPanel() {
JPanel panel = new JPanel();
double rows[] = { TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED };
double cols[] = { TableLayout.FILL };
TableLayout layout = new TableLayout(cols, rows, 10, 30);
panel.setLayout(layout);
panel.add(routinePanel.getTitlePanel(), "0,0,0,0");
panel.add(waitQueuePanel.getTitlePanel(), "0,1,0,1");
panel.add(userNumberPanel.getTitlePanel(), "0,2,0,2");
return panel;
}
private JPanel createCenterPanel() {
JPanel panel = new JPanel(new GridLayout(3, 1, 10, 20));
panel.add(cpupPanel.getTitlePanel());
panel.add(memoryPanel.getTitlePanel());
panel.add(filePanel.getTitlePanel());
return panel;
}
private JPanel createRightPanel() {
JPanel panel = new JPanel(new BorderLayout());
panel.add(netPortPanel.getTitlePanel(), BorderLayout.CENTER);
panel.setPreferredSize(new Dimension(230, 10));
return panel;
}
/**
* 设置线程的计数
* @param length
*/
public void setProcessCount(int length) {
waitQueuePanel.setProcessCount(length);
}
public void initData() {
//基本信息
routinePanel.setOs("--");
routinePanel.setVersion("--");
routinePanel.setRunTime("--");
//已死内存
waitQueuePanel.setDeadProcessCount(0);
}
public CPUPanel getCpupPanel() {
return cpupPanel;
}
public MemoryPanel getMemoryPanel() {
return memoryPanel;
}
public FilePanel getFilePanel() {
return filePanel;
}
public NetPortScrollPanel getNetPortPanel() {
return netPortPanel;
}
public WaitQueuePanel getWaitQueuePanel() {
return waitQueuePanel;
}
}