package org.eclipse.emf.emfstore.client.ui.views.users; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTreeViewer; import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; class Util { public static void configureRoleSelectionTreeViewer(final CheckboxTreeViewer viewer) { viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { // viewer.refresh(); } }); final Tree tree = viewer.getTree(); tree.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) { if (event.detail == SWT.CHECK) { event.detail = SWT.NONE; event.type = SWT.None; TreeItem item = (TreeItem) event.item; Object obj = item.getData(); // TODO: only change if permitted // event.doit = false; // Object obj = event.item; // ((TreeItem) event.item).setChecked(false); } } }); // final TreeCursor cursor = new TreeCursor(tree, SWT.NONE); // tree.addKeyListener(new KeyListener() { // 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(); // } // // 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; // } // } // } // } // }); } }