📄 treetab.java
字号:
TreeItem item = new TreeItem (treeRoots[1], SWT.NONE); setItemText(item, 1, ControlExample.getResourceString("Node_2_2")); item = new TreeItem (item, SWT.NONE); setItemText(item, 1, ControlExample.getResourceString("Node_2_2_1")); textNode1 = treeRoots[0]; packColumns(tree1); /* Create the image tree */ tree2 = new Tree (imageTreeGroup, style); Image image = instance.images[ControlExample.ciClosedFolder]; if (multipleColumns.getSelection()) { for (int i = 0; i < columnTitles.length; i++) { TreeColumn treeColumn = new TreeColumn(tree2, SWT.NONE); treeColumn.setText(columnTitles[i]); } } for (int i = 0; i < 4; i++) { item = new TreeItem (tree2, SWT.NONE); setItemText(item, i, ControlExample.getResourceString("Node_" + (i + 1))); item.setImage(image); if (i < 3) { TreeItem subitem = new TreeItem (item, SWT.NONE); setItemText(subitem, i, ControlExample.getResourceString("Node_" + (i + 1) + "_1")); subitem.setImage(image); } } treeRoots = tree2.getItems (); item = new TreeItem (treeRoots[1], SWT.NONE); setItemText(item, 1, ControlExample.getResourceString("Node_2_2")); item.setImage(image); item = new TreeItem (item, SWT.NONE); setItemText(item, 1, ControlExample.getResourceString("Node_2_2_1")); item.setImage(image); imageNode1 = treeRoots[0]; packColumns(tree2); } void setItemText(TreeItem item, int i, String node) { int index = i % 3; if (multipleColumns.getSelection()) { tableData [index][0] = node; item.setText (tableData [index]); } else { item.setText (node); } } /** * Creates the "Style" group. */ void createStyleGroup() { super.createStyleGroup(); /* Create the extra widgets */ checkButton = new Button (styleGroup, SWT.CHECK); checkButton.setText ("SWT.CHECK"); fullSelectionButton = new Button (styleGroup, SWT.CHECK); fullSelectionButton.setText ("SWT.FULL_SELECTION"); } /** * Gets the "Example" widget children's items, if any. * * @return an array containing the example widget children's items */ Item [] getExampleWidgetItems () { /* Note: We do not bother collecting the tree items * because tree items don't have any events. If events * are ever added to TreeItem, then this needs to change. */ Item [] columns1 = tree1.getColumns(); Item [] columns2 = tree2.getColumns(); Item [] allItems = new Item [columns1.length + columns2.length]; System.arraycopy(columns1, 0, allItems, 0, columns1.length); System.arraycopy(columns2, 0, allItems, columns1.length, columns2.length); return allItems; } /** * Gets the "Example" widget children. */ Control [] getExampleWidgets () { return new Control [] {tree1, tree2}; } /** * Returns a list of set/get API method names (without the set/get prefix) * that can be used to set/get values in the example control(s). */ String[] getMethodNames() { return new String[] {"Selection", "TopItem"}; } Object[] parameterForType(String typeName, String value, Control control) { if (typeName.equals("org.eclipse.swt.widgets.TreeItem")) { TreeItem item = findItem(value, ((Tree) control).getItems()); if (item != null) return new Object[] {item}; } if (typeName.equals("[Lorg.eclipse.swt.widgets.TreeItem;")) { String[] values = value.split(","); TreeItem[] items = new TreeItem[values.length]; for (int i = 0; i < values.length; i++) { TreeItem item = findItem(values[i], ((Tree) control).getItems()); if (item == null) break; items[i] = item; } return new Object[] {items}; } return super.parameterForType(typeName, value, control); } TreeItem findItem(String value, TreeItem[] items) { for (int i = 0; i < items.length; i++) { TreeItem item = items[i]; if (item.getText().equals(value)) return item; item = findItem(value, item.getItems()); if (item != null) return item; } return null; } /** * Gets the text for the tab folder item. */ String getTabText () { return "Tree"; } void packColumns (Tree tree) { if (multipleColumns.getSelection()) { int columnCount = tree.getColumnCount(); for (int i = 0; i < columnCount; i++) { TreeColumn treeColumn = tree.getColumn(i); treeColumn.pack(); } } } /** * Sets the foreground color, background color, and font * of the "Example" widgets to their default settings. * Also sets foreground and background color of the Node 1 * TreeItems to default settings. */ void resetColorsAndFonts () { super.resetColorsAndFonts (); Color oldColor = itemForegroundColor; itemForegroundColor = null; setItemForeground (); if (oldColor != null) oldColor.dispose(); oldColor = itemBackgroundColor; itemBackgroundColor = null; setItemBackground (); if (oldColor != null) oldColor.dispose(); Font oldFont = font; itemFont = null; setItemFont (); setExampleWidgetSize (); if (oldFont != null) oldFont.dispose(); } /** * Sets the state of the "Example" widgets. */ void setExampleWidgetState () { super.setExampleWidgetState (); setItemBackground (); setItemForeground (); setItemFont (); setExampleWidgetSize (); setWidgetHeaderVisible (); setWidgetLinesVisible (); checkButton.setSelection ((tree1.getStyle () & SWT.CHECK) != 0); checkButton.setSelection ((tree2.getStyle () & SWT.CHECK) != 0); fullSelectionButton.setSelection ((tree1.getStyle () & SWT.FULL_SELECTION) != 0); fullSelectionButton.setSelection ((tree2.getStyle () & SWT.FULL_SELECTION) != 0); } /** * Sets the background color of the Node 1 TreeItems. */ void setItemBackground () { textNode1.setBackground (itemBackgroundColor); imageNode1.setBackground (itemBackgroundColor); /* Set the background button's color to match the color just set. */ Color color = itemBackgroundColor; if (color == null) color = textNode1.getBackground (); drawImage (itemBackgroundImage, color); itemBackgroundButton.setImage (itemBackgroundImage); } /** * Sets the foreground color of the Node 1 TreeItems. */ void setItemForeground () { textNode1.setForeground (itemForegroundColor); imageNode1.setForeground (itemForegroundColor); /* Set the foreground button's color to match the color just set. */ Color color = itemForegroundColor; if (color == null) color = textNode1.getForeground (); drawImage (itemForegroundImage, color); itemForegroundButton.setImage (itemForegroundImage); } /** * Sets the font of the Node 1 TreeItems. */ void setItemFont () { if (instance.startup) return; textNode1.setFont (itemFont); imageNode1.setFont (itemFont); } /** * Sets the header visible state of the "Example" widgets. */ void setWidgetHeaderVisible () { tree1.setHeaderVisible (headerVisibleButton.getSelection ()); tree2.setHeaderVisible (headerVisibleButton.getSelection ()); } /** * Sets the lines visible state of the "Example" widgets. */ void setWidgetLinesVisible () { tree1.setLinesVisible (linesVisibleButton.getSelection ()); tree2.setLinesVisible (linesVisibleButton.getSelection ()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -