public void setVisible()

in org.eclipse.mylyn.github.ui/src/org/eclipse/mylyn/internal/github/ui/RepositorySelectionWizardPage.java [406:476]


	public void setVisible(boolean visible) {
		super.setVisible(visible);
		if (!visible) {
			return;
		}
		// For gists a user name is needed.
		addGistRepoButton.setVisible(user != null && !user.isEmpty()
				&& TasksUi.getRepositoryManager()
						.getRepositories(GistConnector.KIND).isEmpty());
		try {
			getContainer().run(true, true, new IRunnableWithProgress() {

				@Override
				public void run(IProgressMonitor monitor)
						throws InvocationTargetException, InterruptedException {
					GitHubClient client = GitHub
							.configureClient(new GitHubClient());
					if (isToken) {
						client.setOAuth2Token(password);
					} else {
						client.setCredentials(user, password);
					}
					RepositoryService service = new RepositoryService(client);
					OrganizationService orgs = new OrganizationService(client);
					repoCount = 0;
					List<Object> repos = new ArrayList<>();
					List<String> existing = new ArrayList<>();
					for (TaskRepository repo : TasksUi.getRepositoryManager()
							.getRepositories(GitHub.CONNECTOR_KIND)) {
						String id = GitHub.getRepository(
								repo.getRepositoryUrl()).generateId();
						if (id != null)
							existing.add(id);
					}
					try {
						monitor.beginTask("", 2); //$NON-NLS-1$
						monitor.setTaskName(Messages.RepositorySelectionWizardPage_TaskFetchingRepositories);
						List<Repository> userRepos = service.getRepositories();
						removeExisting(userRepos, existing);
						repoCount += userRepos.size();
						for (Repository repo : userRepos)
							repos.add(new RepositoryAdapter(repo));
						monitor.worked(1);
						monitor.setTaskName(Messages.RepositorySelectionWizardPage_TaskFetchingOrganizationRepositories);
						for (User org : orgs.getOrganizations()) {
							List<Repository> orgRepos = service
									.getOrgRepositories(org.getLogin());
							removeExisting(orgRepos, existing);
							repoCount += orgRepos.size();
							repos.add(new OrganizationAdapter(org, orgRepos));
						}
						updateInput(repos);
					} catch (IOException e) {
						throw new InvocationTargetException(GitHubException
								.wrap(e));
					}
				}
			});
			setErrorMessage(null);
		} catch (InvocationTargetException e) {
			updateInput(Collections.emptyList());
			Throwable cause = e.getCause();
			if (cause == null)
				cause = e;
			setErrorMessage(MessageFormat.format(
					Messages.RepositorySelectionWizardPage_ErrorLoading,
					cause.getLocalizedMessage()));
		} catch (InterruptedException ignored) {
			// Ignored
		}
	}