CheckBoxTreeViewer

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo zusammen....

Ich habe ein Problem mit dem CheckBoxTreeViewer. Ich würde gerne die Checkboxen für bestimmte Elemnete ausblenden, bzw, wenn das nicht geht, wenigstens disablen. Über den Label Provider habe ich nichts gefunden...

Ich habe versucvht die Checkboxen auf die se Weise selbst zu zeichnen:

Code:
		TreeItem[] items = tree.getItems();

		TreeItem rootItem = items[0];

		// get all the childs of the root element into this list
		ArrayList<TreeItem> itemList = getAllItems(rootItem);

		for (TreeItem treeItem : itemList) {

			if (treeItem.getData() instanceof Model) {

				TreeEditor editor = new TreeEditor(tree);
				Button button = new Button(tree, SWT.CHECK | SWT.FLAT);
				button.pack();
				editor.minimumWidth = button.getSize().x;
				editor.horizontalAlignment = SWT.LEFT;
				editor.setEditor(button, treeItem, 1);

				editor = new TreeEditor(tree);
				Text text = new Text(tree, SWT.NONE);
				text.setText(treeItem.getText());
				editor.grabHorizontal = true;
				editor.setEditor(text, treeItem, 2);
				
			}
		}

		tree.redraw()

... allerdings zerhaut er mir immer meinen Baum dabei. Was mache ich falsch? und, gibt es noch eine andere Möglichkeit?
 

dzim

Top Contributor
Ha - das Problem hat ich auch mal - ich glaub der Lars Vogel hat mir da den entscheidenen Hinweis gegeben:
Nutze den Viewer org.eclipse.ui.dialogs.ContainerCheckedTreeViewer!
Warum der nun bei den Dialogen rumhockt und nicht bei den anderen Viewern... Wer weiß, aber der macht genau das.
...und vergiß das mit den TreeItems!
Im Zweifelsfall musst du di Nodes, die nicht völlig den CheckState bekommen sollen halt per Hand auf grayed setzen (ich bin mir nicht sicher, aber ich denke dass das die Funktionalität ist, aber nagel mich nicht daran fest - Fakt ist: Es geht!)
 

hagbard23

Mitglied
ne den hab ich ja....aber der hat nur ne simple logik ür den grayed state implementiert. Nun möchte ich ihm erzählen, das er für manche nodes gar keine checkbox braucht! und das geht nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben