📄 tablefieldsmodel.java
字号:
package org.dbgen.view;import javax.swing.*;import javax.swing.table.*;import org.dbgen.*;import org.dbgen.event.*;/** * This class was generated by a SmartGuide. * */public class TableFieldsModel extends AbstractTableModel implements FieldChangedListener { Table fieldTable = null; protected transient java.beans.PropertyChangeSupport propertyChange = new java.beans.PropertyChangeSupport(this); protected final static String[] columns = { "Key", "Name", "Type", "Length", "Scale", "Read-only" }; /** * TableFieldsModel constructor comment. */ public TableFieldsModel() { super(); } /** * This method was created by a SmartGuide. * @param table org.dbgen.Table */ public TableFieldsModel(Table table) { super(); setTable(table); } /** * The addPropertyChangeListener method was generated to support the propertyChange field. */ public synchronized void addPropertyChangeListener(java.beans.PropertyChangeListener listener) { propertyChange.addPropertyChangeListener(listener); } /** * This method was created by a SmartGuide. * @param table org.dbgen.Table */ public void fieldAdded(FieldAddedEvent event) { refresh(); return; } /** * This method was created by a SmartGuide. */ public void fieldDeleted(FieldDeletedEvent event) { refresh(); return; } /** * The firePropertyChange method was generated to support the propertyChange field. */ public void firePropertyChange(String propertyName, Object oldValue, Object newValue) { propertyChange.firePropertyChange(propertyName, oldValue, newValue); } /** * This method was created by a SmartGuide. * @return java.lang.Class * @param col int */ public Class getColumnClass(int col) { return getValueAt(0, col).getClass(); } /** * getColumnCount method comment. */ public int getColumnCount() { return columns.length; } /** * This method was created by a SmartGuide. * @return java.lang.String * @param col int */ public String getColumnName(int col) { return columns[col]; } /** * getRowCount method comment. */ public int getRowCount() { return getTable().getFields().size(); } /** * Gets the table property (org.dbgen.Table) value. * @return The table property value. * @see #setTable */ public Table getTable() { /* Returns the table property value. */ if (fieldTable == null) { try { fieldTable = new Table(); } catch (Throwable exception) { System.err.println("Exception creating table property."); } }; return fieldTable; } /** * getValueAt method comment. * XXX - make N/A fields for non-length or non-scale field cases. */ public Object getValueAt(int row, int col) { Field field = (Field) getTable().getFields().elementAt(row); int type = field.getType(); boolean hasLength = FieldTypes.getHasLength(type); boolean hasScale = FieldTypes.getHasScale(type); switch (col) { case 0: return new Boolean(field.getIsKey()); case 1: return new String(field.getName()); case 2: return new FieldType(field.getType()); case 3: return hasLength ? (Object) new Integer(field.getLength()) : new String(""); case 4: return hasScale ? (Object) new Integer(field.getScale()) : new String(""); case 5: return new Boolean(field.getIsReadOnly()); default: return null; } } /** * This method was created by a SmartGuide. * @return boolean * @param row int * @param col int */ public boolean isCellEditable(int row, int col) { /* * Key, name, and type columns are always editable. */ if (col < 3 || col == 5) return true; /* * Length and scale columns are editable or not depending * on the type. */ int type = ((FieldType) getValueAt(row, 2)).getType(); switch (type) { case java.sql.Types.BIT: case java.sql.Types.TINYINT: case java.sql.Types.SMALLINT: case java.sql.Types.INTEGER: case java.sql.Types.REAL: case java.sql.Types.FLOAT: case java.sql.Types.DOUBLE: case java.sql.Types.LONGVARCHAR: case java.sql.Types.LONGVARBINARY: case java.sql.Types.DATE: case java.sql.Types.TIME: case java.sql.Types.TIMESTAMP: return false; case java.sql.Types.CHAR: case java.sql.Types.VARCHAR: case java.sql.Types.BINARY: case java.sql.Types.VARBINARY: return (col == 3 ? true : false); case java.sql.Types.DECIMAL: case java.sql.Types.NUMERIC: return true; } throw new RuntimeException("BUG: TableFieldsModel.isCellEditable incomplete."); } /** * Performs the refresh method. */ public void refresh() { fireTableChanged(new javax.swing.event.TableModelEvent(this, -1, -1)); return; } /** * The removePropertyChangeListener method was generated to support the propertyChange field. */ public synchronized void removePropertyChangeListener(java.beans.PropertyChangeListener listener) { propertyChange.removePropertyChangeListener(listener); } /** * Sets the table property (org.dbgen.Table) value. * @param table The new value for the property. * @see #getTable */ public void setTable(Table table) { /* Get the old property value for fire property change event. */ Table oldValue = fieldTable; /* Set the table property (attribute) to the new value. */ fieldTable = table; /* Fire (signal/notify) the table property change event. */ firePropertyChange("table", oldValue, table); /* Listen to field changed events */ table.addFieldChangedListener(this); return; } /** * This method was created by a SmartGuide. * @param value java.lang.Object * @param row int * @param col int */ public void setValueAt(Object value, int row, int col) { org.dbgen.Debug.println("Setting (" + row + "," + col + ") value to: " + value + "<" + value.getClass() + ">"); Field field = (Field) getTable().getFields().elementAt(row); switch (col) { case 0: field.setIsKey(((Boolean)value).booleanValue()); break; case 1: field.setName((String) value); break; case 2: int type = ((FieldType) value).getType(); field.setType(type); if (FieldTypes.getHasScale(type) && field.getScale() < 1) { field.setLength(19); field.setScale(4); } break; case 3: try { int i = Integer.parseInt((String) value); field.setLength(i); } catch (NumberFormatException e1) { } break; case 4: try { int i = Integer.parseInt((String) value); field.setScale(i); } catch (NumberFormatException e1) { } break; case 5: field.setIsReadOnly(((Boolean)value).booleanValue()); break; default: throw new RuntimeException("BUG: TableFieldsModel.setValueAt() incomplete."); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -