Element saveToXML() {
		Element xmlElement = new Element("Table_State");

		// String debug = XmlUtilities.toString(xmlElement);

		List<TableColumn> columnList = columnModel.getAllColumns();
		for (TableColumn column : columnList) {

			String columnName = getColumnName(column);
			String width = Integer.toString(column.getWidth());
			boolean visible = columnModel.isVisible(column);
			Element columnElement = new Element(XML_COLUMN);
			columnElement.setAttribute(XML_COLUMN_NAME, columnName);
			columnElement.setAttribute(XML_COLUMN_WIDTH, width);
			columnElement.setAttribute(XML_COLUMN_VISIBLE, Boolean.toString(visible));
			saveColumnSettings(columnElement, column);
			xmlElement.addContent(columnElement);
		}
		saveSortedColumnState(xmlElement);
		return xmlElement;
	}
Longer than the restore delay so that saving does not affect the pending restore
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableColumnModelState.java