@Override
	public void clearComponents(int[] indices) {
		if (isEditingField()) {
			endFieldEditing();
		}

		Arrays.sort(indices);

		// work from back to front so our indices aren't affected by each component's clear.
		viewDTM.withTransaction("Clear Components", () -> {
			for (int i = indices.length - 1; i >= 0; i--) {
				DataTypeComponent comp = getComponent(indices[i]);
				if (comp == null) {
					continue; // must be on blank last line.
				}
				boolean isSelected = selection.containsEntirely(BigInteger.valueOf(indices[i]));
				int numBytes = comp.getLength();
				viewComposite.clearComponent(indices[i]);

				// Adjust the selection due to the clear.
				adjustSelection(indices[i] + 1, numBytes - 1);
				if (isSelected && numBytes > 1) {
					selection.addRange(indices[i] + 1, indices[i] + numBytes);
				}

				if (indices[i] > 0) {
					consumeByComponent(indices[i] - 1);
				}
			}
		});
	}
Returns an attribute value for the cell at <I>columnIndex</I>
and <I>rowIndex</I>.

@param	rowIndex	the row whose value is to be looked up
@param	columnIndex 	the column whose value is to be looked up
@return	the value Object at the specified cell
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/StructureEditorModel.java