📄 tabletreeviewer.java
字号:
return null; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.AbstractTreeViewer#getChild(org.eclipse.swt.widgets.Widget, int) */ protected Item getChild (Widget widget, int index) { if (widget instanceof TableTreeItem) { return ((TableTreeItem) widget).getItem (index); } if (widget instanceof TableTree) { return ((TableTree) widget).getItem (index); } return null; } /** * Returns the column properties of this viewer. * The properties must correspond with the columns of the table control. * They are used to identify the column in a cell modifier. * * @return the list of column properties */ public Object[] getColumnProperties() { return tableViewerImpl.getColumnProperties(); } /* (non-Javadoc) * Method declared on Viewer. */ public Control getControl() { return tableTree; } /** * Returns the element with the given index from this viewer. * Returns <code>null</code> if the index is out of range. * <p> * This method is internal to the framework. * </p> * * @param index the zero-based index * @return the element at the given index, or <code>null</code> if the * index is out of range */ public Object getElementAt(int index) { // XXX: Workaround for 1GBCSB1: SWT:WIN2000 - TableTree should have getItem(int index) TableTreeItem i = tableTree.getItems()[index]; if (i != null) { return i.getData(); } return null; } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected boolean getExpanded(Item item) { return ((TableTreeItem) item).getExpanded(); } /* (non-Javadoc) * Method declared on StructuredViewer. */ protected Item getItem(int x, int y) { // XXX: Workaround for 1GBCSHG: SWT:WIN2000 - TableTree should have getItem(Point point) return getTableTree().getTable().getItem( getTableTree().toControl(new Point(x, y))); } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected int getItemCount(Control widget) { return ((TableTree) widget).getItemCount(); } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected int getItemCount(Item item) { return ((TableTreeItem) item).getItemCount(); } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected org.eclipse.swt.widgets.Item[] getItems( org.eclipse.swt.widgets.Item item) { return ((TableTreeItem) item).getItems(); } /** * The table tree viewer implementation of this <code>Viewer</code> framework * method returns the label provider, which in the case of table tree * viewers will be an instance of either <code>ITableLabelProvider</code> * or <code>ILabelProvider</code>. * If it is an <code>ITableLabelProvider</code>, then it provides a * separate label text and image for each column. If it is an * <code>ILabelProvider</code>, then it provides only the label text * and image for the first column, and any remaining columns are blank. */ public IBaseLabelProvider getLabelProvider() { return super.getLabelProvider(); } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected Item getParentItem(Item item) { return ((TableTreeItem) item).getParentItem(); } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected Item[] getSelection(Control widget) { return ((TableTree) widget).getSelection(); } /** * Returns this table tree viewer's table tree control. * * @return the table tree control */ public TableTree getTableTree() { return tableTree; } /* (non-Javadoc) * Method declared on AbstractTreeViewer. */ protected void hookControl(Control control) { super.hookControl(control); tableTree.getTable().addMouseListener(new MouseAdapter() { public void mouseDown(MouseEvent e) { /* If user clicked on the [+] or [-], do not activate CellEditor. */ //XXX: This code should not be here. SWT should either have support to see //if the user clicked on the [+]/[-] or manage the table editor //activation org.eclipse.swt.widgets.TableItem[] items = tableTree .getTable().getItems(); for (int i = 0; i < items.length; i++) { Rectangle rect = items[i].getImageBounds(0); if (rect.contains(e.x, e.y)) { return; } } tableViewerImpl.handleMouseDown(e); } }); } /** * Returns whether there is an active cell editor. * * @return <code>true</code> if there is an active cell editor, and * <code>false</code> otherwise */ public boolean isCellEditorActive() { return tableViewerImpl.isCellEditorActive(); } /* (non-Javadoc) * Method declared in AbstractTreeViewer. */ protected Item newItem(Widget parent, int flags, int ix) { TableTreeItem item; if (ix >= 0) { if (parent instanceof TableTreeItem) { item = new TableTreeItem((TableTreeItem) parent, flags, ix); } else { item = new TableTreeItem((TableTree) parent, flags, ix); } } else { if (parent instanceof TableTreeItem) { item = new TableTreeItem((TableTreeItem) parent, flags); } else { item = new TableTreeItem((TableTree) parent, flags); } } return item; } /* (non-Javadoc) * Method declared in AbstractTreeViewer. */ protected void removeAll(Control widget) { ((TableTree) widget).removeAll(); } /** * Sets the cell editors of this table viewer. * * @param editors the list of cell editors */ public void setCellEditors(CellEditor[] editors) { tableViewerImpl.setCellEditors(editors); } /** * Sets the cell modifier of this table viewer. * * @param modifier the cell modifier */ public void setCellModifier(ICellModifier modifier) { tableViewerImpl.setCellModifier(modifier); } /** * Sets the column properties of this table viewer. * The properties must correspond with the columns of the table control. * They are used to identify the column in a cell modifier. * * @param columnProperties the list of column properties */ public void setColumnProperties(String[] columnProperties) { tableViewerImpl.setColumnProperties(columnProperties); } /* (non-Javadoc) * Method declared in AbstractTreeViewer. */ protected void setExpanded(Item node, boolean expand) { ((TableTreeItem) node).setExpanded(expand); } /** * The table tree viewer implementation of this <code>Viewer</code> framework * method ensures that the given label provider is an instance * of either <code>ITableLabelProvider</code> or <code>ILabelProvider</code>. * If it is an <code>ITableLabelProvider</code>, then it provides a * separate label text and image for each column. If it is an * <code>ILabelProvider</code>, then it provides only the label text * and image for the first column, and any remaining columns are blank. */ public void setLabelProvider(IBaseLabelProvider labelProvider) { Assert.isTrue(labelProvider instanceof ITableLabelProvider || labelProvider instanceof ILabelProvider); super.setLabelProvider(labelProvider); } /* (non-Javadoc) * Method declared in AbstractTreeViewer. */ protected void setSelection(List items) { TableTreeItem[] newItems = new TableTreeItem[items.size()]; items.toArray(newItems); getTableTree().setSelection(newItems); } /* (non-Javadoc) * Method declared in AbstractTreeViewer. */ protected void showItem(Item item) { getTableTree().showItem((TableTreeItem) item); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -