⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jwatunivariatestatstable.java

📁 一个用于排队系统仿真的开源软件,有非常形象的图象仿真过程!
💻 JAVA
字号:
package jmt.engine.jwat.workloadAnalysis.tables;

import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;

import jmt.engine.jwat.VariableNumber;
import jmt.engine.jwat.workloadAnalysis.chart.QQPlotPreviewPanel;
import jmt.engine.jwat.workloadAnalysis.chart.SmallPlotDistGraph;
import jmt.engine.jwat.workloadAnalysis.panels.StatsPanel;
import jmt.engine.jwat.workloadAnalysis.utils.ChangeVariableListener;
import jmt.engine.jwat.workloadAnalysis.utils.ModelWorkloadAnalysis;
import jmt.gui.common.CommonConstants;

public class JWatUnivariateStatsTable extends JTable implements CommonConstants{
	// Size of each columns
	protected int[] columnSizes = new int[] { 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 };
	// Workload model
	private ModelWorkloadAnalysis model;
	private SmallPlotDistGraph graphF = null;
	private QQPlotPreviewPanel graphQQ = null;
	private JPanel labelPanel = null;
	private JLabel label = null;
	// Contructor
	public JWatUnivariateStatsTable(ModelWorkloadAnalysis model){
		setSelectionBackground(new Color(181,189,214));
		setSelectionForeground(Color.BLACK);
		
		this.setRowSelectionAllowed(true);
		this.setColumnSelectionAllowed(false);
		this.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
			public void valueChanged(ListSelectionEvent e) {
				if(!e.getValueIsAdjusting()){
					if(JWatUnivariateStatsTable.this.getSelectedRow() >= 0){ 
						if(graphF != null){
							graphF.draw(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())],
									(JWatUnivariateStatsTable.this.getSelectedRow()));
							graphQQ.setCurrentVar((JWatUnivariateStatsTable.this.getSelectedRow()));
						}
						if(label != null){
							if(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr().length() > 0){
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = " + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr());
							}else{
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = none");
							}
						}
						if(labelPanel != null){
							String ty = null;
							switch(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())].getType()){
									case VariableNumber.NUMERIC:
										ty = "Numeric";
										break;
									case VariableNumber.DATE:
										ty = "Date";
										break;
									case VariableNumber.STRING:
										ty = "String";
										break;
							}
							((TitledBorder)labelPanel.getBorder()).setTitle(StatsPanel.TRANSF_BORDER_TEXT + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " - Type: " + ty);
							labelPanel.repaint();
						}
					}
				}
			}
		});
		if(this.model != null){
			this.model.addOnChangeVariableValue(new ChangeVariableListener(){
				public void onChangeVariableValues() {
					if(JWatUnivariateStatsTable.this.getSelectedRow()!=-1){
						if(graphF != null){
							graphF.draw(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())],
									(JWatUnivariateStatsTable.this.getSelectedRow()));
							graphQQ.setCurrentVar((JWatUnivariateStatsTable.this.getSelectedRow()));
						}
						if(label != null){
							if(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr().length() > 0){
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = " + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr());
							}else{
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = none");
							}
						}
						JWatUnivariateStatsTable.this.tableChanged(new TableModelEvent(JWatUnivariateStatsTable.this.getModel()));
					}
				}
			});
		}
		this.model = model;
	}
	// Sets a table model for visualization and editing of data
	public void setModel(JWatUnivariateStatsTableModel tabMod) {
		super.setModel(tabMod);
		setRowHeight(ROW_HEIGHT);
		for(int i = 0;i < columnSizes.length;i++){
			this.getColumnModel().getColumn(i).setPreferredWidth(columnSizes[i]);
		}
		this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
		if(this.model != null){
			this.model.addOnChangeVariableValue(new ChangeVariableListener(){
				public void onChangeVariableValues() {
					if(JWatUnivariateStatsTable.this.getSelectedRow() != -1){
						if(graphF != null){
							graphF.draw(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())],
									(JWatUnivariateStatsTable.this.getSelectedRow()));
							JWatUnivariateStatsTable.this.setRowSelectionInterval(0,0);
							graphQQ.setCurrentVar((JWatUnivariateStatsTable.this.getSelectedRow()));
						}
						if(label != null){
							if(JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
									[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr().length() > 0){
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = " + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getTrasfStr());
							}else{
								label.setText(StatsPanel.TRANSF_LABEL_APPLIED + JWatUnivariateStatsTable.this.model.getMatrix().getVariables()
										[(JWatUnivariateStatsTable.this.getSelectedRow())].getName() + " = none");
							}
						}
						JWatUnivariateStatsTable.this.tableChanged(new TableModelEvent(JWatUnivariateStatsTable.this.getModel()));
					}
				}
			});
		}
	}
	public void setPlotFreq(SmallPlotDistGraph g){
		graphF = g;
	}
	public void setPlotQQPlot(QQPlotPreviewPanel g){
		graphQQ = g;
	}
	public void setLabel(JLabel lab){
		label = lab;
	}
	public void setPanel(JPanel p){
		labelPanel = p;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -