void GRaggedFloatTableData::InsertCol ( const JIndex index, const JOrderedSet<JFloat>* initData ) { JIndex trueIndex = index; const JIndex maxIndex = itsCols->GetElementCount()+1; if (trueIndex > maxIndex) { trueIndex = maxIndex; } JArray<JFloat>* colData = jnew JArray<JFloat>; assert( colData != NULL ); itsCols->InsertAtIndex(trueIndex, colData); if (initData != NULL) { const JSize rowCount = initData->GetElementCount(); for (JIndex i=1; i<=rowCount; i++) { colData->InsertElementAtIndex(i, initData->GetElement(i)); } } ColsAdded(1); if (itsBroadcast) { Broadcast(JTableData::ColsInserted(trueIndex, 1)); } }
void GRaggedFloatTableData::InsertElement ( const JIndex row, const JIndex col, const JFloat value ) { JArray<JFloat>* dataCol = itsCols->NthElement(col); dataCol->InsertElementAtIndex(row, value); const JSize rowCount = dataCol->GetElementCount(); if (itsBroadcast) { Broadcast(GRaggedFloatTableData::ElementInserted(row, col)); } if (rowCount == GetRowCount()) { RowsAdded(1); if (itsBroadcast) { Broadcast(JTableData::RowsInserted(rowCount+1, 1)); } } }
void GRaggedFloatTableData::DuplicateRow ( const JIndex index ) { const JSize colCount = itsCols->GetElementCount(); for (JIndex i=1; i<=colCount; i++) { JArray<JFloat>* colData = itsCols->NthElement(i); const JSize rowCount = colData->GetElementCount(); if (index <= rowCount) { const JFloat element = colData->GetElement(index); colData->InsertElementAtIndex(index, element); } } RowsAdded(1); if (itsBroadcast) { Broadcast(JTableData::RowDuplicated(index, index)); } }
JBoolean JPartition::InsertCompartment ( const JIndex index, const JCoordinate reqSize, const JCoordinate minSize ) { JArray<JCoordinate> newSizes; JCoordinate trueSize; if (CreateSpace(*itsSizes, *itsMinSizes, itsElasticIndex, reqSize + kDragRegionSize, minSize + kDragRegionSize, &newSizes, &trueSize)) { trueSize -= kDragRegionSize; JCoordinate position = 0; for (JIndex i=1; i<index; i++) { position += newSizes.GetElement(i) + kDragRegionSize; } CreateCompartmentObject(index, position, trueSize); newSizes.InsertElementAtIndex(index, trueSize); itsMinSizes->InsertElementAtIndex(index, minSize); if (index <= itsElasticIndex) { itsElasticIndex++; } *itsSizes = newSizes; SetCompartmentSizes(); return kJTrue; } else { return kJFalse; } }