package org.eclipse.emf.emfstore.client.ui.views.users; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import org.eclipse.jface.viewers.TreePath; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.TreeItem; import org.eclipse.swt.widgets.Widget; import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer; import org.eclipse.ui.model.WorkbenchLabelProvider; public class UserCreateRolesWizardPage extends WizardPage { private ContainerCheckedTreeViewer treeViewer; /** * Create the wizard. */ public UserCreateRolesWizardPage() { super("wizardPage"); setTitle("User roles"); setDescription("please select role which the user will have"); } /** * Create contents of the wizard. * * @param parent */ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); container.setLayout(new FillLayout(SWT.HORIZONTAL)); treeViewer = new ContainerCheckedTreeViewer(container, SWT.BORDER) { @Override public boolean getChecked(Object element) { if (element instanceof TreePath) { Widget widget = internalGetWidgetToSelect(element); if (widget instanceof TreeItem) { boolean checked = ((TreeItem) widget).getChecked(); return checked; } } return super.getChecked(element); } }; treeViewer.setLabelProvider(new WorkbenchLabelProvider()); treeViewer.setContentProvider(new RoleSelectionContentProvider(UserUiController.getInstance())); treeViewer.setInput(Collections.EMPTY_LIST); Util.configureRoleSelectionTreeViewer(treeViewer); setControl(container); } public Collection<RoleSelection> getRoleSelection() { List<RoleSelection> selection = new ArrayList<RoleSelection>(); for (Object object : treeViewer.getCheckedElements()) { if (((RoleSelection) object).getRole() != null) { selection.add((RoleSelection) object); } } return selection; } }