Lines 10-21
Link Here
|
10 |
*******************************************************************************/ |
10 |
*******************************************************************************/ |
11 |
package org.eclipse.team.internal.ccvs.core; |
11 |
package org.eclipse.team.internal.ccvs.core; |
12 |
|
12 |
|
13 |
import java.util.ArrayList; |
13 |
import java.util.*; |
14 |
import java.util.HashSet; |
|
|
15 |
import java.util.List; |
16 |
import java.util.Set; |
17 |
|
14 |
|
18 |
import org.eclipse.core.resources.*; |
15 |
import org.eclipse.core.resources.*; |
|
|
16 |
import org.eclipse.core.resources.team.FileModificationValidationContext; |
17 |
import org.eclipse.core.resources.team.FileModificationValidator; |
19 |
import org.eclipse.core.runtime.*; |
18 |
import org.eclipse.core.runtime.*; |
20 |
import org.eclipse.core.runtime.jobs.*; |
19 |
import org.eclipse.core.runtime.jobs.*; |
21 |
import org.eclipse.osgi.util.NLS; |
20 |
import org.eclipse.osgi.util.NLS; |
Lines 25-38
Link Here
|
25 |
/** |
24 |
/** |
26 |
* Core validator that will load the UI validator only if a prompt is needed |
25 |
* Core validator that will load the UI validator only if a prompt is needed |
27 |
*/ |
26 |
*/ |
28 |
public class CVSCoreFileModificationValidator implements ICVSFileModificationValidator { |
27 |
public class CVSCoreFileModificationValidator extends FileModificationValidator implements ICVSFileModificationValidator { |
29 |
|
28 |
|
30 |
IFileModificationValidator uiValidator; |
29 |
FileModificationValidator uiValidator; |
31 |
|
30 |
|
32 |
/* (non-Javadoc) |
31 |
/* (non-Javadoc) |
33 |
* @see org.eclipse.core.resources.IFileModificationValidator#validateEdit(org.eclipse.core.resources.IFile[], java.lang.Object) |
32 |
* @see org.eclipse.core.resources.team.FileModificationValidator#validateEdit(org.eclipse.core.resources.IFile[], org.eclipse.core.resources.team.FileModificationValidationContext) |
34 |
*/ |
33 |
*/ |
35 |
public IStatus validateEdit(IFile[] files, Object context) { |
34 |
public IStatus validateEdit(IFile[] files, FileModificationValidationContext context) { |
36 |
IFile[] unmanagedReadOnlyFiles = getUnmanagedReadOnlyFiles(files); |
35 |
IFile[] unmanagedReadOnlyFiles = getUnmanagedReadOnlyFiles(files); |
37 |
if (unmanagedReadOnlyFiles.length > 0) { |
36 |
if (unmanagedReadOnlyFiles.length > 0) { |
38 |
IStatus status = setWritable(unmanagedReadOnlyFiles); |
37 |
IStatus status = setWritable(unmanagedReadOnlyFiles); |
Lines 55-61
Link Here
|
55 |
} |
54 |
} |
56 |
return Status.OK_STATUS; |
55 |
return Status.OK_STATUS; |
57 |
} |
56 |
} |
58 |
return edit(new IFile[] {file}, (Object)null); |
57 |
return edit(new IFile[] {file}, (FileModificationValidationContext)null); |
59 |
} |
58 |
} |
60 |
|
59 |
|
61 |
/** |
60 |
/** |
Lines 67-74
Link Here
|
67 |
* @param context |
66 |
* @param context |
68 |
* @return |
67 |
* @return |
69 |
*/ |
68 |
*/ |
70 |
protected IStatus edit(IFile[] readOnlyFiles, Object context) { |
69 |
protected IStatus edit(IFile[] readOnlyFiles, FileModificationValidationContext context) { |
71 |
IFileModificationValidator override = getUIValidator(); |
70 |
FileModificationValidator override = getUIValidator(); |
72 |
if (override != null) { |
71 |
if (override != null) { |
73 |
return override.validateEdit(readOnlyFiles, context); |
72 |
return override.validateEdit(readOnlyFiles, context); |
74 |
} else { |
73 |
} else { |
Lines 77-83
Link Here
|
77 |
} |
76 |
} |
78 |
} |
77 |
} |
79 |
|
78 |
|
80 |
private IFileModificationValidator getUIValidator() { |
79 |
private FileModificationValidator getUIValidator() { |
81 |
synchronized(this) { |
80 |
synchronized(this) { |
82 |
if (uiValidator == null) { |
81 |
if (uiValidator == null) { |
83 |
uiValidator = getPluggedInValidator(); |
82 |
uiValidator = getPluggedInValidator(); |
Lines 181-187
Link Here
|
181 |
return (IFile[]) readOnlys.toArray(new IFile[readOnlys.size()]); |
180 |
return (IFile[]) readOnlys.toArray(new IFile[readOnlys.size()]); |
182 |
} |
181 |
} |
183 |
|
182 |
|
184 |
private static IFileModificationValidator getPluggedInValidator() { |
183 |
private static FileModificationValidator getPluggedInValidator() { |
185 |
IExtension[] extensions = Platform.getExtensionRegistry().getExtensionPoint(CVSProviderPlugin.ID, CVSProviderPlugin.PT_FILE_MODIFICATION_VALIDATOR).getExtensions(); |
184 |
IExtension[] extensions = Platform.getExtensionRegistry().getExtensionPoint(CVSProviderPlugin.ID, CVSProviderPlugin.PT_FILE_MODIFICATION_VALIDATOR).getExtensions(); |
186 |
if (extensions.length == 0) |
185 |
if (extensions.length == 0) |
187 |
return null; |
186 |
return null; |
Lines 193-199
Link Here
|
193 |
} |
192 |
} |
194 |
try { |
193 |
try { |
195 |
IConfigurationElement config = configs[0]; |
194 |
IConfigurationElement config = configs[0]; |
196 |
return (IFileModificationValidator) config.createExecutableExtension("run");//$NON-NLS-1$ |
195 |
return (FileModificationValidator) config.createExecutableExtension("run");//$NON-NLS-1$ |
197 |
} catch (CoreException ex) { |
196 |
} catch (CoreException ex) { |
198 |
CVSProviderPlugin.log(IStatus.ERROR, NLS.bind("The CVS file modification validator registered as ID {0} could not be instantiated", (new Object[] {extension.getUniqueIdentifier()})), ex);//$NON-NLS-1$ |
197 |
CVSProviderPlugin.log(IStatus.ERROR, NLS.bind("The CVS file modification validator registered as ID {0} could not be instantiated", (new Object[] {extension.getUniqueIdentifier()})), ex);//$NON-NLS-1$ |
199 |
return null; |
198 |
return null; |
Lines 201-207
Link Here
|
201 |
} |
200 |
} |
202 |
|
201 |
|
203 |
public ISchedulingRule validateEditRule(CVSResourceRuleFactory factory, IResource[] resources) { |
202 |
public ISchedulingRule validateEditRule(CVSResourceRuleFactory factory, IResource[] resources) { |
204 |
IFileModificationValidator override = getUIValidator(); |
203 |
FileModificationValidator override = getUIValidator(); |
205 |
if (override instanceof CVSCoreFileModificationValidator && override != this) { |
204 |
if (override instanceof CVSCoreFileModificationValidator && override != this) { |
206 |
CVSCoreFileModificationValidator ui = (CVSCoreFileModificationValidator) override; |
205 |
CVSCoreFileModificationValidator ui = (CVSCoreFileModificationValidator) override; |
207 |
return ui.validateEditRule(factory, resources); |
206 |
return ui.validateEditRule(factory, resources); |