desc.propertyDesc_propertyFlags = OS.kDataBrowserListViewSelectionColumn | OS.kDataBrowserDefaultPropertyFlags;
desc.propertyDesc_propertyFlags = OS.kDataBrowserListViewSelectionColumn | OS.kDataBrowserDefaultPropertyFlags | OS.kDataBrowserListViewSortableColumn;
void createItem (TreeColumn column, int index) {	if (!(0 <= index && index <= columnCount)) error (SWT.ERROR_INVALID_RANGE);	if (index == 0) {		// first column must be left aligned		column.style &= ~(SWT.LEFT | SWT.RIGHT | SWT.CENTER);		column.style |= SWT.LEFT;	}	column.id = column_id + idCount++;	int position = index + ((style & SWT.CHECK) != 0 ? 1 : 0);	if (columnCount != 0) {		DataBrowserListViewColumnDesc desc = new DataBrowserListViewColumnDesc ();		desc.headerBtnDesc_version = OS.kDataBrowserListViewLatestHeaderDesc;		desc.propertyDesc_propertyID = column.id;		desc.propertyDesc_propertyType = OS.kDataBrowserCustomType;		desc.propertyDesc_propertyFlags = OS.kDataBrowserListViewSelectionColumn | OS.kDataBrowserDefaultPropertyFlags;		desc.headerBtnDesc_maximumWidth = 0x7fff;		desc.headerBtnDesc_initialOrder = OS.kDataBrowserOrderIncreasing;		desc.headerBtnDesc_btnFontStyle_just = OS.teFlushLeft;		if ((style & SWT.CENTER) != 0) desc.headerBtnDesc_btnFontStyle_just = OS.teCenter;		if ((style & SWT.RIGHT) != 0) desc.headerBtnDesc_btnFontStyle_just = OS.teFlushRight;		desc.headerBtnDesc_btnFontStyle_flags |= OS.kControlUseJustMask;		OS.AddDataBrowserListViewColumn (handle, desc, position);		OS.SetDataBrowserTableViewNamedColumnWidth (handle, column.id, (short)0);				if (index == 0) {			int [] disclosure = new int [1];			boolean [] expandableRows = new boolean [1];			OS.GetDataBrowserListViewDisclosureColumn (handle, disclosure, expandableRows);			OS.SetDataBrowserListViewDisclosureColumn (handle, column.id, expandableRows [0]);		}	} 	if (columnCount == columns.length) {		TreeColumn [] newColumns = new TreeColumn [columnCount + 4];		System.arraycopy (columns, 0, newColumns, 0, columns.length);		columns = newColumns;	}	System.arraycopy (columns, index, columns, index + 1, columnCount++ - index);	columns [index] = column;	if (columnCount >= 1) {		for (int i=0; i<items.length; i++) {			TreeItem item = items [i];			if (item != null) {				String [] strings = item.strings;				if (strings != null) {					String [] temp = new String [columnCount];					System.arraycopy (strings, 0, temp, 0, index);					System.arraycopy (strings, index, temp, index+1, columnCount-index-1);					temp [index] = "";					item.strings = temp;				}				if (index == 0) item.text = "";				Image [] images = item.images;				if (images != null) {					Image [] temp = new Image [columnCount];					System.arraycopy (images, 0, temp, 0, index);					System.arraycopy (images, index, temp, index+1, columnCount-index-1);					item.images = temp;				}				if (index == 0) item.image = null;				Color [] cellBackground = item.cellBackground;				if (cellBackground != null) {					Color [] temp = new Color [columnCount];					System.arraycopy (cellBackground, 0, temp, 0, index);					System.arraycopy (cellBackground, index, temp, index+1, columnCount-index-1);					item.cellBackground = temp;				}				Color [] cellForeground = item.cellForeground;				if (cellForeground != null) {					Color [] temp = new Color [columnCount];					System.arraycopy (cellForeground, 0, temp, 0, index);					System.arraycopy (cellForeground, index, temp, index+1, columnCount-index-1);					item.cellForeground = temp;				}				Font [] cellFont = item.cellFont;				if (cellFont != null) {					Font [] temp = new Font [columnCount];					System.arraycopy (cellFont, 0, temp, 0, index);					System.arraycopy (cellFont, index, temp, index+1, columnCount-index-1);					item.cellFont = temp;				}			}		}	}}