⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table.java

📁 源码为Eclipse开源开发平台桌面开发工具SWT的源代码,
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/** * Returns the height of the receiver's header  * * @return the height of the header or zero if the header is not visible * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> *  * @since 2.0  */public int getHeaderHeight () {	checkWidget ();	int hwndHeader = OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0);	if (hwndHeader == 0) return 0;	RECT rect = new RECT ();						OS.GetWindowRect (hwndHeader, rect);	return rect.bottom - rect.top;}/** * Returns <code>true</code> if the receiver's header is visible, * and <code>false</code> otherwise. * <p> * If one of the receiver's ancestors is not visible or some * other condition makes the receiver not visible, this method * may still indicate that it is considered visible even though * it may not actually be showing. * </p> * * @return the receiver's header's visibility state * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public boolean getHeaderVisible () {	checkWidget ();	int bits = OS.GetWindowLong (handle, OS.GWL_STYLE);	return (bits & OS.LVS_NOCOLUMNHEADER) == 0;}/** * Returns the item at the given, zero-relative index in the * receiver. Throws an exception if the index is out of range. * * @param index the index of the item to return * @return the item at the given index * * @exception IllegalArgumentException <ul> *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li> * </ul> * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public TableItem getItem (int index) {	checkWidget ();	int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0);	if (!(0 <= index && index < count)) error (SWT.ERROR_INVALID_RANGE);	return _getItem (index);}/** * Returns the item at the given point in the receiver * or null if no such item exists. The point is in the * coordinate system of the receiver. * * @param point the point used to locate the item * @return the item at the given point * * @exception IllegalArgumentException <ul> *    <li>ERROR_NULL_ARGUMENT - if the point is null</li> * </ul> * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public TableItem getItem (Point point) {	checkWidget ();	if (point == null) error (SWT.ERROR_NULL_ARGUMENT);	LVHITTESTINFO pinfo = new LVHITTESTINFO ();	pinfo.x = point.x;  pinfo.y = point.y;	OS.SendMessage (handle, OS.LVM_HITTEST, 0, pinfo);	if (pinfo.iItem != -1) return _getItem (pinfo.iItem);	return null;}/** * Returns the number of items contained in the receiver. * * @return the number of items * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getItemCount () {	checkWidget ();	return OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0);}/** * Returns the height of the area which would be used to * display <em>one</em> of the items in the receiver's. * * @return the height of one item * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getItemHeight () {	checkWidget ();	int empty = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 0, 0);	int oneItem = OS.SendMessage (handle, OS.LVM_APPROXIMATEVIEWRECT, 1, 0);	return (oneItem >> 16) - (empty >> 16);}/** * Returns an array of <code>TableItem</code>s which are the items * in the receiver.  * <p> * Note: This is not the actual structure used by the receiver * to maintain its list of items, so modifying the array will * not affect the receiver.  * </p> * * @return the items in the receiver * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public TableItem [] getItems () {	checkWidget ();	int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0);	TableItem [] result = new TableItem [count];	if ((style & SWT.VIRTUAL) != 0) {		for (int i=0; i<count; i++) {			result [i] = _getItem (i);		}	} else {		System.arraycopy (items, 0, result, 0, count);	}	return result;}/** * Returns <code>true</code> if the receiver's lines are visible, * and <code>false</code> otherwise. * <p> * If one of the receiver's ancestors is not visible or some * other condition makes the receiver not visible, this method * may still indicate that it is considered visible even though * it may not actually be showing. * </p> * * @return the visibility state of the lines * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public boolean getLinesVisible () {	checkWidget ();	int bits = OS.SendMessage (handle, OS.LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);	return (bits & OS.LVS_EX_GRIDLINES) != 0;}/** * Returns an array of <code>TableItem</code>s that are currently * selected in the receiver. An empty array indicates that no * items are selected. * <p> * Note: This is not the actual structure used by the receiver * to maintain its selection, so modifying the array will * not affect the receiver.  * </p> * @return an array representing the selection * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public TableItem [] getSelection () {	checkWidget ();	int i = -1, j = 0, count = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0);	TableItem [] result = new TableItem [count];	while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) != -1) {		result [j++] = _getItem (i);	}	return result;}/** * Returns the number of selected items contained in the receiver. * * @return the number of selected items * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getSelectionCount () {	checkWidget ();	return OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0);}/** * Returns the zero-relative index of the item which is currently * selected in the receiver, or -1 if no item is selected. * * @return the index of the selected item * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getSelectionIndex () {	checkWidget ();	int focusIndex = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_FOCUSED);	int selectedIndex = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, -1, OS.LVNI_SELECTED);	if (focusIndex == selectedIndex) return selectedIndex;	int i = -1;	while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) != -1) {		if (i == focusIndex) return i;	}	return selectedIndex;}/** * Returns the zero-relative indices of the items which are currently * selected in the receiver.  The array is empty if no items are selected. * <p> * Note: This is not the actual structure used by the receiver * to maintain its selection, so modifying the array will * not affect the receiver.  * </p> * @return the array of indices of the selected items * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int [] getSelectionIndices () {	checkWidget ();	int i = -1, j = 0, count = OS.SendMessage (handle, OS.LVM_GETSELECTEDCOUNT, 0, 0);	int [] result = new int [count];	while ((i = OS.SendMessage (handle, OS.LVM_GETNEXTITEM, i, OS.LVNI_SELECTED)) != -1) {		result [j++] = i;	}	return result;}/** * Returns the zero-relative index of the item which is currently * at the top of the receiver. This index can change when items are * scrolled or new items are added or removed. * * @return the index of the top item * * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int getTopIndex () {	checkWidget ();	/*	* Bug in Windows.  Under rare circumstances, LVM_GETTOPINDEX	* can return a negative number.  When this happens, the table	* is displaying blank lines at the top of the controls.  The	* fix is to check for a negative number and return zero instead.	*/	return Math.max (0, OS.SendMessage (handle, OS.LVM_GETTOPINDEX, 0, 0));}int imageIndex (Image image) {	if (image == null) return OS.I_IMAGENONE;	if (imageList == null) {		Rectangle bounds = image.getBounds ();		imageList = display.getImageList (new Point (bounds.width, bounds.height));		int index = imageList.indexOf (image);		if (index == -1) index = imageList.add (image);		int hImageList = imageList.getHandle ();		OS.SendMessage (handle, OS.LVM_SETIMAGELIST, OS.LVSIL_SMALL, hImageList);		fixCheckboxImageList ();		return index;	}	int index = imageList.indexOf (image);	if (index != -1) return index;	return imageList.add (image);}/** * Searches the receiver's list starting at the first column * (index 0) until a column is found that is equal to the  * argument, and returns the index of that column. If no column * is found, returns -1. * * @param column the search column * @return the index of the column * * @exception IllegalArgumentException <ul> *    <li>ERROR_NULL_ARGUMENT - if the string is null</li> * </ul> * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int indexOf (TableColumn column) {	checkWidget ();	if (column == null) error (SWT.ERROR_NULL_ARGUMENT);	int hwndHeader =  OS.SendMessage (handle, OS.LVM_GETHEADER, 0, 0);	int count = OS.SendMessage (hwndHeader, OS.HDM_GETITEMCOUNT, 0, 0);	for (int i=0; i<count; i++) {		if (columns [i] == column) return i;	}	return -1;}/** * Searches the receiver's list starting at the first item * (index 0) until an item is found that is equal to the  * argument, and returns the index of that item. If no item * is found, returns -1. * * @param item the search item * @return the index of the item * * @exception IllegalArgumentException <ul> *    <li>ERROR_NULL_ARGUMENT - if the string is null</li> * </ul> * @exception SWTException <ul> *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */public int indexOf (TableItem item) {	checkWidget ();	if (item == null) error (SWT.ERROR_NULL_ARGUMENT);	int count = OS.SendMessage (handle, OS.LVM_GETITEMCOUNT, 0, 0);	if (1 <= lastIndexOf && lastIndexOf < count - 1) {		if (items [lastIndexOf] == item) return lastIndexOf;		if (items [lastIndexOf + 1] == item) return ++lastIndexOf;		if (items [lastIndexOf - 1] == item) return --lastIndexOf;	}	if (lastIndexOf < count / 2) {		for (int i=0; i<count; i++) {			if (items [i] == item) return lastIndexOf = i;		}	} else {		for (int i=count - 1; i>=0; --i) {			if (items [i] == item) return lastIndexOf = i;		}	}	return -1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -