Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcvs2svn2007-06-21 20:03:29 +0000
committercvs2svn2007-06-21 20:03:29 +0000
commite4602e4404b50a418994e73f052287b202f6480a (patch)
treecc3b3f5d1e52ab3fbbb1282e63931f8b2e6b1170
parentf0d8f7c6b78d8c778a6dc6afad23c6015368200f (diff)
downloadeclipse.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.java91
-rw-r--r--examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gifbin143 -> 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
deleted file mode 100644
index 6f647666d3..0000000000
--- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/cancel.gif
+++ /dev/null
Binary files differ

Back to the top