diff options
author | cvs2svn | 2007-06-21 20:03:29 +0000 |
---|---|---|
committer | cvs2svn | 2007-06-21 20:03:29 +0000 |
commit | e4602e4404b50a418994e73f052287b202f6480a (patch) | |
tree | cc3b3f5d1e52ab3fbbb1282e63931f8b2e6b1170 | |
parent | f0d8f7c6b78d8c778a6dc6afad23c6015368200f (diff) | |
download | eclipse.platform.swt-e4602e4404b50a418994e73f052287b202f6480a.tar.gz eclipse.platform.swt-e4602e4404b50a418994e73f052287b202f6480a.tar.xz eclipse.platform.swt-e4602e4404b50a418994e73f052287b202f6480a.zip |
This commit was manufactured by cvs2svn to create branch 'R3_3_maintenance'.
Sprout from master 2007-06-14 22:17:11 UTC Steve Northover <steve> '*** empty log message ***'
Cherrypick from master 2007-06-21 20:03:28 UTC Kevin Barnes <krbarnes> '*** empty log message ***':
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java
Delete:
examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java | 91 | ||||
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif | bin | 143 -> 0 bytes |
2 files changed, 91 insertions, 0 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java new file mode 100644 index 0000000000..4647e97759 --- /dev/null +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet274.java @@ -0,0 +1,91 @@ +/******************************************************************************* + * Copyright (c) 2000, 2007 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.snippets; + +/* + * Tree snippet: implement standard tree check box behavior (SWT.CHECK) + * + * For a list of all SWT example snippets see + * http://www.eclipse.org/swt/snippets/ + * + * @since 3.3 + */ +import org.eclipse.swt.*; +import org.eclipse.swt.widgets.*; + +public class Snippet274 { + + static void checkPath(TreeItem item, boolean checked, boolean grayed) { + if (item == null) return; + if (grayed) { + checked = true; + } else { + int index = 0; + TreeItem[] items = item.getItems(); + while (index < items.length) { + TreeItem child = items[index]; + if (child.getGrayed() || checked != child.getChecked()) { + checked = grayed = true; + break; + } + index++; + } + } + item.setChecked(checked); + item.setGrayed(grayed); + checkPath(item.getParentItem(), checked, grayed); + } + + static void checkItems(TreeItem item, boolean checked) { + item.setGrayed(false); + item.setChecked(checked); + TreeItem[] items = item.getItems(); + for (int i = 0; i < items.length; i++) { + checkItems(items[i], checked); + } + } + + public static void main(String[] args) { + Display display = new Display(); + Shell shell = new Shell(display); + Tree tree = new Tree(shell, SWT.BORDER | SWT.CHECK); + tree.addListener(SWT.Selection, new Listener() { + public void handleEvent(Event event) { + if (event.detail == SWT.CHECK) { + TreeItem item = (TreeItem) event.item; + boolean checked = item.getChecked(); + checkItems(item, checked); + checkPath(item.getParentItem(), checked, false); + } + } + }); + for (int i = 0; i < 4; i++) { + TreeItem itemI = new TreeItem(tree, SWT.NULL); + itemI.setText("Item " + i); + for (int j = 0; j < 4; j++) { + TreeItem itemJ = new TreeItem(itemI, SWT.NULL); + itemJ.setText("Item " + i + " " + j); + for (int k = 0; k < 4; k++) { + TreeItem itemK = new TreeItem(itemJ, SWT.NULL); + itemK.setText("Item " + i + " " + j + " " + k); + } + } + } + tree.setSize(200, 200); + shell.pack(); + shell.open(); + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) display.sleep(); + } + display.dispose(); + } + +} diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif Binary files differdeleted file mode 100644 index 6f647666d3..0000000000 --- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif +++ /dev/null |