package org.eclipse.emf.emfstore.client.ui.views.emfstorebrowser.dialogs.admin; import java.util.Collection; import org.eclipse.jface.dialogs.IPageChangingListener; import org.eclipse.jface.dialogs.PageChangingEvent; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.model.WorkbenchLabelProvider; public class AssignRoleSummaryPage extends WizardPage { private static class ContentProvider implements ITreeContentProvider { @SuppressWarnings("unchecked") public Object[] getElements(Object inputElement) { return ((Collection<RoleAssignmentData>) inputElement).toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { viewer.refresh(); } public Object[] getChildren(Object parentElement) { return null; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } } private AssignRolesWizard wizard; private TreeViewer removedRolesViewer; private TreeViewer newRolesViewer; /** * Create the wizard. */ public AssignRoleSummaryPage(final AssignRolesWizard wizard) { super("wizardPage"); setTitle("Wizard Page title"); setDescription("Wizard Page description"); this.wizard = wizard; final Object test = this; if (wizard.getContainer() instanceof WizardDialog) { WizardDialog dialog = (WizardDialog) wizard.getContainer(); dialog.addPageChangingListener(new IPageChangingListener() { public void handlePageChanging(PageChangingEvent event) { if (event.getTargetPage() == test) { removedRolesViewer.setInput(wizard.getRemovedRoles()); newRolesViewer.setInput(wizard.getAddedRoles()); } } }); } else { throw new RuntimeException("wizard MUST run in a dialog"); } } /** * Create contents of the wizard. * * @param parent */ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); setControl(container); container.setLayout(new GridLayout(1, false)); Label lblNewLabel = new Label(container, SWT.NONE); lblNewLabel.setText("New Role Assignments"); newRolesViewer = new TreeViewer(container, SWT.BORDER | SWT.V_SCROLL); Tree newRoles = newRolesViewer.getTree(); GridData gd_newRoles = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); newRoles.setLayoutData(gd_newRoles); ContentProvider contentProvider = new ContentProvider(); newRolesViewer.setContentProvider(contentProvider); ILabelProvider labelProvider = new WorkbenchLabelProvider(); newRolesViewer.setLabelProvider(labelProvider); Label lblNewLabel_1 = new Label(container, SWT.NONE); lblNewLabel_1.setText("Role Assignments to be deleted"); removedRolesViewer = new TreeViewer(container, SWT.BORDER | SWT.V_SCROLL); Tree removedRoles = removedRolesViewer.getTree(); GridData gd_removedRoles = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); removedRoles.setLayoutData(gd_removedRoles); removedRolesViewer.setLabelProvider(labelProvider); removedRolesViewer.setContentProvider(contentProvider); } }