List of usage examples for org.eclipse.swt.widgets Tree getSelection
public TreeItem[] getSelection()
TreeItem
s that are currently selected in the receiver. From source file:TreeEditorButton.java
public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Text Tree Editor"); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.SINGLE); for (int i = 0; i < 3; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Item " + (i + 1)); for (int j = 0; j < 3; j++) { TreeItem jItem = new TreeItem(iItem, SWT.NONE); jItem.setText("Sub Item " + (j + 1)); for (int k = 0; k < 3; k++) { new TreeItem(jItem, SWT.NONE).setText("Sub Sub Item " + (k + 1)); }//w w w . j a v a 2s . c o m jItem.setExpanded(true); } iItem.setExpanded(true); } final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; tree.addMouseListener(new MouseAdapter() { public void mouseDown(MouseEvent event) { final TreeItem item = tree.getSelection()[0]; final Button bn = new Button(tree, SWT.NONE); bn.setText("click"); bn.setFocus(); bn.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent arg0) { int style = SWT.ICON_QUESTION | SWT.YES | SWT.NO; MessageBox messageBox = new MessageBox(shell, style); messageBox.setMessage("Message"); int rc = messageBox.open(); item.setText(rc + ""); bn.dispose(); } public void widgetDefaultSelected(SelectionEvent arg0) { } }); editor.setEditor(bn, item); } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
From source file:TreeEditorF2Trigger.java
public static void main(String[] args) { Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Text Tree Editor"); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.SINGLE); for (int i = 0; i < 3; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Item " + (i + 1)); for (int j = 0; j < 3; j++) { TreeItem jItem = new TreeItem(iItem, SWT.NONE); jItem.setText("Sub Item " + (j + 1)); for (int k = 0; k < 3; k++) { new TreeItem(jItem, SWT.NONE).setText("Sub Sub Item " + (k + 1)); }// w ww . j a v a 2s .c om jItem.setExpanded(true); } iItem.setExpanded(true); } final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; tree.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.F2 && tree.getSelectionCount() == 1) { final TreeItem item = tree.getSelection()[0]; int style = SWT.ICON_QUESTION | SWT.YES | SWT.NO; MessageBox messageBox = new MessageBox(shell, style); messageBox.setMessage("Message"); int rc = messageBox.open(); item.setText(rc + ""); } } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
From source file:TreeEditorSampleDemo.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("Text Tree Editor"); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.SINGLE); for (int i = 0; i < 3; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Item " + (i + 1)); for (int j = 0; j < 3; j++) { TreeItem jItem = new TreeItem(iItem, SWT.NONE); jItem.setText("Sub Item " + (j + 1)); for (int k = 0; k < 3; k++) { new TreeItem(jItem, SWT.NONE).setText("Sub Sub Item " + (k + 1)); }/* w w w .j a va 2s .c o m*/ jItem.setExpanded(true); } iItem.setExpanded(true); } final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; tree.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if (event.keyCode == SWT.F2 && tree.getSelectionCount() == 1) { final TreeItem item = tree.getSelection()[0]; final Text text = new Text(tree, SWT.NONE); text.setText(item.getText()); text.selectAll(); text.setFocus(); text.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent event) { item.setText(text.getText()); text.dispose(); } }); text.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { switch (event.keyCode) { case SWT.CR: item.setText(text.getText()); case SWT.ESC: text.dispose(); break; } } }); editor.setEditor(text, item); } } }); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); }
From source file:DragTreeLeaf.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.BORDER); for (int i = 0; i < 3; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("item " + i); for (int j = 0; j < 3; j++) { TreeItem subItem = new TreeItem(item, SWT.NONE); subItem.setText("item " + i + " " + j); for (int k = 0; k < 3; k++) { TreeItem subsubItem = new TreeItem(subItem, SWT.NONE); subsubItem.setText("item " + i + " " + j + " " + k); }/*from w ww .java 2 s . c om*/ } } Transfer[] types = new Transfer[] { TextTransfer.getInstance() }; int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK; final DragSource source = new DragSource(tree, operations); source.setTransfer(types); final TreeItem[] dragSourceItem = new TreeItem[1]; source.addDragListener(new DragSourceListener() { public void dragStart(DragSourceEvent event) { TreeItem[] selection = tree.getSelection(); if (selection.length > 0 && selection[0].getItemCount() == 0) { event.doit = true; dragSourceItem[0] = selection[0]; } else { event.doit = false; } }; public void dragSetData(DragSourceEvent event) { event.data = dragSourceItem[0].getText(); } public void dragFinished(DragSourceEvent event) { if (event.detail == DND.DROP_MOVE) dragSourceItem[0].dispose(); dragSourceItem[0] = null; } }); DropTarget target = new DropTarget(tree, operations); target.setTransfer(types); target.addDropListener(new DropTargetAdapter() { public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; if (event.item != null) { TreeItem item = (TreeItem) event.item; Point pt = display.map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_BEFORE; } else if (pt.y > bounds.y + 2 * bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_AFTER; } else { event.feedback |= DND.FEEDBACK_SELECT; } } } public void drop(DropTargetEvent event) { if (event.data == null) { event.detail = DND.DROP_NONE; return; } String text = (String) event.data; if (event.item == null) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(text); } else { TreeItem item = (TreeItem) event.item; Point pt = display.map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); TreeItem parent = item.getParentItem(); if (parent != null) { TreeItem[] items = parent.getItems(); int index = 0; for (int i = 0; i < items.length; i++) { if (items[i] == item) { index = i; break; } } if (pt.y < bounds.y + bounds.height / 3) { TreeItem newItem = new TreeItem(parent, SWT.NONE, index); newItem.setText(text); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { TreeItem newItem = new TreeItem(parent, SWT.NONE, index + 1); newItem.setText(text); } else { TreeItem newItem = new TreeItem(item, SWT.NONE); newItem.setText(text); } } else { TreeItem[] items = tree.getItems(); int index = 0; for (int i = 0; i < items.length; i++) { if (items[i] == item) { index = i; break; } } if (pt.y < bounds.y + bounds.height / 3) { TreeItem newItem = new TreeItem(tree, SWT.NONE, index); newItem.setText(text); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { TreeItem newItem = new TreeItem(tree, SWT.NONE, index + 1); newItem.setText(text); } else { TreeItem newItem = new TreeItem(item, SWT.NONE); newItem.setText(text); } } } } }); shell.setSize(400, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet91.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 91"); shell.setLayout(new FillLayout()); final Tree tree = new Tree(shell, SWT.BORDER); for (int i = 0; i < 3; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("item " + i); for (int j = 0; j < 3; j++) { TreeItem subItem = new TreeItem(item, SWT.NONE); subItem.setText("item " + i + " " + j); for (int k = 0; k < 3; k++) { TreeItem subsubItem = new TreeItem(subItem, SWT.NONE); subsubItem.setText("item " + i + " " + j + " " + k); }// w w w . j a v a 2 s . co m } } Transfer[] types = new Transfer[] { TextTransfer.getInstance() }; int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK; final DragSource source = new DragSource(tree, operations); source.setTransfer(types); final TreeItem[] dragSourceItem = new TreeItem[1]; source.addDragListener(new DragSourceListener() { @Override public void dragStart(DragSourceEvent event) { TreeItem[] selection = tree.getSelection(); if (selection.length > 0 && selection[0].getItemCount() == 0) { event.doit = true; dragSourceItem[0] = selection[0]; } else { event.doit = false; } } @Override public void dragSetData(DragSourceEvent event) { event.data = dragSourceItem[0].getText(); } @Override public void dragFinished(DragSourceEvent event) { if (event.detail == DND.DROP_MOVE) dragSourceItem[0].dispose(); dragSourceItem[0] = null; } }); DropTarget target = new DropTarget(tree, operations); target.setTransfer(types); target.addDropListener(new DropTargetAdapter() { @Override public void dragOver(DropTargetEvent event) { event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; if (event.item != null) { TreeItem item = (TreeItem) event.item; Point pt = display.map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); if (pt.y < bounds.y + bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_BEFORE; } else if (pt.y > bounds.y + 2 * bounds.height / 3) { event.feedback |= DND.FEEDBACK_INSERT_AFTER; } else { event.feedback |= DND.FEEDBACK_SELECT; } } } @Override public void drop(DropTargetEvent event) { if (event.data == null) { event.detail = DND.DROP_NONE; return; } String text = (String) event.data; if (event.item == null) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(text); } else { TreeItem item = (TreeItem) event.item; Point pt = display.map(null, tree, event.x, event.y); Rectangle bounds = item.getBounds(); TreeItem parent = item.getParentItem(); if (parent != null) { TreeItem[] items = parent.getItems(); int index = 0; for (int i = 0; i < items.length; i++) { if (items[i] == item) { index = i; break; } } if (pt.y < bounds.y + bounds.height / 3) { TreeItem newItem = new TreeItem(parent, SWT.NONE, index); newItem.setText(text); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { TreeItem newItem = new TreeItem(parent, SWT.NONE, index + 1); newItem.setText(text); } else { TreeItem newItem = new TreeItem(item, SWT.NONE); newItem.setText(text); } } else { TreeItem[] items = tree.getItems(); int index = 0; for (int i = 0; i < items.length; i++) { if (items[i] == item) { index = i; break; } } if (pt.y < bounds.y + bounds.height / 3) { TreeItem newItem = new TreeItem(tree, SWT.NONE, index); newItem.setText(text); } else if (pt.y > bounds.y + 2 * bounds.height / 3) { TreeItem newItem = new TreeItem(tree, SWT.NONE, index + 1); newItem.setText(text); } else { TreeItem newItem = new TreeItem(item, SWT.NONE); newItem.setText(text); } } } } }); shell.setSize(400, 400); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet296.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 296"); shell.setBounds(10, 10, 300, 300);//w w w . ja va 2s . c om final ScrolledComposite sc = new ScrolledComposite(shell, SWT.VERTICAL); sc.setBounds(10, 10, 280, 200); final int clientWidth = sc.getClientArea().width; final Tree tree = new Tree(sc, SWT.NONE); for (int i = 0; i < 99; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("item " + i); new TreeItem(item, SWT.NONE).setText("child"); } sc.setContent(tree); int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); /* * The following listener ensures that the Tree is always large * enough to not need to show its own vertical scrollbar. */ tree.addTreeListener(new TreeListener() { @Override public void treeExpanded(TreeEvent e) { int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); } @Override public void treeCollapsed(TreeEvent e) { int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); } }); /* * The following listener ensures that a newly-selected item * in the Tree is always visible. */ tree.addSelectionListener(widgetSelectedAdapter(e -> { TreeItem[] selectedItems = tree.getSelection(); if (selectedItems.length > 0) { Rectangle itemRect = selectedItems[0].getBounds(); Rectangle area = sc.getClientArea(); Point origin = sc.getOrigin(); if (itemRect.x < origin.x || itemRect.y < origin.y || itemRect.x + itemRect.width > origin.x + area.width || itemRect.y + itemRect.height > origin.y + area.height) { sc.setOrigin(itemRect.x, itemRect.y); } } })); /* * The following listener scrolls the Tree one item at a time * in response to MouseWheel events. */ tree.addListener(SWT.MouseWheel, event -> { Point origin = sc.getOrigin(); if (event.count < 0) { origin.y = Math.min(origin.y + tree.getItemHeight(), tree.getSize().y); } else { origin.y = Math.max(origin.y - tree.getItemHeight(), 0); } sc.setOrigin(origin); }); Button downButton = new Button(shell, SWT.PUSH); downButton.setBounds(10, 220, 120, 30); downButton.setText("Down 10px"); downButton.addListener(SWT.Selection, event -> sc.setOrigin(0, sc.getOrigin().y + 10)); Button upButton = new Button(shell, SWT.PUSH); upButton.setBounds(140, 220, 120, 30); upButton.setText("Up 10px"); upButton.addListener(SWT.Selection, event -> sc.setOrigin(0, sc.getOrigin().y - 10)); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet322.java
public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 322"); shell.setBounds(10, 10, 300, 300);//from w w w .j a v a2s. c o m final ScrolledComposite sc = new ScrolledComposite(shell, SWT.VERTICAL); sc.setBounds(10, 10, 280, 200); final int clientWidth = sc.getClientArea().width; final Tree tree = new Tree(sc, SWT.NONE); for (int i = 0; i < 99; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText("item " + i); new TreeItem(item, SWT.NONE).setText("child"); } sc.setContent(tree); int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); /* * The following listener ensures that the Tree is always large * enough to not need to show its own vertical scrollbar. */ tree.addTreeListener(new TreeListener() { @Override public void treeExpanded(TreeEvent e) { int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); } @Override public void treeCollapsed(TreeEvent e) { int prefHeight = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT).y; tree.setSize(clientWidth, prefHeight); } }); /* * The following listener ensures that a newly-selected item * in the Tree is always visible. */ tree.addSelectionListener(widgetSelectedAdapter(e -> { TreeItem[] selectedItems = tree.getSelection(); if (selectedItems.length > 0) { Rectangle itemRect = selectedItems[0].getBounds(); Rectangle area = sc.getClientArea(); Point origin = sc.getOrigin(); if (itemRect.x < origin.x || itemRect.y < origin.y || itemRect.x + itemRect.width > origin.x + area.width || itemRect.y + itemRect.height > origin.y + area.height) { sc.setOrigin(itemRect.x, itemRect.y); } } })); /* * The following listener scrolls the Tree one item at a time * in response to MouseWheel events. */ tree.addListener(SWT.MouseWheel, event -> { Point origin = sc.getOrigin(); if (event.count < 0) { origin.y = Math.min(origin.y + tree.getItemHeight(), tree.getSize().y); } else { origin.y = Math.max(origin.y - tree.getItemHeight(), 0); } sc.setOrigin(origin); }); Button disableButton = new Button(shell, SWT.PUSH); disableButton.setBounds(10, 220, 120, 30); disableButton.setText("Disable"); disableButton.addListener(SWT.Selection, event -> tree.setEnabled(false)); Button enableButton = new Button(shell, SWT.PUSH); enableButton.setBounds(140, 220, 120, 30); enableButton.setText("Enable"); enableButton.addListener(SWT.Selection, event -> tree.setEnabled(true)); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.eclipse.swt.snippets.Snippet360.java
public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("Snippet 360"); shell.setLayout(new GridLayout()); // create a a tree with 3 columns and fill with data final Tree tree = new Tree(shell, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION); tree.setLayoutData(new GridData(GridData.FILL_BOTH)); tree.setHeaderVisible(true);/*from w ww. j a v a 2 s.com*/ TreeColumn column1 = new TreeColumn(tree, SWT.NONE); TreeColumn column2 = new TreeColumn(tree, SWT.NONE); TreeColumn column3 = new TreeColumn(tree, SWT.NONE); for (int i = 0; i < 9; i++) { TreeItem item = new TreeItem(tree, SWT.NONE); item.setText(new String[] { "root " + i + " 0", "root " + i + " 1", "root " + i + " 2" }); for (int j = 0; j < 9; j++) { TreeItem item2 = new TreeItem(item, SWT.NONE); item2.setText(new String[] { "child " + j + " 0", "child " + j + " 1", "child " + j + " 2" }); TreeItem current = item2; for (int k = 0; k < 5; k++) { TreeItem item3 = new TreeItem(current, SWT.NONE); item3.setText(new String[] { "descendent " + k + " 0", "descendent " + k + " 1", "descendent " + k + " 2" }); current = item3; } } } column1.setWidth(200); column2.setWidth(100); column3.setWidth(100); // create a TreeCursor to navigate around the tree final TreeCursor cursor = new TreeCursor(tree, SWT.NONE); // create an editor to edit the cell when the user hits "ENTER" // while over a cell in the tree final ControlEditor editor = new ControlEditor(cursor); editor.grabHorizontal = true; editor.grabVertical = true; cursor.addSelectionListener(new SelectionAdapter() { // when the TreeEditor is over a cell, select the corresponding row // in the tree @Override public void widgetSelected(SelectionEvent e) { tree.setSelection(new TreeItem[] { cursor.getRow() }); } // when the user hits "ENTER" in the TreeCursor, pop up a text // editor so that they can change the text of the cell @Override public void widgetDefaultSelected(SelectionEvent e) { final Text text = new Text(cursor, SWT.NONE); TreeItem row = cursor.getRow(); int column = cursor.getColumn(); text.setText(row.getText(column)); text.addKeyListener(keyPressedAdapter(event -> { // close the text editor and copy the data over // when the user hits "ENTER" if (event.character == SWT.CR) { TreeItem localRow = cursor.getRow(); int localColumn = cursor.getColumn(); localRow.setText(localColumn, text.getText()); text.dispose(); } // close the text editor when the user hits "ESC" if (event.character == SWT.ESC) { text.dispose(); } })); editor.setEditor(text); text.setFocus(); } }); // Hide the TreeCursor when the user hits the "MOD1" or "MOD2" key. // This allows the user to select multiple items in the tree. cursor.addKeyListener(keyPressedAdapter(e -> { if (e.keyCode == SWT.MOD1 || e.keyCode == SWT.MOD2 || (e.stateMask & SWT.MOD1) != 0 || (e.stateMask & SWT.MOD2) != 0) { cursor.setVisible(false); } })); // Show the TreeCursor when the user releases the "MOD2" or "MOD1" key. // This signals the end of the multiple selection task. tree.addKeyListener(new KeyListener() { @Override public void keyReleased(KeyEvent e) { if (e.keyCode == SWT.MOD1 && (e.stateMask & SWT.MOD2) != 0) return; if (e.keyCode == SWT.MOD2 && (e.stateMask & SWT.MOD1) != 0) return; if (e.keyCode != SWT.MOD1 && (e.stateMask & SWT.MOD1) != 0) return; if (e.keyCode != SWT.MOD2 && (e.stateMask & SWT.MOD2) != 0) return; TreeItem[] selection = tree.getSelection(); TreeItem row = (selection.length == 0) ? tree.getItem(tree.indexOf(tree.getTopItem())) : selection[0]; tree.showItem(row); cursor.setSelection(row, cursor.getColumn()); cursor.setVisible(true); cursor.setFocus(); } @Override public void keyPressed(KeyEvent e) { switch (e.keyCode) { case SWT.ARROW_LEFT: case SWT.ARROW_RIGHT: { if ((e.stateMask & SWT.MOD1) != 0) { TreeItem[] selection = tree.getSelection(); if (selection.length > 0) { selection[0].setExpanded(e.keyCode == SWT.ARROW_RIGHT); } break; } } } } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:WidgetTest2.java
/** * Trees ** */ public static Tree createTree(Composite composite) { final Tree tree = new Tree(composite, SWT.SINGLE); // Oberste Knotenebene erzeugen final TreeItem node1 = new TreeItem(tree, SWT.NULL); node1.setText("Knoten 1"); final TreeItem node2 = new TreeItem(tree, SWT.NULL); node2.setText("Knoten 2"); final TreeItem node3 = new TreeItem(tree, SWT.NULL); node3.setText("Knoten 3"); // Zweite Knotenebene erzeugen final TreeItem node11 = new TreeItem(node1, SWT.NULL); node11.setText("Knoten 1.1"); final TreeItem node12 = new TreeItem(node1, SWT.NULL); node12.setText("Knoten 1.2"); // SelectionListener hinzufugen tree.addSelectionListener(new SelectionAdapter() { public void widgetDefaultSelected(SelectionEvent e) { System.out.println("Enter gedruckt: " + tree.getSelection()[0].getText()); }/*w w w .j a v a2s .c om*/ public void widgetSelected(SelectionEvent e) { System.out.println("Baumknoteneintrag ausgewahlt: " + tree.getSelection()[0].getText()); } }); // TreeListener hinzufugen tree.addTreeListener(new TreeAdapter() { public void treeCollapsed(TreeEvent e) { System.out.println("Knoten kollabiert: " + ((TreeItem) e.item).getText()); } public void treeExpanded(TreeEvent e) { System.out.println("Knoten expandiert: " + ((TreeItem) e.item).getText()); } }); return tree; }
From source file:TextTreeEditor.java
/** * Creates the contents of the main window * /*from ww w . j ava 2s . c om*/ * @param shell the main window */ public void createContents(Shell shell) { shell.setLayout(new FillLayout()); // Create the tree final Tree tree = new Tree(shell, SWT.SINGLE); // Fill the tree with data for (int i = 0; i < NUM; i++) { TreeItem iItem = new TreeItem(tree, SWT.NONE); iItem.setText("Item " + (i + 1)); for (int j = 0; j < NUM; j++) { TreeItem jItem = new TreeItem(iItem, SWT.NONE); jItem.setText("Sub Item " + (j + 1)); for (int k = 0; k < NUM; k++) { new TreeItem(jItem, SWT.NONE).setText("Sub Sub Item " + (k + 1)); } jItem.setExpanded(true); } iItem.setExpanded(true); } // Create the editor and set its attributes final TreeEditor editor = new TreeEditor(tree); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; // Add a key listener to the tree that listens for F2. // If F2 is pressed, we do the editing tree.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { // Make sure one and only one item is selected when F2 is pressed if (event.keyCode == SWT.F2 && tree.getSelectionCount() == 1) { // Determine the item to edit final TreeItem item = tree.getSelection()[0]; // Create a text field to do the editing final Text text = new Text(tree, SWT.NONE); text.setText(item.getText()); text.selectAll(); text.setFocus(); // If the text field loses focus, set its text into the tree // and end the editing session text.addFocusListener(new FocusAdapter() { public void focusLost(FocusEvent event) { item.setText(text.getText()); text.dispose(); } }); // If they hit Enter, set the text into the tree and end the editing // session. If they hit Escape, ignore the text and end the editing // session text.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { switch (event.keyCode) { case SWT.CR: // Enter hit--set the text into the tree and drop through item.setText(text.getText()); case SWT.ESC: // End editing session text.dispose(); break; } } }); // Set the text field into the editor editor.setEditor(text, item); } } }); }