MeasurementTableModel extends AbstractTableModel { @Override public boolean isCellEditable(int row, int col) { if (col == 0) { return false; } int i = findStudyIndex(row); if (i < 0 || row == d_studyIndex.get(i)) { return false; } return true; } MeasurementTableModel(
			ObservableList<Study> studies,
			ObservableList<Treatment> treatments,
			ValueModel measurementType);  MeasurementTableModel(DataSetModel model); int getRowCount(); int getColumnCount(); @Override Class<?> getColumnClass(int col); @Override String getColumnName(int col); Object getValueAt(int row, int col); @Override boolean isCellEditable(int row, int col); @Override void setValueAt(Object val, int row, int col); static final String COLNAME_STDDEV; static final String COLNAME_MEAN; static final String COLNAME_SAMPLESIZE; static final String COLNAME_RESPONDERS; static final String COLNAME_ID; }
@Test public void testIsCellEditable() { assertFalse(d_model.isCellEditable(0, 0)); assertFalse(d_model.isCellEditable(0, 1)); assertFalse(d_model.isCellEditable(0, 2)); assertFalse(d_model.isCellEditable(1, 0)); assertTrue(d_model.isCellEditable(1, 1)); assertTrue(d_model.isCellEditable(1, 2)); assertFalse(d_model.isCellEditable(2, 0)); assertTrue(d_model.isCellEditable(2, 1)); assertTrue(d_model.isCellEditable(2, 2)); assertFalse(d_model.isCellEditable(3, 0)); assertFalse(d_model.isCellEditable(3, 1)); assertFalse(d_model.isCellEditable(3, 2)); }