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

📄 jwatvariableinputtablemodel.java

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

import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.table.AbstractTableModel;

import jmt.engine.jwat.filters.FilterOnVariable;
import jmt.gui.jwat.input.Parameter;

public class JWatVariableInputTableModel extends AbstractTableModel {
	// Names of columns contained in table. Columns containing buttons have
	// empty names
	protected String[] columnNames = new String[] { "Name", "Type", "Select",
			"Comment", "Sep.", "Perl5 Reg. Exp.","Def.","Rep.","" };

	// Class declarations for this table's columns.
	protected Class[] colClasses = new Class[] { String.class, JComboBox.class,
			Boolean.class, String.class, String.class, String.class,
			 String.class, String.class,JButton.class };

	/*protected Class[] colClasses = new Class[] { String.class, JComboBox.class,
			Boolean.class, String.class, String.class, JComboBox.class,
			 String.class, String.class,JButton.class };*/
	
	// Vettori dei valori
	private Vector names = new Vector();

	private Vector types = new Vector();

	private Vector selected = new Vector();

	private Vector comments = new Vector();

	private Vector delimiters = new Vector();

	private Vector regExpr = new Vector();
	
	private Vector defaults = new Vector();
	
	private Vector replaces = new Vector();

	private int numVar = 0;

	/**
	 * Returns name for each column (given its index) to be displayed inside
	 * table header
	 */
	public String getColumnName(int columnIndex) {
		if (columnIndex < columnNames.length)
			return columnNames[columnIndex];
		else
			return null;
	}

	public Class getColumnClass(int index) {
		return colClasses[index];
	}

	/**
	 * Tells wether data contained in a specific cell(given row and column
	 * index) is editable or not. In this case distribution column is not
	 * editable, as editing functionality is implemented via edit button
	 */
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return true;
	}

	/**
	 * Numero delle righe
	 */
	public int getRowCount() {
		return names.size();
	}

	/**
	 * Numero delle colonne
	 */
	public int getColumnCount() {
		return columnNames.length;
	}

	public Object getValueAt(int row, int col) {
		if (row < names.size()) {
			switch (col) {
			case 0:
				return names.get(row);
			case 1:
				return types.get(row);
			case 2:
				return selected.get(row);
			case 3:
				return comments.get(row);
			case 4:
				return delimiters.get(row);
			case 5:
				return regExpr.get(row);
			case 6:
				return defaults.get(row);
			case 7:
				return replaces.get(row);
			case 8:
				return null;
			}
		}
		return null;
	}

	public void setValueAt(Object value, int r, int c) {
		if (r < names.size()) {
			switch (c) {
			case 0:
				names.set(r, value);
				break;
			case 1:
				types.set(r, value);
				break;
			case 2:
				selected.set(r, value);
				break;
			case 3:
				comments.set(r, value);
				break;
			case 4:
				delimiters.set(r, value);
				break;
			case 5:
				regExpr.set(r, value);
				break;
			case 6:
				defaults.set(r, value);
				break;
			case 7:
				replaces.set(r, value);
				break;
			}
		}
		fireTableCellUpdated(r,c);
	}

	public void addNewRow() {
		//Add Default Row
		names.add("Variable " + numVar++);
		types.add("Numeric");
		selected.add(Boolean.TRUE);
		comments.add("");
		delimiters.add("");
		regExpr.add("([+-])?\\d+([.]\\d+)?");
		defaults.add("");
		replaces.add("");
	}

	public void deleteRow(int index) {
		if (index < names.size()) {
			names.remove(index);
			types.remove(index);
			comments.remove(index);
			delimiters.remove(index);
			selected.remove(index);
			regExpr.remove(index);
			defaults.remove(index);
			replaces.remove(index);
		}
	}

	public void resetTable(){
		int num = names.size();
		for(int i = 0; i<num; i++) deleteRow(0);
		numVar = 0;
	}
	
	public void clearTable() {
		while (names.size() != 0) {
			deleteRow(0);
		}
		numVar = 0;
	}

	public Vector getVarNames() {
		return names;
	}

	public String getType(int index) {
		if (index >= 0 && index < types.size())
			return (String) types.get(index);
		return null;
	}

	// Numero di righe nella tabella
	public int getSize() {
		return names.size();
	}

	// Controlla se per tutte le righe sono specificati i valori richiesti
	public boolean checkInfos() {
		if (names.size() == 0)
			return false;
		for (int i = 0; i < names.size(); i++) {
			if (names.get(i).equals(""))
				return false;
			if (types.get(i).equals(""))
				return false;
			if (regExpr.get(i).equals(""))
				return false;
			// if(comments.get(i).equals("")) return false;
			// if(delimiters.get(i).equals("")) return false;
			// if(selected.get(i).equals("")) return false;
		}
		return true;
	}
	
	public void addNewRow(String name,String type,String comment,String del,String reg,String def,String rep) {
		names.add(name);
		types.add(type);
		selected.add(Boolean.TRUE);
		comments.add(comment);
		delimiters.add(del);
		regExpr.add(reg);
		defaults.add(def);
		replaces.add(rep);
		numVar++;
	}
	
	public Parameter getParameter(){
		int numVars = 0;	//Variabili che comporranno l'osservazione
		//Creazione array delle variabili selezione
		boolean[] boolVariables = new boolean[names.size()];
		String[] nameVariables = new String[names.size()];
		int[] typeVariables = new int[names.size()];
		String[] regExpVariable = new String[names.size()];
		String[] delim = new String[delimiters.size()];
		String[] def = new String[defaults.size()];
		String[] rep = new String[replaces.size()];
		for(int i = 0; i < selected.size(); i++){
			if(((Boolean)selected.get(i)).booleanValue()) numVars++;
			boolVariables[i] = ((Boolean)selected.get(i)).booleanValue();
			nameVariables[i] = ((String)names.get(i));
			typeVariables[i] = getTypeInt(i);
			regExpVariable[i] = ((String)regExpr.get(i));
			if(!((String)delimiters.get(i)).equals("")) delim[i] = ((String)delimiters.get(i));
			def[i] = ((String)defaults.get(i));
			rep[i] = ((String)replaces.get(i));
		}
		FilterOnVariable filter = null;
		return new Parameter(boolVariables,typeVariables,regExpVariable,delim,nameVariables,0,filter,null,def,rep);
	}
	private int getTypeInt(int pos){
		for(int i = 0; i < JWatVariableInputTable.VarTypes.length; i++)
			if(types.get(pos).equals(JWatVariableInputTable.VarTypes[i])) return i;
		return -1;
	}
	
	public Vector getNames(){
		return names;
	}
	public Vector getComments(){
		return comments;
	}
	public Vector getDelimiters(){
		return delimiters;
	}
	public Vector getRegExpr(){
		return regExpr;
	}
	public Vector getDefaults(){
		return defaults;
	}
	public Vector getReplaces(){
		return replaces;
	}
	public int[] getTypes(){
		int[] t = new int[types.size()];
		for(int i=0;i<t.length;i++){
			t[i] = getTypeInt(i);
		}
		return t;
	}
	public void deselectAll(){
		for(int i = 0; i < names.size(); i++){
			selected.set(i,Boolean.FALSE);
		}
	}
}

⌨️ 快捷键说明

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