diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java deleted file mode 100644 index fe4ab7488..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java +++ /dev/null @@ -1,283 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 Tasktop Technologies and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Tasktop Technologies - initial API and implementation - * Brock Janiczak - improvements - * Eugene Kuleshov - improvements - *******************************************************************************/ - -package org.eclipse.mylyn.internal.tasks.ui.wizards; - -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.DecoratingLabelProvider; -import org.eclipse.jface.viewers.IOpenListener; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.OpenEvent; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.wizard.IWizard; -import org.eclipse.jface.wizard.IWizardNode; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.jface.wizard.WizardSelectionPage; -import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter; -import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; -import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; -import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider; -import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.ui.TasksUi; -import org.eclipse.mylyn.tasks.ui.TasksUiUtil; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Table; -import org.eclipse.ui.PlatformUI; - -/** - * @author Mik Kersten - * @author Brock Janiczak - * @author Steffen Pingel - * @author Eugene Kuleshov - */ -public abstract class SelectRepositoryPage extends WizardSelectionPage { - - private TableViewer viewer; - - protected MultiRepositoryAwareWizard wizard; - - private List<TaskRepository> repositories = new ArrayList<TaskRepository>(); - - private final ITaskRepositoryFilter taskRepositoryFilter; - - class RepositoryContentProvider implements IStructuredContentProvider { - - public void inputChanged(Viewer v, Object oldInput, Object newInput) { - } - - public void dispose() { - } - - public Object[] getElements(Object parent) { - return repositories.toArray(); - } - } - - public SelectRepositoryPage(ITaskRepositoryFilter taskRepositoryFilter) { - super(Messages.SelectRepositoryPage_Select_a_repository); - - setTitle(Messages.SelectRepositoryPage_Select_a_repository); - setDescription(MessageFormat.format(Messages.SelectRepositoryPage_Add_new_repositories_using_the_X_view, - org.eclipse.mylyn.internal.tasks.ui.Messages.TasksUiPlugin_Task_Repositories)); - - this.taskRepositoryFilter = taskRepositoryFilter; - this.repositories = getTaskRepositories(); - } - - public List<TaskRepository> getTaskRepositories() { - List<TaskRepository> repositories = new ArrayList<TaskRepository>(); - TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager(); - for (AbstractRepositoryConnector connector : repositoryManager.getRepositoryConnectors()) { - Set<TaskRepository> connectorRepositories = repositoryManager.getRepositories(connector.getConnectorKind()); - for (TaskRepository repository : connectorRepositories) { - if (taskRepositoryFilter.accept(repository, connector)) { - repositories.add(repository); - } - } - } - return repositories; - } - - public void createControl(Composite parent) { - Composite container = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(1, true); - container.setLayout(layout); - - Table table = createTableViewer(container); - viewer.setSorter(new TaskRepositoriesSorter()); - - GridData gridData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL); - table.setLayoutData(gridData); - - final AddRepositoryAction action = new AddRepositoryAction(); - action.setPromptToAddQuery(false); - - Button button = new Button(container, SWT.NONE); - button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING)); - button.setText(AddRepositoryAction.TITLE); - button.setEnabled(action.isEnabled()); - button.addSelectionListener(new SelectionAdapter() { - @Override - public void widgetSelected(SelectionEvent e) { - TaskRepository taskRepository = action.showWizard(); - if (taskRepository != null) { - SelectRepositoryPage.this.repositories = getTaskRepositories(); - viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors()); - viewer.setSelection(new StructuredSelection(taskRepository)); - } - } - }); - - Dialog.applyDialogFont(container); - setControl(container); - } - - protected Table createTableViewer(Composite container) { - viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); - viewer.setContentProvider(new RepositoryContentProvider()); - // viewer.setLabelProvider(new TaskRepositoryLabelProvider()); - viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(), - PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); - viewer.setInput(TasksUi.getRepositoryManager().getRepositoryConnectors()); - - viewer.addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - IStructuredSelection selection = (IStructuredSelection) event.getSelection(); - if (selection.getFirstElement() instanceof TaskRepository) { - setSelectedNode(new CustomWizardNode((TaskRepository) selection.getFirstElement())); - setPageComplete(true); - } else { - setPageComplete(false); - } - } - }); - - TaskRepository selectedRepository = TasksUiUtil.getSelectedRepository(null); - if (selectedRepository != null) { - viewer.setSelection(new StructuredSelection(selectedRepository)); - } else { - TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository( - LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL); - viewer.setSelection(new StructuredSelection(localRepository)); - } - - viewer.addOpenListener(new IOpenListener() { - - public void open(OpenEvent event) { - if (canFlipToNextPage()) { - getContainer().showPage(getNextPage()); - } else if (canFinish()) { - if (getWizard().performFinish()) { - ((WizardDialog) getContainer()).close(); - } - } - } - }); - - viewer.getTable().showSelection(); - viewer.getTable().setFocus(); - return viewer.getTable(); - } - - protected abstract IWizard createWizard(TaskRepository taskRepository); - - @Override - public boolean canFlipToNextPage() { - return getSelectedNode() != null && getNextPage() != null; - } - - public boolean canFinish() { - return getSelectedNode() != null && getNextPage() == null; - } - - public boolean performFinish() { - if (getSelectedNode() == null || getNextPage() != null) { - // finish event will get forwarded to nested wizard - // by container - return false; - } - - return getSelectedNode().getWizard().performFinish(); - } - - private class CustomWizardNode implements IWizardNode { - - private final TaskRepository repository; - - private IWizard wizard; - - public CustomWizardNode(TaskRepository repository) { - this.repository = repository; - } - - public void dispose() { - if (wizard != null) { - wizard.dispose(); - } - } - - public Point getExtent() { - return new Point(-1, -1); - } - - public IWizard getWizard() { - if (wizard == null) { - wizard = SelectRepositoryPage.this.createWizard(repository); - if (wizard != null) { - wizard.setContainer(getContainer()); - } - } - return wizard; - } - - public boolean isContentCreated() { - return wizard != null; - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof CustomWizardNode)) { - return false; - } - CustomWizardNode that = (CustomWizardNode) obj; - if (this == that) { - return true; - } - - return this.repository.getConnectorKind().equals(that.repository.getConnectorKind()) - && this.repository.getRepositoryUrl().equals(that.repository.getRepositoryUrl()); - } - - @Override - public int hashCode() { - return 31 * this.repository.getRepositoryUrl().hashCode() + this.repository.getConnectorKind().hashCode(); - } - - } - - /** - * Public for testing. - */ - public TableViewer getViewer() { - return viewer; - } - - /** - * Public for testing. - */ - public List<TaskRepository> getRepositories() { - return repositories; - } - -} |