public RowLayout getLayout(int index, ProxyObj<?> proxy, int id) {
		ArrayList<Field> temp = new ArrayList<>(20);
		int varWidth = 0;
		for (int i = 0; i < fields.size(); i++) {
			FieldFactory ff = fields.get(i);
			ListingField f = null;
			try {
				f = ff.getField(proxy, varWidth);
			}
			catch (Throwable t) {
				f = new ErrorListingField(ff, proxy, varWidth, t);
			}
			if (f != null) {
				if (f.getWidth() != ff.getWidth()) {
					varWidth += f.getWidth() - ff.getWidth();
				}
				temp.add(f);
			}
		}
		if (temp.size() > 0) {
			Field[] rowFields = new Field[temp.size()];
			rowFields = temp.toArray(rowFields);
			temp.clear();
			return new RowLayout(rowFields, id);
		}
		return null;
	}
Notifies that the field options have changed.
@param options the Options object that changed.
@param optionName the name of the property that changed.
@param oldValue the old value of the property.
@param newValue the new value of the property.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/format/FieldFormatModel.java