[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer ColumnDisplayDef
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2007-05-19 22:09:11
|
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv17484/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer Modified Files: ColumnDisplayDefinition.java ResultSetDataSet.java RowDataInputFrame.java Log Message: 1714475: (Adding rows from the content tab) When inserting row data, pay attention to isAutoIncrement flag so that these columns are excluded like rowId columns. After insert, refresh the table data so that auto-generated fields are populated. Index: ColumnDisplayDefinition.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/ColumnDisplayDefinition.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ColumnDisplayDefinition.java 13 Apr 2007 10:53:34 -0000 1.14 --- ColumnDisplayDefinition.java 19 May 2007 22:09:07 -0000 1.15 *************** *** 35,38 **** --- 35,41 ---- private String _fullTableColumnName; + /** Column name to be used in SQL statements */ + private String _columnName; + /** Column heading. */ private String _label; *************** *** 91,94 **** --- 94,102 ---- private boolean _isCurrency; + /** + * Flag for whether the column is automatically numbered, thus read-only. + */ + private boolean _isAutoIncrement; + /** * Ctor. *************** *** 100,104 **** { super(); ! init(displayWidth, null, label, Types.NULL, null, true, 0, 0, 0, true, false); } --- 108,112 ---- { super(); ! init(displayWidth, null, null, label, Types.NULL, null, true, 0, 0, 0, true, false, false); } *************** *** 111,121 **** */ public ColumnDisplayDefinition(int displayWidth, String fullTableColumnName, ! String label, int sqlType, String sqlTypeName, boolean isNullable, int columnSize, int precision, int scale, ! boolean isSigned, boolean isCurrency) { super(); ! init(displayWidth, fullTableColumnName, label, sqlType, sqlTypeName, ! isNullable, columnSize, precision, scale, ! isSigned, isCurrency); } --- 119,129 ---- */ public ColumnDisplayDefinition(int displayWidth, String fullTableColumnName, ! String columnName, String label, int sqlType, String sqlTypeName, boolean isNullable, int columnSize, int precision, int scale, ! boolean isSigned, boolean isCurrency, boolean isAutoIncrement) { super(); ! init(displayWidth, fullTableColumnName, columnName, label, sqlType, ! sqlTypeName, isNullable, columnSize, precision, scale, ! isSigned, isCurrency, isAutoIncrement); } *************** *** 262,269 **** * @param sqlType Type of data (from java.sql.Types). */ ! private void init(int displayWidth, String fullTableColumnName, String label, int sqlType, String sqlTypeName, boolean isNullable, int columnSize, int precision, ! int scale, boolean isSigned, boolean isCurrency) { if (label == null) --- 270,279 ---- * @param sqlType Type of data (from java.sql.Types). */ ! private void init(int displayWidth, String fullTableColumnName, ! String columnName, String label, int sqlType, String sqlTypeName, boolean isNullable, int columnSize, int precision, ! int scale, boolean isSigned, boolean isCurrency, ! boolean isAutoIncrement) { if (label == null) *************** *** 277,281 **** } _fullTableColumnName = fullTableColumnName; ! // If all columns in a table have empty strings as the headings then the // row height of the label row is zero. We dont want this. --- 287,291 ---- } _fullTableColumnName = fullTableColumnName; ! _columnName = columnName; // If all columns in a table have empty strings as the headings then the // row height of the label row is zero. We dont want this. *************** *** 294,302 **** _isSigned = isSigned; _isCurrency = isCurrency; } public String toString() { ! StringBuffer result = new StringBuffer(); ! result.append("[ sqlType="); result.append(_sqlType); result.append(", sqlTypeName="); --- 304,315 ---- _isSigned = isSigned; _isCurrency = isCurrency; + _isAutoIncrement = isAutoIncrement; } public String toString() { ! StringBuilder result = new StringBuilder(); ! result.append("[ columnName="); ! result.append(_columnName); ! result.append(", sqlType="); result.append(_sqlType); result.append(", sqlTypeName="); *************** *** 307,309 **** --- 320,344 ---- return result.toString(); } + + public void setIsAutoIncrement(boolean autoIncrement) { + _isAutoIncrement = autoIncrement; + } + + public boolean isAutoIncrement() { + return _isAutoIncrement; + } + + /** + * @param _columnName the _columnName to set + */ + public void setColumnName(String _columnName) { + this._columnName = _columnName; + } + + /** + * @return the _columnName + */ + public String getColumnName() { + return _columnName; + } } Index: RowDataInputFrame.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/RowDataInputFrame.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** RowDataInputFrame.java 21 Dec 2005 21:11:15 -0000 1.11 --- RowDataInputFrame.java 19 May 2007 22:09:07 -0000 1.12 *************** *** 48,51 **** --- 48,52 ---- import net.sourceforge.squirrel_sql.fw.datasetviewer.cellcomponent.CellComponentFactory; + import net.sourceforge.squirrel_sql.fw.sql.JDBCTypeMapper; import net.sourceforge.squirrel_sql.fw.util.StringManager; import net.sourceforge.squirrel_sql.fw.util.StringManagerFactory; *************** *** 235,239 **** // the second row contains a multi-line description, // so make that row high enough to display it ! setRowHeight(1, 60); setRowSelectionAllowed(false); --- 236,240 ---- // the second row contains a multi-line description, // so make that row high enough to display it ! setRowHeight(1, 80); setRowSelectionAllowed(false); *************** *** 285,294 **** } - // // set up editors and renderers - // public TableCellEditor getCellEditor(int row, int column) { - // // assume this is only called for the first row in the table - // return CellComponentFactory.getInCellEditor(this, _colDefs[column]); - // } - public TableCellRenderer getCellRenderer(int row, int column) { if (row == 0) --- 286,289 ---- *************** *** 363,370 **** // put a description of the field in the following rows ! rowData[1][i] = colDefs[i].getSqlTypeName() + "\n" + ! ((colDefs[i].isNullable()) ? "nullable" : "not nullable") + "\n" + ! "mx size="+ colDefs[i].getPrecision() + "\n" + ! "scale=" + colDefs[i].getScale(); } --- 358,367 ---- // put a description of the field in the following rows ! rowData[1][i] = getColumnDescription(colDefs[i]); ! ! // colDefs[i].getSqlTypeName() + "\n" + ! // ((colDefs[i].isNullable()) ? "nullable" : "not nullable") + "\n" + ! // "precision="+ colDefs[i].getPrecision() + "\n" + ! // "scale=" + colDefs[i].getScale(); } *************** *** 372,375 **** --- 369,407 ---- setDataVector(rowData, colNames); } + + /** + * Provides values for several column attributes (nullable, prec, scale) + * and in the event the column is auto-increment it displays that as a + * visual cue to the user that the field cannot be edited. + * + * @param def the ColumnDisplayDefinition that describes the column + * @return a string of column attributes separated by eol chars. + */ + private String getColumnDescription(ColumnDisplayDefinition def) { + StringBuilder result = new StringBuilder(); + result.append(def.getSqlTypeName()); + result.append("\n"); + if (def.isNullable()) { + result.append("nullable"); + } else { + result.append("not nullable"); + } + result.append("\n"); + if (JDBCTypeMapper.isNumberType(def.getSqlType())) { + result.append("prec="); + result.append(def.getPrecision()); + result.append("\n"); + result.append("scale="); + result.append(def.getScale()); + if (def.isAutoIncrement()) { + result.append("\n"); + result.append("(auto-incr)"); + } + } else { + result.append("length="); + result.append(def.getColumnSize()); + } + return result.toString(); + } } *************** *** 379,386 **** class RowDataDescriptionRenderer implements TableCellRenderer { ! public Component getTableCellRendererComponent(JTable table, ! Object value, boolean isSelected, boolean hasFocus, int row, int column) { ! JTextArea ta = new JTextArea((String)value, 4, 20); ta.setBackground(Color.lightGray); return ta; --- 411,422 ---- class RowDataDescriptionRenderer implements TableCellRenderer { ! public Component getTableCellRendererComponent(JTable table, ! Object value, ! boolean isSelected, ! boolean hasFocus, ! int row, ! int column) { ! JTextArea ta = new JTextArea((String)value, 8, 20); ta.setBackground(Color.lightGray); return ta; Index: ResultSetDataSet.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/datasetviewer/ResultSetDataSet.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** ResultSetDataSet.java 15 Apr 2006 14:47:21 -0000 1.20 --- ResultSetDataSet.java 19 May 2007 22:09:07 -0000 1.21 *************** *** 42,46 **** private int _columnCount; private DataSetDefinition _dataSetDefinition; ! private List _alData; /** If <TT>true</TT> cancel has been requested. */ --- 42,46 ---- private int _columnCount; private DataSetDefinition _dataSetDefinition; ! private List<Object[]> _alData; /** If <TT>true</TT> cancel has been requested. */ *************** *** 109,113 **** } _iCurrent = -1; ! _alData = new ArrayList(); if (rs != null) --- 109,113 ---- } _iCurrent = -1; ! _alData = new ArrayList<Object[]>(); if (rs != null) *************** *** 194,198 **** if (++_iCurrent < _alData.size()) { ! _currentRow = (Object[])_alData.get(_iCurrent); return true; } --- 194,198 ---- if (++_iCurrent < _alData.size()) { ! _currentRow = _alData.get(_iCurrent); return true; } *************** *** 229,233 **** colWidths = new int[_columnCount]; for (int i = 0; i < _alData.size(); i++) { ! Object[] row = (Object[])_alData.get(i); for (int col = 0; i < _columnCount; i++) { if (row[col] != null) { --- 229,233 ---- colWidths = new int[_columnCount]; for (int i = 0; i < _alData.size(); i++) { ! Object[] row = _alData.get(i); for (int col = 0; i < _columnCount; i++) { if (row[col] != null) { *************** *** 259,263 **** if (md.isNullable(idx) == ResultSetMetaData.columnNoNulls) isNullable = false; ! int precis; try { --- 259,263 ---- if (md.isNullable(idx) == ResultSetMetaData.columnNoNulls) isNullable = false; ! int precis; try { *************** *** 290,298 **** } ! columnDefs[i] = new ColumnDisplayDefinition( computeWidths ? colWidths[i] : md.getColumnDisplaySize(idx), fullTableName+":"+md.getColumnLabel(idx), md.getColumnLabel(idx), md.getColumnType(idx), --- 290,304 ---- } ! boolean isAutoIncrement = false; ! try { ! isAutoIncrement = md.isAutoIncrement(idx); ! } catch (SQLException e) { ! s_log.error("Failed to call ResultSetMetaData.isAutoIncrement()", e); ! } columnDefs[i] = new ColumnDisplayDefinition( computeWidths ? colWidths[i] : md.getColumnDisplaySize(idx), fullTableName+":"+md.getColumnLabel(idx), + md.getColumnName(idx), md.getColumnLabel(idx), md.getColumnType(idx), *************** *** 303,307 **** md.getScale(idx), isSigned, ! isCurrency); } return columnDefs; --- 309,314 ---- md.getScale(idx), isSigned, ! isCurrency, ! isAutoIncrement); } return columnDefs; |