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
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 0000000..4647e97
--- /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
deleted file mode 100644
index 6f64766..0000000
--- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif
+++ /dev/null
Binary files differ