/// <summary> /// Inserts the specified value into the data object at the given position. This /// is not like setValueAt() because it doesn't change any combo box values or /// update other columns' data. It simply puts the data into the data object /// and notifies the table that data has changed so that it displays the updated values. </summary> /// <param name="value"> the object to store in the table cell. </param> /// <param name="row"> the row of the cell in which to place the object. </param> /// <param name="col"> the column of the cell in which to place the object. </param> public virtual void setInternalValueAt(object value, int row, int col) { /* * Message.printStatus(1, "", "---------------------------------------"); * Message.printStatus(1, "", "SET INTERNAL VALUE AT: " + row + ", " +col); * JWorksheet.except(1, 3); * Message.printStatus(1, "", "---------------------------------------"); */ TSIdent tsident = (TSIdent)_data.get(row); switch (col) { case _COL_STATION_TYPE: string type = tsident.getAlias(); if (type.Equals((string)value)) { break; } tsident.setAlias((string)value); break; case _COL_ID: tsident.setLocation((string)value); break; case _COL_INTERVAL: try { tsident.setInterval((string)value); } catch (Exception) { // Should not happen. } break; case _COL_DATA_TYPE: tsident.setType((string)value); break; case _COL_INPUT_TYPE: tsident.setInputType((string)value); break; case _COL_INPUT_NAME: string s = (string)value; if (s.Equals(__BROWSE_INPUT_NAME_ABSOLUTE)) { s = browseForFile(); } else if (s.Equals(__BROWSE_INPUT_NAME_RELATIVE)) { string file = browseForFile(); if (!string.ReferenceEquals(file, null)) { try { int index = file.LastIndexOf(File.separator); string workingDir = __dataset.getDataSetDirectory(); string dir = IOUtil.toRelativePath(workingDir, file.Substring(0, index)); s = dir + File.separator + file.Substring(index + 1, file.Length - (index + 1)); } catch (Exception) { // TODO (JTS - 2003-11-05) maybe handle this better. Right now just defaults to the absolute filename s = file; } } } tsident.setInputName(s); // don't go through the super.setValueAt() at the end of the method ... base.setValueAt(s, row, col); return; } fireTableDataChanged(); base.setValueAt(value, row, col); }
/// <summary> /// Inserts the specified value into the table at the given position. </summary> /// <param name="value"> the object to store in the table cell. </param> /// <param name="row"> the row of the cell in which to place the object. </param> /// <param name="col"> the column of the cell in which to place the object. </param> public virtual void setValueAt(object value, int row, int col) { if (_sortOrder != null) { row = _sortOrder[row]; } /* * Message.printStatus(1, "", "---------------------------------------"); * Message.printStatus(1, "", "SET VALUE AT: " + row + ", " +col); * JWorksheet.except(1, 3); * Message.printStatus(1, "", "---------------------------------------"); */ TSIdent tsident = (TSIdent)_data.get(row); switch (col) { case _COL_STATION_TYPE: string type = tsident.getAlias(); if (type.Equals((string)value)) { break; } tsident.setAlias((string)value); tsident.setLocation(""); setValueAt("", row, _COL_INTERVAL); // this next line wouldn't seem to make any sense, but leave it in!! setValueAt(getValueAt(row, _COL_DATA_TYPE), row, _COL_DATA_TYPE); fireTableDataChanged(); overrideCellEdit(row, _COL_ID, true); fillIDColumn(row, (string)value); // Since the ID is filled, select the first item by // default to force something to be displayed... if (__worksheet != null) { System.Collections.IList ids = __worksheet.getCellSpecificJComboBoxValues(row, _COL_ID); if (ids.Count > 0) { setValueAt(ids[0], row, _COL_ID); } else { setValueAt("", row, _COL_ID); } } break; case _COL_ID: string id = (string)value; tsident.setLocation(id); bool outputOnly = false; string staType = (string)getValueAt(row, _COL_STATION_TYPE); if (staType.Equals(StateMod_Util.STATION_TYPE_RESERVOIR)) { if (id.IndexOf("-", StringComparison.Ordinal) > -1) { outputOnly = true; } } overrideCellEdit(row, _COL_DATA_TYPE, true); // Fill the interval cell, given the station type and identifier... if (((string)value).Length == 0) { fireTableDataChanged(); } fillIntervalColumn(row, (string)getValueAt(row, _COL_STATION_TYPE), (string)value); if (outputOnly) { fillDataTypeColumn(row, true, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)value); } else { fillDataTypeColumn(row, false, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)value); } fireTableDataChanged(); break; case _COL_INTERVAL: try { tsident.setInterval((string)value); } catch (Exception) { // Should not happen. } bool ioutputOnly = false; string istaType = (string)getValueAt(row, _COL_STATION_TYPE); string iid = (string)getValueAt(row, _COL_ID); if (istaType.Equals(StateMod_Util.STATION_TYPE_RESERVOIR)) { if (iid.IndexOf("-", StringComparison.Ordinal) > -1) { ioutputOnly = true; } } if (ioutputOnly) { fillDataTypeColumn(row, true, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)value); } else { fillDataTypeColumn(row, false, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)value); } // this next line wouldn't seem to make any sense, but leave it in!! setValueAt(getValueAt(row, _COL_DATA_TYPE), row, _COL_DATA_TYPE); fireTableDataChanged(); break; case _COL_DATA_TYPE: tsident.setType((string)value); // Fill the input type cell, given the station type, identifier, and interval... fillInputTypeColumn(row, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)getValueAt(row, _COL_INTERVAL), (string)value); fireTableDataChanged(); break; case _COL_INPUT_TYPE: tsident.setInputType((string)value); // Fill the input name with defaults... fillInputNameColumn(row, (string)getValueAt(row, _COL_STATION_TYPE), (string)getValueAt(row, _COL_ID), (string)getValueAt(row, _COL_INTERVAL), (string)getValueAt(row, _COL_DATA_TYPE), (string)value); break; case _COL_INPUT_NAME: string s = (string)value; if (s.Equals(__BROWSE_INPUT_NAME_ABSOLUTE)) { s = browseForFile(); } else if (s.Equals(__BROWSE_INPUT_NAME_RELATIVE)) { string file = browseForFile(); if (!string.ReferenceEquals(file, null)) { try { int index = file.LastIndexOf(File.separator); string workingDir = __dataset.getDataSetDirectory(); string dir = IOUtil.toRelativePath(workingDir, file.Substring(0, index)); s = dir + File.separator + file.Substring(index + 1, file.Length - (index + 1)); } catch (Exception) { // TODO (JTS - 2003-11-05) maybe handle this better. Right now just defaults to the absolute filename s = file; } } } tsident.setInputName(s); // don't go through the super.setValueAt() at the end of the method ... base.setValueAt(s, row, col); return; } base.setValueAt(value, row, col); }