Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 80478 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/team/internal/ccvs/ui/CVSPreferencesPage.java (+6 lines)
Lines 59-64 Link Here
59
	private Button determineVersionEnabled;
59
	private Button determineVersionEnabled;
60
	private Button confirmMoveTag;
60
	private Button confirmMoveTag;
61
	private Button debugProtocol;
61
	private Button debugProtocol;
62
	private Button autoRefreshTags;
62
	
63
	
63
	private Button never;
64
	private Button never;
64
	private Button prompt;
65
	private Button prompt;
Lines 171-176 Link Here
171
		confirmMoveTag = createCheckBox(composite, Policy.bind("CVSPreferencePage.confirmMoveTag")); //$NON-NLS-1$
172
		confirmMoveTag = createCheckBox(composite, Policy.bind("CVSPreferencePage.confirmMoveTag")); //$NON-NLS-1$
172
		debugProtocol = createCheckBox(composite, Policy.bind("CVSPreferencePage.debugProtocol")); //$NON-NLS-1$
173
		debugProtocol = createCheckBox(composite, Policy.bind("CVSPreferencePage.debugProtocol")); //$NON-NLS-1$
173
		usePlatformLineend = createCheckBox(composite, Policy.bind("CVSPreferencePage.lineend")); //$NON-NLS-1$
174
		usePlatformLineend = createCheckBox(composite, Policy.bind("CVSPreferencePage.lineend")); //$NON-NLS-1$
175
		autoRefreshTags = createCheckBox(composite, Policy.bind("CVSPreferencePage.autoRefreshTags")); //$NON-NLS-1$
174
			
176
			
175
		createLabel(composite, ""); createLabel(composite, ""); //$NON-NLS-1$ //$NON-NLS-2$
177
		createLabel(composite, ""); createLabel(composite, ""); //$NON-NLS-1$ //$NON-NLS-2$
176
		
178
		
Lines 239-244 Link Here
239
		WorkbenchHelp.setHelp(repositoriesAreBinary, IHelpContextIds.PREF_TREAT_NEW_FILE_AS_BINARY);
241
		WorkbenchHelp.setHelp(repositoriesAreBinary, IHelpContextIds.PREF_TREAT_NEW_FILE_AS_BINARY);
240
		WorkbenchHelp.setHelp(determineVersionEnabled, IHelpContextIds.PREF_DETERMINE_SERVER_VERSION);
242
		WorkbenchHelp.setHelp(determineVersionEnabled, IHelpContextIds.PREF_DETERMINE_SERVER_VERSION);
241
		WorkbenchHelp.setHelp(confirmMoveTag, IHelpContextIds.PREF_CONFIRM_MOVE_TAG);
243
		WorkbenchHelp.setHelp(confirmMoveTag, IHelpContextIds.PREF_CONFIRM_MOVE_TAG);
244
		WorkbenchHelp.setHelp(autoRefreshTags, IHelpContextIds.PREF_AUTOREFRESH_TAG);
242
		Dialog.applyDialogFont(parent);
245
		Dialog.applyDialogFont(parent);
243
		return composite;
246
		return composite;
244
	}
247
	}
Lines 297-302 Link Here
297
		determineVersionEnabled.setSelection(store.getBoolean(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION));
300
		determineVersionEnabled.setSelection(store.getBoolean(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION));
298
		confirmMoveTag.setSelection(store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
301
		confirmMoveTag.setSelection(store.getBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
299
		debugProtocol.setSelection(store.getBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
302
		debugProtocol.setSelection(store.getBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
303
		autoRefreshTags.setSelection(store.getBoolean(ICVSUIConstants.PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG));
300
		
304
		
301
		initializeSaveRadios(store.getInt(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS));		
305
		initializeSaveRadios(store.getInt(ICVSUIConstants.PREF_SAVE_DIRTY_EDITORS));		
302
	}
306
	}
Lines 340-345 Link Here
340
		store.setValue(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION, determineVersionEnabled.getSelection());
344
		store.setValue(ICVSUIConstants.PREF_DETERMINE_SERVER_VERSION, determineVersionEnabled.getSelection());
341
		store.setValue(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG, confirmMoveTag.getSelection());
345
		store.setValue(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG, confirmMoveTag.getSelection());
342
		store.setValue(ICVSUIConstants.PREF_DEBUG_PROTOCOL, debugProtocol.getSelection());
346
		store.setValue(ICVSUIConstants.PREF_DEBUG_PROTOCOL, debugProtocol.getSelection());
347
		store.setValue(ICVSUIConstants.PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG, autoRefreshTags.getSelection());
343
		
348
		
344
		CVSProviderPlugin.getPlugin().setReplaceUnmanaged(
349
		CVSProviderPlugin.getPlugin().setReplaceUnmanaged(
345
			store.getBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
350
			store.getBoolean(ICVSUIConstants.PREF_REPLACE_UNMANAGED));
Lines 391-396 Link Here
391
		repositoriesAreBinary.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
396
		repositoriesAreBinary.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_REPOSITORIES_ARE_BINARY));
392
		confirmMoveTag.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
397
		confirmMoveTag.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_CONFIRM_MOVE_TAG));
393
		debugProtocol.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
398
		debugProtocol.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_DEBUG_PROTOCOL));
399
		autoRefreshTags.setSelection(store.getDefaultBoolean(ICVSUIConstants.PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG));
394
	}
400
	}
395
401
396
   private void createSaveCombo(Composite composite) {
402
   private void createSaveCombo(Composite composite) {
(-)src/org/eclipse/team/internal/ccvs/ui/CVSUIPlugin.java (+1 lines)
Lines 606-611 Link Here
606
		store.setDefault(ICVSUIConstants.PREF_SHOW_COMPARE_REVISION_IN_DIALOG, false);
606
		store.setDefault(ICVSUIConstants.PREF_SHOW_COMPARE_REVISION_IN_DIALOG, false);
607
		store.setDefault(ICVSUIConstants.PREF_SHOW_AUTHOR_IN_EDITOR, false);
607
		store.setDefault(ICVSUIConstants.PREF_SHOW_AUTHOR_IN_EDITOR, false);
608
		store.setDefault(ICVSUIConstants.PREF_COMMIT_SET_DEFAULT_ENABLEMENT, false);
608
		store.setDefault(ICVSUIConstants.PREF_COMMIT_SET_DEFAULT_ENABLEMENT, false);
609
		store.setDefault(ICVSUIConstants.PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG, false);
609
		
610
		
610
		PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR, new RGB(0, 0, 0));
611
		PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_COMMAND_COLOR, new RGB(0, 0, 0));
611
		PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR, new RGB(0, 0, 255));
612
		PreferenceConverter.setDefault(store, ICVSUIConstants.PREF_CONSOLE_MESSAGE_COLOR, new RGB(0, 0, 255));
(-)src/org/eclipse/team/internal/ccvs/ui/ICVSUIConstants.java (+1 lines)
Lines 91-96 Link Here
91
	public final String PREF_SHOW_COMPARE_REVISION_IN_DIALOG = "pref_show_compare_revision_in_dialog"; //$NON-NLS-1$
91
	public final String PREF_SHOW_COMPARE_REVISION_IN_DIALOG = "pref_show_compare_revision_in_dialog"; //$NON-NLS-1$
92
	public final String PREF_SHOW_AUTHOR_IN_EDITOR = "pref_show_author_in_editor"; //$NON-NLS-1$
92
	public final String PREF_SHOW_AUTHOR_IN_EDITOR = "pref_show_author_in_editor"; //$NON-NLS-1$
93
	public final String PREF_COMMIT_SET_DEFAULT_ENABLEMENT = "pref_enable_commit_sets"; //$NON-NLS-1$
93
	public final String PREF_COMMIT_SET_DEFAULT_ENABLEMENT = "pref_enable_commit_sets"; //$NON-NLS-1$
94
	public final String PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG = "pref_auto_refresh_tags_in_tag_selection_dialog"; //$NON-NLS-1$
94
	
95
	
95
	// console preferences
96
	// console preferences
96
	public final String PREF_CONSOLE_COMMAND_COLOR = "pref_console_command_color"; //$NON-NLS-1$
97
	public final String PREF_CONSOLE_COMMAND_COLOR = "pref_console_command_color"; //$NON-NLS-1$
(-)src/org/eclipse/team/internal/ccvs/ui/IHelpContextIds.java (+1 lines)
Lines 86-91 Link Here
86
	public static final String PREF_TREAT_NEW_FILE_AS_BINARY = PREFIX + "treat_new_files_as_binary_pref"; //$NON-NLS-1$
86
	public static final String PREF_TREAT_NEW_FILE_AS_BINARY = PREFIX + "treat_new_files_as_binary_pref"; //$NON-NLS-1$
87
	public static final String PREF_DETERMINE_SERVER_VERSION = PREFIX + "determine_server_version"; //$NON-NLS-1$
87
	public static final String PREF_DETERMINE_SERVER_VERSION = PREFIX + "determine_server_version"; //$NON-NLS-1$
88
	public static final String PREF_CONFIRM_MOVE_TAG = PREFIX + "confirm_move_tag"; //$NON-NLS-1$
88
	public static final String PREF_CONFIRM_MOVE_TAG = PREFIX + "confirm_move_tag"; //$NON-NLS-1$
89
	public static final String PREF_AUTOREFRESH_TAG = PREFIX + "auto_refresh_tag"; //$NON-NLS-1$
89
90
90
	public static final String CONSOLE_PREFERENCE_PAGE = PREFIX + "console_preference_page_context"; //$NON-NLS-1$
91
	public static final String CONSOLE_PREFERENCE_PAGE = PREFIX + "console_preference_page_context"; //$NON-NLS-1$
91
	public static final String EXT_PREFERENCE_PAGE = PREFIX + "ext_preference_page_context"; //$NON-NLS-1$
92
	public static final String EXT_PREFERENCE_PAGE = PREFIX + "ext_preference_page_context"; //$NON-NLS-1$
(-)src/org/eclipse/team/internal/ccvs/ui/messages.properties (+8 lines)
Lines 222-227 Link Here
222
CVSPreferencePage.level8=8
222
CVSPreferencePage.level8=8
223
CVSPreferencePage.level9=9 (highest compression)
223
CVSPreferencePage.level9=9 (highest compression)
224
CVSPreferencePage.lineend=Con&vert text files to use platform line ending
224
CVSPreferencePage.lineend=Con&vert text files to use platform line ending
225
CVSPreferencePage.autoRefreshTags=R&efresh tags when comparing or replacing tags from another branch or version
225
CVSPreferencePage.Save_dirty_editors_before_CVS_operations_1=Save dirty editors before CVS operations
226
CVSPreferencePage.Save_dirty_editors_before_CVS_operations_1=Save dirty editors before CVS operations
226
CVSPreferencePage.&Never_2=&Never
227
CVSPreferencePage.&Never_2=&Never
227
CVSPreferencePage.&Prompt_3=P&rompt
228
CVSPreferencePage.&Prompt_3=P&rompt
Lines 734-739 Link Here
734
TagSelectionDialog.recurseOption=Recurse into sub-&folders
735
TagSelectionDialog.recurseOption=Recurse into sub-&folders
735
TagSelectionDialog.0=&Add Date...
736
TagSelectionDialog.0=&Add Date...
736
TagSelectionDialog.1=&Remove
737
TagSelectionDialog.1=&Remove
738
TagSelectionDialog.2=No Tags Found
739
TagSelectionDialog.3=Perform Deep Search
740
TagSelectionDialog.4=Configure Manually
741
TagSelectionDialog.5=Cancel
742
TagSelectionDialog.6=Tags were not found for {0} using the auto-refresh files and a shallow cvs log operation. You can choose to search using a deep cvs log operation, to manually configure the tags or to cancel.
743
TagSelectionDialog.7=Refreshing tags
744
737
TagSelectionArea.0=&Matching tags:
745
TagSelectionArea.0=&Matching tags:
738
TagSelectionArea.1={0}:
746
TagSelectionArea.1={0}:
739
TagSelectionArea.2={0} (? = any character, * = any String):
747
TagSelectionArea.2={0} (? = any character, * = any String):
(-)src/org/eclipse/team/internal/ccvs/ui/tags/TagSelectionDialog.java (-2 / +89 lines)
Lines 10-25 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.team.internal.ccvs.ui.tags;
11
package org.eclipse.team.internal.ccvs.ui.tags;
12
12
13
 
13
14
import org.eclipse.jface.dialogs.Dialog;
14
import org.eclipse.jface.dialogs.Dialog;
15
import org.eclipse.jface.dialogs.IDialogConstants;
15
import org.eclipse.jface.dialogs.IDialogConstants;
16
import org.eclipse.jface.dialogs.MessageDialog;
16
import org.eclipse.jface.util.IPropertyChangeListener;
17
import org.eclipse.jface.util.IPropertyChangeListener;
17
import org.eclipse.jface.util.PropertyChangeEvent;
18
import org.eclipse.jface.util.PropertyChangeEvent;
19
import org.eclipse.jface.window.Window;
20
18
import org.eclipse.swt.SWT;
21
import org.eclipse.swt.SWT;
22
import org.eclipse.swt.events.DisposeEvent;
23
import org.eclipse.swt.events.DisposeListener;
19
import org.eclipse.swt.graphics.Point;
24
import org.eclipse.swt.graphics.Point;
20
import org.eclipse.swt.layout.GridData;
25
import org.eclipse.swt.layout.GridData;
21
import org.eclipse.swt.widgets.*;
26
import org.eclipse.swt.widgets.*;
27
28
import org.eclipse.core.runtime.IProgressMonitor;
29
import org.eclipse.core.runtime.IStatus;
30
import org.eclipse.core.runtime.Status;
31
import org.eclipse.core.runtime.jobs.Job;
32
33
import org.eclipse.team.core.TeamException;
22
import org.eclipse.team.internal.ccvs.core.CVSTag;
34
import org.eclipse.team.internal.ccvs.core.CVSTag;
35
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
36
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
23
import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
37
import org.eclipse.team.internal.ccvs.ui.IHelpContextIds;
24
import org.eclipse.team.internal.ccvs.ui.Policy;
38
import org.eclipse.team.internal.ccvs.ui.Policy;
25
39
Lines 147-153 Link Here
147
	 * Subclasses should override.
161
	 * Subclasses should override.
148
	 * </p>
162
	 * </p>
149
	 *
163
	 *
150
	 * @param the parent composite to contain the dialog area
164
	 * @param parent the parent composite to contain the dialog area
151
	 * @return the dialog area control
165
	 * @return the dialog area control
152
	 */
166
	 */
153
	protected Control createDialogArea(Composite parent) {
167
	protected Control createDialogArea(Composite parent) {
Lines 220-225 Link Here
220
	 */
234
	 */
221
	protected void initialize() {
235
	protected void initialize() {
222
		okButton.setEnabled(false);
236
		okButton.setEnabled(false);
237
		if (CVSUIPlugin.getPlugin().getPreferenceStore().getBoolean(ICVSUIConstants.PREF_AUTO_REFRESH_TAGS_IN_TAG_SELECTION_DIALOG))
238
			refreshFromRepository();
223
	}
239
	}
224
240
225
	
241
	
Lines 243-247 Link Here
243
        } else if (property.equals(TagSelectionArea.OPEN_SELECTED_TAG)) {
259
        } else if (property.equals(TagSelectionArea.OPEN_SELECTED_TAG)) {
244
            okPressed();
260
            okPressed();
245
        }
261
        }
262
    }
263
    
264
    /**
265
     * Refreshes the tags from the repository.
266
     * 
267
     * @since 3.1
268
     */
269
    private void refreshFromRepository() {
270
    	final Job refreshJob = new Job(Policy.bind("TagSelectionDialog.7")) { //$NON-NLS-1$
271
    		protected IStatus run(IProgressMonitor monitor) {
272
				CVSTag[] tags;
273
				try {
274
					if (monitor.isCanceled())
275
						return Status.CANCEL_STATUS;
276
					tags= tagSource.refresh(false, Policy.subMonitorFor(monitor, 70));
277
					if (tags.length == 0 && !monitor.isCanceled() && promptForBestEffort()) {
278
						if (!monitor.isCanceled())
279
							tagSource.refresh(true, Policy.subMonitorFor(monitor, 30));
280
					}
281
				} catch (TeamException e) {
282
					return e.getStatus();
283
				}
284
				if (monitor.isCanceled())
285
					return Status.CANCEL_STATUS;
286
				else
287
					return Status.OK_STATUS;
288
    		}
289
    	};
290
    	refreshJob.setUser(true);
291
    	refreshJob.setPriority(Job.DECORATE);
292
    	getShell().addDisposeListener(new DisposeListener() {
293
			/* (non-Javadoc)
294
			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
295
			 */
296
			public void widgetDisposed(DisposeEvent e) {
297
				refreshJob.cancel();
298
			}
299
    	});
300
    	refreshJob.schedule();
301
    }
302
    
303
    /**
304
     * Prompts the user in cases where no tags could be found.
305
     * 
306
     * @return <code>true</code> if not canceled
307
     * @since 3.1
308
     */
309
    private boolean promptForBestEffort() {
310
    	final boolean[] prompt = new boolean[] { false };
311
    	getShell().getDisplay().syncExec(new Runnable() {
312
    		public void run() {
313
    			MessageDialog dialog = new MessageDialog(
314
    					getShell(),
315
    					Policy.bind("TagSelectionDialog.2"), null, //$NON-NLS-1$
316
    					Policy.bind("TagSelectionDialog.6", tagSource.getShortDescription()), //$NON-NLS-1$
317
    					MessageDialog.INFORMATION,
318
    					new String[] {
319
    						Policy.bind("TagSelectionDialog.3"), //$NON-NLS-1$
320
    						Policy.bind("TagSelectionDialog.4"), //$NON-NLS-1$
321
    						Policy.bind("TagSelectionDialog.5") //$NON-NLS-1$
322
    					}, 1);
323
    			int code = dialog.open();
324
    			if (code == Window.OK) {
325
    				prompt[0] = true;
326
    			} else if (code == 1) {
327
    				TagConfigurationDialog d = new TagConfigurationDialog(getShell(), tagSource);
328
    				d.open();
329
    			}
330
    		}
331
    	});
332
    	return prompt[0];
246
    }
333
    }
247
}
334
}

Return to bug 80478