public void createControl()

in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositorySelectionWizardPage.java [259:356]


	public void createControl(Composite parent) {
		Composite displayArea = new Composite(parent, SWT.NONE);
		GridLayoutFactory.swtDefaults().numColumns(2).applyTo(displayArea);

		Label repoLabel = new Label(displayArea, SWT.NONE);
		repoLabel.setText(Messages.RepositorySelectionWizardPage_LabelRepos);
		GridDataFactory.fillDefaults().grab(true, false).span(2, 1)
				.applyTo(repoLabel);

		tree = new FilteredCheckboxTree(displayArea, null, SWT.V_SCROLL
				| SWT.H_SCROLL | SWT.BORDER, new PatternFilter());
		CheckboxTreeViewer viewer = tree.getCheckboxTreeViewer();
		viewer.setContentProvider(new WorkbenchContentProvider());
		viewer.setLabelProvider(new RepositoryLabelProvider());
		viewer.setComparator(new ViewerComparator() {

			@Override
			public int compare(Viewer v, Object e1, Object e2) {
				if (e1 instanceof OrganizationAdapter)
					if (e2 instanceof OrganizationAdapter)
						return ((OrganizationAdapter) e1)
								.getLabel(e1)
								.compareToIgnoreCase(
										((OrganizationAdapter) e2).getLabel(e2));
					else if (e2 instanceof RepositoryAdapter)
						return 1;
				if (e1 instanceof RepositoryAdapter)
					if (e2 instanceof RepositoryAdapter)
						return ((RepositoryAdapter) e1).getLabel(e1)
								.compareToIgnoreCase(
										((RepositoryAdapter) e2).getLabel(e2));
					else if (e2 instanceof OrganizationAdapter)
						return -1;
				return super.compare(v, e1, e2);
			}

		});
		viewer.addCheckStateListener(new ICheckStateListener() {

			@Override
			public void checkStateChanged(CheckStateChangedEvent event) {
				updateSelectionLabel();
			}
		});
		GridDataFactory.fillDefaults().grab(true, true).applyTo(tree);

		ToolBar toolbar = new ToolBar(displayArea, SWT.FLAT | SWT.VERTICAL);
		GridDataFactory.fillDefaults().grab(false, true).applyTo(toolbar);
		ToolItem checkItem = new ToolItem(toolbar, SWT.PUSH);
		checkItem.setImage(GitHubImages.get(GitHubImages.GITHUB_CHECKALL_OBJ));
		checkItem
				.setToolTipText(Messages.RepositorySelectionWizardPage_TooltipCheckAll);
		checkItem.addSelectionListener(new SelectionAdapter() {

			@Override
			public void widgetSelected(SelectionEvent e) {
				tree.getCheckboxTreeViewer().setAllChecked(true);
				for (Object leaf : tree.getCheckboxTreeViewer()
						.getCheckedLeafElements())
					tree.getCheckboxTreeViewer().setChecked(leaf, true);
				updateSelectionLabel();
			}
		});
		ToolItem uncheckItem = new ToolItem(toolbar, SWT.PUSH);
		uncheckItem.setImage(GitHubImages
				.get(GitHubImages.GITHUB_UNCHECKALL_OBJ));
		uncheckItem
				.setToolTipText(Messages.RepositorySelectionWizardPage_TooltipUncheckAll);
		uncheckItem.addSelectionListener(new SelectionAdapter() {

			@Override
			public void widgetSelected(SelectionEvent e) {
				tree.getCheckboxTreeViewer().setCheckedElements(new Object[0]);
				updateSelectionLabel();
			}
		});

		selectedLabel = new Label(displayArea, SWT.NONE);
		GridDataFactory.fillDefaults().grab(true, false).span(2, 1)
				.applyTo(selectedLabel);

		addGistRepoButton = new Button(displayArea, SWT.CHECK);
		addGistRepoButton
				.setText(Messages.RepositorySelectionWizardPage_LabelAddGist);
		addGistRepoButton.setSelection(true);
		GridDataFactory.swtDefaults().span(2, 1).applyTo(addGistRepoButton);
		addGistRepoButton.addSelectionListener(new SelectionAdapter() {

			@Override
			public void widgetSelected(SelectionEvent e) {
				validatePage();
			}

		});

		setControl(displayArea);
		setPageComplete(false);
	}