View | Details | Raw Unified | Return to bug 244553 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/tasks/core/TaskRepository.java (+19 lines)
Lines 141-146 Link Here
141
141
142
	public static final String OFFLINE = "org.eclipse.mylyn.tasklist.repositories.offline"; //$NON-NLS-1$
142
	public static final String OFFLINE = "org.eclipse.mylyn.tasklist.repositories.offline"; //$NON-NLS-1$
143
143
144
	/**
145
	 * @since 3.1
146
	 */
147
	public static final String DEFAULT = "org.eclipse.mylyn.tasklist.repositories.default"; //$NON-NLS-1$
148
144
	// HACK: Lock used to work around race condition in
149
	// HACK: Lock used to work around race condition in
145
	// Platform.add/get/flushAuthorizationInfo()
150
	// Platform.add/get/flushAuthorizationInfo()
146
	private static final Object LOCK = new Object();
151
	private static final Object LOCK = new Object();
Lines 833-836 Link Here
833
		setProperty(TaskRepository.PROXY_USEDEFAULT, String.valueOf(useDefaultProxy));
838
		setProperty(TaskRepository.PROXY_USEDEFAULT, String.valueOf(useDefaultProxy));
834
	}
839
	}
835
840
841
	/**
842
	 * @since 3.1
843
	 */
844
	public boolean isDefault() {
845
		return getProperty(DEFAULT) != null && "true".equals(getProperty(DEFAULT)); //$NON-NLS-1$
846
	}
847
848
	/**
849
	 * @since 3.1
850
	 */
851
	public void setDefault(boolean defaultValue) {
852
		properties.put(DEFAULT, String.valueOf(defaultValue));
853
	}
854
836
}
855
}
(-)src/org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager.java (+38 lines)
Lines 410-413 Link Here
410
		}
410
		}
411
	}
411
	}
412
412
413
	/**
414
	 * Set the given Repository as the default Repository
415
	 * 
416
	 * @param newrepository
417
	 *            the new Default Repository can be null
418
	 * @since 3.1
419
	 */
420
	public void setDefaultRepository(TaskRepository newrepository) {
421
		Collection<Set<TaskRepository>> values = repositoryMap.values();
422
		for (Set<TaskRepository> set : values) {
423
			for (TaskRepository taskRepository : set) {
424
				if (taskRepository.isDefault()) {
425
					taskRepository.setDefault(false);
426
				}
427
			}
428
		}
429
		if (newrepository != null) {
430
			newrepository.setDefault(true);
431
		}
432
	}
433
434
	/**
435
	 * Get the Default Repository
436
	 * 
437
	 * @return The Default Repository
438
	 * @since 3.1
439
	 */
440
	public TaskRepository getDefaultRepository() {
441
		Collection<Set<TaskRepository>> values = repositoryMap.values();
442
		for (Set<TaskRepository> set : values) {
443
			for (TaskRepository taskRepository : set) {
444
				if (taskRepository.isDefault()) {
445
					return taskRepository;
446
				}
447
			}
448
		}
449
		return null;
450
	}
413
}
451
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java (+2 lines)
Lines 25-30 Link Here
25
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
25
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
26
	}
26
	}
27
27
28
	public static String DefaultRepositoryAction_Default;
29
28
	public static String DisconnectRepositoryAction_Disconnected;
30
	public static String DisconnectRepositoryAction_Disconnected;
29
31
30
	public static String PriorityDropDownAction_Filter_Priority_Lower_Than;
32
	public static String PriorityDropDownAction_Filter_Priority_Lower_Than;
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties (+1 lines)
Lines 1-3 Link Here
1
DefaultRepositoryAction_Default=Default Repository
1
DisconnectRepositoryAction_Disconnected=Disconnected
2
DisconnectRepositoryAction_Disconnected=Disconnected
2
3
3
PriorityDropDownAction_Filter_Priority_Lower_Than=Filter Priority Lower Than
4
PriorityDropDownAction_Filter_Priority_Lower_Than=Filter Priority Lower Than
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java (+7 lines)
Lines 30-35 Link Here
30
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryAdapter;
30
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryAdapter;
31
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
31
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
32
import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
32
import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction;
33
import org.eclipse.mylyn.internal.tasks.ui.actions.DefaultRepositoryAction;
33
import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteTaskRepositoryAction;
34
import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteTaskRepositoryAction;
34
import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
35
import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
35
import org.eclipse.mylyn.tasks.core.IRepositoryListener;
36
import org.eclipse.mylyn.tasks.core.IRepositoryListener;
Lines 67-72 Link Here
67
68
68
	private DisconnectRepositoryAction offlineAction;
69
	private DisconnectRepositoryAction offlineAction;
69
70
71
	private DefaultRepositoryAction defaultRepositoryAction;
72
70
	private void asyncExec(Runnable runnable) {
73
	private void asyncExec(Runnable runnable) {
71
		if (Display.getCurrent() != null) {
74
		if (Display.getCurrent() != null) {
72
			runnable.run();
75
			runnable.run();
Lines 229-234 Link Here
229
232
230
		offlineAction = new DisconnectRepositoryAction();
233
		offlineAction = new DisconnectRepositoryAction();
231
		viewer.addSelectionChangedListener(offlineAction);
234
		viewer.addSelectionChangedListener(offlineAction);
235
236
		defaultRepositoryAction = new DefaultRepositoryAction();
237
		viewer.addSelectionChangedListener(defaultRepositoryAction);
232
	}
238
	}
233
239
234
	private void hookContextMenu() {
240
	private void hookContextMenu() {
Lines 261-266 Link Here
261
		manager.add(resetConfigurationAction);
267
		manager.add(resetConfigurationAction);
262
		manager.add(new Separator());
268
		manager.add(new Separator());
263
		manager.add(offlineAction);
269
		manager.add(offlineAction);
270
		manager.add(defaultRepositoryAction);
264
		manager.add(new Separator("repository")); //$NON-NLS-1$
271
		manager.add(new Separator("repository")); //$NON-NLS-1$
265
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
272
		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
266
		manager.add(new Separator());
273
		manager.add(new Separator());
(-)src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java (+4 lines)
Lines 15-20 Link Here
15
import org.eclipse.jface.viewers.ILabelProviderListener;
15
import org.eclipse.jface.viewers.ILabelProviderListener;
16
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
16
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
17
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
17
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
18
import org.eclipse.mylyn.internal.tasks.ui.actions.DefaultRepositoryAction;
18
import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
19
import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction;
19
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
20
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
20
import org.eclipse.mylyn.tasks.core.TaskRepository;
21
import org.eclipse.mylyn.tasks.core.TaskRepository;
Lines 61-66 Link Here
61
			TaskRepository repository = (TaskRepository) object;
62
			TaskRepository repository = (TaskRepository) object;
62
			StringBuilder label = new StringBuilder();
63
			StringBuilder label = new StringBuilder();
63
			label.append(repository.getRepositoryLabel());
64
			label.append(repository.getRepositoryLabel());
65
			if (repository.isDefault()) {
66
				label.append(" [" + DefaultRepositoryAction.LABEL + "]"); //$NON-NLS-1$ //$NON-NLS-2$
67
			}
64
			if (repository.isOffline()) {
68
			if (repository.isOffline()) {
65
				label.append(" [" + DisconnectRepositoryAction.LABEL + "]"); //$NON-NLS-1$ //$NON-NLS-2$
69
				label.append(" [" + DisconnectRepositoryAction.LABEL + "]"); //$NON-NLS-1$ //$NON-NLS-2$
66
			}
70
			}
(-)src/org/eclipse/mylyn/internal/tasks/ui/wizards/Messages.java (+2 lines)
Lines 179-184 Link Here
179
179
180
	public static String AbstractRepositorySettingsPage_Disconnected;
180
	public static String AbstractRepositorySettingsPage_Disconnected;
181
181
182
	public static String AbstractRepositorySettingsPage_Default_Repository;
183
182
	public static String AbstractRepositorySettingsPage_Enable_http_authentication;
184
	public static String AbstractRepositorySettingsPage_Enable_http_authentication;
183
185
184
	public static String AbstractRepositorySettingsPage_Enable_proxy_authentication;
186
	public static String AbstractRepositorySettingsPage_Enable_proxy_authentication;
(-)src/org/eclipse/mylyn/internal/tasks/ui/wizards/messages.properties (+1 lines)
Lines 90-95 Link Here
90
AbstractRepositorySettingsPage_Create_new_account=Create new account
90
AbstractRepositorySettingsPage_Create_new_account=Create new account
91
AbstractRepositorySettingsPage_Default__=Default (
91
AbstractRepositorySettingsPage_Default__=Default (
92
AbstractRepositorySettingsPage_Disconnected=Disconnected
92
AbstractRepositorySettingsPage_Disconnected=Disconnected
93
AbstractRepositorySettingsPage_Default_Repository=Default Repository
93
AbstractRepositorySettingsPage_Enable_http_authentication=Enable Http Authentication
94
AbstractRepositorySettingsPage_Enable_http_authentication=Enable Http Authentication
94
AbstractRepositorySettingsPage_Enable_proxy_authentication=Enable Proxy Authentication
95
AbstractRepositorySettingsPage_Enable_proxy_authentication=Enable Proxy Authentication
95
AbstractRepositorySettingsPage_Enter_a_valid_server_url=Enter a valid server url
96
AbstractRepositorySettingsPage_Enter_a_valid_server_url=Enter a valid server url
(-)src/org/eclipse/mylyn/tasks/ui/wizards/AbstractRepositorySettingsPage.java (-3 / +13 lines)
Lines 201-206 Link Here
201
201
202
	private Button disconnectedButton;
202
	private Button disconnectedButton;
203
203
204
	private Button setDefaultButton;
205
204
	/**
206
	/**
205
	 * @since 3.0
207
	 * @since 3.0
206
	 */
208
	 */
Lines 288-295 Link Here
288
			}
290
			}
289
		});
291
		});
290
292
291
		GridDataFactory.fillDefaults().hint(300, SWT.DEFAULT).grab(true, false).span(2, SWT.DEFAULT).applyTo(
293
		GridDataFactory.fillDefaults().hint(300, SWT.DEFAULT).grab(true, false).span(1, SWT.DEFAULT).applyTo(
292
				serverUrlCombo);
294
				serverUrlCombo);
295
		setDefaultButton = new Button(compositeContainer, SWT.CHECK);
296
		setDefaultButton.setText(Messages.AbstractRepositorySettingsPage_Default_Repository);
297
		setDefaultButton.setSelection(repository != null ? repository.isDefault() : false);
293
298
294
		repositoryLabelEditor = new StringFieldEditor("", LABEL_REPOSITORY_LABEL, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
299
		repositoryLabelEditor = new StringFieldEditor("", LABEL_REPOSITORY_LABEL, StringFieldEditor.UNLIMITED, //$NON-NLS-1$
295
				compositeContainer) {
300
				compositeContainer) {
Lines 336-342 Link Here
336
341
337
			@Override
342
			@Override
338
			public int getNumberOfControls() {
343
			public int getNumberOfControls() {
339
				 // always 2 columns -- if no anonymous checkbox, just leave 3rd column empty
344
				// always 2 columns -- if no anonymous checkbox, just leave 3rd column empty
340
				return 2;
345
				return 2;
341
			}
346
			}
342
		};
347
		};
Lines 1407-1413 Link Here
1407
		}
1412
		}
1408
1413
1409
		repository.setOffline(disconnectedButton.getSelection());
1414
		repository.setOffline(disconnectedButton.getSelection());
1410
1415
		TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
1416
		if (setDefaultButton.getSelection()) {
1417
			repositoryManager.setDefaultRepository(repository);
1418
		} else if (repository.isDefault() && !setDefaultButton.getSelection()) {
1419
			repositoryManager.setDefaultRepository(null);
1420
		}
1411
		super.applyTo(repository);
1421
		super.applyTo(repository);
1412
	}
1422
	}
1413
1423
(-)src/org/eclipse/mylyn/internal/tasks/ui/actions/DefaultRepositoryAction.java (+76 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2008 Tasktop Technologies and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Tasktop Technologies - initial API and implementation
10
 *******************************************************************************/
11
12
package org.eclipse.mylyn.internal.tasks.ui.actions;
13
14
import org.eclipse.jface.action.Action;
15
import org.eclipse.jface.action.IAction;
16
import org.eclipse.jface.viewers.ISelection;
17
import org.eclipse.jface.viewers.ISelectionChangedListener;
18
import org.eclipse.jface.viewers.IStructuredSelection;
19
import org.eclipse.jface.viewers.SelectionChangedEvent;
20
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
21
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
22
import org.eclipse.mylyn.internal.tasks.ui.views.Messages;
23
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
24
import org.eclipse.mylyn.tasks.core.TaskRepository;
25
import org.eclipse.mylyn.tasks.ui.TasksUi;
26
27
/**
28
 * 
29
 * @author "Frank Becker"
30
 * @since 3.1
31
 * 
32
 */
33
public class DefaultRepositoryAction extends Action implements ISelectionChangedListener {
34
	public static final String LABEL = Messages.DefaultRepositoryAction_Default;
35
36
	private static final String ID = "org.eclipse.mylyn.tasklist.repositories.default"; //$NON-NLS-1$
37
38
	private TaskRepository repository;
39
40
	public DefaultRepositoryAction() {
41
		super(LABEL, IAction.AS_CHECK_BOX);
42
		setId(ID);
43
		setEnabled(false);
44
	}
45
46
	@Override
47
	public void run() {
48
		TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager();
49
		repositoryManager.setDefaultRepository(repository);
50
		repositoryManager.notifyRepositorySettingsChanged(repository);
51
	}
52
53
	public void selectionChanged(IAction action, ISelection selection) {
54
	}
55
56
	public void selectionChanged(SelectionChangedEvent event) {
57
		ISelection selection = event.getSelection();
58
		if (selection instanceof IStructuredSelection) {
59
			Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
60
			if (selectedObject instanceof TaskRepository) {
61
				AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector(
62
						((TaskRepository) selectedObject).getConnectorKind());
63
				if (connector.isUserManaged()) {
64
					this.repository = (TaskRepository) selectedObject;
65
					setChecked(this.repository.isDefault());
66
					setEnabled(true);
67
					return;
68
				}
69
			}
70
		}
71
		this.repository = null;
72
		setChecked(false);
73
		setEnabled(false);
74
	}
75
76
}

Return to bug 244553